침입 탐지 시스템 회피 기술
Intrusion detection system evasion techniques침입탐지시스템 회피 기법은 침입탐지시스템(IDS)에 의한 탐지를 방지하기 위해 공격에 대해 변형한 것이다.공개된 거의 모든 회피 기법은 네트워크 공격을 수정한다.1998년 논문 삽입, 회피 및 서비스 거부: Network Intrusion Detection을 배제하는 것은 IDS 회피의 대중화를 이루었고, 탈루 기법과 대상 컴퓨터 시스템에 따라 정확한 해석이 애매한 영역을 모두 논의하였다.'fragroute'와 'fragrouter' 프로그램은 논문에서 논의된 회피 기법을 구현한다.'Nikto', 'Whisker', 'Sandcat'과 같은 많은 웹 취약성 스캐너에도 IDS 회피 기술이 통합되어 있다.
대부분의 IDS는 기본 회피 기법을 탐지하거나 심지어 역행하도록 수정되었지만, IDS 회피(및 IDS 회피에 대항하는 것)는 여전히 활동적인 분야다.
난독화
IDS는 공격용 페이로드의 난독화 또는 인코딩을 통해 대상 컴퓨터가 후진하지만 IDS는 그렇지 않은 방식으로 회피할 수 있다.이러한 방식으로 공격자는 IDS에 경고하지 않고 엔드 호스트를 이용할 수 있다.
인코딩
HTTP와 같은 애플리케이션 계층 프로토콜은 동일한 값으로 해석되는 데이터의 여러 인코딩을 허용한다.예를 들어 URL의 "cgi-bin" 문자열은 "%63%67%69%2d62%69%6e"(즉, 16진수)로 인코딩할 수 있다.[1]웹 서버는 이 문자열들을 동일한 문자열로 보고 그에 따라 행동할 것이다.IDS는 네트워크 트래픽을 알려진 악의적인 부정에 일치시키기 위해 최종 호스트가 허용하는 가능한 모든 인코딩을 알고 있어야 한다.[1][2]
HTTPS와 같은 암호화된 프로토콜에 대한 공격은 IDS가 서버가 통신을 암호화하는 데 사용하는 개인 키의 복사본을 가지고 있지 않는 한 IDS가 읽을 수 없다.[3]IDS는 이것을 설명하지 않으면 암호화된 트래픽을 서명에 일치시킬 수 없을 것이다.
다형성
서명 기반 IDS는 종종 악의적인 트래픽을 서명에 일치시키기 위해 공통적인 공격 패턴을 찾는다.버퍼 오버플로 공격을 감지하기 위해 IDS는 주소 공간 레이아웃 랜덤화의 보호를 약화시키는 데 사용되는 NOP 슬라이드의 증거를 찾을 수 있다.[4]
그들의 공격을 난독화시키기 위해, 공격자들은 독특한 공격 패턴을 만들기 위해 폴리모픽 쉘코드를 사용할 수 있다.이 기법은 일반적으로 어떤 방식으로 페이로드(예: 각 바이트를 0x95로 XOR)를 인코딩한 다음, 전송하기 전에 페이로드 앞에 디코더를 배치하는 것을 포함한다.대상자가 코드를 실행하면, 대상자가 실행한 원래의 형태로 페이로드(payload)를 다시 쓰는 디코더를 실행한다.[1][4]
다형성 공격은 검출 가능한 단일 시그니처가 없어 시그니처 기반 IDS, 심지어 일부 이상형 IDS도 검출하기 매우 어렵다.[1][4]시카타 가나이("도움받을 수 없다")는 XOR 첨가제 피드백을 이용하여 악성 셸코드를 검출하기 어려운 폴리모픽 쉘코드로 변환하는 데 사용되는 메타스플로이트 프레임워크의 인기 있는 폴리모픽 인코더다.[5]
회피
공격자는 IDS가 공격을 잘못 해석하거나 트래픽이 너무 빨리 무해하다고 판단하는 동안 엔드 호스트가 공격 페이로드에 대해 올바르게 해석하는 방식으로 패킷을 조작하여 IDS를 회피할 수 있다.[3]
조각화 및 작은 패킷
한 가지 기본 기법은 공격 페이로드(payload)를 여러 개의 작은 패킷으로 나누어 IDS가 공격을 감지하기 위해 패킷 스트림을 재조립해야 한다.패킷을 분할하는 간단한 방법은 패킷을 분할하는 것이지만, 적수는 작은 페이로드로 패킷을 조작할 수도 있다.[1]'whisker' 회피 도구는 작은 페이로드로 패킷을 조작하는 '세션 스플라이싱'을 호출한다.
그 자체로, 작은 패킷은 패킷 스트림을 재조립하는 IDS를 피하지 않을 것이다.그러나 작은 패킷은 재조립과 탐지를 복잡하게 하기 위해 추가적으로 수정될 수 있다.한 가지 회피 기법은 공격의 일부를 보내는 사이에 잠시 멈춰서, IDS가 공격 대상 컴퓨터보다 먼저 시간 초과되기를 바라는 것이다.두 번째 회피 기법은 패킷을 질서 없이 보내는 것으로, 단순한 패킷 재조립자를 혼란스럽게 하지만 대상 컴퓨터는 그렇지 않다.[1]
조각 및 TCP 세그먼트 중복
또 다른 회피 기법은 TCP 시퀀스 번호가 겹치도록 구성된 일련의 패킷을 만드는 것이다.예를 들어 첫 번째 패킷은 페이로드 80바이트를 포함하지만 두 번째 패킷의 시퀀스 번호는 첫 번째 패킷이 시작된 후 76바이트가 된다.대상 시스템이 TCP 스트림을 재조립할 때, 그들은 4개의 중복 바이트를 처리하는 방법을 결정해야 한다.어떤 운영체제는 오래된 데이터를 가져가고, 어떤 운영체제는 새로운 데이터를 가져갈 것이다.[3]IDS가 대상과 같은 방식으로 TCP를 재조립하지 않으면 공격 페이로드의 일부를 놓치거나 악의적인 페이로드에 삽입된 양성 데이터가 공격 시그니처를 깨는 것으로 조작할 수 있다.[1][3]이 기법은 유사한 방식으로 IP 단편화에도 사용할 수 있다.
모호함
일부 IDS 회피 기법은 대상 컴퓨터가 IDS와 다르게 처리하는 방식으로 TCP 또는 IP 프로토콜을 의도적으로 조작하는 것을 포함한다.예를 들어, TCP 긴급 포인터는 운영 체제에 따라 다르게 처리된다.IDS가 최종 호스트와 일관된 방식으로 이러한 프로토콜 위반을 처리하지 않으면 앞에서 언급한 것과 유사한 삽입 및 회피 기법에 취약하다.[3]
저대역폭 공격
nmap의 저속 스캔과 같이 장기간에 걸쳐 또는 다수의 소스 IP에 걸쳐 퍼져 있는 공격은 무해한 트래픽의 배경에서 선택하기 어려울 수 있다.매일 각 사용자마다 하나의 비밀번호를 테스트하는 온라인 비밀번호 크래커는 비밀번호를 잘못 입력한 일반 사용자와 거의 똑같이 보일 것이다.
서비스 거부
패시브 IDS는 본질적으로 페일오픈(fail-close와는 반대)이기 때문에, 네트워크에서 IDS에 대해 서비스 거부 공격을 개시하는 것은 그 보호를 회피하는 실현 가능한 방법이다.[3]적수는 IDS의 버그를 이용하거나, IDS의 모든 계산 리소스를 소비하거나, 실제 공격을 위장하기 위해 의도적으로 많은 경고를 트리거하여 이를 달성할 수 있다.
CPU 소진
IDS에 의해 캡처된 패킷은 CPU가 패킷을 처리할 준비가 될 때까지 커널 버퍼에 저장된다.CPU 로드가 높으면 패킷을 충분히 빨리 처리할 수 없고 이 버퍼가 채워진다.그러면 버퍼가 꽉 찼기 때문에 새 패킷(악의가 있을 수 있음)이 삭제된다.[3]
공격자는 여러 가지 방법으로 IDS의 CPU 리소스를 소진할 수 있다.예를 들어, 서명 기반 침입 탐지 시스템은 패턴 매칭 알고리즘을 사용하여 알려진 공격의 서명과 수신 패킷을 일치시킨다.당연히, 어떤 서명은 다른 서명에 비해 비교하는데 더 많은 계산 비용이 든다.이 사실을 이용하여 공격자는 특수하게 조작된 네트워크 트래픽을 전송하여 IDS가 가능한 최대 CPU 시간을 사용하여 트래픽에서 패턴 일치 알고리즘을 실행하도록 할 수 있다.[1][2]이 알고리즘 복잡성 공격은 상대적으로 적은 양의 대역폭으로 IDS를 압도할 수 있다.[1]
암호화된 트래픽을 모니터링하는 IDS는 CPU 리소스의 상당 부분을 수신 데이터의 암호 해독에 사용할 수 있다.[3]
메모리 소진
특정 서명을 일치시키기 위해 IDS는 모니터링하는 연결과 관련된 상태를 유지하도록 요구된다.예를 들어 IDS는 IDS가 모니터링하는 각 TCP 연결에 대해 시퀀스 번호, 창 크기 및 연결 상태(설정, 관련, 폐쇄 등)[3]와 같은 정보를 추적하는 메모리의 청크인 "TCB"를 유지해야 한다.IDS의 RAM(Random-Access Memory)이 모두 소비되면 RAM보다 훨씬 느린 하드 디스크의 가상 메모리를 활용할 수밖에 없어 성능 문제가 발생하고 CPU 소진 효과와 유사한 패킷이 손실된다.[3]
IDS 가비지가 TCB를 정확하고 효율적으로 수집하지 않는 경우 공격자는 많은 수의 TCP 연결을 매우 빠르게 시작하여 IDS의 메모리를 소진할 수 있다.[3]다수의 패킷을 더 많은 수의 작은 패킷으로 분할하거나 다수의 순서가 맞지 않는 TCP 세그먼트를 전송하여 유사한 공격을 할 수 있다.[3]
작업자 피로
IDS에 의해 생성된 경고는 그들이 어떤 가치를 갖도록 하기 위해 실행되어야 한다.공격자는 IDS에 대한 경고를 생성하기 위한 대량의 "악의적인" 트래픽을 전송함으로써 과도한 수의 경고로 인간 운영자를 압도함으로써 IDS의 "가용성"을 줄일 수 있다.그런 다음 공격자는 경보 노이즈를 커버로 사용하여 실제 공격을 수행할 수 있다.도구 '스틱'과 'snot'은 이러한 목적을 위해 고안되었다.이들은 네트워크를 통해 공격 시그니처를 전송하여 다수의 IDS 경고를 생성하지만, 애플리케이션 프로토콜 컨텍스트를 유지하는 IDS에서는 경고를 트리거하지 않는다.
참조
- ^ a b c d e f g h i Cheng, Tsung-Huan; Lin, Ying-Dar; Lai, Yuan-Cheng; Lin, Po-Ching (2012). "Evasion Techniques: Sneaking through Your Intrusion Detection/Prevention Systems". IEEE Communications Surveys & Tutorials. 14 (4): 1011–1020. CiteSeerX 10.1.1.299.5703. doi:10.1109/surv.2011.092311.00082.
- ^ a b Corona, Igino; Giacinto, Giorgio; Roli, Fabio (2013). "Adversarial attacks against intrusion detection systems: Taxonomy, solutions and open issues". Information Sciences. 239: 201–225. doi:10.1016/j.ins.2013.03.022.
- ^ a b c d e f g h i j k l Ptacek, Thomas H.; Newsham, Timothy N. (1998-01-01). "Insertion, evasion, and denial of service: Eluding network intrusion detection". CiteSeerX 10.1.1.119.399.
{{cite journal}}
:Cite 저널은 필요로 한다.journal=
(도움말) - ^ a b c Chaboya, D. J.; Raines, R. A.; Baldwin, R. O.; Mullins, B. E. (2006-11-01). "Network Intrusion Detection: Automated and Manual Methods Prone to Attack and Evasion". IEEE Security Privacy. 4 (6): 36–43. doi:10.1109/MSP.2006.159. ISSN 1540-7993.
- ^ "Polymorphic XOR Additive Feedback Encoder". rapid7.com.
외부 링크
- 2010년 4월 IDS/IPS, Abhishek Singh, Virus Bulletin, Virus Bulletin에서 회피.
- 삽입, 회피 및 서비스 거부: 네트워크 침입 탐지 Tomas Ptacek, Timothy Newsham.1998년 1월, Secure Networks, Inc.의 기술 보고서.
- 유니코드 Eric Packer를 통한 IDS 회피.2001년 1월 3일 마지막 업데이트.
- Fragroute 홈 페이지
- Fragroouter 소스 코드
- Nikto 홈 페이지는 구식이다. https://cirt.net/nikto2을 참조하십시오.
- Prack 57 phile 0x03 TCP 긴급 포인터 언급
- 홈 페이지 휘스커
- 샌드캣 홈 페이지
- 상태 저장 패킷 재조립을 위한 Snort의 스트림4 프리프로세서
- 섀도 브로커의 유출에서 발견된 회피에 대한 야생 블로그의 회피