본문 바로가기

Network, Security

방화벽(Firewall) - 구현방식에 따른 유형

방화벽(Firewall)

방화벽은 가장 기본적인 네트워크 보안장비이다. 네트워크를 경유해서 내부 시스템으로 진입하는 트래픽을 모니터링하고 접근 통제를 적용하며 시스템에 접근이 가능한 사용자, IP, Port를 설정한다. 반대로 접근하지 못하는 사용자도 설정이 가능하다. 즉, 인증되지 않은 데이터가 유입되는 것을 방지하고, 외부로 송신되는 데이터에 대한 접근 제어 등을 수행하는 보안 장비이다.

윈도우에서는 윈도우 디펜더가 방화벽 역할을 포함한 여러 보안 요소를 관리한다. 맥과 리눅스에서도 방화벽 설정을 확인이 가능하며 다음 이미지들은 각각의 운영체제에서 확인할 수 있는 방화벽 설정 화면이다.

윈도우 방화벽 설정
Mac OS X 에서 확인한 방화벽 옵션
리눅스 우분투에서 확인한 방화벽

여러 운영체제에서 방화벽을 사용중이며 작동 방식은 비슷하다. 외부에서 내부로 들어오는 데이터를 차단하는 인바운드, 내부에서 외부로 나가는 아웃바운드를 규칙으로 설정하여 네트워크로 들어오고 나가는 데이터에 대한 제어와 필터링을 하는 것이다. 대부분 인바운드는 차단되어있고 아웃바운드는 거의 차단되어있지 않다. 이 점을 이용하여 모의해킹에서 사용하는 것이 리버스 텔넷(Reverse Telnet)이다. 리버스 텔넷은 내부에서 외부의 대상 PC에 연결 요청을하여 텔넷 통신을 하는 것이다.

 

구현방식에 따른 유형

방화벽의 구현 방식에 따라 약 5가지로 나눌 수 있다. 패킷 필터링(Packet Filtering), 애플리케이션 게이트웨어(Application Gateway), 회선 게이트웨이(Circuit Gateway), 상태 기반 패킷 검사(Stateful Packet Inspection), 혼합형 타입(Hybrid type)으로 나눠진다.

패킷 필터링(Packet Filtering)

패킷 필터링은 OSI7 계층에서 네트워크 계층과 전송 계층에서 동작한다. 해당 계층의 데이터를 가지고 인바운드와 아웃바운드 서비스를 제공하는 것으로 네트워크 계층에서는 IP 주소, 전송 계층에서는 Port주소와 TCP, UDP 의 프로토콜 종류에 대한 데이터를 얻을 수 있다. 해당 데이터들을 바탕으로 방화벽 정책을 세워 패킷을 필터링 한다.

장점으로는 다른 방화벽에 비해 속도가 빠르다. 확인하는 데이터가 다른 방화벽에 비해 적기 떄문이다. 또한 사용자에게 투명성을 제공하며, 새로운 서비스에 대해 비교적 쉽게 연동이 가능하다.

단점은 TCP/IP의 구조적 문제로 인해 네트워크 계층과 전송 계층의 패킷 헤더를 쉽게 조작할 수 있다는 점으로 필터링을 비교적 쉽게 우회할 수 있다. 또한 네트워크와 전송 계층만을 다루기 때문에 수집되는 정보가 한정적이고 해당 정보에 대한 로그만으로는 사용자가 어떤 행위를 했는지 등을 유추하기 힘들다.

 

애플리케이션 게이트웨이(Application Gateway)

애플리케이션 게이트웨이는 이름에서도 알 수 있듯이 애플리케이션 계층에서 동작하는 방화벽이다. 애플리케이션 계층에서 동작하는 만큼 로그에서 다양한 정보를 얻을 수 있으며 여러 유용한 기능들을 추가할 수 있다. 애플리케이션 게이트웨이는 Proxy Daemon을 이용하여 각 프로토콜을 개별적으로 관리할 수 있는데 그래서 Proxy Gateway라고도 한다. 여기서 프록시(Proxy)는 특정 작업을 수행하기 위해 가상의 객체를 만들어서 부가적인 작업을 수행할 수 있게 해주는 것이다. 그리고 Daemon은 프로세스를 관리하는 프로세스라고 생각하면 된다.

프록시 하면 프록시 서버도 생각날 수 있다. 간단히 프록시 서버를 설명해본다. 프록시 서버는 여러 목적으로 사용될 수 있는데 원래 목적은 좀 더 빠르게 웹을 이용하기 위해 사용되었다. 최근에는 IP 우회 등을 통해 특정 국가 IP로 접근할 수 없는 사이트를 접근하는 형태로도 사용된다. 프록시의 작동원리는 프록시 서버가 있고, 해당 프록시 서버를 통해 웹을 사용하려는 사용자가 있다.  사용자는 프록시 서버에게 원하는 웹사이트를 요청한다. 그러면 프록시 서버는 자신의 서버에 해당 사이트가 있는지 확인하고 있다면 해당 사이트를 사용자에게 바로 제공한다. 또는 사이트가 없다면 요청한 사이트에 접근하고 페이지에 대한 정보를 서버에 저장하여 사용자에게 제공한다. 이렇게 되면 해당 프록시 서버를 사용하는 사용자는 프록시 서버에 저장된 사이트의 경우 비교적 빠르게 접근할 수 있게 된다. 이 과정을 보면 IP 우회가 왜 되는지도 알 수 있다. 사용자는 프록시 서버에게 페이지를 요청하고 실질적으로 페이지를 요청하는 서버는 프록시 서버이기 때문에 응답하는 웹 페이지는 프록시 서버의 IP로 응답하게 된다. 떄문에 다른 IP로 우회하여 접근하는 느낌으로 사용할 수 있는 것이다.

이어서 애플리케이션 게이트웨이에 대한 설명이다. 애플리케이션 계층에서 동작하기 떄문에 많은 정보를 얻을 수 있다. 해당 정보를 바탕으로 사용자가 어떤 IP, Port로 접근했는지 접근해서 뭘 했는지 등을 알 수 있으며 해당 정보들을 통하여 악의적인 사용자에 대한 행동을 분석하고 어떤 피해를 당했는지 등 사고 분석을 할 수 있다.

장점으로는 Proxy를 통해서 연결이 허용되므로 내부 IP 주소를 숨길 수 있다. 즉, 이전에 설명한 프록시 서버와 같은 원리로 중간에 프록시 서버를 거쳐서 내부로 접근하기 때문에 외부에 노출되는 IP는 프록시 서버의 IP가 노출된다. 또한, 얻을 수 있는 정보가 많기 때문에 해당 정보들을 바탕으로 구체적인 정책을 세울 수 있어서 패킷 필터링에 비해 보안성이 우수하다.

단점으로는 새로운 서비스에 대한 유연성이 떨어지고 프록시를 한 번 거쳐서 오면서 여러 작업이 실행되어 성능이 떨어질 수 있다.

 

회선 게이트웨이(Circuit Gateway)

회선 게이트웨이는 애플리케이션 계층과 세션 계층사이에서 동작한다. 앞의 애플리케이션 게이트웨이에서 좀 더 수월한 관리를 위해 사용되며 똑같이 프록시를 이용한 필터링을 진행한다. 단, 회선 게이트웨이에서는 클라이언트 측에서 프록시를 인식할 수 있는 수정된 클라이언트 프로그램이 필요로하며 해당 프로그램이 설치된 클라이언트에서만 회선이 형성되어 통신이 가능하도록 한다. 프록시와 클라이언트를 연결해주는 프로그램으로는 SOCKS가 있다.

장점은 내부의 IP 주소를 숨길 수 있으며 투명한 서비스를 제공한다. 또한, 애플리케이션 게이트웨이에 비해서 관리가 수월하다.

단점은 SOCKS와 같은 프로그램이 필요하다는 것과 비표준 포트로 우회 접근 시 방어가 불가능하다는 점이있다.

 

상태 기반 패킷 검사(Stateful Packet Inspection)

상태 기반 패킷 검사는 방화벽 중 가장 강력한 것으로 OSI의 모든 계층에서 패킷을 분석하여 차단하는 기능을 한다. 패킷 필터링 방식에서 세션 추적 기능이 추가되었으며 패킷의 헤더 내용을 해석하여 정책에 위배되는 패킷은 차단해버린다. 패킷 필터링의 기술을 사용하여 클라이언트/서버 모델을 유지하면서 모든 계층의 전후 상황에 대한 문맥 데이터를 제공하여 기존 방화벽의 한계를 극복했다. 이러한 상태 기반 패킷 검사에서 한 단계 더 발전한 형태가 심층 패킷분석(Deep Packet Inspection)이다. 심층 패킷 분석은 패킷이 가지고 있는 콘텐츠까지 모두 검사하여 다양한 콘텐츠를 식별하고 분석할 수 있는 강력한 침입 차단 시스템이다. OSI 전 계층에 대해서 접근 통제도 할 수 있다.

장점으로는 서비스마다 특성, 통신 상태를 관리할 수 있기 때문에 동적으로 접근 규칙을 생성할 수 있다.

단점으로는 데이터 내부에 악의적인 정보를 포함할 수 있는 프로토콜에 대한 대응이 어렵다. 즉, 원래 의도한 방향과 다르게 악의적으로 사용될 수 있는 프로토콜에 대해 대응이 어려울 수 있다.

 

혼합형 타입(Hybrid type)

서비스 종류에 따라 복합적으로 구성하는 것이다.

장점은 서비스의 종류에 따라 사용자의 편의성, 보안성 등을 고려하여 방화벽 기능을 선택적으로 부여할 수 있다.

단점은 구축 및 관리가 어렵다.

 

방화벽 시스템 구축 유형

방화벽을 어느 위치에 어떻게 배치하는지에 따라서 구축 유형을 5가지로 나눌 수 있다.

스크리닝 라우터(Screening Router)

스크리닝 라우터

스크리닝 라우터는 IP, TCP, UDP 헤더 부분에 포함된 내용만 분석하여 동작하며 내부 네트워크와 외부 네트워크 사이의 패킷 트래픽을 허용/거부 하는 라우터이다.

장점은 필터링 속도가 빠르고 비용이 적게든다. 또한, 클라이언트와 서버의 변화 없이 설치가 가능하며 전체 네트워크에 대해 동일한 보호를 유지한다.

단점은 OSI 3, 4 계층에서만 동작하여 필터링 규칙을 검증하기 어렵다. 패킷 내의 데이터는 차단 불가 및 로그 관리가 어렵다.

 

베스천 호스트(Bastion Host)

베스천 호스트

베스천 호스트는 내부 네트워크와 외부 네트워크 사이에 즉, 내부 네트워크로 진입하기 전에 베스천 호스트를 두어 내부 네트워크를 전체적으로 보호한다. 베스천 호스트는 내부와 외부 사이에서 게이트웨이 역할을 하는 호스트를 의미한다. 단단한 성벽의 역할을 하는 것으로 접근 제어를 기본으로 프록시 기능을 사용하며, 인증, 로깅 등의 여러 작업을 수행하는 호스트이다.

장점은 스크린 라우터보다 안전하고 로그 정보 생성 관리가 편리하다. 접근 제어와 인증 및 로그 기능을 제공한다.

단점은 베스천 호스트 손상 시 내부망이 손상된다. 로그인 정보가 유출 될 시 내부망 침해가 가능하다.

 

듀얼 홈드 호스트(Dual-Homed Host)

듀얼 홈드 호스트

듀얼 홈드 호스트는 2개의 인터페이스를 가진 베스천 호스트로서 하나의 NIC(Network Interface Card)는 내부 네트워크와 연결하고 다른 NIC는 외부 네트워크와 연결한다. 방화벽은 하나의 네트워크에서 다른 네트워크로 IP 패킷을 라우팅하지 않기 때문에 Proxy 기능을 부여한다.

장점은 정보 지향적인 공격 방어가 가능하고 로깅과 정보 생성 관리가 편리하다. 또한 설치와 유지 보수가 편하다.

단점은 방화벽에서 보안 위반이 초래할 수 있다. 또한 간단한 서비스 구성의 경우 유지 보수가 편하지만 서비스가 늘어날 수록 힘들어진다.

 

스크린드 호스트(Screened Host)

스크린드 호스트

스크린드 호스트는 패킷 필터 라우터와 베스천 호스트로 구성되어있다. 페킷 필터 라우터는 외부 및 내부 네트워크에서 발생하는 패킷을 통과시킬 것인지 결정하고 외부에서 내부로 유입되는 트래픽은 베스천 호스트 로 검사된 패킷을 전송한다. 여기서 베스천 호스트는 내부 및 외부 네트워크 시스템에 대한 인증을 담당한다.

장점은 네트워크 계층과 응용 계층의 2단계 방어로 안전하다. 또한 융통성이 우수하고 듀얼 홈드의 장점을 그대로 유지할 수 있다.

단점은 스크리닝 라우터의 정보가 변경되면 방어가 불가능 하다. 또한 구축 비용이 많이든다.

 

스크린드 서브넷(Screened Subnet)

스크린드 서브넷

스크린드 호스트의 보안성 문제점을 해결한 것이다. 외부 네트워크와 내부 네트워크 사이에 하나 이상의 경계 네트워크를 두고 내부 네트워크를 외부 네트워크와 분리하기 위한 구조이다. 일반적으로 두 개의 스크리닝 라우터와 한 개의 베스천 호스트로 구성되어 있다.

장점은 스크린드 호스트의 장점을 유지하고 매우 안전한 구조이다.

단점은 설치 및 관리가 어렵고 구축비용이 높다. 또한 서비스 속도가 느려질 수 있다.

 

여기까지 방화벽의 구현, 구성에 따른 분류이다.

반응형