안녕하세요. 박현상입니다. 오늘은 제가 군 복무를 하면서 많이 다루는 방화벽에 대해서 무득 어떻게 동작하는지 궁금해서 찾아보고 공부한 내용을 정리해 보았습니다. 보안 관제에서의 관점에서도 일부 내용을 작성하였습니다.
방화벽이란?
방화벽(Firewall)은 미리 정의된 보안규칙에 기반하여, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템입니다.
일반적으로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성하여서 서로 다른 네트워크를 지나가는 데이터를 허용 및 거부, 검열 등의 기능을 갖춘 소프트웨어 또는 하드웨어 장치를 말합니다.
방화벽의 역할은?
1. 취약한 서비스로부터의 보호
비인가된 서비스(홈페이지)를 필터링하여 선택된 프로토콜만 방화벽 통과 가능
2. 집중된 보안
많은 호스트로 다양한 소프트웨어를 분산하지 않고 방화벽 상에 집중적으로 탑재하면 네트워크 보안 관리의 관점에서 효율적
3. 비밀성 향상
침입차단시스템의 보안 설정을 통하여 확장된 개인정보보호 기능을 수행하여 로그인 정보를 얻을 수 있는 Finger
명령어, 사이트 이름, IP 주소를 알려주는 DNS 서버스를 차단하여 개인의 시스템 사용정보 등에 대해서 보호
우리가 흔히 알고 있는 ping
명령어의 경우 TCP/IP 프로토콜 중 ICMP(Internet Control Message Protocol)을 통해 동작하므로, ICMP 프로토콜을 차단한다면 ping
명령어를 하여도 결과값을 받아볼 수 없습니다.
방화벽의 한계점
1. 방화벽은 악성 소프트웨어 침투 방어에 한계 존재
방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하는 것이 일반적이므로 바이러스, 웜, XSS 코드 등과 같이 문서나 프로그램 내부에 포함된 악성 소프트웨어를 탐지하어 방어하는데 한계를 가지고 있습니다. 그 이유는 방화벽은 보통 두 네트워크 사이(내·외부망)에 존재하므로 높은 트래픽을 방화벽이 처리하므로 데이터 내용까지 검사한다면 큰 오버헤드(OverHead)가 발생하고 네트워크 대역폭에 손실을 가져옵니다.
IPS나 WAF와 같은 보안 장비를 함께 사용해야 안전한 네트워크 구성을 할 수 있습니다. 방화벽만 있다고 해서 안전한 서비스·네트워크를 만들 수 없습니다.
만약 바이러스 통신 (C2 서버 등) 및 이상한 네트워크 통신 등을 보안관제에서 탐지하여 차단이 필요하다면 방화벽을 사용하여 차단할 수 있습니다. 장비마다 다르겠지만 통상적으로 방화벽에서의 차단은 IP와 URL로 가능합니다.
2. 방화벽은 악의적인 내부 사용자의 공격을 막을 수 없음
방화벽은 통상적으로 신뢰하지 않은 외부 네트워크로부터의 신뢰하는 내부 네트워크를 보호하는 것이 주목적이며, 경계에 대한 보안 정책을 수행하고 있으며, 그에 따른 내부 공격자에게 보안 정책을 적용할 수 없습니다.
통상적인 보안장비는 내부 IP에서 통상적으로 사용하는 내부 서비스에 대한 네트워크 접근제어를 하고 있습니다.
악성행위를 한 경우에는 서버 로그 분석 등의 방법을 통해서 찾을 수 있으며, 보안 관제에서 확인 해야하는 부분입니다.
3. 방화벽은 전혀 새로운 형태의 공격을 막을 수 없음
방화벽은 예측된 접속에 대해서만 정책을 세우고 이에 대해서만 방어하기 때문에 새로운 형태의 공격에서는 능동적으로 적용할 수 없습니다.
보안 관제 관점에서 보다면 보안 관제 도중 확인되면 그 즉시 방화벽에 정책을 새롭게 적용하여 외부에서 내부로 들어오는 IP에 대해서 막을 수 있습니다.
방화벽에서의 패킷 필터링 방법
방화벽에서는 내부에서 외부로 나가고 들어오는 패킷에 대해 필터링하며 모든 내역이 방화벽 로그 상에 보이고 있습니다.
패킷 필터링을 위해 사용되는 정보는 아래와 같습니다.
- 출발지 IP 주소 / 출발지 포트 번호
- 목적지 IP 주소 / 목적지 포트 번호
- 트래픽 방향 - 인·아웃바운드
- 프로토콜 형태 - IP, TCP, UDP, IPX
- 패킷 상태 - SYN, ACK
통상적으로 방화벽에서는 IP에 대해서 접근할 수 있는 서비스에 제한을 두거나 사용자에게 필요가 없는 포트나 취약요소가 될 수 있는 포트는 접속을 통제하고 있습니다.
패킷 필터링 장·단점
장점
- 단순성 - 방화벽은 내·외부 네트워크의 경계 지점에서 패킷을 조사하여 허용과 차단 여부를 결정하면 되므로 동작 방식이 매우 간단함.
- 고속 처리 - 네트워크와 트랜스포트 프로토콜의 헤더 정보를 모니터링하여 필터링 정책과 비교하면 되므로 고속으로 처리가 가능함.
- 투명성 - 사용자는 필터링 방화벽의 존재를 알지 못하는 상태에서 보안 서비스를 제공 받을 수 있음.
- 간혹 내부의 정보 유출을 막기 위해 일부 사이트를 접근를 차단하고 있어서 이를 통해서 방화벽의 존재를 알 수 있습니다.
단점
- ARP Spoofing, DNS Spoofing, TCP/IP 명세와 프로토콜 스택 안의 문제점을 이용하는 공격에는 취약함.
- 패킷 단편화 공격을 탐지할 수 없음.
- 로그 기능과 감사 기능 부족.
- 로그를 수집하여 SIEM (Security Information and Event Management)과 같은 시스템을 사용한다면 부족한 부분을 채울 수 있습니다.
- 응용 서비스별로 정교한 제어가 불가능함.
- 고급 사용자 인증 구조를 지원하지 않음.
- 패킷에서 헤더정보 외 조사하지 않음.