01. Secure SDLC
1) Secure SDLC(소프트웨어 개발 생명 주기): SDLC에 보안 강화를 위한 프로세스를 포함한 것
- CLASP: SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- SDL: MS사에서 기존의 SDLC를 개선한 방법론
- Seven Touchpoints: 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
2) SDLC 단계별 보안 활동
- 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
3) 소프트웨어 개발 보안 요소
- 기밀성(Confidentiality): 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨.
- 무결성(Integrity): 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음.
- 가용성(Availability): 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음.
- 인증(Authentication): 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위
- 부인 방지(Non Repudiation): 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함
02. 세션 통제
1) 세션 통제: 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
03. 입력 데이터 검증 및 표현
- 입력 데이터 검증 및 표현의 보안 약점
| SQL 삽입 | 웹 응용 프로그램에 SQL을 삽입하여 내부 DB 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점 |
| 경로 조작 및 자원 삽입 | 데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점 |
| 크로스사이트 스크립팅(XSS) | 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 보안 약점 |
| 운영체제 명령어 삽입 | 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발 |
| 위험한 형식 파일 업로드 | 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나 시스템을 제어할 수 있는 보안 약점 |
| 신뢰되지 않는 URL 주소로 자동접속 연결 | 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점 |
| 메모리 버퍼 오버플로 | 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점 |
04. 보안 기능
- 보안 기능의 보안 약점
| 적절한 인증 없이 중요 기능 허용 | 보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경이 가능함 |
| 부적절한 인가 | 접근 제어 기능이 없는 실행 경로를 통해 정보 또는 권한을 탈취할 수 있음 |
| 중요한 자원에 대한 잘못된 권한 설정 | 권한 설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용할 수 있음 |
| 취약한 암호화 알고리즘 사용 | 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요 정보를 탈취할 수 있음 |
| 중요 정보 평문 저장 및 전송 | 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있음 |
| 하드코드된 암호화 키 | 암호화된 키도 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 의해 탈취될 수 있음 |
05. 시간 및 상태
- 시간 및 상태의 보안 약점
- TOCTOU 경쟁 조건: 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생
- 종료되지 않는 반복문 또는 재귀 함수: 반복문이나 재귀함수에서 무한 반복되는 경우 발생하는 보안 약점
06. 에러처리
- 에러처리의 보안 약점: 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재, 부적절한 예외처리
07. 코드 오류
1) 코드 오류의 보안 약점
| 널 포인터 역참조 | 널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생 |
| 부적절한 자원 해제 | 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생 |
| 해제된 자원 사용 | 이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생 |
| 초기화되지 않은 변수 사용 | 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생 |
2) 스택 가드: 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술
08. 캡슐화
1) 캡슐화: 정보 은닉이 필요한 중요한 데이터와 기능을 불완전하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들
2) 캡슐화의 보안 약점
| 잘못된 세션에 의한 정보 노출 | 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생 |
| 제거되지 않고 남은 디버그 소스 | 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드로 인해 발생 |
| 시스템 데이터 정보 노출 | 시스템의 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 때 발생 |
| Public 메소드로부터 반환된 Private 배열 | Private 배열을 Public 메소드에서 반환할 때 발생 |
| Private 배열에 Public 데이터 할당 | Private 배열에 Public으로 선언된 데이터 또는 메소드의 파라미터를 저장할 때 발생 |
3) 접근 제어자: 외부로부터의 접근을 제한하기 위해 사용되는 예약어
- Public > Protected > Default > Private
09. API 오용
- API 오용의 보안 약점: DNS Lookup에 의존한 보안 결정, 취약한 API 사용
10. 암호 알고리즘
1) 암호 알고리즘: 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미
2) 개인키 암호화 기법(대칭, 단일키): 동일한 키로 데이터를 암호화하고 복호화하는 기법
- 스트림 암호화 방식: 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식
- 종류: LFSR, RC4
- 블록 암호화 기법: 한번에 하나의 데이터 블록을 암호화하는 방식
- DES: 1997년 미국 NBS에서 발표
- SEED: 1999년 KISA에서 개발, 키 길이에 따라 128, 256으로 분류됨
- AES: 2001년 NIST에서 DES의 한계를 느끼고 발표
- ARIA: 2004년 국가정보원과 산학연협회가 개발
- 공개키 암호화 기법(비대칭): 암호화할 때 사용하는 공개키는 공개하고 비밀키는 관리자가 비밀리에 관리
- RSA: 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐
3) 해시: 임의의 길이 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
- SHA 시리즈: 1993년 NSA가 설계, NIST에 의해 발표됨
- MD5: 1991년 Rivest가 MD4를 대체하기 위해 고안. 블록 크기 512비트, 키 길이 128비트
- N-NASH: 1989년 일본의 NTT에서 발표, 블록과 키 모두 128비트
- SNEFRU: 1990년 R.C.Merkle가 발표, 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발됨.
11. 서비스 공격 유형
1) 서비스 거부 공격(DoS, Denial of Service)
| Ping of Death(죽음의 핑) | 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시킴. |
| 스머핑 | IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로서 네트워크를 불능 상태로 만듦. |
| SYN Flooding | 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 대기상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법 |
| TearDrop | Offset 값을 변경시켜 수신 측에서 과부하를 발견시킴으로써 시스템이 다운되도록 함. |
| LAND Attack | 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 자신에 대해 무한히 응답하게 함. |
| DDos(분산 서비스 거부 공격) | 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것 |
2) 네트워크 침해 공격 관련 용어
| 스미싱 | 문자 메시지를 이용해 사용자의 개인 사용 정보를 빼내는 수법 |
| 스피어 피싱 | 일반적인 이메일로 위장한 메일을 지속적으로 발송해 발송 메일의 본문 링크나 첨부 파일을 클릭하도록 유도해 개인 정보를 탈취 |
| APT(지능형 지속 위협) | 다양한 IT 기술과 방식들을 이용해 공격 대상의 네트워크에 침투해 활동 거점을 마련한 뒤, 때를 기다리면서 보안을 무력화시키고 정보를 수집해 외부로 빼돌림. |
| 무작위 대입 공격 | 암호키를 찾기 위해 적용 가능한 모든 값을 대입하여 공격 |
| 큐싱 | QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 함 |
| SQL 삽입 | 전문 스캐너 프로그램 혹은 봇넷 등을 이욯 웹 사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 DB 등의 데이터를 조작함. |
| 크로스 사이트 스크립팅(XSS) | 웹 페이지의 내용을 사용자 브라우저에 표현하기 위해 사용되는 스크립트의 취약점을 이용 |
| 스니핑 | 엿보기, 남의 패킷 정보를 도청하는 해킹 유형 |
3) 정보 보안 침해 공격 관련 용어
| 좀비 PC | 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로, C&C서버의 제어를 받아 주로 DDoS 공격 등에 이용됨. |
| C&C 서버 | 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버 |
| 봇넷 | 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태 |
| 웜 | 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높여서 시스템을 다운 시킴 |
| 제로 데이 공격 | 보안 취약점이 발견되었을 때 널리 공표되기 전에 해당 취약점을 통하여 이루어지는 보안 공격 |
| 키로거 공격 | 컴퓨터, 사용자의 키보드 움직임을 탐지해 개인 정보를 빼가는 해킹 공격 |
| 랜섬웨어 | 사요자의 컴퓨터에 잠입해 내부 문서나 파일 등을 열지 못하도록 암호화하는 프로그램 |
| 백도어 | 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로 |
| 트로이 목마 | 정상적인 기능을 하는 프로그래믕로 위장하여 숨어있다가 해당 프로그램이 동작할 때 활성화됨. 자기 복제 능력은 없음. |
12. 서버 인증
1) 보안 서버: 개인 정보를 암호화하여 송수신 할 수 있는 기능을 갖춘 서버
2) 인증: 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
- 지식 기반 인증: 사용자가 기억하고 있는 정보를 기반으로 인증을 수행하는 것
- 유형: 고정된 패스워드, 아이핕
- 소유 기반 인증: 사용자가 소유하고 있는 것을 기반으로 인증을 수행하는 것
- 유형: 신분증, 메모리 카드, 스마트 카드, OTP
- 생체 기반 인증: 사용자의 고유한 생체 정보를 기반으로 인증을 수행하는 것
- 사용자의 고유한 생체 정보를 기반으로 인증을 수행하는 것
13. 보안 아키텍처/보안 프레임워크
1) 보안 아키텍처: 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
2) 보안 프레임워크: 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계
14. 로그 분석
- 로그: 시스템 사용에 대한 모든 내역을 기록해 놓은 것
15. 보안 솔루션
1) 보안 솔루션: 외부로부터의 불법적인 침입을 막는 기술 및 시스템
2) 주요 보안 솔루션
| 방화벽(Firewall) | 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템 |
| 침입 탐지 시스템(IDS) | 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템 |
| 침입 방지 시스템(IPS) | 비정상적인 트래픽을 능동적으로 차단하고 격리함 |
| 데이터 유출 방지(DLP) | 내부 정보의 외부 유출을 방지하는 보안 솔루션 |
| 웹 방화벽(Web Firewall) | 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽 |
| VPN(가상 사설 통신망) | 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션 |
| NAC(Network Access Control) | 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공 |
| ESM(통합 보안 관계 시스템) | 로그 및 보안 이벤트를 통합하여 관리함 |
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 요약 - 12장. 제품 소프트웨어 패키징 (0) | 2022.09.24 |
|---|---|
| 정보처리기사 실기 요약 - 11장. 응용 SW 기초 기술 활용 (1) | 2022.09.23 |
| 정보처리기사 실기 요약 - 7장. 애플리케이션 테스트 관리 (0) | 2022.09.21 |
| 정보처리기사 실기 요약 - 6장 화면 설계 (0) | 2022.09.20 |
| 정보처리기사 실기 요약 - 5장. 인터페이스 구현 (1) | 2022.09.20 |