방화벽의 개념
방화벽이란, 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다.
방화벽은 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성하며 서로 다른 네트워크를 지나는 데이터를 허용 또는 거부하거나 검열, 수정하는 하드웨어나 소프트웨어를 뜻한다.
방화벽의 필요성
방화벽의 기본 역할은 신뢰 수준이 낮은 네트워크로부터 오는 해로운 트래픽이 신뢰 수준이 높은 네트워크로 오지 못하게 막는 것이다.
방화벽은 인터넷으로부터 내부 네트워크로의 침입을 막는 액세스 차단의 역할을 하는 동시에 내부 네트워크에서 인터넷과 자유롭게 통신할 수 있도록 도와주는 액세스 제어의 역할을 한다.
즉, 외부 침입에 대한 액세스 제어 및 차단을 위해 방화벽이 필요하며 인터넷이 빠르게 보급되고 확산됨에 따라 해킹기술이 고도화되면서 정보 자산을 보호하기 위해 방화벽이라는 침입차단시스템 구축은 필수 사항으로 대두된다.
방화벽의 주요 보안 기능
접근제어
패킷 헤더에 포함되어 있는 IP Address, Port 등을 기초로 패킷의 흐름을 제어할 수 있다.
최근 출시되고 있는 방화벽들은 최신의 패킷 필터링 방식인 Stateful Inspection 방식과 프록시 방식이 결합된 Hybrid형태로 접근제어를 구현하고 있으며 접근제어와 관련된 주요 기능은 다음과 같다.
첫번째, 시간대, 사용자, 네트워크, 서비스별로 보안정책을 차등 설정을 통해 강력한 접근통제 정책 구현한다.
두번째, 침입탐지 모듈을 탑재하여 Source Route, IP Spoof, Land Attack, UDP Echo Loop, Finger Print Scanning, Port Scanning 등과 같은 주요 해킹 공격을 탐지 및 차단한다.
세번째, 국산 IDS와 연동하여 자동적인 대응 및 차단 정책을 구현한다.
사용자인증
방화벽 소프트웨어에서는 접속요구 시 본인여부를 확인하는 사용자 인증을 한다. 사용자 인증을 위하여 다음과 같은 다양한 형태의 인증기법을 제공하고 있다.
첫번째, 사용자 인증방식으로 자체 Password 인증기법 및 일회용 패스워드 등을 지원한다.
두번째, 강력한 사용자 인증방식 지원을 위해 Two-Factor 인증 기법을 지원한다.
세번째, 프록시를 이용할 수 없는 환경 및 서비스를 위해 Telnet기반, SSL Web기반의 클라이언트 인증방식을 제공한다.
네번째, 사용자별 허용된 시간, 요일을 지정할 수 있으며 비밀번호 변경주기 설정 등 관리방안을 제공한다.
감사 및 로그
방화벽 소프트웨어는 사후 감사를 위하여 모든 트래픽에 대한 로그 및 다양한 형태의 통계 기능을 다음과 같이 제공하고 있다.
첫 번째, 방화벽을 통하여 제공되는 모든 네트워크 접근에 대한 상세한 감사 기록을 DB 형태로 저장한다.
두 번째, 저장된 감사기록에 대해 시간대, 사용자, 서비스, 네트워크 주소, 키워드, 패킷 량 등의 다양한 조건을 이용한 통계 기능을 제공한다.
세 번째, 네트워크 사용량, 출발지, 목적지, 사용자, 서비스별 등의 다양한 통계 그래프를 제공한다.
네 번째, 전용 로그 분석기와의 연동이 가능하며 커스터마이징된 보고서 생성이 가능하다.
다섯 번째, 외부의 별도 로그서버를 구성할 수 있는 외부 로그 저장 기능을 제공한다.
프록시
세션에 포함되어 있는 정보의 유해성을 검사하기 위해서 방화벽에서 세션을 종료하고 새로운 세션을 형성하는 방식이다.
출발지에서 목적지로 가는 세션을 명시적으로 또는 암시적으로 가로채서 출발지에서 방화벽까지의 세션과 방화벽에서 목적지까지의 두 세션으로 만든 다음 하나의 세션에서 다른 세션으로 정보를 넘겨주기 전에 검사를 수행하는 형태이다.
패킷 필터에 비해서 방화벽에 더 많은 부하를 주어서 속도는 느리지만 더 많은 검사를 수행할 수 있고, 프로토콜 변경 등 추가적인 기능을 수행할 수 있다.
주소변환
네트워크 주소 변환(NAT: Network Address Translation)은 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 IP주소를 변환하는 것이다.
내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안 기능을 한다.
방화벽에서 제공하는 NAT기능은 다음과 같다.
첫번째, 외부의 공인 네트워크 주소를 내부의 사설 네트워크 주소로 변환한다. 종류로는 Normal NAT와 Reverse NAT가 있다.
두번째, 특정 목적지로 접속할 때만 설정된 NAT를 적용 받지 않도록 할 때 사용한다. Exclude NAT를 통해 내부 관리자가 방화벽 외부에 있는 라우터에 접속할 때 Normal NAT 적용을 받지 않고 라우터로 접속하도록 설정할 수 있다.
세번째, 특정 시스템으로 지정한 서비스를 Forwarding할 수 있는 Redirect NAT를 지원한다.
데이터 암호화
방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화함으로써 중요한 트래픽을 보호할 수 있으며 외부 침입자에게 노출되어도 비밀성이 보장된다.
방화벽의 유형
패킷 필터링 (Packet Filtering)
패킷 필터링 방식은 가장 간단한 형태의 구현 기술로서 IP 헤더와 프로토콜(TCP/UDP/ICMP등) 그리고 헤더의 정보(발신지/목적지 IP 주소, 포트번호)만을 이용해 미리 설정된 보안정책에 따라 해당 패킷을 통과시킬 것인지 말 것인지를 결정한다.
패킷 필터링 방식은 패킷의 내용물에는 관여하지 않기 때문에 속도와 유연성이라는 두가지 장점을 가지고 있다. 반면 패킷 필터링 방식은 네트워크 계층과 전송계층에서 패킷을 필터링하는 기능을 수행하기 때문에 상위 계층의 데이터를 조사하지 않아 응용 프로그램의 특정한 취약점이나 함수를 활용하는 공격을 차단할 수 없다.
이러한 한계 때문에 패킷 필터 방화벽은 대개 네트워크의 최외곽에서 기본적인 트래픽 필터링을 수행하는 1차 방어선으로 이용된다. 현재 출시되고 있는 대부분의 Router에는 패킷 필터링 기능을 기본적으로 제공하고 있다. 패킷 필터링 방식은 물리적인 구현 형태에 따라 스크리닝 라우터로 구성할 수도 있으며, Bastion호스트와 패킷 필터링 소프트웨어로도 구현할 수 있다.
상태 기반 감시 (Stateful Inspection)
상태 기반 감시 방식은 연결 상태를 추적하고, 정상 상태에서 벗어난 패킷을 차단하는 방법으로 패킷 필터의 능력을 향상시킨다. 이러한 작업은 전송 계층에 대한 심층적인 분석 기능을 통합시킴으로써 가능하게 된다. 패킷 필터링과 마찬가지로, 상태 기반 감시는 네트워크 계층의 패킷이 기존 방화벽 규칙에 의해 허용되는지 검사한다.
패킷 필터링과는 다르게, 상태 기반 감시는 상태 표에 각 연결의 상태를 추적하고 기록한다. 상태 표의 세부 내용은 일반적으로 출발지 IP주소, 목적지 IP 주소, 포트 번호, 그리고 연결 상태 정보를 포함한다.
애플리케이션-프록시 게이트웨이 (Application – Proxy Gateway)
애플리케이션-프록시 게이트웨이는 특정 애플리케이션 서비스에 대해 내부망과 외부망을 연결시켜 주는 중간 매개자 역할을 하는 것으로, 클라이언트-서버 간의 Direct connection 대신, 클라이언트를 대신해서 서버와의 Connection을 열어 클라이언트-서버 사이의 통신을 중개해 준다.
최근 출시되는 2세대 프록시 방식은 클라이언트 설정이 필요 없는 Transparent 프록싱 기법을 제공하고 있으며 간단한 내용은 다음과 같다.
그림 4 애플리케이션-프록시 게이트 웨이 출처: https://www.mrwebmaster.it/webserver/errore-502-come-risolverlo_12672.html
2세대 프록시 방식은 클라이언트가 방화벽을 프록시 서버로 사용하도록 설정하는 대신, 방화벽이 네트워크 트래픽을 모니터링 하여 외부의 애플리케이션서버로 전송되는 패킷을 가로채 클라이언트의 Original Request를 echo한다.
Original Request가 방화벽으로부터 전송되는 것처럼 만들어주고, 애플리케이션 서버로부터 수신되는 패킷에 대해서도 마찬가지의 과정을 수행해 줌으로써 클라이언트에게는 Response가 외부로부터 오는 것처럼 동작한다.
이러한, Transparent프록싱 기법은 클라이언트 설정에 소요되는 시간적/경제적 비용을 최소화할 뿐만 아니라 사용자의 이용 편리성을 높여 줌으로써 방화벽의 기능을 향상시켜 준다.