침입탐지시스템
침입탐지시스템(IDS; Intrusion Detection System)은 네트워크에서 백신과 유사한 역할을 하는 것으로, 네트워크를 통한 공격을 탐지하기 위한 시스템이다. 영어 약자로 IDS(아이디에스)라고 한다.
개요[편집]
침입탐지시스템은 시스템과 네트워크 자원으로부터 비정상적인 사용, 오용, 남용 등에 대한 정보를 실시간으로 수집, 분석하여 침입 및 침입시도의 징후를 찾아내고 보고하는 시스템 이다. 기존의 침입차단시스템은 특정 프로토콜 만이 내부에 접근이 가능하도록 허용해 위험을 최소화하므로, 내부 정보를 알고 있는 자의 해킹이나 정당한 서비스 사용 방법을 이용한 공격을 막을 수 없다는 한계를 가진다. 이에 반해 침입탐지시스템은 호스트나 네트워크로부터 수집된 감사(Audit) 데이터를 분석해 침입 여부 판정하므로, 방화벽 을 우회한 공격들에 대해 대처할 수 있도록 해 준다. 침입탐지시스템은 주로 어떤 데이터 소스를 사용해 분석했느냐에 따라 호스트 기반의 침입탐지시스템(이하 H-IDS)와 네트워크 기반의 침입탐지시스템(이하 N-IDS)으로 구분된다. 호스트 기반의 침입탐지시스템은 호스트로부터 생성되고 수집된 감사(Audit)데이터를 침입 여부 판정에 사용하며 호스트를 탐지영역으로 한다. 반면 네트워크 기반의 침입탐지시스템은 네트워크의 패킷 데이터를 수집하여 침입 여부 판정에 사용하며, 침입탐지시스템이 설치된 네트워크영역 전체를 탐지 대상으로 한다.[1]
등장배경[편집]
급격한 초고속 네트워크 보급으로 인터넷이 없는 생활을 상상할 수 없는 지금, 엄청난 속도의 인터넷 확산과 더불어 인터넷을 통한 해킹도 늘어나고 있다. 누구나 인터넷을 통해 해킹 메뉴얼 같은 문서들을 접할 수 있는 시대가 왔다. 이는 유닉스 명령어나 프로그래밍을 모르는 사람들도 이런 문서들을 이용해 해킹을 할 수 있을 정도로 쉽게 구성했다. 그로 인해 문서 메뉴얼만 보고 해킹을 시도하려는 크래커 들이 많아지고 있다. 요즘 이와 같은 크래커 양산으로 인해 하루에도 수십 건 이상의 무차별적인 침입 시도가 이루어지고 있기 때문에, 보안시스템은 선택이 아닌 필수로 여겨지고 있다. 이런 해킹을 막기 위해 국내에서는 보안시스템의 대명사로 이미 널리 알려진 방화벽에 이어, 차세대 보안 시스템으로 침입탐지시스템이 소개되고 널리 보급되었다.[2]
특징[편집]
- 기능
우선 경보기능이 있다. 해커에 의한 네트워크나 시스템의 탐지 그리고 직접적인 공격에 대하여 경보, 이 메일 발송, 또는 SNMP(Simple Network Management Protocol) 트랩(trap) 발송, 기타 다른 방법들을 이용하여 관리자에게 통보한다. 이러한 사전 통보를 통하여 네트워크 관리자와 시스템 관리자는 능동적으로 전산 자원의 손실을 사전에 방어할 수 있게 된다. 침입탐지시스템은 의심스러운 행위를 감지하면 해당 세션을 차단하는 기능을 제공한다. 이는 다른 서비스에 영향을 주지 않고 효과적으로 해당 공격 시도를 선별적으로 막아주는 기능이다. 이 기능은 공격 대상 호스트로 접근 중인 네트워크 세션을 감지한 후 침입탐지 시스템이 그 공격대상 시스템을 가장하여 공격자에게 네트워크 세션을 종료하게끔 한다. 일반적으로 텔넷, FTP와 같은 TCP 세션에 대해서는 TCP 핀(FIN) 또는 RST(reset) 패킷을 공격자에게 전달하여 세션이 끊어지게 하며 SNMP 또는 이름 서비스(Name service)와 같은 UDP 세션은 ICMP(Internet Control Message Protocol)의 메시지를 전달하여 더 이상의 진행을 차단하게 된다. 그리고 셔닝(shunning) 기능이 있다. 이 기능은 침입탐지시스템 자체로 의심스러운 탐지나 공격을 차단하는 것이 아니라 라우터나 방화벽에 공격자나 의심스러운 자의 근원지 아이피(IP) 주소와 서비스 포트에 대해 해당 패킷을 막도록 지시하는 기능이다. 그렇게 함으로써 그다음부터 오는 동일 패킷들은 폐기된다. 이러한 연동 기능은 일반적으로 발생할 수 있는 프로토콜의 오류에 대해서도 민감하게 동작하기 때문에 그 효용성에 대해 조심스럽게 검토하여야 하며 충분하게 네트워크 트래픽에 대한 검토 후 적용되어야 한다. 또한 라우터에 ACL(Access Control List)를 적용하게 되는 경우 라우터의 성능을 저하해 높은 트래픽을 가지고 있는 환경에서는 서비스에 지장을 초래할 수도 있다. 마지막으로는 사용자 프로그램의 실행이다. 일부 침입탐지시스템의 경우 지정된 이벤트에 따라 특정한 사용자 프로그램을 실행할 수 있도록 한다. 공격자로부터 탐지나 공격에 대하여 적절한 대응 방안에 대해 사용자 환경에 맞게 적용할 수 있음으로 유용한 기능이며 필요하다면 해킹 발생에 대하여 시스템의 순서적인 정지를 가능하게 할 수 있다.[3]
- 탐지방법
침입탐지시스템은 시스템의 불법적인 사용이나 오용, 남용 등에 의한 침입을 탐지해내는 것으로, 단일 컴퓨터는 물론이고 네트워크로 연결된 여러 컴퓨터의 보안에 이용할 수 있다. 이러한 침입탐지시스템은 기본적으로 감사 수집, 분석 및 탐지, 침입탐지 대응, 데이터 저장 기능 요소로 구성되며, 감사기록, 시스템 테이블, 네트워크 부하기록 등의 자료로부터 사용자의 행위에 대한 정보를 분석하여 침입을 탐지한다. 침입탐지시스템의 탐지방법은 크게 오용탐지와 비정상행위탐지로 나눌 수 있다. 오용탐지 기법은 알려진 공격에 대한 정보를 구축한 후 사용자나 시스템 또는 프로그램의 현재 행동이 공격패턴과 일치하는지를 검사한다. 공격패턴 정보를 가지고 있으므로 정상행위를 공격행위로 간주하는 오류(false-positive error)가 낮고, 공격패턴만 검색하면 되므로 경제적인 장점이 있지만 알려지지 않은 새로운 공격은 탐지할 수 없다는 단점을 가지고 있다. 이에 비해 비정상행위 탐지 기법은 모델링 된 정상 행위에서 벗어나는 행동을 공격행위로 간주하기 때문에 공격행위를 정상 행위로 간주하는 오류(false-negative)가 낮다. 그러나 정상 행위 모델링을 위해서 다량의 데이터를 분석해야 하므로 구현비용이 높고, 학습되지 않은 정상 행위는 비정상 행위로 간주되므로 정상 행위가 공격행위로 간주되는 오류가 높다.[4]
- 장점
침입탐지시스템은 기존 네트워크의 보안 레벨을 한 층 높여줄 수 있는 시스템이며 외부 또는 내부의 보안 위협에 대해 수동적인 대응에서 보다 적극적이고 능동적인 대응 방안을 마련하도록 한다. 일반적인 네트워크 공격은 오랜 시간의 탐지 행동을 거친 후 보안 홀을 찾아 공격으로 전이하게 된다. 따라서 침입탐지시스템의 도입은 이러한 공격 전 단계의 행위를 감지함으로써 실질적인 네트워크 공격을 무산시킬 수 있는 강력한 무기를 제공하게 된다.[3]
- 단점
침입탐지시스템은 방화벽(Firewall)이라고 알려진 침입차단시스템의 제한적인 시스템 보호 능력의 한계를 극복하기 위해 설계되었다. 이를 위해 알려진 공격에 대한 제한적인 차단(IP, 포트별 접근차단)뿐만 아니라 이미 알려진 공격 시그니처를 감시하면서 수상한 네트워크 활동을 찾는 탐지과정을 수행한다. 탐지과정 중 수상한 네트워크 활동을 찾아냈을 경우 보안관리자에게 경고 메시지를 보내고 침입의 진전 상황을 보고함으로써 좀 더 효과적인 시스템 보호를 위한 자료를 제공한다. 이 같은 일반적인 침입탐지시스템은 탐지 위주의 메커니즘 설계로 인해 몇 가지 한계점을 가지고 있다. 첫째, 오탐지(False positive)와 미탐지(Miss detection)의 문제이다. 침입 행위가 늘어나면서 네트워크 침입탐지시스템이나 호스트 침입탐지시스템이 제한된 탐지 능력으로 공격 시도들에 대해 적절하게 구분해 내기가 어려워졌다. 예를 들면 네트워크 침입탐지시스템 경우 하나하나의 패킷에 대한 분석과 탐지는 수행할 수 있으나 다수의 패킷들을 이용하는 세션 기반의 탐지는 수행하기 어렵다는 것이다. 최근 제품들이 세션 기반 탐지 기능을 강화하기는 했지만 아직까지 오탐지율을 줄이기에는 부족한 형편이다. 또한, 침입탐지시스템은 알려진 공격 시그니처만을 탐지할 수 있는 탐지 능력으로 공격과 비공격을 분별하는 데 한계를 갖게 되고, 알려지지 않은 공격에 대한 형태를 보이고 있지 않으면 분석 및 탐지가 어렵다는 미탐지의 문제가 있다. 이 문제를 해결하기 위해 비정상 탐지 기법을 적용하여 미탐지율을 줄이고자 노력하고 있으나 현재까지는 공격과 비공격을 분별하는 데 한계를 갖고 있고 오히려 오탐지율을 높일 수 있다는 점이 문제이다. 두 번째로 네트워크 침입탐지시스템은 실시간으로 공격을 막을 수 없다는 것이다. 이는 네트워크상에 있는 패킷들을 감지하지만 차단하지 못하기 때문이며 대부분 패킷은 네트워크 침입탐지시스템이 파악하기 전에 이미 지나쳐 공격하고자 한 목적지에 도달하여 결과적으로 네트워크 침입탐지시스템이 판별하기 전에 침입에 성공하게 된다. 현재의 침입탐지시스템은 이 같은 결점들을 보강하기 위해 여러 가지 방법들을 제공하고 있으나, 오탐지 문제, 다량의 로그와 실시간 방어 문제는 쉽게 해결할 수 없는 실정이다.[5]
기술[편집]
- 패턴 매칭 기법
패턴 매칭 기법은 패킷 헤더와 페이로드에 대한 분석을 수행하며, 이미 적용되어 있는 공격 시그니처에 기반하여 해당 패킷이 공격 패킷인지 아닌지의 유무를 판단하게 된다. 침입탐지 기능을 수행하기 위해서는 이와 같은 공격 시그니처들을 하드웨어 메모리상에 적재하고 있어야 한다. 기본적으로 이와 같은 시그니처들은 대부분 페이로드 정보를 가지고 있으며, 이 부분에 대한 패턴 매칭 수행은 대부분의 침입탐지시스템에서의 성능 저하를 유발한다. 따라서, 이에 대한 효율적인 메모리 배치 및 매칭 기법이 요구된다. 패킷 페이로드에 대한 스트링 패턴 매칭 기법은 기본적으로 해시값에 기반한 매칭 기법이며, 일정 단위의 서브 스트링 단위로 스트링 매칭을 수행한다. 각 시그니처 페이로드는 일정 단위의 서브 스트링 단위로 나뉘어 하드웨어 메모리에 적재되며, 메모리에 적재되는 위치는 해당 서브 스트링의 해시값을 키로 사용한다. 이후, 패킷이 유입되면 유입 패킷의 페이로드 부분을 해당 크기의 서브 스트링 단위로 이동해 가면서 해시값을 구하고, 해당 해시값을 키로 하여 저장되어 있는 서브 스트링 정보와 바로 매칭하는 방식으로 스트링 패턴 매칭을 수행한다. 이와 같은 수행은 메모리 블록마다 동시에 수행되며, 이를 통해서 즉각적인 매칭 유무를 알아내게 된다.[6]
- 휴리스틱 분석 기법
휴리스틱 분석 기법을 이용한 고성능 침입탐지기술은 패킷량과 시간 임계치에 기반한 유해 트래픽 감지 기법이다. 일반적으로 서비스 거부 공격이나 포트 스캔 공격과 같은 네트워크상의 이상 유해 트래픽은 다량의 패킷 발생을 특징으로 하기 때문에, 하나의 패킷이 공격 패턴에 일치되더라도 이를 공격으로 판정하기는 어렵다. 따라서, 동일한 패턴의 패킷이 다량으로 유입되었을 때 침입으로 판정하는 것이 보다 높은 정확도를 제공하게 된다. 여기 에서 동일한 패턴에 대한 패킷 분석은 앞서 설명한 패턴 매칭 기법을 동일하게 사용한다. 공격 패턴에 일치하는 패킷이 최초 유입되면 초기 상태에서 패킷량에 대한 카운트가 증가하면서 진행 상태로 전이된다. 여기에서, 공격 패턴에 일치하는 패킷이 계속적으로 유입되어 카운트가 정의된 임계치에 도달하면 최종상태로 전이되어 경보가 발생하게 된다. 그러나, 카운트에만 의존한 상태 전이는 소량의 패킷에 대한 장기간의 카운트에 의한 경보 발생 가능성이 있기 때문에 시간 임계치에 따른 상태 전이가 요구된다. 따라서, 타이머에 의한 시간 임계치를 측정하고, 시간 임계치에 도달한 경우에 진행 상태를 초기 상태로 전이한다. 이와 같은 방식은 서비스 거부 공격 및 포트 스캔 공격과 같은 네트워크상의 이상 유해 트래픽에 대한 탐지 정확도를 높일 수 있도록 도와준다. 서비스 거부 공격과 포트 스캔 공격은 단일 목적지 IP에 대해서 이루어지기 때문에 한정된 하드웨어 메모리상에서 각 목적지 IP를 전부 추적하기는 어렵다. 때문에, 타이머 및 공격 패턴에 일치된 패킷의 빈도에 따라 지속해서 목적지 IP 엔트리를 관리해줄 필요가 있으며, 이를 통해서 제한된 메모리상에서의 효율적인 공격 탐지가 가능하다.[6]
- 세션 관리 기법
지금까지 오탐률을 줄이기 위한 많은 방법들이 연구되어 왔는데, SPI(Serial Programming Interface) 기술은 침입탐지에 세션 상태 정보를 이용하여 오탐률을 상당히 줄일 수 있는 기술이다. SPI 기능이 없는 침입탐지시스템은 엄청난 잘못된 경보가 발생하여 제대로 된 기능을 수행하기가 어렵다. SPI 기능을 제대로 수행하기 위해서는 효율적인 세션 관리 기법이 필수적인데, 기가비트 네트워크 환경에서 패킷 지연이나 손실 없이, 즉 성능저하 없이 100만 세션 이상을 관리 및 추적하여 패턴 매칭과 같은 침입탐지 기법에 필요한 상태정보를 실시간으로 생성해 낼 수 있어야 한다. 실시간 세션 상태 기반 침입탐지 기능을 수행하 기 위해서는 효율적인 세션 테이블 관리 기법이 필수적이다.[6]
종류[편집]
- 무료 오픈소스
- 스노트(Snort) : 침입탐지시스템의 사실상 표준으로 매우 가치 있는 도구다. 이 리눅스 유틸리티는 배포하기 쉽고 침입 시도와 로깅에 대한 네트워크 트래픽을 모니터링하고 침입 시도가 탐지됐을 때 특정 행동을 수행하도록 구성할 수 있다. 가장 널리 배포된 침입탐지시스템 도구 가운데 하나이며, 침입 방지 시스템(Intrusion Prevention System, IPS) 역할도 한다. 스노트는 1998년으로 거슬러 올라간다. 그리고 매우 활동적이고 유익한 커뮤니티가 큰 지원을 제공한다. 여기에는 GUI와 관리 콘솔이 없지만 스노비(Snorby)나 베이스(Base)와 같은 다른 오픈소스 도구를 사용하면 그 차이를 좁힐 수 있다. 스노트가 제공하는 높은 수준의 사용자 정의는 많은 조직에게 좋은 선택지가 된다. 스노트는 수리카타(Suricata)로 대체할 수 있다.[7]
- 브로(Bro) : 트래픽을 일련의 이벤트로 변환하는 분석 엔진으로 의심스러운 시그니처와 비정상적 행위를 탐지할 수 있다. 브로 스크립트(Bro-Script)를 사용하면 정책 엔진에 대한 작업을 만들 수 있으므로 더 많은 작업을 자동화하려는 사람이라면 누구에게나 효용성이 있다. 브로는 의심스러운 파일을 보면 분석을 하여 문제가 되는 것이 발견되면 사용자에게 알리고 기기를 종료할 수 있다. 브로의 단점은 가중치를 최대로 끌어내기 위한 가파른 학습 곡선에 있으며 설정하는 것이 복잡할 수 있다는 것이다. 그러나 커뮤니티가 점점 더 성장해 많은 도움을 제공하고 있다. 브로는 다른 침입 탐지 도구가 놓칠 수 있는 예외와 패턴을 탐지할 수 있다.[7]
- 키스멧(Kismet) : 무선 침입탐지시스템이며 대부분의 기업에서 필수적인 도구이다. 와이파이 및 블루투스를 포함한 무선 프로토콜에 초점을 맞추고 직원이 실수로 쉽게 생성할 수 있는 무단 액세스 포인트를 추적하고 탐지한다. 기본 네트워크 또는 구성 간격을 탐지할 수 있으며, 채널을 도약할 수 있지만 네트워크를 검색하는 데 오랜 시간이 걸리고 최상의 결과를 얻으려면 범위가 제한적이다. 키스멧은 안드로이드와 iOS를 포함한 여러 플랫폼에서 실행되지만 윈도우 지원은 제한적이다. 추가 도구를 위해 통합하기 위한 다양한 API(Application Programming Interface)가 있으며, 작업 효율을 위해 다중 스레드(thread) 패킷 디코딩을 제공한다.[7]
- 오섹(OSSEC) : 호스트 기반 침입탐지시스템이다. 오섹은 가장 완벽한 기능의 호스트 기반 침입탐지시스템이다. 확장성이 뛰어나 윈도우(Windows), 리눅스(Linux), 맥OS(Mac OS), 솔라리스(Solaris) 등 대부분의 주요 운영체제에서 실행된다. 분석을 위해 중앙 서버에 경고 및 로그를 전송하는 클라이언트 서버 아키텍처가 있다. 이는 호스트 시스템이 오프라인 상태로 되거나 완전히 해킹당한 경우에도 경고가 진행된다는 걸 의미한다. 또한 이 아키텍처를 사용하면 여러 에이전트를 중앙에서 편리하게 관리할 수 있으므로 배포가 간편해진다. 작은 인스톨러이기 때문에 한 번 실행하고 나면 시스템 자원에 미치는 영향이 적다. 또한 사용자 정의가 가능하며 실시간 자동적으로 작동하도록 구성할 수 있다. 오섹은 커다란 커뮤니티를 보유하고 있으며, 이를 통해 많은 자원을 활용할 수 있다. 중앙 서버이기 때문에 잠시 멈추는 경우, 삼하인 랩(Samhain Labs)을 호스트 기반의 대체로 고려해 볼 수 있지만, 에이전트로부터 여러 출력 방법을 제공한다.[7]
- 오픈 DLP(Open DLP) : 데이터 유출 방지(Data Loss Prevention, DLP)를 목표로 하고 있다. 데이터베이스나 파일 시스템에서 데이터를 검색하는 동안 데이터를 검사할 수 있다. 오픈 DLP는 조직과 관련된 주요 데이터를 검색해 해당 데이터의 무단 복사 및 전송을 발견한다. 이는 악의적인 내부자 또는 실수를 한 직원이 자신이 해서는 안 되는 데이터를 보내는 행위들을 발견하는 데 유용하다. 윈도우에서는 잘 작동할 뿐만 아니라 리눅스도 지원하며 에이전트를 통해 또는 에이전트리스 도구로 배포할 수 있다.[7]
- 데이터 소스
- 호스트 기반 침입탐지시스템(HIDS) : 단일 호스트에 설치되어 해당 시스템의 감사 데이터를 사용해 침입을 탐지하는 시스템이다. 이방식은 대부분 해당 시스템의 파일들에 대한 무결성을 점검한다. 즉, 그 호스트의 중요한 파일이나 보안 관련 파일들이 수정되었는지 또는 임의의 사용자가 사용자 자신의 보안 수준을 넘는 파일들로 접근하려 시도했는지를 감지한다. 호스트 기반의 침입탐지 시스템은 해당 호스트에 설치되므로 시스템별로 호환성의 문제를 갖고 있으며 시스템 자원에 부하를 줄 수 있는 단점이 있다. 대신 네트워크 환경에 구애받지 않는 장점을 가지고 있다.[3]
- 네트워크 기반 침입탐지시스템(NIDS) : 통상 전 네트워크 세그먼트를 감시하는 전용의 시스템들이다. 대부분의 경우 방화벽 외부 네트워크 세그먼트나 내부의 주요 네트워크 세그먼트에 설치한다. 네트워크 기반의 IDS는 네트워크상에 흘러 다니는 모든 패킷들을 검사하여 알려진 공격들이나 의심스러운 행동에 대하여 분석하게 된다. 호스트 기반 침입탐지시스템과 달리 네트워크 세그먼트를 감시하므로 효과적인 침입탐지 환경을 갖출 수 있고 보호하는 네트워크 서버들의 호환성과 상관없이 기존 서비스의 중단 및 영향 없이 시스템을 구축할 수 있게 한다. 다만 네트워크상의 흘러 다니는 모든 트래픽을 검사하므로 네트워크 트래픽 용량에 영향을 많이 받는 단점이 있다.[3]
네트워크 기반 침입탐지 분야에서 기존 방법들의 문제를 해결하기 위해서는 각종 인공지능 (Artificial Intelligence) 기법들이 도입되어야 한다. 침입탐지 문제는 실시간적이고 자동화된 지식(Knowledge) 생성의 문제로 볼 수 있으므로, 인공지능의 전문가 시스템(Expert System)과 분류(Classification)의 시각으로 접근할 수 있다. 즉, 정상적인 네트워크 패킷과 각종 비정상적인 네트워크 패킷을 수집하고, 이 패킷에 다양한 기계학습(Machine Learning) 알고리즘을 적용하여 지식을 자동으로 생성한다. 그리고 이렇게 학습된 지식을 기반으로 실시간적으로 발생하는 패킷들에 대하여 정상 및 비정상 여부를 판단하는 문제로 볼 수 있다. 기계학습은 그 학습 방법에 따라 크게 감독 학습(Supervised Learning)과 비감독 학습(Unsupervised Learning)으로 나누어 지는데, 감독학습은 해당 자료에 대한 지식을 기반으로 학습하는 방법이며, 비감독 학습은 이러한 지식의 도움 없이 스스로 학습하는 방법이다. 감독 학습 방법에 의해 학습된 지식은 학습 알고리즘의 특성에 따라 다양한 형태(트리(Tree), 인스턴스(Instance), 연결 강도 값(Weight value), IF THEN 규칙(Rule) 등)로 표현된다. 또 비감독 학습에 의해 만들어진 지식은 동일한 특성을 가지고 있는 자료들의 그룹 클러스터 형태로 지식이 표현된다. 네트워크 기반 침입탐지 분야에서는 감독 학습법과 비감독 학습법이 모두 사용되고 있는데, 감독 학습법이 비감독 학습법에 비해 정확도가 높다. 그러나 비감독 학습은 비록 정확도는 낮지만, 새로운 유형의 공격 감지에서는 효과적이라고 알려져 있다. 최근까지의 학계 연구 결과에 따르면, 침입탐지 분야에 시도되었던 학습 알고리즘으로는 감독 학습에서는 결정 트리(Decision Tree), 신경망(Nural Network), IBL(Instance Based Learning) 등이 있으며, 비감독 학습에서는 각종 클러스터링 알고리즘들이 있다.[8]
- 기타
- 애플리케이션 기반 침입탐지시스템 : 호스트 기반 침입방지시스템의 특수 하위 집합으로 소프트웨어 응용 프로그램 내에서 발생하는 이벤트를 분석한다. 애플리케이션 기반 침입방지시스템에서 사용하는 일반적인 정보 소스는 응용 프로그램의 트랜잭션 로그 파일이다. 이것은 애플리케이션과 직접 인터페이스 할 수 있는 기능을 가지고 분석에 포함된 도메인 또는 애플리케이션 지식 엔진을 통해 애플리케이션 기반 침입방지시스템이 의심스러운 행동을 감지할 수 있다. 또한, 사용자 간의 상호작용에서 데이터 및 응용프로그램 문제가 나타날 가능성이 더 높다. 애플리케이션 기반 침입탐지시스템은 승인되지 않은 추척을 허용하는 애플리케이션, 개별 사용자에 대한 활동 등 사용자 간의 상호 작용을 모니터링 할 수 있고 응용 프로그램과 인터페이스, 정보가 사용자에게 제공되는 트랜잭션 끝점, 암호화되지 않은 양식 등 종종 암호화된 상태로 작동 할 수 있다.[9]
평가 방법[편집]
- 고등연구계획국(DARPA)
초기의 침입탐지시스템에 대한 평가는 적은 수의 시스템에 대해 단순한 트래픽을 포함한 은닉이 아닌 적은 수의 공격만으로 이루어졌으나, 1998년 고등연구계획국의 1차 평가에서는 10개의 시스템, 38개의 공격, 충분한 트래픽과 일부의 은닉화된 공격을 통한 평가가 이루어졌다. 2000년 고등연구계획국의 침입탐지평가는 사용자의 편의성과 성능향상에 중점을 두었다. 특히 사용자 편의성을 위해 GUI 환경을 만들어 적용함으로써 사용자로 하여금 공격데이터의 추가와 공격환경의 설정을 가능하게 하였다. 하지만 사용자의 편의성을 향상한 반면 다양한 공격데이터의 수용에서 미흡한 면을 보였다.[4]
- 엠아이티 링컨(MIT Lincoln) 연구소 평가
1998년부터 고등연구계획국의 지원아래, 침입탐지 관련 연구를 위한 방향을 제시하고 기술에 대한 객관적 교정을 위해서 침입탐지 평가를 주제로 과제를 수행하였다. 각 과제에서 침입탐지시스템들은 훈련용 데이터를 통해 정보를 제공받고 검사용 데이터를 통해 성능을 평가받았다. 훈련용 데이터에 삽입된 공격에 대해서는 관련된 모든 정보가 제공되었으며, 검사용 데이터에 포함된 공격에 대해서는 어떠한 정보도 제공되지 않았다. 평가항목은 침입탐지율, 오판율, 자원사용량 등이며, 공격 방법을 유형별로 분류하고 솔라리스, 윈도우, 리눅스 등 운영체제 특성을 고려한 침입패턴을 생성하여 탐지 시험, 탐지 우회(Evasion) 시험을 시행하였다. 시험에 사용되는 정상 데이터는 tcpdump를 사용하여 실제 패킷을 캡쳐한 후 재생을 통하여 telnet, ftp, SMTP, HTTP 등의 데이터를 생성하고 있으며, 침입패턴은 공격 형태를 분류하여 운영체제 특성을 고려한 침입 패턴을 생성하여 Expert라는 도구를 사용하여 침입스크립트를 실행한다. 평가 방법은 평가환경 조건 마련을 위한 정상 데이터 생성 후 주어진 환경에서 분류한 침입탐지 형태를 기반으로 다양한 운영체제별 특성을 고려한 침입패턴 데이터를 실행하여 침입률 및 오판율 등을 시험하고, 효과적인 탐지를 위한 패턴별 평가 값을 구한다.[4]
- 유씨 데이비스(UC Davis) 평가
평가 항목은 침임탐지율, 오관율, 자원사용량 등이며, 각 평가항목별로 테스트 케이스를 제시하여 침입탐지시스템을 실행하여 침입패턴 실행 및 탐지 결과를 측정하는 침입식별 시험, 잠음 또는 CPU 부하 등 스트레스를 가하여 침입탐지 능력을 측정하는 스트레스 시험, 침입차단시스템의 CPU 및 메로리 사용량을 측정하는 자원사용량 시험을 수행한다. 시험 데이터 생선은 텔넷을 수행하여 정상행위 스크립트를 생성하고, 침입탐지 패턴 생성을 위하여 사전에 스크립트로 작성한 침입패턴을 실행하는 솔라리스 기반의 엑스퍼트 도구를 사용하고 있다. 평가방법으로 침입탐지시스템을 수행하고 잡음 또는 CPU 증가 등 해당 시험 조건을 가한 후 침입 스크립트를 실행하여 탐지율, 오판율을 측정하고 잡음 또는 CPU 부하가 가하지 않은 조건에서 수행한 순수 침입패턴 시험과 비교 분석하며, 자원사용량을 분석한다.[4]
- 아이씨에스에이(ICSA) 평가
아이씨에스에이는 미국의 트러스트(Trust)에 소속되어 있는 네트워크 정보보호 제품 성능 및 취약성 시험을 중심으로 평가하는 사설 시험기관으로서 작성된 침입탐지 시험기준을 근거로 평가를 수행한다. 시험 데이터 생성은 패킷 생성기 등을 사용하며, 침입패턴은 업체 컨소시엄(Consortium)을 통해 입수된 침입패턴을 사용하여 10M 및 65Mbps이상에서 100% 탐지함을 시험한다. 또한, 침입 우회 가능성 시험을 위하여 URL 부호화(encoding), IP 분쇄(Fragmentation) 등을 수행하며, 도스(DoS) 공격 및 악성 코드를 이용하여 취약성을 시험한다. 평가 방법은 상용 침입탐지시스템을 설치하여 일정 수준의 환경을 구성한 후 침입패턴을 실행하여 침입탐지율, 오판율, 침입탐지 로그수준을 시험하며, 침입 우회 가능성 및 취약성 시험은 별도로 시행한다.[4]
- 한국정보보호진흥원 평가
기능요구사항과 보증요구사항으로 구성된 평가 기준을 근거로 신청 평가등급(K1-K7)별 요구사항에 의해 평가를 수행하며, 평가항목은 침입탐지기능 식별 및 인증, 무결성, 보안 감사 등 시스템의 보안 기능을 평가하며 개발자가 제시한 환경범위를 고려한 침입탐지율, 오판율, 침입대응, 침입로그 및 침입 우회 가능성 시험 이외에 침입탐지 엔진 설계 내용 등 개발문서를 병행하여 평가한다. 침입탐지 시험에 사용되는 정상 데이터는 패킷 생성기 및 텔넷, ftp 등 실제 데이터를 tcpdump 등 패킷 캡처 프로그램을 이용하여 저장한 후 재생을 하며, 침입패턴은 개발 업체가 제공하는 패턴 및 별도로 수집 또는 제작한 침입패턴을 이용한다. 평가 방법은 설계 등 문서 평가를 수행하여 요구사항, 설계, 구현 간 일치성을 분석하고 개발자가 제시한 조건에 적합한 평가환경 구성 및 평가대상 침입탐지시스템을 설치하여 침입패턴을 생성 후 네트워크 부하가 없을 경우 및 부하가 있을 경우, 침입탐지 여부 및 IP 부분( Fragment) 등 우회 가능성을 평가한다. 1998년부터 2000년까지 고등연구계획국, 유씨 데이비스, 엠아이티 링컨 연구소, 아이씨에스에이, 한국정보보호진흥원에서 이루어진 침입탐지시스템의 평가는 현재의 침입 수준에 초점이 맞추어져 있으므로 특정 공격들에 대한 다양한 환경에서의 적응이 주된 평가 방향이었고, 따라서 어떤 종류의 가상 환경을 만드는가에 대해 연구되어 왔다. 그런데 여기에는 새로운 종류의 침입들이 증가함에 따른 침입패턴과, 침입유형 등의 관리 및 결과에 대한 통계적 분석 기능에 대한 개발이 미흡하기 때문에 이에 대한 보완이 필요하다.[4]
연구 동향[편집]
국내외적으로 최근까지 인공지능을 이용하는 침입탐지 분야에서 괄목할 만한 결과를 거두고 있는 특별한 제품이나 학습 알고리즘은 알려져 있지 않다. 미국의 경우 지난 1998년부터 3 년간 미국 국방성을 중심으로 고등연구계획국 프로젝트라는 보안 관련 연구가 진행된 예가 있다. 이 프로젝트에는 미국 내의 유수의 대학들이 참여하여 각각의 서로 다른 기계학습 알고리즘으로 침입탐지 분야에 적용하는 연구를 수행하였다. 국내의 경우 한국전자통신연구원(ETRI)이나 한국정보보호진흥원(KISA)에서 최근 몇 년간 관련 연구를 진행하고 있으며, 일부 대학에서 기업 및 연구소의 지원을 받아 협력 연구를 진행하고 있다. 국내외 모두를 포함해 만족할 만한 연구 성과는 현재까지 나오지 않고 있다. 일반적으로 침입탐지기술은 국가적 차원의 보안 문제와 밀접한 관련이 있으므로 관련된 기술에 대한 공개를 꺼리는 경향이 있어 기술의 정확한 발전 정도를 정확하게 알기에는 어려운 점이 있다.[8]
관련용어[편집]
- 스니퍼(sniffer) : 네트워크에서 데이터를 수집하는 소프트웨어나 하드웨어를 의미한다. 스노트는 원래 스니퍼 용도로 만든 프로그램이기 때문에 기본적으로 네트워크를 돌아다니는 패킷을 잡아낼 수 있다.[10]
- 전처리기(preprocessor) : 스니퍼에서 캡처한 네트워크 패킷은 전처리기로 이동한다. 스노트의 전처리기는 패킷을 탐지 엔진에서 비교하기 전에 사전 처리 작업을 해 주는 역할을 한다. 스트림 전처리기는 여러 TCP 패킷을 하나로 모음으로써 여러 패킷에 걸친 공격을 잡아내는 역할을 한다. 스노트의 다른 부분과 마찬가지로 전처리기도 플러그-인 방식으로 되어 있다. 플러그-인 방식의 장점은 그때그때 필요한 플러그-인을 추가하거나 삭제하기가 쉽기 때문에 훨씬 유연한 소프트웨어를 운영할 수 있다는데 있다.[10]
- 탐지 엔진 : 스노트의 핵심 모듈로서 패킷과 규칙을 비교하여, 패킷에 해당하는 규칙이 있을 경우 경고를 발생한다. 스노트의 규칙은 스노트에서 가장 중요한 부분으로 스노트에는 나름대로 규칙 문법이 있다. 규칙 문법은 프로토콜의 종류, 콘텐츠, 길이, 헤더, 기타 여러 요소(버퍼 오버플로우를 정의하기 위한 쓰레기 문자 등)를 포함하고 있다. 규칙을 잘 설정하면 스노트를 자신의 환경에 맞게 커스터마이징하는 것이 가능한 것이다.[10]
- 출력 모듈 : 스노트가 발생시킨 경고는 출력 모듈로 전송된다. 출력 모듈도 플러그-인 구조로 되어 있으며, 현재 스노트는 로그 파일, 네트워크 연결, 유닉스 소켓 또는 윈도우 팝업(SMB), 또는 SNMP 트랩, 마이에스큐엘(MySQL)과 포스트그레스(Postgres)와 같은 에스큐엘 데이터베이스로 경고를 보낼 수 있다. 그리고 스노트의 경고를 분석하기 위한 여러 툴이 나와 있다. 그 중 대표적인 툴로 스와치(Swatch), 에이씨아이디(ACID) 등이 있다.[10]
- 아이피 관리시스템 : 네트워크의 보안을 위한 것으로 임의의 사용자가 접속할 수 없게한다. 회사의 네트워크에 최초로 접속하기 원하는 사용자는 네트워크 접속에 사용할 시스템의 맥 주소를 IP 관리 시스템의 관리자에게 알려 주어야 한다. 관리자가 해당 맥 주소를 IP 관리시스템에 등록해야 비로서 해당 네트워크를 사용할 수 있는 권한을 가진다.[11]
- DRM(Digital Right Management) : 문서 보안에 초점을 맞춘 기술로, 문서 열람/편집/인쇄까지의 접근 권한을 설정하여 통제한다. 커널에 삽입된 DRM 모듈은 응용 프로그램이 문서를 작성하여 하드 디스크에 저장할 때 하드 디스크에 저장할 때 이를 암호화하여 기록한다. 응용 프로그램에서 하드 디스크에 암호화되어 저장된 파일을 읽을 때는, 문서를 읽고자 하는 이가 암호화된 문서를 읽을 자격이 있는지를 확인한 후 이를 복호화하여 응용 프로그램에 전달해 준다.[11]
향후 전망[편집]
지금까지의 기계학습을 이용한 네트워크 기반 침입탐지 분야의 연구 결과를 종합해 보면, 모 든 유형의 공격과 사용자의 행동을 모델링(Modeling) 할 수 있는 일반화된 알고리즘은 없는 것으로 알려져 있다. 따라서, 각각의 알고리즘의 통합 및 결합을 통한 상호 보완으로 탐지 의 정확도를 향상 시키는 연구가 필요하다. 한편 현재 사용되고 있는 전문가 기반 오용탐지 기술과 통계 기반 비정상 행위 탐지 기술은 그 발전이 정점에 와 있는 것으로 판단된다. 따 라서 침입탐지 분야에 인공지능 기법의 도입은 기존 시스템들이 해결할 수 없는 문제를 해 결하기 위한 발판을 마련해 줄 수 있으며, 이러한 새로운 접근법은 기존의 방법들을 완전하 게 대치하는 것이 아닌 상호 보완 관계로 발전해 나갈 것으로 예상된다.[8]
각주[편집]
- ↑ 침입탐지시스템(IDS)의 국내 시장 동향 백서 - https://www.kisdi.re.kr/kisdi/common/premium?file=1%7C6642
- ↑ 침입탐지시스템 개론 백서 - https://pdf4pro.com/fullscreen/ids-1-ahnlab-26f37f.html
- ↑ 3.0 3.1 3.2 3.3 Edward 로샤스, 〈침입 탐지 시스템(Intrusion Detection System)〉, 《티스토리》, 2014-04-09
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 침입탐지시스템 평가를 위한 침입패턴 자동 생성에 관한 연구 백서 - https://www.kisdi.re.kr/kisdi/common/premium?file=1%7C6642
- ↑ 정보흥, 김정녀, 손승원, 〈침입방지시스템 기술 현황 및 전망〉, 《아이티파인드》
- ↑ 6.0 6.1 6.2 하드웨어 기반의 고성능 침입탐지 기술 백서 - https://ettrends.etri.re.kr/ettrends/103/0905000757/22-1_051_058.pdf
- ↑ 7.0 7.1 7.2 7.3 7.4 Michelle Drolet, 〈무시하기엔 너무나 좋은 5가지 오픈소스 침입탐지 도구〉, 《아이티월드》, 2018-10-23
- ↑ 8.0 8.1 8.2 (정보보호) 인공지능 기법을 이용한 네트워크기반 침입탐지 기술 동향 백서 - http://weekly.tta.or.kr/weekly/files/2003/105/2003-105-245.pdf
- ↑ 침입방지시스템 백서 - https://people.eecs.ku.edu/~saiedian/Teaching/Fa14/710/Lectures/Readings/08-nist-intrusion-detection.pdf
- ↑ 10.0 10.1 10.2 10.3 강유, 〈IDS Reloaded - 침입 탐지 시스템의 모든 것 I〉, 《한빛출판네트워크》, 2003-08-19
- ↑ 11.0 11.1 〈IT 용어 정보〉, 《티스토리》, 2016-12-01
참고자료[편집]
- 침입탐지시스템(IDS)의 국내 시장 동향 백서 - https://www.kisdi.re.kr/kisdi/common/premium?file=1%7C6642
- 침입탐지시스템 개론 백서 - https://pdf4pro.com/fullscreen/ids-1-ahnlab-26f37f.html
- 침입탐지시스템 평가를 위한 침입패턴 자동 생성에 관한 연구 백서 - https://www.kisdi.re.kr/kisdi/common/premium?file=1%7C6642
- Edward 로샤스, 〈침입 탐지 시스템(Intrusion Detection System)〉, 《티스토리》, 2014-04-09
- 정보흥, 김정녀, 손승원, 〈침입방지시스템 기술 현황 및 전망〉, 《아이티파인드》
- 하드웨어 기반의 고성능 침입탐지 기술 백서 - https://ettrends.etri.re.kr/ettrends/103/0905000757/22-1_051_058.pdf
- Michelle Drolet, 〈무시하기엔 너무나 좋은 5가지 오픈소스 침입탐지 도구〉, 《아이티월드》, 2018-10-23
- (정보보호) 인공지능 기법을 이용한 네트워크기반 침입탐지 기술 동향 백서 - http://weekly.tta.or.kr/weekly/files/2003/105/2003-105-245.pdf
- 침입방지시스템 백서 - https://people.eecs.ku.edu/~saiedian/Teaching/Fa14/710/Lectures/Readings/08-nist-intrusion-detection.pdf
- 강유, 〈IDS Reloaded - 침입 탐지 시스템의 모든 것 I〉, 《한빛출판네트워크》, 2003-08-19
- 〈IT 용어 정보〉, 《티스토리》, 2016-12-01
같이 보기[편집]