133. Secure SDLC
Seven Touchpoints
소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
소프트웨어 개발 보안에 있어 충족시켜야 할 보안의 3대 요소
가용성
소프트웨어 개발 보안 요소 증 하나로, 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음
무결성
시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있는 것을 의미하는 보안 요소
134. 세션 통제
세션 통제
- 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미
- 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용
- 세션 통제의 보안 약점에는 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출이 있다.
135. 입력 데이터 검증 및 표현
SQL Injection
- 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안약점
- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있음
크로스사이트 스크립팅
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
- HTML태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 <, >, &등의 문자를 다른 문자로 치환함으로써 방지할 수 있음
메모리 버퍼 오버플로우
- 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 벗어난 위치에서 자료를 읽거나 쓰는 등 메모리를 다루는데 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점
136. 보안 기능
하드코드된 암호화 키
- 암호화된 키가 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 의해 탈취될 수 있음
- 상수 형태의 암호키를 사용하지 않고, 암호화 키 생성 모듈 또는 보안이 보장된 외부 공간을 이용함으로써 방지할 수 있음
부적절한 인가
- 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취할 수 있다.
중요정보 평문 저장 및 전송
- 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있다.
취약한 암호화 알고리즘 사용
- 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요정보를 탈취할 수 있다.
137. 시간 및 상태
TOCTOU
검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
코드 내에 동기화 구문을 사용하여 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지할 수 있음
138. 에러처리
오류 사항 대응 부재
소프트웨어 개발 중 에러처리를 하지 않았거나 미비로 인해 발생하는 보안 약점
에러처리를 하지 않은 오류들로 인해 소프트웨어의 실행이 중단되거나 의도를 벗어난 동작이 유도될 수 있다.
예방하기 위해 오류가 발생할 수 있는 부분에 에러처리 구문을 작성하고, 제어문을 활용하여 오류가 악용되지 않도록 코딩해야 한다.
139. 코드 오류
스택 가드
- 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술
널 포인터 역참조
- 널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생
- 포인터를 이용하기 전에 널 값을 갖고 있는지 검사함으로써 방지할 수 있음
140. 캡슐화
Java에서 사용하는 접근 제어자
- Public, Protected, Default, Private
캡슐화
- 정보 은닉이 필요한 중요한 데이터와 기능을 불완전하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목
141. API 오용
API오용
소프트웨어 구현 단계에서 도메인명에 의존해여 보안 결정을 내리거나 보안상 취약한 API를 사용했을 때 발생하는 보안 약점을 예방하기 위해서 확인하는 보안 점검 항목
142. 암호 알고리즘
MD5
1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로, 각각의 512 비트짜리 입력 메시지 블록에 대해 차례로 동작한다. 각 512 비트 입력 메시지 블록을 처리하고 나면 128비트 스테이트의 값이 변하는 암호화 알고리즘
RSA
- 1978년 MIT의 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘
- 큰 숫자를 소인수분해하기 어렵다는 것에 기반하여 만들어짐
SEED
- 1999년 한국인터넷진흥원에서 개발한 블록 암호화 알고리즘
- 블록 크기는 128비트이며, 키 길이에 따라 128, 256으로 분류됨
- 2000년까지 미국이 자국 기술포호 등을 이유로 해외로 수출되는 암호 기술의 보안 수준을 40비트로 제한하자 국내 보안수준 향상을 위해 개발한 암호화 알고리즘
143. 서비스 공격 유형
스니핑
네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당
LAND Attack
- 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격대상의 IP주소로 하여 공격 대상에게 전송하는 것으로, 이 패킷을 받은 공격대상은 송신 IP주소가 자신이므로 자신에게 응답을 수행하게 되는데, 이러한 패킷이 계속해서 전송될 경우 자신에 대해 무한이 응답하게 하는 공격
- 대비하기 위해 송신 IP주소와 수신 IP주소의 적절성을 검사한다.
스머핑
- IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격방법
- 공격자는 송신주로를 공격 대상지의 IP주소로 위장하고 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 하여 패킷을 전송하면, 라우터의 브로드캐스트 주소로 수신된 패킷은 해당 네트워크 내의 모든 컴퓨터로 전송된다.
- 해당 네트워크 내의 모든 컴퓨터는 수신된 패킷에 대한 응답 메시지를 송신 주소인 공격 대상지로 집중적으로 전송하게 되는데, 이로 인해 공격 대상지는 네트워크 과부하로 인해 정상적인 서비스를 수행할 수 없게 된다.
DDoS 공격과 연관이 있는 공격 방법
- Trin00, TFN, TFN2K, Stacheldraht
랜섬웨어
인터넷 사용자의 컴퓨터에 침입해 내부 문서 파일 등을 암호화해 사용자가 열지 못하게 하는 공격으로, 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 한다.
백도어 탐지 방법에 속하는 것
- 무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사 등
키로거 공격
컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드, 계좌번호, 카드번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
144. 서버 인증
보안 서버
- SSL 인증서 또는 암호화 응용 프로그램을 설치하여 전송 정보를 암호화하여 송수신하는 서버를 가리키는 용어
인증
- 다중 사용자 컴퓨터 시스템 또는 네트워크 시스템에서 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
- 망을 경유해서 컴퓨터에 접속해 오는 사용자가 등록된 사용자인지 확인하는 것과 전송된 메시지가 변조되거나 의미가 그릇되지 않고 송신자가 보낸 그대로의 것인지를 확인하는 것
145. 보안 아키텍처 / 보안 프레임워크
보안 아키텍처
- 정보 시스템의 무결성, 가용성, 기밀성을 확보하기 위한 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
- 보안 수준에 변화가 생겨도 기본 보안 아키텍쳐의 수정 없이 지원이 가능해야 한다.
- 보안 요구사항의 변화나 추가를 수용할 수 있어야 한다.
보안 프레임워크
- 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계이자 골조에 해당
- ISO 27001은 정보보안 관리를 위한 국제 표준으로, 일종의 보안 인증이자 가장 대표적인 보안 프레임워크이다.
146. 로그 분석
로그
- 시스템 사용에 대한 모든 내역을 기록해 놓은 것
- 시스템 침해 사고 발생 시 해킹 흔적이나 공격 기법을 파악할 수 있다
syslog.conf
- 데몬이 로그 관련 파일들의 위치를 파악하는데 이 파일을 사용하며, 사용자는 이 파일에서 로그 관련 파일들의 저장 위치와 파일명을 변경할 수 있다.
147. 보안 솔루션
VPN
- 인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
방화벽
- 기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템
- 내부 네트워크에서 외부로 나가는 패킷은 그대로 통과시키고, 외부에서 내부 네트워크로 들어오는 패킷은 내용을 엄밀히 체크하여 인증된 패킷만 통과시키는 구조
침입 탐지 시스템
- 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템으로, 오용탐지, 이상탐지 등의 기능을 수행하는 보안 솔루션
웹 방화벽
- 일반 방화벽이 탐지하지 못하는 SQL삽입 공격, XSS 등의 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽으로, 웹 관련 공격을 감시하고 공격이 웹 서버에 도달하기 전에 이를 차단해주는 보안 솔루션
ESM
- 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션이다.
- 방화벽, IDS, IPS, 웹 방화벽, VPN등에서 발생한 로그 및 보안 이벤트를 통합하여 관리함으로써 비용 및 자원을 절약할 수 있다.
- 보안 솔루션 간의 상호 연동을 통해 종합적인 보완 관리 체계를 수립할 수 있다.
148. 취약점 분석 평가
취약점 분석 평가 절차
- 취약점 분석 평가 계획 수립
- 취약점 분석 평가 대상 선별
- 취약점 분석 수행
- 취약점 평가 수행