1. 침입 탐지 시스템 (IDS, Intrusion Detection System)
- 개념: 방화벽의 부족함을 채우기 위해 외부 침입에 대한 정보를 수집 및 분석하여 침입을 탐지하고 관리자에게 알리고 대응하는 시스템.
네트워크 공격의 증거를 찾기 위한 트래픽 분석의 역할로 시작했지만 점차 시스템의 침해여부를 보기 위해 로그들을 조사하여 파일을 분석하는 것이 되었고,
점차 허니팟 개념으로 확장 중에 있음.
- 장점: 침입차단시스템(방화벽ㅈ) 보다 적극적 방어 가능. 내부사용자의 오남용 탐지 및 방어 가능. 근원치 추적 가능
- 단점: 대규모 적용 어려움. 관리 및 운영 힘듬. 새로운 침입 기법에 즉각적 대응 어려움. 근본적 보안 사고의 해결책은 아님.
- IDS 실행 단계: 데이터 수집(패킷, 사용내역 등) → 데이터 reduction(축약) 및 Filtering(의미있는 정보 찾음) → 침입 분석 및 탐지 → 보고 및 대응
- IDS 탐지방법에 의한 분류: 규칙기반, 통계기반
① 규칙 기반(오용 침입탐지, Misuse Detection):
시스템 로그, 네트워크 입력 정보, 알려진 침입방법 등의 비정상적인 행위 패턴 정보(스니처)들을 DB에 저장해두고,
사용자 행동 패턴이 DB에 있는 패턴 정보와 일치 또는 유사한 경우 침입이라고 판단하는 방법.
장점: False Positive가 낮음.
단점: 새로운 공격 탐지를 위해 지속적인 공격패턴 갱신 필요. 패턴에 없는 새로운 공격에 대해서는 탐지 불가능.
종류: 전문가 시스템: DB의 패턴정보들로 IF-THEN-RULE을 만들고 실시간으로 입력되는 패턴 정보들을 걸러내어 정해진 RULE대로 처리함.
패턴 매칭: 공격 패턴들을 시나리오 평태로 DB에 저장하고 발생하는 사건들의 패턴을 DB의 시나리오와 비교하여 침입 판단.
② 통계적 변형 탐지(비정상 침입탐지, anomaly detection)
정상적인 패턴을 수집하고, 사용자가 패턴의 범위에서 벗어나는 경우 침입으로 탐지.
장점: 규칙 기반 방식 보다 DB관리가 용이하고, 알려지지 않은 공격을 탐지하는 것이 가능.
단점: 침입을 탐지하는데 시간이 걸림. 침입으로 판단하는 범위를 설정하는 것이 어려움. False Positive가 높음.
종류: 신경망 모델: 비정상적 패턴 학습 후, 탐지.
- IDS 데이터 수집원에 따른 분류: Network-based(NIDS), Host-based(HIDS)
① NIDS
패킷 헤더, 데이터 및 트래픽 양, 로그 등을 분석해 침입 여부를 판단. 즉, 시스템의 감사 자료가 아닌 네트워크의 패킷 정보로 침입을 탐지하는 것.
SW 또는 HW로 만들어지며, NIC에 Promiscuous mode(무차별 모드)를 이용하여 패킷 감시.
독립된 시스템으로 운영됨. 예: TCP Dump를 기반으로 하는 침입탐지 시스템 Snort
장점: 감시 영역이 네트워크 전반이며, IP 주소를 갖지 않으므로 존재 사실을 외부로부터 숨길수 있음.
단점: 패킷이 암호화되어 있으면 침입 탐지 못함. False Positive가 높음. 트래픽 양이 많아지면 성능 문제가 발생 가능.
② HIDS
서버에 직접 설치되어 네트워크 환경과는 무관함. 즉, OS에서 부가적으로 설치됨.
NIDS가 네트워크 트래픽을 분석 및 모니터링 하지만 HIDS는 컴퓨터 자체를 제한함.
기록되는 로그들을 통해 호스트에 대한 침투를 탐지함.
단점: 해커가 로그 변조하거나 DoS 공격으로 IDS 무력화 가능. 네트워크 전반적인 탐지는 못하고 오직 자신이 공격당하는 것만 탐지함.
OS기반으로 호스트 성능에 부하 발생.
- IDS 설치 위치
방화벽 같이 외부와 내부 경계선에 위치할 수도있지만 네트워크 어느부분에도 설치될 수 있음.
"외부와 직접 연결되는 라우터 - 방화벽 - 내부와 연결되는 라우터" 같은 환경에서 내부와 연결되는 라우터는 내부 클라이언트를 위한 네트워크와
서버를 위한 네트워크(DMZ, Demilitarized zone)으로 나뉨. DMZ 내부에서도 별도로 운영되는 방화벽이 존재함. 위와 같은 환경을 표현하면
"외부 - ① - 라우터 - ② - 방화벽 - ③ - 라우터(내부 연결) - ④ - 내부클라이언트 네트워크" 또는
"외부 - ① - 라우터 - ② - 방화벽 - ③ - 라우터(내부 연결) - ⑤ - 내부서버 DMZ 네트워크" 로 표현할수 있음.
NIDS 또는 HIDS 모두 ①, ②, ③, ④, ⑤에 설치될수 있음.
①에 설치: 패킷이 내부로 가기위해 들어오는 곳이므로 공격의도를 쉽게 파악 가능.
②에 설치: 라우터의 패킷 필터링을 거친 후의 패킷들을 검사.
③에 설치: 가장 많이 설치되는 위치, 방화벽과 연동하여 공격을 탐지 가능.
④에 설치: 방화벽이 외부의 침입을 일차로 차단하고 내부 클라이언트를 위한 보호하기 위한 위치.
⑤에 설치: DMZ에 IDS를 설치하는 것은 중요한 데이터 손실이나 서비스 중단을 막고 정말 뛰어난 외부 공격자와 내부공격자들로부터 보호하기 위한 것.
* HIDS는 유지 비용이 비쌈. 아무곳에 설치함.
정상이용자의 이용 패턴과 침입자의 이용 패턴이 겹쳐지는 부분이 있음.
침입자의 행동 패턴을 넓게하면 많은 침입자를 찾을수는 있지만 정상적 사용자를 침입자로 오인하는 False Positive가 높아짐.
반대로 침입자의 행동패턴을 좁게하면 침입자를 정상적 사용자로 오인하는 False Negative가 높아짐.
- Honeypot (허니팟)
방화벽이나 IDS 처럼 보안 문제를 해결하는 역할을 하는 것이 아님.
잠재적 공격자에 대한 알림 기능, 보안 전략의 결점 파악 등 전반벅인 보안 메커니즘 향상에 사용됨.
예: 실제로 자료를 가진 호스트처럼 인터넷에서 보이게하면서 공격자들로부터 침해를 일부러 당하게 하여 그들의 행동, 공격기법, 목적등을 분석함.
장점: 고의적으로 취약점을 내포하고 있어, 취약점에 대한 패키가 발표되지 않은 시점(Zero-day)에 발생하는 공격을 사전에 탐지할 수 있는 예방기술.
외부 공격을 허니팟으로 유인하여 시스템 공격을 방지할 수도 있음.
단점: 일반 포트를 사용하므로 네트워크 전반에 걸친 탐지를 못함. 허니팟이 노출되면 우회 당할 수 있음.
2. 침입 방지 시스템 (IPS, Intrusion Prevention System)
- 공격자의 침입 전 실시간으로 침입을 막음. IDS의 기능을 포함하여 침입을 탐지하면 대처도 하는 시스템.
IDS는 사후 조치, IPS는 사전 조치를 하는 시스템.
- 방화벽은 IP 주소 또는 포트에 의해 네트워크 공격을 차단하지만 새로운 패턴의 공격이나 어플리케이션 수준의 공격에 대한 반응이 느림. 실시간 대응이 어려움.
또한 인가된 사용자의 악의적인 행동에 대한 차단이 어려움.
IDS는 실시간 탐지는 가능하지만 대응책을 제시하지 못함.
L7 스위치(방화벽 전단에 위치하여 DoS/DDoS 공격 완화역할, 트래픽 분산 역할)는 탐지,차단 같은 기능을 하지 못함.
- 취약점이 발표되고 이것이 웜, 바이러스, 해킹 공격으로 발전하는데 과거에는 몇개월이 걸렸지만 오늘날에는 아침에 발표되면
저녁쯤 전 세계 네트워크를 공격하는 것이 가능해짐. 이를 'Zero Day Attack' 이라고 부름.
결국 취약점에 대한 백신이 나올떄까지 서비스가 공격당해 마비되는 상황이 발생하므로 이를 막을 대책으로 IPS가 제시됨.
- IPS는 IDS와 방화벽을 합친 것으로 볼수 있음. 패킷을 하나하나 검사하여 패턴을 분석하고 침입 패턴이라고 판단하면 폐기함.
최신에는 가상머신을 이용하여 패킷을 가상머신에서 분석하기도 함.
- IPS 공격 패턴 인지 방식에 의한 분류: 시그니쳐 기반, 휴리스틱 기반
① 시그니쳐 기반: 침입탐지 패턴 DB를 기반으로 탐지 및 차단을 함. 알려지지 않은 공격의 경우 정확한 시그니처 리스트가 없으므로 차단이 불가능함.
IDS의 시그니처 기반과 동일한 형태의 인지방법 사용.
② 휴리스틱 기반: Anomaly detection/prevention 방식. 계속해서 축적되는 정보를 이용하여 알려지지 않은 공격도 탐지 및 차단 가능.
- IPS 데이터 수집원에 따른 분류: Host IPS(HIPS), Network IPS(NIPS)
① HIPS: 서버에 탑재되는 SW 기반 IPS. 커널과 함께 동작하거나 커널에 독립적으로 동작하면서 시그니처 기반 또는 휴리스틱 기반 알고리즘 이용.
SW 기반이므로 호스트에 종속적
② NIPS: HW 기반으로 호스트에 독립적이며, 다양한 종류의 방지 알고리즘(시그니처, 휴리스틱 등) 사용가능. 실시간 패킷 처리,
변경된 공격 탐지 기술 실시간 반응 기술 사용 가능.
- IPS 설치 위치
보통 방화벽 다음에 설치. (IDS 설치 위치에서 ③번 위치)
반드시 방화벽 다음에 설치하지는 않음 경우에 따라 방화벽 없이 IPS만 설치되기도 하고 사용하기 나름임.
HW로 설치시 장비가 비쌈.
- 침입차단 시스템은 ACL(Access Control List, 접근 제어 목록)을 통해 트래픽에 대한 보안 정책을 설정.
- 기능: 접근 제어, 로깅, 인증(사용자, 메시지 인증), 암호화(데이터를 암호화해서 보냄. 보통 VPN 사용)
- 방화벽 유형
① 패킷 필터링 방화벽
Rule기반으로 패킷 필터링, ACL 사용. 별도의 장비를 통해 적용 가능. Source IP, Dest IP, 라우터의 입력 interface, port를 통해 필터링.
장점: 단순. 빠름, 확장성, 성능 굿. 응용프로그램에 독립적.
단점: 패킷 헤더정보만으로 필터링하므로 특정 어플리케이션의 취약점을 이용한 공격은 못 막음. 공격자가 출발지와 목적지 주소와 포트를 조작하여 우회가능.
접근제어 규칙을 제대로 설정하지 않으면 보안에 허점이 생김.
공격: Tiny fragment attack(패킷을 작은 단위로 만들어 TCP 헤더 정보를 별개의 패킷에 저장시킴. 패킷필터링 라우터가 첫번째 단편만 검사하고
나머지는 그냥 통과시키는 것을 이용함.)
② 스테이트풀(statefull, 상태기반) 패킷 검사 방화벽
패킷 정보를 이용한 검사를 하며 TCP 연결에 대한 정보를 기록함.
TCP순서 번호를 추적해서 순서번호를 이용한 세션 하이재킹 공격을 막을 수 있음.
방화벽은 누가 누구에게 어떤것을 했는지 같은 상태정보를 유지하는 테이블을 모든 통신 채널에 대해 관리함.
상태 정보를 유지하는 테이블을 관리하는 점을 제외하고는 패킷 필터링 방화벽과 같음.
네트워크와 전송계층에서 동작하며, 데이터 링크 계층에서 패킷을 전송받으면 접근제어 정책에 의해 상태 테이블에 정보를 남기고 접근 여부를 결정.
장점: 패킷 필터링 방화벽과 동일한 성능에 패킷 상태 정보 관리로 인해 보안성이 좀더 높음.
단점: 상태 정보를 테이블에 저장하는데 DDoS 공격으로 테이블이 오버플로우되면 문제 발생. 모든 상태정보를 잃어버릴 경우 문제 발생 가능.
③ NAT(Network Address Translation, 네트워크 주소 변환, 공유기의 기능)
사설 주소와 범용주소의 매핑 & 사설 네트워크 지원.
외부에서의 내부의 직접적인 접근 불가.
Static NAT: 사설 IP 하나당 공인 IP 하나당 매칭
Dynamic NAT: 공인 IP 를 모아놓은 그룹(Pool)을 만들어 놓고 그곳에서 가져다 씀.
PAT(port address translation): 포트번호를 공유해서 적은 공인 IP 주소에 사설 IP 주소를 연결 할당함.
④ Proxy 방화벽
네트워크에 들어오고 나가는 패킷 안의 모든 정보를 검사 함.
외부 사용자가 서버에 접근하면 프록시 서버가 응답함.(사용자는 프록시 서버를 실제 서버로 인식하게됨)
동작과정: 실제 사용자가 요청한 데이터가 프록시 서버에 캐싱되어 있으면 곧바로 요청에 대한 응답을 하고,
그렇지 않으면 실제 서버에게 요청하여 데이터를 가져오고 사용자에게 응답함.
종류: Application Level Proxy 방화벽, Circuit Level Proxy 방화벽
-1) Application Level Proxy 방화벽
어플리케이션 계층에서 침입차단 기능을 제공함. 각각의 어플리케이션 모다 사용자 인증을 할수 있으며, 서로 다른 방법을 사용하여 시스템을 보호 가능.
유연성이 높지만 구축 비용이 큼.
-2) Circuit Level 방화벽
SOCKS 프록시 접속 프로토콜을 사용하여 채널을 만들고, 내부 네트워크의 호스트를 보호함.
전송계층에서 동작하므로 각각의 어플리케이션들을 위한 별도의 서버가 필요없음.
SOCKS 클라이언트는 연결 요청 패킷은 SOCKS 서버(Circuit level 방화벽)에서 검사되고, 정책 규칙에 따라 접속 여부가 결정됨.
내부 수신 측의 IP 주소를 변환시켜 내부 수신자를 보호할 수도 있음.
① Bastion Host: 침입차단 SW가 설치되어 내외부 네트워크 사이에서 게이트웨이 역할을 하는 컴퓨터 시스템.
즉, 내부 네트워크와 외부 네트워크 사이의 경계에 위치.
② Host-based 방화벽: 서버내에 SW로 설치되어 패킷 필터링, 침입차단 등을 수행.
③ Personal 방화벽: 가정용, 인트라넷용에 적용 가능. 예: 노턴 개인 방화벽.
- 방화벽 위치
① Screening Router 구조
외부 네트워크와 내부 네트워크 사이의 경계에 위치.
라우터에서 패킷의 IP, PORT를 검사하고 필터링 규칙을 적용하여 방화벽 역할을 함.
네트워크 계층에서 동작.
규칙이 많으면 라우터에 부하가 많이 걸리므로 단순 필터링 역할을 함.
장점: 구조가 간단, 추가비용 필요 없음.
단점: 세부적 규칙 적용이 어렵고, 많은 규칙을 사용하기 어려움. 방어의 깊이가 약함.
② Single Homed Host 구조
일반적으로 이 구조를 Bastion Host라고 함.
접근제어, 프록시, 인증, 로깅 등 방화벽의 가장 기본적인 기능을 수행함.
단점: 방화벽이 손상되면 내부 네트워크에 대한 무조건적인 접속을 허용할 가능성이 있고,
방화벽에 원격 로그인하는 정보 유출되어 공격자가 제어권을 갖게되면 내부 네트워크를 보호 못함.
③ Dual Homed Host 구조
두 개의 인터페이스를 가지는 장비를 이용하여 하나는 외부와 하나는 내부와 연결함.
즉, 두개의 NIC를 이용하여 효율적으로 트래픽을 관리함.
외부와 내부를 오가는 모든 패킷을 검사 및 필터링하므로 성능이 좋아야 함.
Dual Homed gateway가 Bastion Host 역할을 함.
장점: 로깅, 관리, 유지보수가 비교적 쉬움. 내부 네트워크를 감출수 있음.
단점: 로그인정보 유출이나 bastion host 손상시 피해가 큼.
③ Screened Host Gateway 구조
Screening router와 Dual Homed gateway를 조합한 구조.
스크리닝 라우터에서 패킷 필터링을 함으로써 1차 방어를 하고, Bastion Host로써 Dual Homed gateway가 2차 방어를 함.
네트워크 계층에서 동작하는 Screening Router와 응용계층에서 동작하는 Bastion Host를 통한 2중 방어.
단점: Bastion Host이 침입당하면 보안에 취약해짐.
④ Screened Subnet 구조
외부 네트워크와 내부 네트워크 사이에 Subnet(DMZ라고도 함) 이라는 완충지대를 만듦.
설치된 Bastion Host는 프록시 서버를 이용하여 접근을 처리함.
외부에서 접속되야하는 동시에 보호되야하는 시스템이 DMZ 안에 배치됨. 보통 조직의 웹 사이트, 이메일 서버, DNS 서버같은 것이 위치하게 됨.
중요한 정보들을 보관하는 DB 같은 시스템은 내부 네트워크에 설치됨.
장점: 보안성이 높고, 유연해서 다양한 보안 정책을 구현이 가능함.
단점: 설치 및 관리가 어렵고, 비용이 비싸며, 서비스 속도가 느려짐.
- 방화벽 한계 및 보안점
바이러스를 막지 못하고, 네트워크 상의 오버헤드를 초래 함.
내부 사용자의 공격에 취약하며 우회 접근이 가능함. 새로운 형태의 공격에 취약함.
발전 방향: HW 형태로 만들어져 성능 향상을 기대할수 있음.
4. 웹 방화벽
- 개요: 일반적인 방화벽은 네트워크의 패킷이 정상이고 올바른 것인지를 판단하며, 웹 방화벽은 패킷이 아닌 사용자의 URL이 정상이고 올바른 요청인지를 판단 함.
OSI 7 Layer에서 일반 방화벽은 패킷이 돌아다니게 되는 L3, L4(네트워크 및 전송 계층) 레벨에서 동작하고,
웹 방화벽은 HTTP와 HTTPS 요청이 있는 L7 레벨(응용 계층)에서 동작 함.
- 주요기능
① HTTP의 Request/Response 메시지 내용을 분석
② URL 단위의 탐지 기능.
예: 웹 페이지에서 서비스를 제공할 URL을 설정하면, 등록된 URL 외의 다른 URL에서의 요청은 거부시킴.
③ URL에서 악의적인 공격 패턴(XSS, SQL Injection, OS Command Injection 등)을 검출해 내는 문자열 비교정책 기능.
④ 파일 업로드 제어기능과 파일 검사기능. 즉, 사용자들이 웹 서버로 업로드하는 파일에 대해 파일의 종류에 따라 업로드를 허용 또는 차단.
댓글 없음:
댓글 쓰기