IDS (Intrusion Detection System) "침입탐지시스템"
* 방화벽이 내부망 보안을 수행하는데 있어 그 적용의 한계가 드러나 이를 보완 해줄 시스템
* 침입의 패턴 데이터베이스와 Expert System을 사용해 네트워크나 시스템의 사용을 실시간 모니터링 하고 침입을 탐지하는 역할
* IDS는 허가되지 않은 사용자로부터 접속, 정보조작, 오용, 남용 등 컴퓨터 시스템 또는 네트워크 상에서 시도됐거나 진행중인 불법 적인 예방에 실패한 경우 취할 수 있는 방법으로 의심스러운 행위를 감시하여 가능한 침입자를 조기에 발견하고 실시간 처리를 목적으로 하는 시스템
* IDS는 여러개의 컴포넌트들로 구성된다.
센서는 보안 이벤트를 발생시키며, 콘솔은 이벤트를 모니터하고 센서를 제어하거나 경계시키며(alert), 중앙 엔진은 센서에 의해 기록된 이벤트를 DB에 기록하거나, 시스템 규칙을 사용하여 수신된 보안 이벤트로부터 경고를 생성한다. IDS를 분류하는 방법은 센서의 종류와 위치 그리고 엔진이 경고를 만드는데 사용하는 방법론에 따라 여러가지가 있다. 많은 간단한 IDS들은 위의 세개의 컴포넌트들을 하나의 장치 또는 설비로 구현하고 있다.
탐지 영역에 따른 IDS분류
침입탐지를 하기위해 관찰하고 있는 대상에 따라 H-IDS와 N-IDS의 두가지 분류로 나누고 있다.
1. H-IDS : Host(컴퓨터)에서 일어나고 있는 일련의 활동들을 감시하고 침입 발생에 대해 탐지를 하는 IDS
- 개별 호스트의 OS가 제공하는 보안감시 로그, 시스템 로그, 사용자 계정 등의 정보를 이용해서 호스트에 대한 공격을 탐지
- 각 호스트에 상주하는 Agent와 이들을 관리하는 Agent Manager로 구성
- 중요한 시스템 파일이나 실행코드에 대한 무결성 검사 기능이나 시스템의 취약점들을 탐지해 주는 취약성 스캐너(Vulerability Scanner)등과 결합되어 사용
- 특정 시스템과의 OS와 밀접히 결합되어 각종 행위를 분석하므로 정교한 모니터링과 로깅이 가능
- IDS 문제 발생 시 해당 호스트에 영향을 미치며 IDS로 인해 시스템에 부하를 크게 함
2. N-IDS : Network 상에서 일어나는 활동들을 감시하고 침입 시도를 탐지하는 IDS
- 네트워크 기반의 공격을 탐지하여 네트워크 기반 구조를 보호하는 것을 목적으로 함
- 호스트 기반의 IDS처럼 호스트에 대한 공격을 탐지하거나 상세한 기록을 남길 수는 없으며, 네트워크가 분할되어 있는 경우 제 기능을 발휘하지 못하거나 적용 범위가 제한되어 실용성이 없는 경우도 있음
- NIC를 통해 패킷을 수집하여 수동적인 분석을 하기 때문에 기존 네트워크에 영향을 주지 않고 설치가 편리
대부분의 IDS는 Network based IDS다.
N-IDS는 한 네트워크에 모든 패킷을 볼수 있는 DMZ 구간에 설치된다.
그리고 방화벽을 기준으로 안쪽에 설치되는 것이 대부분이다.
H-IDS는 감시 대상이 되는 host(컴퓨터)에 탑재 되며, N-IDS는 지나가는 트래픽들을 볼 수 있는 감시 대상이 되는 네트워크에 설치
침입 모델에 따른 분류
1. 비정상적인 침입탐지 기법
감시되는 정보 시스템의 일반적인 행뒤들에 대한 프로파일을 생성하고 이로부터 벗어나는 생위를 분석
- 통계적인 자료 근거 : 통계적으로 처리된 가거의 경험 자료를 기준으로 특별한 행위 또는 유사한 사건으로 이탈을 탐지
- 특징 추출에 의존 : 경험적인 침입탐지 측정 도구와 침입의 예측 및 분류 가능한 침입도구의 집합으로 구성된 침입 탐지
- 예측 가능한 패턴 생성 : 이벤트 간의 상호관계와 순서를 설명하고 각각의 이벤트에 시간을 부여하여 기존에 설정된 침입 시나리오와 침입 탐지
2. 오용(misuse) 침입 탐지 기법
과거의 침입 행위들로 부터 얻어진 지식으로부터 이와 유사하거나 동일한 행위를 분석하는 기법
방법이 간단하고 효율적이어서 널리 이용되지만 조금만 변형된 공격에도 signature가 달라 탐지하지 못함
- 조건부 확률 이용 : 특정 이벤트가 침입일 확률을 조건부 확률을 이용하여 계산하는 방법
- 전문가 시스템 : 공격 패턴을 탐지하고 이미 설정된 규칙에 따라 처리하는 방법
- 상태전이 분석 : 공격패턴을 상태전이의 순서로 표현하며, 초기의 상태에서 최종 상태로의 전이 과정. 즉, 침입과정을 규칙 기반으로 탐지하는 방법
- 키스트로크 관찰 방법 : 사용자의 키스트로크를 감시하여 공격패턴을 나타내는 특정 키스트로크 순서를 패턴화 하여 침입을 방지
- 모델에 근거한 방법 : 공격 패턴을 DB화 하고, 특정 공격패턴에 대해 DB를 참조하여 침입 여부를 탐지
IDS의 장점
1. 해킹 방법을 기반으로 해커의 침입을 감지 하므로 신기술의 적용이 빠름.
- 외부로부터의 공격뿐만 아니라 내부자에 의한 해킹도 차단할 수 있으며, 이에따라 기존 방화벽이 지원하지 못하는 ID도용을 통한 내부 공격자의 해킹도 차단
2. 접속하는 IP에 상관없이 침입을 차단할 수 있음
- 기존 방화벽은 인증된 IP로의 공격은 막지 못하므로 해커들이 인증된 IP로 공격이 성공하면 방화벽이 무용지물이 되었으나 IDS는 IP에 상관없이 모든 패킷에 대한 검사를 수행하므로 더욱 안전
3. 시스템 침입에 즉시 대응이 가능
- 해킹 사실이 발견 되었을 때 해킹에 관한 정보를 휴대전화, 무선호출기, 전자우편 등으로 즉시 전송,
네트워크 관리자가 부재시에도 시스템 보안을 유지할 수 있으며, 탐지에 그치지 않고 침투경로까지 추적해 해커를 적발하며, 데이터를 안전한 곳으로 전환시켜 놓는 등 방화벽의 수동 적인 대처와는 달리 적극적인 보안 기능을 갖출 수 있음.
H-IDS와 N-IDS의 장단점 비교
H-IDS의 장점
1. 정확한 탐지가 가능.
- 실제로 일어난 이벤트를 포함하는 로그를 사용하므로 보다 정확하다.
2. 시스템 이벤트 감시
- 사용자와 파일의 접근활동, 파일의 허용의 변화, 새로운 실행 파일을 설치하려는 시도 그리고 특정한 서비스의 접근을 감시
- 공격자가 어떤 명령을 실행시켰는지, 어떤 파일을 open 시켰는지, 어떤 system call을 실행시켰는지, 어떤 위험한 명령어를 실행시켰는지 정확히 관리자에게 통보할 수 있다.
3. N-IDS이 놓치는 공격 탐지
- 중요한 서버의 터미널로부터의 공격
- 시스템 내부에서 공격
4. 암호화 / 스위치 환경에서 적합
- H-IDS는 중요한 호스트에 직접 탑재되므로 스위치된 환경의 Network와 무관
- N-IDS는 암호화 통신을 하는 구간에서는 많은 제한을 받을 수 있다.
5. 추가적인 하드웨어 불필요
- 별도의 시스템이나 네트워크 장비가 추가 요구되지 않음.
H-IDS의 단점
1. 특정 기기 또는 기관의 정확한 시스템 구성을 알아야 함
2. 툴의 기능 향상이나 다른 시스템에 적용이 어렵다.
3. 네트워크와 관련된 행위는 분석할 수 없다.
4. 감시자료의 보관 및 처리를 위해 디스크, 처리시간 등의 자원이 필요하다.
5. 운영체제가 취약할 경우 툴의 무결성 모장이 어렵다.
6. 특정 기기에 의존하므로 설치 비용이 많이 든다.
7. 다른 방법에 비하여 유지관리 비용이 많이 든다.
N-IDS의 장점
1. 저렴한 투자비용
- Network traffic을 감시할 수 있는 전략적인 위치에만 설치(효과적인 침입탐지 가능)
- 다양한 호스트를 관리하는 SW필요 없음
2. H-IDS이 놓치는 공격 탐지
- H-IDS는 모든 패킷의 헤더를 볼 수 없으므로 모든 종류의 공격을 탐지할 수 없다.(TearDrop, IP 기반의 DOS공격)
- Payload를 검사 함으로써 특별한 공격에 사용되는 Command 와 Syntax를 찾아냄
3. 공격 흔적 제거의 난이
- Network traffic을 이용하므로 공격자는 흔적을 제거할 수 없다.
- Capture 된 데이터는 공격의 방법 뿐 아니라 사후 조사에 사용될 많은 정보를 포함하고 있다.
4. 실시간 탐지와 대응
- TCP Dos 동격을 당하는 시스템이 감지되면 곧바로 TCP reset으로 공격을 중지
- H-IDS는 공격을 인식 못하기 때문에 공격 행위가 실행된 후에 조치를 취한다.
5. 실패한 공격의 탐지
- N-IDS를 방화벽 앞단에 설치하면 방화벽이 차단하는 공격도 탐지할 수 있다.
6. 운영체제 독립적
N-IDS 단점
1. 특정 기기 내에서 이루어지는 명령어에 대한 탐지는 불가
2. 통신 내용이 암호화된 경우 침입 탐지 불가
3. 랜 스위치 등으로 네트웍 전체의 내용을 감시하는 것이 어려움
4. 현재의 네트워크 기반 IDS는 초고속 네트워크 검사는 어려움
5. 특정 시스템에 대한 정보가 부족하므로 Host-based 도구보다 부정확한 결과를 얻을 수 있다.
6 네트워크 동작과 성능에 영향을 줄 수 있다.(DoS등의 점검시)
7. 침입을 위한 사전 공격 도구로 사용될 수도 있다.
침입탐지 시스템 수행과정
①정보수집 -> ②정보가공 및 축약 -> ③침입분석 및 탐지 -> ④보고 및 조치
① 정보수집
- 호스트 로그 정보 수집 : 커널 로그, Syslog, 계정 로그 등
- 네트워크 패킷 정보 수집: 패킷 분석, 세션 구성 분석
② 정보가공 및 축약(Data Reduction)
- 수집된 raw 데이터로부터 의미 있는 정보로 가공
ㅇ 실시간 침입 판정을 위한 최소한의 정보로 축약
③침입분석 및 탐지(Analysis & Detection)
- 침입탐지 분류에 따라 분석 및 탐지
ㅇ 비정상행위(Anomaly), 오용(Misuse)
- 침입탐지의 정확도 기술 요구
ㅇ False-negative 최소화: 경고 대상에 대한 탐지 실패
ㅇ False-positive최소화: 경고 대상이 아닌 것을 탐지 보고
④ 보고 및 조치(Report & Response)
- 침입 발견 시 즉각 보고
ㅇ 시스템 console
ㅇ 전자우편
ㅇ 이동통신장비, SMS
ㅇ SNMP trap 발생
- 침입 진행 상황 보고
- 침입 재연 기능
-적극적인 조치
ㅇ 침입 관련 계정 로그아웃
ㅇ 시스템 종료
ㅇ 침입 관련 네트워크 세션 종료
ㅇ 라우터와 방화벽 재구성
ㅇ 네트워크 종료
'CS > Secure' 카테고리의 다른 글
[Clean Coding] JUnit (0) | 2016.04.29 |
---|---|
[Clean Coding] 주의깊은 코드 SOLID (0) | 2016.04.29 |
[Secure Coding] 비밀번호 암호화 하기 (4) | 2016.04.28 |
[Secure Coding] 해킹방지 코드짜기 (0) | 2016.04.27 |
[Secure Coding] Paros 64비트에서 실행 (4) | 2016.04.27 |