보안/CERT

방화벽의 종류

realforce111 2016. 6. 30. 18:11

방화벽 시스템은 OSI 참조 모델과 관련하여 방화벽 시스템이 동작하는 프로토콜 계층에 따라 분류될 수 있습니다. 계층 3인 네트워크 계층과 계층 4인 트랜스포트 계층에서 패킷 필터링 기능을 수행하는 스크리닝 라우터와 응용 계층에서 패킷 필터링 기능과 인증 기능 등을 수행하는 응용 계층의 게이트웨이로 분류할 수 있습니다. 일반적으로 스크리닝 라우터를 설계할 경우 [명확하게 내부 네트워크로의 진입이 방지되지 않은 트래픽은 네트워크로의 진입을 허용] 하는 패러다임을 사용하고, 게이트웨이 혹은 proxy 서버의 경우 [내부 네트워크로의 진입을 명확하게 허용하지 않은 트래픽은 내부 네트워크로의 진입을 방지]하는 패러다임에 입각하여 설계합니다.


스크리닝 라우터(Screening Router)

스크리닝 라우터는 OSI 참조 모델의 계층 3과 계층 4에서 동작되기 때문에 계층 3과 4에서 동작하는 프로토콜인 IP(Internet Protocol), TCP (Transmission Control Protocol) 혹은 UDP(User Datagram Protocol)의 헤더에 포함된 내용을 분석해서 동작합니다.

스크리닝 라우터란 네트워크에서 사용하는 통신 프로토콜의 형태, 근원지 주소와 목적지 주소, 통신 프로토콜의 제어 필드 그리고 통신 시 사용하는 포트 번호를 분석해서 내부 네트워크에서 외부 네트워크로 나가는 패킷 트래픽을 허가 및 거절하거나 혹은 외부 네트워크에서 내부 네트워크로 진입하는 패킷 트래픽의 진입 허가 및 거절을 행하는 라우터를 말합니다.

이러한 진입 허가 혹은 거절 결정은 패킷 필터 규칙에 따른 라우팅 테이블에 의해 결정됩니다. 일반 패킷과 특수한 프로토콜에 입각한 포트로 전송되는 패킷을 구별하는 능력 때문에 패킷 필터 라우터라고도 합니다.



패킷 필터의 동작
스크리닝 라우터로 연결에 대한 요청이 입력되면, IP, TCP 혹은 UDP의 패킷 헤더를 분석하여 근원지/목적지의 주소와 포트 번호, 제어 필드의 내용을 분석하고, 이들을 패킷 필터 규칙에 적용하여 계속 진입시킬 것인지 아니면 거절할 것인지를 판별합니다. 연결 요청 패킷의 진입이 허가되면 이후의 모든 패킷은 연결 단절이 발생할 때까지 모두 허용됩니다.



패킷 필터 규칙

패킷 필터 규칙은 근원지 주소, 근원지의 포트 번호, 목적지 주소, 목적지의 포트 주소, 프로토콜 플래그, 행위(허가/거절) 등으로 구성됩니다. 이러한 패킷 필터 규칙이 정해지면 인터넷 주소에 적용하는 허가 /거절하는 조건의 순차적인 액세스 집합인 액세스 리스트를 정의합니다.

스크리닝 라우터는 이러한 액세스 리스트를 가지고 프로그램 되며, 패킷을 허가 혹은 거절할 것인지를 액세스 리스트에 있는 행위에 대해서 순차적으로 결정하며, 패킷에 해당하는 액세스 리스트가 나타날 때까지 혹은 마지막 액세스 리스트에 도달할 때까지 순차적으로 점검합니다.

방화벽 시스템을 실현할 경우 액세스 리스트의 점검 순서는 매우 중요하기 때문에 액세스 리스트의 점검 순서를 신중히 검토하여 사용합니다.


*장점

- 필터링 속도가 빠르고, 비용이 적게 든다.

- 네트워크 계층에서 동작하기 때문에 클라이언트와 서버에 변화가 없어도 된다.

- 사용자에 대해 투명성을 유지한다.

- 하나의 스크리닝 라우터로 보호하고자 하는 네트워크 전체를 동일하게 보호할 수 있다.


*단점

- 네트워크 계층과 트랜스포트 계층에 입각한 트래픽만을 방어할 수 있다.

- 패킷 필터링 규칙을 구성하여 검증하기 어렵다.

- 패킷 내의 데이터에 대한 공격을 차단하지 못한다.

- 스크리닝 라우터를 통과 혹은 거절당한 패킷에 대한 기록(log)을 관리하기 힘들다.


Bastion 호스트

Bastion 호스트는 통신망을 보호하는데 중요한 방화벽 시스템으로 사용되며, 네트워크 관리자가 정기적으로 주의 깊게 감시 및 점검하여야 합니다. Bastion 호스트로는 상용 제품인 SPARCstation, IBM/AIX, NT Server 등이 사용될 수 있으며, 이들은 방어 기능이 철저히 구현된 호스트입니다. 이러한 Bastion 호스트는 인터넷 등의 외부 네트워크와 내부 네트워크를 연결해 주는 방화벽 시스템 역할을 합니다. 인터넷 사용자가 내부 네트워크로의 액세스를 원할 경우 우선 Bastion 호스트를 통과하여야만 내부 네트워크를 액세스하여 자원 및 정보를 사용할 수 있습니다.

해커 및 불법 침입자가 Bastion 호스트에 있는 중요한 정보를 악용하여 내부 네트워크로 접근하는 것을 방지하기 위해서는 Bastion 호스트 내에 존재하는 모든 사용자 계정을 지워야 하며, 중요하지 않은 파일이나 명령 및 유틸리티, IP forwarding 파일 그리고 라우팅 정보 등을 삭제하여야 합니다. Bastion 호스트로의 입력 시 강력한 인증 기법을 구현하여야 하며, Bastion 호스트는 내부 네트워크로의 접근에 대한 기록(log), 감사 추적을 위한 기록 및 모니터링 기능을 가지고 있어야 합니다.



그림은 방화벽 시스템으로 동작하는 Bastion 호스트를 이용하여 외부 네트워크의 불법 사용자들로부터 내부 네트워크로의 접근을 방지하는 구성도를 나타낸 것입니다.


*장점

- 응용 서비스 종류에 보다 종속적이기 때문에 스크리닝 라우터보다 안전하다.

- 정보 지향적인 공격을 방어할 수 있다.

- 각종 기록(logging) 정보를 생성 및 관리하기 쉽다.


*단점

- Bastion 호스트가 손상되면 내부 네트워크를 보호할 수 없다.

- 로그인 정보가 누출되면 내부 네트워크를 보호할 수 없다.


Dual-Homed 게이트웨이



Dual-Homed 게이트웨이는 두 개의 네트워크 인터페이스를 가진 Bastion 호스트를 말하며, 하나의 네트워크 인터페이스는 인터넷 등 외부 네트워크에 연결되며, 다른 하나의 네트워크 인터페이스는 보호하고자 하는 내부 네트워크에 연결되며, 양 네트워크 간의 라우팅은 존재하지 않습니다. 따라서 양 네트워크 간의 직접적인 접근은 허용되지 않습니다.


만약 라우팅이 가능하면 외부 네트워크로부터 내부 네트워크로의 액세스가 가능합니다. 라우팅이 없는 Dual-Homed 게이트웨이를 이용하여 인터넷 혹은 내부 네트워크의 정당한 사용자들이 응용 서비스를 제공받는 방법은 두 가지로 구분되는데, 첫째 방법은 Dual-Homed 게이트웨이상에서 실행되며 서비스를 제공하는 proxy 서버를 사용하는 것이고, 두 번째 방법은 응용 서비스를 제공해 주는 Dual-Homed 게이트웨이에 직접 로그인한 다음 다시 내부 네트워크로 접근하는 것인데, 이 경우 강력한 인증 방법이 게이트웨이에 구현되어야 합니다.


따라서 해커나 불법 침입자가 악용할 소지가 있는 명령어(suid, sgid 등), 유틸리티 및 불필요한 서비스, 프로그래밍 도구(컴파일러 등)를 이들이 사용할 수 없도록 Dual-Homed 게이트웨이에서 삭제하여야 하며, 라우팅이 되지 않도록 하여야 합니다. 또한 로그인에 대한 기록 정보 및 감시 추적에 필요한 기록을 정확히 유지 관리하여야 합니다. 외부 네트워크로부터 내부 네트워크로 진입하기 위해서는  Dual-Homed 게이트웨이를 통과하여야 합니다.


*장점

- 응용 서비스 종류에 좀 더 종속적이기 때문에 스크리닝 라우터보다 안전하다.

- 정보 지향적인 공격을 방어할 수 있다.

- 각종 기록 정보를 생성 및 관리하기 쉽다.

- 설치 및 유지 보수가 쉽다.


*단점

- 제공되는 서비스가 증가할수록 proxy 소프트웨어 가격이 상승한다.

- 게이트웨이가 손상되면 내부 네트워크를 보호할 수 없다.

- 로그인 정보가 누출되면 내부 네트워크를 보호할 수 없다.


스크린된(Screened) 호스트 게이트웨이



스크린된 호스트 게이트웨이는 Dual-Homed 게이트웨이와 스크리닝 라우터를 혼합하여 사용한 방화벽 시스템입니다. 방화벽 시스템의 구성 방법은 인터넷과 Bastion 호스트 사이에 스크리닝 라우터를 접속하고, 스크리닝 라우터와 내부 네트워크 사이에서 내부 네트워크상에 Bastion 호스트를 접속합니다.


인터넷과 같은 외부 네트워크로부터 내부 네트워크로 들어오는 패킷 트래픽을 스크리닝 라우터에서 패킷 필터 규칙에 의해 1차로 방어하고, 스크리닝 라우터를 통과한 트래픽은 모두 proxy 서버를 구동하는 Bastion 호스트에서 입력되는 트래픽을 점검하며, 스크리닝 라우터 혹은 Bastion 호스트를 통과하지 못한 모든 패킷 트래픽은 거절됩니다.


내부 네트워크로부터 인터넷 등으로 나가는 트래픽은 1차로 proxy 서버를 구동하는 Bastion 호스트에서 점검한 후 통과된 트래픽을 스크리닝 라우터로 보내고 스크리닝 라우터는 Bastion 호스트로부터 받은 트래픽을 인터넷 등의 외부 네트워크로 송신할 것인지 결정합니다. Bastion 호스트와 스크리닝 라우터를 통과한 트래픽만이 외부 네트워크로 전달되게 됩니다. Bastion 호스트는 외부 네트워크로 또는 외부 네트워크로부터의 서비스 요청을 허용할 것인지 아니면 거절할 것인지를 결정하기 위해서 응용 계층의 proxy 서버를 구동합니다.


스크리닝 라우터의 라우팅 테이블은 외부 트래픽이 Bastion 호스트로 입력되도록 구성되어야만 하며, 이 스크리닝 라우터의 라우팅 테이블은 침입자로부터 안전하게 보호되어야 하고 비인가된 변환을 허용해서는 안 됩니다. 만약 라우팅 테이블이 변환되어 외부 트래픽이 Bastion 호스트로 입력이 되지 않고 곧바로 내부 네트워크로 진입할 수 있다면 해커 및 불법 침입자는 내부 네트워크의 자원 및 정보를 변환, 파괴 등을 할 수 있습니다.


이와 같은 방화벽 시스템의 스크리닝 라우터에서는 정적 라우팅 테이블을 사용하는 것이 안전합니다.


*장점

- 2 단계로 방어하기 때문에 매우 안전하다.

- 네트워크 계층과 응용 계층에서 방어하기 때문에 공격이 어렵다.

- 가장 많이 이용되는 방화벽 시스템이며, 융통성이 좋다.

- Dual-Homed 게이트웨이의 장점을 그대로 가진다.


*단점

- 해커에 의해 스크리닝 라우터의 라우팅 테이블이 변경되면 이들을 방어할 수 없다.

- 방화벽 시스템 구축 비용이 많다.


스크린된 서브네트 게이트웨이
인터넷과 내부 네트워크를 스크린된 게이트웨이를 통해서 연결하며, 일반적으로 스크린된 서브네트에는 방화벽 시스템이 설치되어 있으며, 인터넷과 스크린된 서브네트 사이 그리고 서브네트와 내부 네트워크 사이에는 스크리닝 라우터를 사용합니다. 이와 같은 방화벽 시스템의 구성도는 아래 그림과 같습니다.



스크리닝 라우터는 인터넷과 스크린된 서브네트 그리고 내부 네트워크와 스크린된 서브네트 사이에 각각 놓이며, 입출력되는 패킷 트래픽을 패킷 필터 규칙을 이용하여 필터링하게 되며, 스크린된 서브네트에 설치된 Bastion 호스트는 proxy 서버(응용 게이트웨이)를 이용하여 명확히 진입이 허용되지 않은 모든 트래픽을 거절하는 기능을 수행합니다. 이러한 구성에서 스크린된 서브네트에 대한 액세스는 Bastion 호스트를 통해서만 가능하기 때문에 침입자가 스크린된 서브네트를 통과하는 것은 어렵습니다.


만약 인터넷을 통해 내부 네트워크로 침입하려고 한다면 침입자는 자기가 자유롭게 내부 네트워크를 액세스할 수 있도록 인터넷, 스크린된 서브네트 그리고 내부 네트워크의 라우팅 테이블을 재구성해야만 가능합니다. 그러나 스크리닝 라우터가 존재하기 때문에 이는 힘들게 됩니다. 비록 Bastion 호스트가 침해되었더라도 침입자는 내부 네트워크상에 존재하는 호스트로 침입해야 하고, 그리고 스크린된 서브네트를 액세스하기 위해서 스크리닝 라우터를 통과해야 합니다.


*장점

- 스크린된 호스트 게이트웨이 방화벽 시스템의 장점을 그대로 가진다.

- 융통성이 뛰어나다.

- 해커들이 내부 네트워크를 공격하기 위해서는 방어벽을 통과할 것이 많아 침입이 어렵다.

- 매우 안전하다.


*단점

- 다른 방화벽 시스템들 보다 설치하기 어렵고, 관리하기 어렵다.

- 방화벽 시스템 구축 비용이 많다.

- 서비스 속도가 느리다.


Proxy 서버/응용 게이트웨이

응용 게이트웨이 혹은 proxy 서버는 방화벽 시스템(일반적으로 Bastion 호스트)에서 구동되는 응용 소프트웨어를 말하는데 store-and-forward 트래픽뿐만 아니라 대화형의 트래픽을 처리할 수 있으며, 사용자 응용 계층 (OSI 참조 모델의 계층 7)에서 트래픽을 분석할 수 있도록 프로그램 됩니다. 따라서 이것은 사용자 단계와 응용 프로토콜 단계에서 액세스 제어를 제공할 수 있고, 응용 프로그램의 사용에 대한 기록(log)을 유지하고 감시 추적을 위해서도 사용될 수 있습니다. 응용 게이트웨이는 사용자 단계에서 들어오고 나가는 모든 트래픽에 대한 기록을 관리하고 제어할 수 있으며, 해커 및 불법 침입자를 방어하기 위해서 강력한 인증 기법이 필요합니다.


응용 게이트웨이는 사용되는 응용 서비스에 따라 각각 다른 소프트웨어를 구현하여 사용하기 때문에 고수준의 보안을 제공할 수 있습니다. 네트워크에 첨가되고 보호가 필요한 새로운 응용 이 생기면 이를 위해 새로운 특수 목적용 코드를 생성해야 합니다. 응용 레벨 게이트웨이를 사용하기 위해서 사용자는 응용 게이트웨이 장치에 로그인하거나 서비스를 이용할 수 있는 특수한 클라이언트 응용 서비스를 실현해야 합니다. 각각 응용에 따라 다르게 사용하는 특수한 게이트웨이는 제각기 내부에 관리 도구와 명령 언어를 가지고 있습니다.

응용 게이트웨이는 실제 서버의 관점에서 볼 때 클라이언트처럼 동작하며, 클라이 언트 관점에서 볼 때는 실제 서버처럼 동작합니다. 응용 게이트웨이의 실현 예는 TELNET 게이트웨이, FTP 게이트웨이, Sendmail, NNTP News Forwarder 등이 있습니다.


*장점

- 응용 서비스마다 각각 다른 응용 게이트웨이를 구현하므로 보다 안전하게 보호할 수 있다.

- 응용 사용에 따른 기록 및 감시 추적을 유지 관리 가능하다.

- 융통성이 좋다.

- 정보보호 서비스를 응용 게이트웨이에 구현 가능하다.


*단점

- 응용 서비스마다 제각기 다른 응용 게이트웨이가 필요하다.

- 사용되는 응용 서비스가 증가할수록 구축 비용이 증가한다.