침입차단시스템 Firewall
침입차단시스템 Firewall
조직의 보안 정책에 따라 인가된 네트워크 서비스에 대한 접근을 허가하고 인가되지 않은 서비스를 수행하는 트래픽을 차단함으로써 효율적인 보안 서비스 제공
Access Control List(ACL)를 통해 네트워크 전송되는 트래픽에 대한 보안 정책을 설정
서비스 제어, 방향 제어, 사용자 제어, 행위 제어 수행
방화벽 기능
- 접근 통제 : 내부로 접근하는 패킷 중 공개된 서버, 호스트를 제외한 패킷은 패킷 필터링을 이용하여 통제
- 사용자 인증 : 트래픽에 대한 사용자들의 신분을 증명하는 기능 필요
- 감사 및 로그 기능 : 트래픽에 대한 접속 정보 등 네트워크 사용에 따른 통계 정보를 기록하는 감사 및 로그 기능이 있어야 함
- 프라이버시 보호 : 내부 네트워크 정보 유출 방지, 이중 DNS, 프록시 기능을 제공하여 정보의 노출을 막음
- 서비스 통제 : 안전하지 않거나 위험성이 존재하는 서비스를 필터링 하여 내부 호스트가 가지고 있는 취약점 감소 시킴
- 데이터 암호화 : VPN을 활용하여 방화벽 외부로 보내는 패킷을 암호화
방화벽 한계점
- 악성 소프트웨어 침투 방어에 한계가 있음
- 악의적인 내부 사용자의 공격을 막을 수 없음
- 자신을 통과하지 않은 통신에 대한 제어 역시 불가능
- 전혀 새로운 형태의 공격을 막을 수 없음
방화벽 장단점
장점 | 단점 |
- 취약한 서비스 보호 기능 - 호스트 시스템 접근제어 기능 - 로그와 통계자료 유지 - 내부 네트워크의 모든 자원에 일관된 보안 정책 적용 가능 |
- 제한된 서비스 제공 - 우회하는 트래픽은 제어 불가 - 악의적인 내부 사용자로부터 시스템 보호 곤란 - 바이러스 및 새로운 형태의 위험에 대한 방어 곤란 |
📍UTM
다양한 보안 솔루션을 하나의 장비에 탑재하여 운영하는 ALLINONE 통합 보안 솔루션, 보안성 강화 및 운영의 호율성을 지원
ESM -> UTM -> XTM (무선)
방화벽 설계 원칙
- Deny All 정책 : 모든 트래픽을 먼저 차단하고 허용해야 할 트래픽만을 선별 (외부에서 내부망으로의 접속 차단 정책)
- Permit All 정책 : 모든 트래픽을 허용하고, 특정 트래픽만을 선별적으로 차단하는 방식 (주로 내부망에서 외부로 접속차단)
침입차단시스템의 유형
패킷 필터링
라우터에 필터링 기능 구현, 스크린 라우터 혹은 패킷 필터링 라우터라고 함
헤더(소스IP, 목적지IP, port)를 분석하여 필터링 룰과 비교하여 거절할 것인지 통과시킬 것인지 판단
IP주소를 이용한 패킷 필터링, 서비스를 이용한 패킷 필터링 방법
인증기능이 없어서 허용된 IP주소를 안다면 IP를 조작하여 침입 가능
4계층 전송 계층에서 동작
탐지할 수 있는 공격 : 서비스 거부, ICMP 스캔, 포트 스캔
장점 | 단점 |
- 확장 가능하다 - 높은 성능을 제공 - 응용 프로그램에 독립적 - 단순성, 고속 처리, 투명성 |
- 패킷에서 헤더정보 외는 조사하지 않음 - 다른 옵션들에 비해 상대적으로 낮은 보안을 제공 - 연결 상태를 추적하지 않음 |
📍NAT
NAT에서 내부 네트워크와 외부 네트워크는 자연스럽게 두 개의 네트워크로 분리됨
외부에서 내부로 네트워크로 직접적인 접근이 불가능하게 되므로 네트워크 보안효과를 가져올 수 있음
static NAT : 하나의 IP 주소 사용
dynamic NAT : 범용 주소 풀 사용
PAT : 변환 테이블에 5개의 열이 있음. 근원지와 수신자의 포트 주소와 전송 계층 프로토콜을 포함하여 모호성을 제거 가능
스테이트풀 패킷 검사 침입차단시스템 SPI(Stateful Packet Inspector)
TCP 연결에 관한 정보 기록, TCP 순서번호를 추적해서 순서번호를 이용한 세션 하이재킹을 방어
패킷의 모든 계층을 조사 (모든 헤더, 페이로드, 트레일러 등)
모든 통신 채널을 추적하는 상태 테이블을 관리
UDP와 ICMP와 같은 비연결지향적 프로토콜을 추적하는 데이터를 제공
패킷 안의 데이터 상태와 문맥을 갱신하고 저장
패킷 필터링 방화벽과 동일한 성능을 수행하고 패킷 상태 정보에 대한 보안성을 높일 수 있음
stateful packet inspector 모듈을 통하여 전체 계층에 대한 상태를 조사할 수 있으며 투명성 제공
패킷 헤더가 공격 당할 경우 잘못된 상태 테이블을 구성할 수 있는 단점
TCP 일련번호를 기록하여 session hijiacking과 같은 공격을 방어
📍심층 패킷 검사 DPI
패킷 내부의 콘텐츠까지 파악하고 클라이언트 서버 간의 패킷 통신 규약에 대한 정보까지 파악
규약대로 통신이 이루어지고 있는지 아니면 비정상적인 통신 형태가 이루어지고 있는지 파악하는 차세대 방화벽 기술
패킷 데이터 부분에 포함된 바이러스 등 악성코드를 검사할 수 있음
프락시 방화벽
호스트에서 실행되는 전문화된 애플리케이션이나 혹은 서버 프로그램으로서 베스천 호스트에 설치되어 운영
장점 | 단점 |
- 가능하면 응용프로그램 계층까지 전체적으로 패킷 안의 정보를 검사 - 패킷 필터링보다 나은 보안을 제공 - 보호되는 시스템과 보호되지 않는 시스템 사이의 연결을 차단 |
- 몇몇 프락시 방화벽은 제한된 응용프로그램 번호만 지원 - 트래픽 성능이 저하 - 응용프로그램 기반 프락시 방화벽은 확장성과 성능에 논점을 일으킴 - 클라이언트/서버 모델을 깨뜨리며, 보안을 위해서는 바람직하나 몇몇의 경우 기능상의 단점이 있음 |
배스천호스트 Bastion Host
외부 네트워크에서 내부 네트워크의 호스트로 직접 접속을 허용하지 않아서 배스천호스트를 거침
내외부 네트워크 사이의 게이트웨이 역할을 수행
단순한 구조, 비상대비책 강구, 로그 백업 기능
로그 백업 기능으로 배스천호스트가 무엇을 했는지 조사할 수 있고, 무엇이 잘못되었는가 확인하여 위험 재발 방지 가능
장점 | 단점 |
- 스크리닝 라우터 방식보다 안전 - 정보 지향적인 공격 방어 가능 - 각종 기록 정보 생성 및 관리가 쉬움 |
- 배스천호스트 손상 시 내부 네트워크 보호 불가능 - 로그인 정보가 유출되면 내부 네트워크 보호 불가능 |
응용프로그램 수준 프락시 방화벽(응용계층 게이트웨이)
L7까지 패킷 검사, 패킷 전체를 이해하고 패킷 내의 내용에 기반을 두어 접근 결정을 내림
응용 서비스마다 각각 다른 응용 게이트웨이 구현하여 더 안전하게 내부 네트워크의 시스템 보호
응용 서비스 사용에 따른 기록 및 감사 추적, 강력한 인증 서비스 (패킷 필터링과 상태 추적 방화벽은 시스템 인증만 수행)
높은 대역폭 혹은 실시간 응용 프로그램에 일반적으로 적합하지 않음
새로운 네트워크 응용프로그램과 프로토콜의 지원에 제한적
응용 서비스별로 별도의 프락시를 필요로 함(자원이 많이 필요)
내부망으로 패킷이 전송되는 것을 방지, 사용자 인증 기능도 제공
회선 레벨 게이트웨이
클라이언트-서버 환경에서 이용되는 프록시 접속 프로토콜인 SOCKS 프로토콜을 사용하는 프락시 서버
내부 내트워크의 호스트 보호를 목적으로 함
응용 게이트웨이 방화벽에 비해 처리 속도가 빠름
방화벽을 통해 연결 허용 여부를 판단할 수 있어서 패킷 필터링 방화벽에 비해 높은 수준의 보안 서비스 제공
응용 트래픽을 조사하지 않아 신뢰할 수 없는 사용자에 대해 사용할 경우 위험
응용프로그램 수준 프락시 | 회선 수준 프락시 |
- 모니터되는 각 프로토콜을 위해 서로 다른 프락시가 요구됨 - 회선 수준 프락시 방화벽보다 나은 보호를 제공 - 패킷당 보다 많은 처리를 요구하기 때문에 회선 수준 방화벽보다 느림 |
- 각 프로토콜을 위해 서로 다른 프락시를 요구하지 않음 - 응용 프로그램 수준 방화벽이 제공하는 깊은 검사 능력을 제공하지 않음 |
침입차단시스템 종류
스크리닝 라우터 구조
모양 : 내부NW - 스크리닝라우터 - 외부NW
라우터를 이용해 각 인터페이스에 들어오고 나가는 패킷을 필터링하여 내부 서버로의 접근을 가려내는 역할을 함
선택사항으로 방화벽 SW 장착, CPU MEM 성능을 높여야 한다는 부담이 있음
연결에 대한 요청이 입력되면 IP,TCP/UDP 패킷 헤더를 분석하여 송신지/목적지의 주소와 포트번호, 제어필드 내용을 분석하고 패킷 필터 규칙에 적용하여 트래픽 통과 여부를 정함
장점 | 단점 |
- 구조가 간단하고 장비 추가비용 소요가 없다. - 네트워크 계층에서 동작하므로 클라이언트와 서버에 변화 없어도 됨 - 하나의 스크리닝 라우터로 보호하고자 하는 네트워크 전체를 동일하게 보호할 수 있음 - 네트워크 계층과 전송 계층에 입각한 트래픽만을 방어할 수 있음 |
- 세부적인 규칙 적용이 어렵고 많은 규칙을 적용할 경우 라우터에 부하가 갈려 대역폭을 효과적으로 이용할 수 없음 - 인증기능 수행은 불가능, 내부구조를 숨기기 어렵고, 1 개의 장애물 밖에 없어 방어의 깊이가 약함 - 실패한 접속에 대한 로깅을 지원하지 않으며, 패킷 필터링 규칙에 대한 검증이 어려움 |
이중 네트워크 호스트 구조 (Dual-Homed)
모양 : 내부NW - (내부용 NIC | 배스천호스트 | 외부용 NIC) - 외부NW
내외부에 각각 한 개씩 인터페이스를 가지는 장비
외부에서 내부로 갈 수 없는 배스천호스트 방식인 라우팅 기능이 없는 방화벽 설치
여러 네트워크가 동시에 통신할 수 있도록 지원하는 변환기 역할(패킷을 모으고 전달하는 역할)
장점 | 단점 |
- 스크리닝 라우터 방식보다 안전 - 정보 지향적인 공격을 방어가 가능 - 관리 설치 유지보수 용이 |
- 서비스가 증가할수록 프록시 소프트웨어 가격 상승 - 사용자 정보 입력이 필요하고 단일 실패 지점이 됨 |
스크린드 호스트 게이트웨이 구조
모양 : 내부NW - (내부용 NIC | 배스천호스트 | 외부용 NIC) - 스크리닝 라우터 - 외부NW
듀얼홈드 호스트 구조와 스크리닝 라우터가 합쳐진 형태로 외부에 스크리닝 라우터를 설치하고 내부에 배스천 호스트를 설치
정보지향적 공격을 막음
장점 | 단점 |
- 다른 방화벽에 있는 모든 장점이 있으며 융통성도 뛰어남 - 스크리닝 라우터와 배스천호스트에서 방어하여 2단계 방어 |
- 서버 속도가 느리고 배스천호스트 침해 시 내부 네트워크 보호 불가 - 내부자에 의해 스크린 라우터의 라우팅 테이블이 변경되면 외부 트래픽이 배스천호스트로 입력되지 않고 곧바로 내부 네트워크 진입하여 내부 네트워크 방어 불가능-> 라우팅 되어야 함 |
스크린드 서브넷 구조
모양 :내부NW - 스크리닝 라우터 - (내부용 NIC | 배스천호스트 | 외부용 NIC) - 스크리닝 라우터 - 외부NW
3중 방어 체계를 가지며 인터넷과 내부 네트워크 사이에 DMZ 구성하는 구조
DMZ에 메일,웹, 이메일, DNS 서버를 구성하고 내부에 DB 서버 등 중요한 서버 구성
외부 인터넷 환경에서 접속이 되어야 한다
장점 | 단점 |
- DMZ와 같은 보안층을 가지고 있어 매우 안전 - 융통성 뛰어남 |
- 다른 방화벽에 비해 설치와 관리가 어려움 - 구축 비용이 높고 서비스 속도가 낮음 |
IPTable
리눅스 커널에 내장된 netfilter 기능을 관리, rule 기반의 패킷 필터링 기능 제공
기존 연결을 가장하여 접근할 경우 상태 목록과 비교 후 접근 또는 거부 수행하는 상태 추적 기능 제공
iptables 테이블명 체인명 룰설정 타깃지정
테이블 지정
iptables -t 테이블명
테이블명에는 filter, nat 등이 옴, 명시하지 않으면 default로 filter 테이블 적용
룰을 설정할 체인 지정
iptables -[A|I|D|F|P] 체인명
filter 테이블의 체인에는 INPUT, OUTPUT, FORWARD체인이 있음
A : append모드, 체인의 제일 마지막에 룰 추가
I : insert모드, 체인의 첫 행에 룰 추가, 행 번호 지정 시 특정 위치에 추가 가능
D : delete모드, 행번호 지정하여 특정 위치의 룰 삭제
F : flush모드, 해당 체인의 모든 룰 삭제
P : 해당 체인의 default 정책 설정, 모든 룰에 매칭되지 않을 때 적용
룰설정
-p : 프로토콜 지정
-s : 출발지 IP 지정
-d : 목적지 IP 지정
--sport : 출발지 port 지정
--dport : 목적지 port 지정
-i : 패킷이 들어오는 인터페이스 지정
-o : 패킷이 나가는 인터페이스 지정
타깃지정
-j : 룰에 매칭될 때 적용할 정책 또는 타겟 체인 지정
정책에는 ACCEPT, DROP, REJECT, LOG가 있음
DROP시 차단과 함께 아무런 응답을 하지 않음, REJECT시 ICMP에러 응답 전송
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
목적지 포트가 80번인 tcp 프로토콜 패킷을 받아들이는 규칙 추가
iptables -A INPUT -p tcp --dport :1023 -j DROP
목적지 포트가 1023 이하의 모든 포트인 tcp 프로토콜 패킷을 거부하는 규칙을 추가