방화벽이란,

미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고, 제어하는 네트워크 보안 시스템. 일반적으로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성하여, 서로 다른 네트워크를 지나는 데이터를 허용, 거부, 검열, 수정하는 등의 기능을 갖춘 소프트웨어 또는 그러한 소프트웨어를 구동시키는 하드웨어 장치를 말한다.
방화벽의 기능
1. 접근 통제 (Access Control)
- 허용된 서비스나 전자우편 서버, 공개정보 서버와 같은 특정 호스트를 제외하고는, 외부에서 내부 네트워크에 접속하는 것을 패킷 필터링 (Packet Filtering), 프록시 (Proxy) 방식 등으로 접근을 통제하는 기능.
2. 인증 (Authentication)
- 메시지 인증: VPN과 같은 신뢰할 수 있는 통신선을 통해 전송되는 메시지 신뢰성 보장
- 사용자 인증: 방화벽을 지나가는 트래픽에 대한 사용자가 누군지에 대해 증명하는 기능 (OTP, 토큰 기반 인증, 패스워드 기반 인증)
- 클라이언트 인증: 모바일 사용자처럼 특수한 경우에 접속을 요구하는 호스트에 대해 인가된 호스트인지 확인
3. 감사 및 로그 기능 (Auditing / Logging)
- 정책 설정 및 변경, 관리자 접근, 네트워크 트래픽 허용 또는 차단과 관련한 사항 등 접속 정보를 로그로 남김.
4. 프라이버시 보호 (Privacy Protection)
- 이중 DNS (Dual Domain Name System), 프록시 기능, NAT (Network Address Translation) 기능 등을 제공함으로써 내부 네트워크와 외부 네트워크 간의 중개자 역할을 함으로써 내부 네트워크의 정보 유출을 방지함.
5. 서비스 제어 (Service Control)
- 안전하지 못하거나 위험성이 존재하는 서비스를 필터링함으로써 내부 네트워크의 호스트가 가지고 있는 취약점을 감소시킴
6. 데이터 암호화 (Data Encryption)
- 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화하여 보내는 것으로, 보통 VPN의 기능을 이용.
방화벽의 한계
1. 악성 소프트웨어 침투 방어의 한계
- 일반적으로 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하므로, 바이러스, 웜 (Worm), XSS 코드와 같이 문서 또는 프로그램 내부에 포함된 악성 소프트웨어를 탐지하여 방어하는 데는 한계점을 지닌다. 이는 두 네트워크 사이에 존재함으로써 높은 트래픽을 처리해야 하므로, 큰 오버헤드를 감수하면서까지 데이터의 내용까지 검사한다면 네트워크 대역폭의 큰 손실을 초래할 수 있기 때문이다.
2. 악의적 내부 사용자 공격에 대한 한계
- 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 셀룰러 망이나 사설 통신 선로를 이용하여 통신을 한다면 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있는 경우가 있는데, 내부자가 악용한다면 막을 수 없다.
3. 새로운 형태의 공격에 대한 한계 (Zero-day Attack)
- 방화벽은 예측된 접속에 대한 규칙을 세우고, 이에 대해서만 방어하므로, 새로운 형태의 공격에 능동적으로 적용하기는 어렵다.
방화벽 동작 방식
1. 패킷 필터링 방식
- 데이터 링크 계층에서 네트워크 계층으로 전달되는 패킷을 가로채어 해당 패킷 안의 주소(IP)와 서비스 포트를 검색, 정의된 보안 규칙에 따라 서비스의 접근 허용 여부를 결정.
- 가장 기초적인 방화벽 동작 방식으로, 네트워크, 전송계층에서 동작하는 방식이다.
- 다른 방식에 비해 빠른 속도
- 비교적 낮은 계층에서 동작하므로 기존 애플리케이션과 연동이 용이하다.
- 하드웨어에 의존적이지 않으나, 강력한 로깅, 사용자 인증을 기대하기는 어렵다.
- 패킷 내의 데이터를 활용한 공격 차단이 불가능하다.
2. 상태 추적 (Stateful Insepction) 방식
- 2세대 방화벽에서 사용되는 방식으로, 패킷 필터링 방식의 내부 데이터를 이용한 공격 취약성을 보완한다.
- 네트워크 계층에서 패킷을 처리하면서도 프로토콜의 상태 정보 테이블을 유지하여, 프로토콜 특성에 따른 변화를 동적으로 대응해 준다.
- 기존 패킷 필터링 기능에 Session 추적 기능을 추가하여 일련의 네트워크 서비스의 순서를 추적하고, 순서에 위배되는 패킷은 모두 차단한다.
- 모든 통신 채널에 대해 추적 가능, UDP/RPC 패킷 또한 추적 가능하다.
- 상태 목록 (State Table)에 DoS/DDoS 공격으로 인한 거짓 정보가 가득 차게 되면, 장비가 일시적으로 다운될 수 있다.
- 방화벽 재구동 시, 현재 연결에 대한 모든 정보를 잃어버려 정당한 패킷에 대한 액세스 거부가 발생할 수 있다.
3. 애플리케이션 게이트웨이 (Application Gateway) 방식
- 3세대 방화벽에서 사용되는 방식으로, 애플리케이션 계층까지 동작하여, 통과하는 패킷의 헤더 내 Data 영역까지도 체크하여 통제할 수 있다.
- 해당 서비스별로 프록시가 구동되어 각 서비스 요청에 대해 방화벽의 접근 규칙을 적용, 연결을 대신하는 역할을 수행한다.
- 패킷 필터링 방식보다 높은 보안 설정이 가능하고, 일회용 패스워드를 이용한 강력한 사용자 인증을 제공한다.
- Session에 대한 정보를 추적할 수 있고, Content Security가 가능하다. (HTTP, NNTP, FTP의 경우 Command Level - put, get, post 등까지 제어 가능하다.)
- 네트워크에 많은 부하를 주며, 하드웨어에 의존적이다.
- 미리 정의된 애플리케이션만 수용 가능하므로, 다양하고 빠르게 발전하는 인터넷 애플리케이션에 대응하지는 못한다.
4. 서킷 게이트웨이 (Circuit Gateway) 방식
- 세션 계층과 애플리케이션 계층 사이에서 접근 제어를 실시하는 방식.
- 사용자 측 PC에는 방화벽의 대표 프록시와 통신하기 위한 수정된 클라이언트 프로그램이 필요하다.
- 각 서비스별로 프록시가 존재하는 것이 아닌, 대표 프록시를 이용하므로, 어느 서비스 프로토콜도 방화벽을 적용시킬 수 있다.
- 수정된 클라이언트 프로그램이 설치된 사용자에 대해서는 별도의 인증 절차 없이 투명한 서비스를 제공한다.
- 단, 사용자들에게 수정된 클라이언트 프로그램을 배포하거나 사용 중인 애플리케이션을 수정해야 하는 번거로움이 있다.
5. 하이브리드 방식
- 패킷 필터링, 애플리케이션 방식을 혼합한 방식.
- 애플리케이션 방식의 최대 단점인 다양한 응용 서비스의 수용을 패킷 필터링 방식으로 제공.
- 내부 보안 정책 및 애플리케이션 등에 맞추어 선택적인 보안 설정이 가능하다.
- 여러 유형의 방화벽 특징을 보유하므로, 커버할 수 있는 범위가 크다.
- 관리가 복잡하며, 설치 시 전문적 네트워크 컨설팅이 필요하다.