1. Secure SDLC
Secure SDLC
•
보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
◦
소프트웨어 개발 생명주기 (SDLC)
▪
소프트웨어 개발 방법론의 바탕이 되는 것
▪
소프트웨어를 개발하기 위해 정의하고, 운용, 유지보수 등의 전 과정을 각 단계별로 나눈 것
•
요구사항 분석, 설계, 구현, 유지보수 등 SDLC 전체 단계에 걸쳐 수행되어야 할 보안 활동을 제시한다.
•
Secure SDLC의 대표적인 방법론
SDLC 단계별 보안 활동
소프트웨어 개발 보안 요소
•
기밀성 (Confidentiality)
◦
시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨
◦
정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음
•
무결성 (Integrity)
◦
시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음
•
가용성 (Availability)
◦
인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음
•
인증 (Authorization)
◦
시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위
◦
대표적인 방법 : 패스워드, 인증용 카드, 지문 검사 등
•
부인 방지 (NonRepudiation)
◦
데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함
시큐어 코딩 (Secure Coding)
•
구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하여 코딩하는 것
•
보안 취약점을 사전 대응하여 안정성과 신뢰성을 확보한다.
•
보안 정책을 바탕으로 시큐어 코딩 가이드를 작성하고, 개발 참여자에게는 시큐어 코딩 교육을 실시한다.
2. 세션 통제
세션 통제
•
세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
•
소프트웨어 개발 과정 중, 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용
•
세션 통제의 보안 약점
•
세션ID : 서버가 클라이언트들을 구분하기 위해 부여하는 키(Key)로, 클라이언트가 서버에 요청을 보낼 때마다 세션ID를 통해 인증이 수행된다.
세션 설계 시 고려 사항
•
시스템의 모든 페이지에 로그아웃이 가능하도록 UI를 구성한다.
•
로그아웃 요청 시, 할당된 세션이 완전히 제거되도록 한다.
•
세션 타임아웃은 중요도가 높으면 2~5분, 낮으면 15~30분으로 설정한다.
•
이전 세션이 종료되지 않으면, 새 세션이 생성되지 못하도록 설계한다.
•
중복 로그인을 허용하지 않은 경우, 클라이언트의 중복 접근에 대한 세션 관리 정책을 수립한다.
세션 ID의 관리 방법
•
세션ID는 안전한 서버에서 최소 128비트의 길이로 생성한다.
•
세션ID의 예측이 불가능하도록 안전한 난수 알고리즘을 적용한다.
•
세션ID가 노출되지 않도록 URL Rewrite 기능을 사용하지 않는 방향으로 설계한다.
◦
URL Rewrite : 쿠키를 사용할 수 없는 환경에서 세션ID 전달을 위해 URL에 세션 ID를 포함시키는 것
•
로그인 시 로그인 전의 세션ID를 삭제하고 재할당한다.
•
장기간 접속하고 있는 세션ID는 주기적으로 재할당되도록 설계한다.
3. 입력 데이터 검증 및 표현
•
입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
•
입력 데이터 검증 및 표현의 보안 약점
SQL 삽입(Injection)
•
웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점
•
동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있음
경로 조작 및 자원 삽입
•
데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점
•
사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지할 수 있음
크로스사이트 스크립팅(XSS)
•
웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
•
HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 ‘<’, ‘>’, ‘&’ 등의 문자를 다른 문자로 치환함으로써 방지할 수 있음
운영체제 명령어 삽입
•
외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
•
웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지학 수 있음
위험한 형식 파일 업로드
•
악의적인 명령어가 포함된 스크립트 파일을 업로드 함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점
•
업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지할 수 있음
신뢰되지 않는 URL 주소로 자동접속 연결
•
입력 값으로 사이트 주소를 받는 경우, 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
•
연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있음
메모리 버퍼 오버플로
•
연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 취약점
•
메모리 버퍼를 사용할 경우, 적절한 버퍼의 크기를 설정하고, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으로써 방지할 수 있음
4. 보안 기능
보안 기능
•
소프트웨어 개발의 구현 단계에서 코딩하는 기능인 인증, 접근 제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검
•
보안 기능의 보안 약점
5. 시간 및 상태
시간 및 상태
•
동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하는 시스템이 원활하게 동작되도록 하기 위한 보안 점검 항목들
•
시간 및 상태의 보안 약점
6. 에러 처리
에러 처리
•
소프트웨어 실행 중에 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목들
◦
에러 처리
▪
에러는 오류의 영문명이며, 예외처리와 에러처리는 동일한 의미로 사용된다.
•
에러 처리의 보안 약점
7. 코드 오류
코드 오류
•
소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목들
•
코드 오류의 보안 약점
스택 가드 (Stack Guard)
•
널 포인터 역참조와 같이 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나
•
메모리 상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장한 후, 그 값이 변경되었을 경우, 오버플로우 상태로 판단하여 프로그램 실행을 중단함으로써 잘못된 복귀 주소의 호출을 막는다.
8. 캡슐화
캡슐화 (Encapsulation)
•
정보 은닉이 필요한 중요한 데이터와 기능을 불완전하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들
•
캡슐화의 보안 약점
접근 제어자
•
프로그래밍 언어에서 특정 개체를 선언할 때, 외부로부터의 접근을 제한하기 위해 사용되는 예약어
9. API 오용
API 오용
•
소프트웨어 구현 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 점검 항목들
•
API 오용의 보안 약점
•
DNS (Domain Name System)
◦
숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것을 도메인 네임이라고 하며, 이러한 도메인 네임을 IP 주소로 바꾸어주는 역할을 하는 것
10. 암호 알고리즘
암호 알고리즘
•
패스워드, 주민번호, 은행 계좌와 같은 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법
•
암호 방식 분류
개인기 암호화 (Private Key Encryption) 기법
•
동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법
•
대칭 암호 기법, 단일키 암호화 기법
•
암호화/복호화 속도가 빠르지만, 관리해야 할 키의 수가 많다.
•
종류
◦
스트림 암호화 기법
▪
평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식
▪
LFSR, RC4
◦
블록 암호화 방식
▪
한 번에 하나의 데이터 블록을 암호화하는 방식
▪
DES, SEED, AES, ARIA
공개키 암호화 (Public Key Encryption) 기법
•
데이터를 암호화할 때 사용하는 공개키는 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 암호화 기법
•
비대칭 암호 기법
•
관리해야 할 키의 수가 적지만, 암호화/복호화 속도가 느리다.
•
RSA (Rivest Shamir Adleman) 기법
양방향 알고리즘의 종류
•
SEED
◦
1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
◦
블록 크기는 128비트이며, 키 길이에 따라 128, 256 으로 분류된다.
•
ARIA (Academy, Research, Institute, Agency)
◦
2004년 국가정보원과 산학연합회가 개발한 블록 암호화 알고리즘
•
DES (Data Encryption Standard)
◦
1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘
◦
DES를 3번 적용하여 보안을 더욱 강화한 3DES도 있다.
•
AES (Advanced Encryption Standard)
◦
2001년 미국 표준 기술 연구소 (NIST)에서 발표한 개인키 암호화 알고리즘
◦
DES의 한계를 느낀 NIST에서 공모한 후 발표
•
RSA (Rivest Shamir Adleman)
◦
1978년 MIT의 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘
◦
큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐
해시 (Hash)
•
임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
•
해시 알고리즘을 해시 함수라고 부르며, 해심 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부른다.
•
데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보 보호의 다양한 분야에서 활용된다.
•
해시 함수의 종류
11. 서비스 공격 유형
서비스 거부(DoS; Denial of Service) 공격
•
표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이 되는 서버의 정상적인 기능을 방해하는 것
•
주요 서비스 거부 공격의 유형
◦
Ping of Death
◦
SMURFING
◦
SYN Flooding
◦
TearDrop
◦
LAND Attack
◦
DDOS 공격
Ping of Death (죽음의 핑)
•
Ping 명령을 전송할 때, 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법
•
공격에 사용되는 큰 패킷은 수백 개의 패킷으로 분할되어 전송되는데, 공격 대상은 분할된 대량의 패킷을 수신함으로써 분할되어 전송된 패킷을 재조립하는 부담과 분할되어 전송된 각각의 패킷들의 ICMP Ping 메시지에 대한 응답을 처리하느라 시스템이 다운되게 된다.
•
ICMP Ping 메시지
◦
특정 IP 퍀시이 전송될 때, 해당 IP의 노드가 현재 운영 중인지 확인을 요청하는 메시지로, 이를 수신한 노드가 운영 중이라면 Ping 메시지에 대한 응답으로 에코 응답 메시지를 전송한다.
SMURFING( 스머핑)
•
IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
•
공격자는 송신 주소를 공격 대상지의 IP 주소로 위장하고 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 하여 패킷을 전송하면, 라우터의 브로드캐스트 주소로 수신된 패킷은 해당 네트워크 내의 모든 컴퓨터로 전송된다.
•
해당 네트워크 내의 모든 컴퓨터는 수신된 패킷에 대한 응답 메시지를 송신 주소인 공격 대상지로 집중적으로 전송하게 되는데, 이로 인해 공격 대상지는 네트워크 과부하로 인해 정상적인 서비스를 수행할 수 없게 된다.
•
SMURFING 공격을 무력화하는 방법 중 하나는, 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정해 놓는 것이다.
SYN Flooding
•
TCP는 신뢰성 있는 전송을 위해 3-Way-Handshake를 거친 후에 데이터를 전송하게 되는데, SYN Flooding은 공격자가 가상의 클아이언트로 위장하여 3-Way-Handshake 과정을 의도적으로 중단시키으로써 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법이다.
◦
3-Way-Handshake
▪
신뢰성 있는 연결을 위해 송신지와 수신지 간의 통신에 앞서 3단계에 걸친 확인 작업을 수행한 후, 통신을 수행한다.
•
1단계 : 송신지에서 수신지로 ‘SYN’ 패킷을 전송
•
2단계 : 수신지에서 송신지로 ‘SYN + ACK’ 패킷을 전송
•
3단계 : 송신지에서 수신지로 ‘ACK’ 패킷을 전송
•
SYN Flooding에 대비하기 위해 수신지의 ‘SYN’ 수신 대기 시간을 줄이거나 침입 차단 시스템을 활용한다.
TearDrop
•
데이터의 송수신 과정에서 패킷의 크기가 커 여러 개로 분할되어, 전송 때 분할 순서를 알 수 있도록 Fragment Offset 값을 함께 전송하는데, TearDrop은 이 Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법이다.
•
TearDrop에 대비하기 위해 Fragment Offset이 잘못된 경우, 해당 패킷을 폐기하도록 설정한다.
LAND Attack (Local Area Network Denial Attack)
•
패킷을 전송할 때, 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 공격 대상에게 전송하는 것으로, 이 패킷을 받은 공격 대상은 송신 IP 주소가 자신이므로 자신에게 응답을 수행하게 되는데, 이러한 패킷이 계쏙해서 전송될 경우, 자신에 대해 무한히 응답하게 하는 공격이다.
•
LAND Attack에 대비하기 위해, 송신 IP 주소와 수신 IP 주소의 적절성을 검사한다.
D DoS (분산 서비스 거부) 공격
•
여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것
•
네트워크에서 취약점이 있는 호스트들을 탐색한 후, 이들 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트(Agent)로 만든 후, DDoS 공격에 이용한다.
•
분산 서비스 공격용 툴 (Daemon)
네트워크 침해 공격 관련 용어
•
스미싱 (Smishing)
◦
문자 메시지를 이용해 사용자의 개인 신용 정보를 빼내는 수법
◦
초기에는 문자 메시지를 이용해 개인 비밀 정보나 소액 결제를 유도하는 형태로 시작되었음
◦
현재는 각종 행사 안내, 경품 안내 등의 문자 메시지에 링크를 걸어 안드로이드 앱 설치 파일인 apk 파일을 설치하도록 유도하여 사용자 정보를 빼가는 수법으로 발전하고 있음
•
스피어 피싱 (Spear Phishing)
◦
사회 공학의 한 기법으로, 특정 대상을 선정한 후, 그 대상에게 일반적인 이메일을 위장한 메일을 지속적으로 발송하여, 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도해 사용자의 개인 정보를 탈취함
•
APT (Advanced Persistent Threats, 지능형 지속 위험)
◦
다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤, 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
◦
공격 방법
▪
내부자에게 악성코드가 포함된 이메일을 오랜 기간 동안 꾸준히 발송해 한 번이라도 클릭되길 기다리는 혀애
▪
스턱스넷(Stuxnet)과 같이 악성코드가 담긴 이동식 디스크(USB) 등으로 전파하는 형태
▪
악성 코드에 감염된 P2P 사이트에 접속하면 악성코드에 감염되는 형태 등
•
무작위 대입 공격 (Brute Force Attack)
◦
암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
•
큐싱 (Qshing)
◦
QR 코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융사기 기법의 하나
◦
QR 코드나 개인 정보 및 금융 정보를 낚는다는 의미의 합성 신조어
•
SQL 삽입(Injection) 공격
◦
전문 스캐너 프로그램 혹은 봇넷 등을 이용해 웹사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 데이터베이스 등의 데이터를 조작하는 일련의 공격 방식
•
크로스 사이트 스크립팅 (XSS; Cross Site Scripting)
◦
네트워크를 통한 컴퓨터 보안 공격의 하나로, 웹 페이지의 내용을 사용자 브라우저에 표현하기 위해 사용되는 스크립트의 취약점을 악용한 해킹 기법
◦
사용자가 특정 게시물이나 이메일의 링크를 클릭하면 악성 스크립트가 실행되어 페이지가 깨지거나, 사용자의 컴퓨터에 있는 로그인 정보나 개인 정보, 내부 자료 등이 해커에게 전달된다.
•
스니핑 (Sniffing)
◦
네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당
정보 보안 침해 공격 관련 용어
•
좀비 PC
◦
악성 코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터
◦
C&C(Command & Control) 서버의 제어를 받아 주로 DDoS 공격 등에 이용됨
•
C&C 서버
◦
해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성 코드를 제어하기 위한 용도로 사용하는 서버
•
봇넷 (Botnet)
◦
악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
•
웜 (Worm)
◦
네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써, 결국 시스템을 다운시키는 바이러스의 일종
◦
분산 서비스 공격, 버퍼 오버플로 공격, 슬래머 등이 웜 공격의 한 형태
•
제로 데이 공격
◦
보안 취약점이 발견되었을 때, 발견된 취약점의 존재 자체가 널리 공표되기 전에 해당 취약점을 통하여 이루어지는 보안 공격
◦
공격의 신속성을 의미함
•
키로거 공격 (Key Logger Attack)
◦
컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드, 계좌번호, 카드번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
•
랜섬웨어 (Ransomware)
◦
인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램
◦
암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함
•
백도어 (BackDoor, Trap Door)
◦
시스템 설계자가 서비스 기술자나 유지 보수 프로그램 작성자 (Programmer)의 액세스 편의를 위해 시스템 보안을 제거하여 만들어 놓은 비밀 통로로, 컴퓨터 범죄에 악용되기도 함
◦
백도어 탐지 방법 : 무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사 등
•
트로이 목마 (Trojan Horse)
◦
정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것
◦
자기 복제 능력은 없음
12. 서버 인증
보안 서버
•
인터넷을 통해 개인정보를 암호화하여 송수신할 수 있는 기능을 갖춘 서버
•
보안 서버의 기능
◦
서버에 SSL(Secure Socket Layer) 인증서를 설치하여 전송 정보를 암호화하여 송수신하는 기능
◦
서버에 암호화 응용 프로그램을 설치하고 전송 정보를 암호화하여 송수신하는 기능
인증 (Authentication)
•
다중 사용자 컴퓨터 시스템이나 네트워크 시스템에서 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
•
네트워크를 통해 컴퓨터에 접속하는 사용자의 등록 여부를 확인하는 것과, 전송된 메시지의 위변조 여부를 확인하는 것이 있다.
•
유형
◦
지식 기반 인증 (Something You Know)
◦
소유 기반 인증 (Something You Have)
◦
생체 기반 인증 (Something You Are)
◦
위치 기반 인증 (Somewhere You Are)
지식 기반 인증 (Something You Know)
•
사용자가 기억하고 있는 정보를 기반으로 인증을 수행하는 것
•
사용자의 기억을 기반으로 하므로 비용 저렴하다
•
사용자가 인증 정보를 기억하지 못하면 본인이라도 인증 받지 못한다.
소유 기반 인증 (Something You Have)
•
사용자의 고유한 생체 정보를 기반으로 인증을 수행하는 것
•
사용이 쉽고, 도난의 위험도 적으며 위조가 어렵다.
•
생체 인증 대상 : 지문, 홍채/망막, 얼굴, 음성, 정맥 등
기타 인증 방법
13. 보안 아키텍처 / 보안 프레임워크
보안 아키텍처 (Security Architecture)
•
정보 시스템의 무결성(Integrity), 가용성(Availability), 기밀성(Confidentiality)을 확보하기 위해 보안 요소 및 보안 체계를 식별하고, 이들 간의 관계를 정의한 구조
•
보안 아키텍처를 통해 관리적, 물리적, 기술적 보안 개념의 수립, 보안 관리 능력의 향상, 일관된 보안 수준의 유지를 기대할 수 있다.
•
보안 수준에 변화가 생겨도 기본 보안 아키텍처의 수정 없이 지원이 가능해야 한다.
•
보안 요구사항의 변화나 추가를 수용할 수 있어야 한다.
보안 프레임워크 (Security Framework)
•
안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계
•
ISO 27001
◦
정보 보안 관리를 위한 국제 표준으로
◦
일종의 보안 인증이자 가장 대표적인 보안 프레임워크
14. 로그 분석
로그 (log)
•
시스템 사용에 대한 모든 내역을 기록해 놓은 것
•
로그 정보를 이용하면 시스템 침해 사고 발생 시, 해킹 흔적이나 공격 기법을 파악할 수 있다.
•
로그 정보를 정기적으로 분석하면 시스템에 대한 침입 흔적이나 취약점을 확인할 수 있다.
리눅스 로그
•
리눅스에서는 시스템의 모든 로그를 /var/log 디렉터리에서 기록하고 관리한다.
•
로그 파일을 관리하는 syslogd 데몬은 /etc.syslog.conf 파일을 읽어 로그 관련 파일들의 위치를 파악한 후 로그 작업을 시작한다.
•
syslog.conf 파일을 수정하여 로그 관련 파일들의 저장 위치와 파일명을 변경할 수 있다.
리눅스의 주요 로그 파일
윈도우 로그
•
윈도우 시스템에서는 이벤트 로그 형식으로 시스템의 로그를 관리한다.
•
윈도우의 이벤트 뷰어를 이용하여 이벤트 로그를 확인할 수 있다.
윈도우 이벤트 뷰어의 로그
15. 보안 솔루션
보안 솔루션
•
접근 통제, 침입 차단 및 탐지 등을 수행하여 외부로부터의 불법적인 침입을 막는 기술 및 시스템
•
주요 보안 솔루션
◦
방화벽
◦
침입 탐지 시스템 (IDS)
◦
칩입 방지 시스템 (IPS)
◦
데이터 유출 방지 (DLP)
◦
웹 방화벽
◦
VPN
◦
NAC
◦
ESM
방화멱 (Firewall)
•
기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 칩입 차단 시스템
•
내부 네트워크에서 외부로 나가는 패킷은 그대로 통과시키고, 외부에서 내부로 들어오는 패킷은 내용을 엄밀히 체크하여 인증된 패킷만 통과시키는 구조이다.
침입 탐지 시스템 (IDS, Intrusion Detection System)
•
컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
•
오용 탐지 (Misuse Detection)
◦
미리 입력해 둔 공격 패턴이 감지되면 이를 알려준다.
•
이상 탐지 (Anomaly Detection)
◦
평균적인 시스템의 상태를 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려준다.
침입 방지 시스템 (IPS, Intrusion Prevention System)
•
비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어 조치를 취하는 보안 솔루션
•
방화벽과 침입 탐지 시스템(IDS)를 결합한 것이다.
•
침입 탐지 기능으로 패킷을 하나씩 검사한 후, 비정상적인 패킷이 탐지되면 방화벽 기능으로 해당 패킷을 차단한다.
데이터 유출 방지 (DLP, Data Leakage/Loss Prevention)
•
내부 정보의 외부 유출을 방지하는 보안 솔루션
•
사내 직원이 사용하는 PC와 네트워크상의 모든 정보를 검색하고 메일, 메신저, 웹하드, 네트워크 프린터 등의 사용자 행위를 탐지, 통제해 외부로의 유출을 사전에 막는다.
웹 방화멱 (Web Firewall)
•
일반 방화벽이 탐지하지 못하는 SQL 삽입 공격, Cross-Site Scription(XSS) 등의 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
•
웹 관련 공격을 감시하고 공격이 웹 서버에 도달하기 전에 이를 차단해준다.
VPN (Virtual Private Network, 가설 사설 통신망)
•
인터넷 등 통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
•
암호환된 규격을 통해 인터넷 망을 전용선의 사설망을 구축한 것처럼 이용하므로 비용 부담을 줄일 수 있다.
•
원격지의 지사, 영업소, 이동 근무자가 지역적인 제한 없이 업무를 수행할 수 있다.
NAC (Network Access Control)
•
네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후, 일괄된 보안 관리 기능을 제공하는 보안 솔루션
•
내부 PC의 소프트웨어 사용 현황을 관리하여 불법적인 소프트웨어 설치를 방지한다.
ESM (Enterprise Security Management)
•
다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
•
방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 로그 보안 이벤트를 합하여 관리함으로써 비용 및 자원을 절약할 수 있다.
•
보안 솔루션 간의 상호 연동을 통해 종합적인 보안 관리 체계를 수립할 수 있다.