방화벽은 네트워크 보안을 위해 필수 솔루션이지만 3, 4 계층만 방어하므로 애플리케이션 계층에서 이루어지는 공격을 방어할 수 없다.
여기서 애플리케이션 공격이라 함은 예를 들어 웹 서비스를 제공하기 위해 TCP 80 포트를 외부 사용자에게 공개해야 하는데 Apache나 IIS 서버의 취약점을 악용한 공격을 할 수 있는 것을 말한다. 이때 방화벽에서 구분해 필터링하고 모니터링 할 수 없다.
이를 개선하기 위해 IDS와 IPS가 개발되었다.
IPS, IDS의 정의
IDS(Intrusion Detection System:침입 방지 시스템)는 공격자가 시스템을 해킹할 때 탐지를 목적으로 개발된 시스템이다.
공격에 직접 개입, 방어하지 않고 트래픽을 복제해 검토하여 침입 여부를 판별한다.
IPS(Intrusion Prevention System:침입 방지 시스템) 은 공격이 발견되면 직접 차단하느 시스템이다.
트래픽을 복제해 검토만 하는 것이 아니라 트래픽이 지나가는 인라인 상에 장비를 배치한다.
이렇게 차단, 방어 외에도 회피 공격을 차단하기 위한 세션 이해 가능 여부, 능동적 방어를 위한 어노말리(Anomaly) 등의 기능도 존재한다.
IPS에는 호스트 기반과 네트워크 기반이 존재하는데 일반적으로 IPS라고 부르는 시스템은 네트워크 기반 NIPS(Network based IPS)이다.
클라우드 네트워크는 여러 제약사항 때문에 NIPS 배포가 어려워 HIPS(Host based IPS) 사용 빈도가 늘었지만 서비스와 리소스 공유, 장애 발생 시 장애 주체 파악의 어려움 때문에 최근 NIPS로 바뀌는 추세이다.
IPS, IDS의 동작 방식
IPS에는 공격 데이터베이스를 사용한 패턴 매칭 방식, 프로토콜 어노말리, 프로파일 어노말리 등의 다양한 기법으로 공격을 방어한다,
패턴 매칭 방식
이 방식은 기존 공격이나 취약점을 통해 공격 방식에 대한 데이터베이스를 습득하고 최신 내용을 유지해 공격을 파악하는 기술이다. 이를 패턴, 시그니처, 데이터베이스 방식 방어라고도 부른다.
이로 인해 많은 공격 데이터베이스와 최신 공격 방식을 공격 데이터베이스에 최대한 신속히 반영하는 것이 중요하다.
코드 레드 웜은 웹 서버에 간단한 공격 스트링을 가진 요청이 도달하기만 해도 IIS의 취약점에 의해 웹 서버에 감염된다.
감염된 웹 서버는 다시 다른 서버로 공격을 수행하는 공격자로 바뀌어 공격 패킷을 다수의 다른 서버로 전송한다.
그림과 같이 IPS에서 코드 레드 웜 관련 공격이 데이터베이스에 매칭돼 공격을 방어한다.
어노말리 공격 방어
패턴 기반 방어는 공격에 극미한 변화만 생겨도 적절한 대응을 하기 어려웠다. 이는 공격 데이터베이스를 업데이트해야하기 때문이다. 그래서 빠르게 대응하지 못한다면 전체 네트워크가 공격 당할 수 있다.
이러한 블랙리스트 기반 패턴 기반 방어의 한계 때문에 화이트리스트 기반의 방어 기법이 나왔는데 이것이 어노말리이다.
어노말리는 분명한 공격으로 파악되지 않더라도 특정 기준 이상의 행위를 이상하다고 판단하고 방어한다.
이런 어노말리 기법에는 프로파일 어노말리, 프로토콜 어노말리로 나뉜다.
프로파일 어노말리
프로파일 어노말리는 평소 관리자가 정해놓은 기준이나 IPS 장비가 모니터링해 정해진 기준과 다른 행위가 일어나면 공격으로 판단한다.
예를 들어 프린트 서버에 FTP 패킷이 전송되는 경우 적은 트래픽이 발생하던 시스템에서 갑자기 많은 트래픽이 발생한 경우처럼 평소와 다른 행위에 초점을 둔다
이 기능은 동적 프로파일 기능이 강화되면서 향후 DDoS 방어 장비로 진화했다.
프로토콜 어노말리
해커는 방화벽을 우회해 내부 사용자의 PC를 공격하기 위해 웹 서버나 이메일에 악성 코드를 올려놓고 내부 사용자가 악성 코드를 내려받아 직접 실행하도록 유도한다.
직접 실행한다면 외부 C&C서버와 연결되고 이 연결을 통해 사용자 정보를 전달하고 해커의 지시에 따라 동작한다. 이런 악성 코드에 감염된 PC를 좀비 PC라고 부른다. 이때 좀비 PC는 정상적 요청을 하는거처럼 보여 방화벽에서 감지하지 못한다.
이를 방어하기 위해 IPS의 프로토콜 어노말리 기법을 사용한다.
좀비 PC가 외부와 공격을 위한 통신을 할 때 잘 알려진 서비스 포트를 사용하지만 실제 해당 서비스 포트에서 동작하는 포로토콜이 아닌 다른 프로토콜을 사용하는 경우가 흔하여 이 경우를 감지한다.
즉, 잘 알려진 포트와 실제로 통신하는 프로토콜이 다를 때 이것을 파악해 적절히 제어하는 기법을 프로토콜 어노말리라고 한다.
VNC(Virtual Network Computing) : 컴퓨터 환경에서 RFB 프로토콜을 이용하여 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱 공유 시스템
IPS, IDS의 한계와 극복(NGIPS)
네트워크상에서 빠른 속도로 애플리케이션 레벨까지 확인하기 위해 플로(Flow) 엔진을 사용한다. 플로 엔진은 패킷을 모아 데이터 형태로 변환해 검사하는 것이 아니라 패킷이 흘러가는 상황을 모니터링해 공격을 탐지하므로 IPS 장비를 쉽게 우회할 수 있다.
IPS는 오탐이 많이 발생하므로 이에 따른 튜닝작업을 오래 해주어야 하고 장비를 계속 모니터링해 환경에 맞는 최적화 작업을 지속적으로 수행해야한다.
이러한 점을 해결하기위해 NGIPS(Next Generation IPS) 개념의 장비가 등장했다.
애플리케이션을 인지하거나 다양한 시스템과 연동할 수 있고 APT 공격 방어 기능 또한 탑재되어 있어 다양한 외부 시스템과 연동 가능하다.
방화벽이 NGFW, UTM으로 발전했듯이 IPS도 다양한 장비가 통합되는 추세이다.
'CS > 네트워크' 카테고리의 다른 글
VPN(Virtual Private Network) (0) | 2022.08.14 |
---|---|
DDoS 방어 장비에 대해 (0) | 2022.08.13 |
방화벽이란 (0) | 2022.08.13 |
보안과 보안 솔루션 (0) | 2022.08.12 |
DHCP(Dynamic Host Configuration Protocol) (0) | 2022.07.12 |