개념

침입 차단 시스템(방화벽)은 인터넷 같은 외부 네트워크에서 비인가자[^1]가 내부망으로 불법 접근하거나 접속을 시도하는 것을 막기 위한 시스템으로, 내부 네트워크를 방어하는 보안 경계선 역할을 한다.

원리

방화벽은 외부 네트워크에서 들어오는 모든 접근 시도를 일단 거부(deny)한 뒤, 사전에 설정된 보안 규칙에 따라 허용할 접근만 단계적으로 허용(permit)하는 방식으로 동작한다. 접근 제어 리스트(ACL)를 기준으로 패킷을 허용하거나 거부해 트래픽을 제어하고, 로깅과 감사 추적, 무결성 체크, 주소 변환, 사용자 인증 같은 기능도 함께 수행한다.

기술에 따른 분류

패킷 필터링 방화벽은 송수신되는 데이터 패킷의 IP 주소와 TCP/IP 헤더 정보를 활용한다. 성능은 높지만 보안 수준은 낮은 편으로, 헤더 정보만으로 접속을 제어하다 보니 데이터 내용 자체는 분석할 수 없어 IP 스푸핑 공격에 취약하다.

**상태분석형 방화벽(Stateful Inspection)**은 상태 테이블에 데이터 패킷의 연결 정보를 저장해두고 이를 참조하며 패킷을 필터링한다. 송수신 패킷을 모두 검사하는 만큼 성능과 보안 수준이 모두 높다.

프록시 방화벽은 내외부 네트워크 사이에 자리 잡아 외부 공격자가 내부 네트워크에 직접 접근하지 못하도록 제어한다. 이 중 애플리케이션 레벨 프록시는 응용 계층에서 패킷 전체를 기반으로 접근을 결정하며 프로토콜마다 별도의 프록시 서버가 필요하지만 성능과 보안 수준이 모두 높고, 서킷 레벨 프록시는 클라이언트와 서버 사이에 회선을 만들어 요청 서비스로 연결하며 응용 수준과 무관하게 프록시 서버 하나만 있으면 된다.

데이터 소스에 따른 유형

**호스트 기반(HIPS)**은 각 호스트에 설치된 IPS 에이전트가 시스템의 해킹 시도나 이상 징후를 탐지·차단한다. 서버의 커널 조작 같은 침입을 방지하는 것이 목적으로, 커널 상에서 불법 응용을 막을 수 있다는 장점이 있지만 정상적인 응용 프로그램의 동작까지 방해할 가능성이 높다.

**네트워크 기반(NIPS)**은 네트워크의 물리적·논리적 경계 지점에 인라인 방식으로 설치되어, 웹 디도스나 오버플로우처럼 네트워크에 몰리는 과도한 트래픽을 막는 것이 목적이다. 하드웨어 기반으로 빠르게 대응할 수 있다는 장점이 있지만, 네트워크상의 단일 장애점이 되어 가용성 문제를 일으킬 수 있다.

구현 방식에 따른 분류

네트워크 기반 웹 방화벽은 네트워크 구간에 인라인으로 설치되어, 하나의 장비로 여러 웹 서버에 보안을 적용할 수 있고 기존 웹 서버를 바꾸거나 수정할 필요가 없다. 다만 SSL처럼 암호화된 데이터 전송이 많으면 서비스가 지연될 수 있고, 서로 다른 운영체제의 웹 서버가 섞여 있으면 대응하기 어렵다.

호스트 기반 웹 방화벽은 에이전트와 마스터 서버로 구성된다. 서버 환경마다 최적화된 보안 정책을 적용할 수 있다는 장점이 있지만, 웹 서버마다 에이전트를 설치해야 해 관리가 번거롭고 서버별로 최적화된 환경을 구축하는 비용도 늘어난다.

설치 및 구성

스크리닝 라우터는 라우터를 이용해 각 인터페이스로 들고 나는 패킷을 필터링해 내부로의 접근을 제어한다. 3~4계층에서 동작하는 프로토콜(IP, TCP, UDP)의 헤더 내용을 분석해 동작하며, 필터링 속도가 빠르고 비용이 낮다는 장점이 있지만 패킷 내부 데이터에 숨은 공격은 막을 수 없다.

베스천호스트는 응용 계층 서비스를 제공하며 내부 네트워크와 외부 네트워크를 잇는 연결점 역할을 하는 호스트다. 게이트웨이 역할을 수행해 철저한 보안 방어막을 구축할 수 있고 각종 로깅 정보를 생성·관리하기 쉽지만, 역시 패킷 내부 데이터에 숨은 공격은 막지 못한다.

이중 네트워크 게이트웨이는 하나의 인터페이스는 외부에, 다른 인터페이스는 내부에 연결하는 구조로, 내외부 네트워크 사이의 직접적인 TCP/IP 연결이 불가능해 물리적으로 격리된다. 트래픽을 효율적으로 관리할 수 있고 설치와 유지보수도 쉽지만, 베스천호스트가 손상되거나 로그인 정보가 유출되면 내부 네트워크를 보호하기 어려워진다.

스크린드 서브넷 게이트웨이는 스크리닝 라우터 사이에 듀얼-홈드 게이트웨이를 두고, 인터넷과 내부 네트워크 사이에 DMZ라는 완충 지역 역할의 서브넷을 운영하는 방식이다. DMZ 같은 보안층 덕분에 매우 안전하고 방어 기능도 뛰어나지만, 설치와 관리가 어렵고 비용은 높으면서 속도는 상대적으로 느리다.

WEB

웹 방화벽은 OWASP[^2]가 정리한 대표적인 웹 취약점 공격(OWASP Top 10, A1~A10)을 탐지하고 대응할 수 있다. 기존 침입 차단 시스템은 삽입 취약점, 크로스사이트 스크립팅, 취약한 접근 통제 같은 공격 앞에서 한계를 드러낸다. HTTP 특성상 80번 포트로 오가는 트래픽 자체를 차단할 수 없고, URL이나 헤더처럼 웹 프로토콜에 특화된 공격에는 대응하지 못하며, 애플리케이션 레벨에서 트래픽을 분석하고 차단하는 기능도 수행할 수 없기 때문이다.


[^1]: 일반적으로 특정 시스템, 정보, 시설 또는 데이터에 접근 권한이 없는 사람을 의미한다.
비인가자의 접근을 방지하기 위해 인증(누군지 증명), 인가(인증 이후 어떤 자원에 접근할 수 있는지 결정), 암호화, 접근 제어 리스트, 방화벽을 사용한다.

[^2]: Open Web Application Security Project 웹 애플리케이션 보안의 향상을 목표로 하는 비영리 단체이다.
개발자, 보안 전문가, 기업 등이 활용할 수 있는 다양한 도구, 문서, 프레임워크 등을 제공하여 안전한 웹 애플리케이션을 개발하고 유지할 수 있도록 지원한다.