Doctor Pepper

[보안] 보안 솔루션의 종류 (2) - 방화벽 본문

네트워크/기술

[보안] 보안 솔루션의 종류 (2) - 방화벽

Doctor Pepper 2024. 11. 21. 14:25
728x90

 

 네트워크 보안은 개별 호스트에서 수행되는 보안과 달리, 여러 호스트를 동시에 관리하고 보호할 수 있다는 장점이 있다. 그러나 네트워크 보안을 적용하는 과정에서 발생하는 문제는, 대량의 트래픽을 처리해야 하므로 성능 저하를 최소화하면서 보안을 강화하는 것이다. 이를 해결하기 위해, 네트워크 보안 전문 기업들은 성능 저하 없이 보안을 강화할 수 있는 다양한 기술을 적용하여 보안 장비를 개발하고 있다.

 

 그 중에서도 방화벽은 가장 널리 사용되는 필수 네트워크 보안 장비이다. 방화벽은 종종 다른 보안 장비와 함께 사용되기도 하지만, 각 장비가 동작하는 계층과 제공하는 기능에 따라 세부적으로 구분될 수 있다.

 

1. 방화벽의 정의

 방화벽은 네트워크의 중간에 위치하여, 통과하는 트래픽을 사전에 설정된 정책에 따라 허용하거나 차단하는 장비이다. 이를 통해 네트워크를 보호하고, 외부의 악성 트래픽으로부터 내부 시스템을 안전하게 지킬 수 있다.

 

 네트워크 보안을 제공하는 장비를 넓은 의미에서 모두 방화벽으로 볼 수 있지만, 앞서 언급한 것처럼 다양한 네트워크 보안 장비들이 존재하며, 각 장비는 목적동작 방식에 따라 다르다. 일반적으로 방화벽은 네트워크의 3, 4 계층에서 동작하며, 세션을 인지하는 상태 기반 엔진(Stateful Packet Inspection, SPI)을 사용하여 트래픽을 처리한다.

 

2. 초기 방화벽

 초기 방화벽은 현대의 상태 기반 방화벽(Stateful Inspection, SPI)이 아닌, 스테이트리스(Stateless) 방화벽 또는 패킷 필터(Packet Filter) 방화벽으로 불렸다. 이들은 패킷의 상태나 세션 정보를 고려하지 않고, 오직 장비에 설정된 정책만을 기준으로 트래픽을 필터링했다. 즉, 패킷의 인과 관계방향성을 인식하지 않고 단순히 설정된 규칙을 적용했기 때문에, 상태 기반 엔진이 없는 초기 방화벽은 제한적인 보안 기능을 제공했다.

 

- 패킷 필터링 방식

 

 패킷 필터링 방화벽은 들어오는 패킷이 방화벽에 설정된 정책과 일치하는지를 확인한다. 이때 패킷을 식별하는 기준은 5-튜플(5-Tuple)이라고 불리는 다섯 가지 요소이다.

 

  • Source IP (출발지 IP 주소)
  • Destination IP (목적지 IP 주소)
  • Protocol No (프로토콜 번호)
  • Source Port (출발지 포트 번호)
  • Destination Port (목적지 포트 번호)

 패킷이 이러한 조건에 부합하는지 확인하고, 정책에 맞는 처리를 한다. 만약 일치하는 규칙이 있으면 해당 정책에 따라 패킷을 허용하거나 차단한다.

 

 

- 한계와 문제점

 패킷 필터링 방화벽은 간단한 정책을 적용할 때는 효과적이지만, 인터넷 통신과 같은 불특정 다수를 대상으로 하는 정책을 설정할 때는 여러 가지 문제를 야기할 수 있다. 예를 들어, 룰셋이 복잡해지고, 보안이 약화되는 상황이 발생할 수 있다. 또한, 3계층(네트워크)과 4계층(전송) 헤더를 변조한 공격에 대해서는 적절한 방어가 어려워진다.

 

- 현대의 사용

 비록 패킷 필터링 방화벽은 여러 가지 한계가 있지만, 간단한 처리부하가 적은 동작 방식 덕분에 완전히 사라지지 않았다. 여전히 일부 네트워크 장비에서 사용되고 있으며, 현대의 방화벽 시스템에서도 특정 기능을 위해 여전히 활용된다. 예를 들어, 지정된 IP들에 대한 차단이나 허용 작업을 수행할 때, 간단한 패킷 필터링이 부하를 최소화하는 데 유용하다. 현대의 일부 방화벽은 패킷 필터링상태 기반 SPI 엔진을 함께 사용하여, 효율성과 보안성을 동시에 추구한다.

 

3. 현대적 방화벽의 등장 : SPI 엔진

 기존의 패킷 필터링 방화벽은 패킷의 상태 값을 고려하지 않고 단순히 설정된 정책에 따라 트래픽을 제어하는 방식이었다. 이 방식은 여러 가지 한계를 가지고 있었고, 특히 복잡한 네트워크 환경에서 효과적인 보안을 제공하는 데 어려움이 있었다. 이를 극복하기 위해 상태 기반 방화벽(Stateful Inspection Firewall, SPI)이 등장했다. 현재 대부분의 현대적 방화벽은 세션 기반으로 동작하며, 상태 기반(SPI) 엔진을 탑재하여 더 정교한 트래픽 분석과 제어를 가능하게 한다.

 

- 패킷 필터링 방화벽의 한계

 

 패킷 필터링 방화벽은 트래픽을 검사할 때 패킷의 조건(예: IP 주소, 포트 번호 등)만을 기준으로 허용하거나 차단한다. 그러나 이 방식은 방향성을 인지하지 못하고 단순히 패킷의 조건만 검사하기 때문에 양방향 통신을 처리하는 데 문제가 생긴다. 예를 들어, 내부 사용자가 외부 웹사이트에 접속하려고 할 때, 클라이언트는 3-way handshake를 거쳐 HTTP 요청을 보낸다. 패킷 필터링 방화벽은 출발지와 목적지 조건만 확인하고, 응답 패킷에 대한 정책을 따로 정의하지 않으면 정상적인 통신이 이루어지지 않는다.

 

- SPI 방화벽의 개선점

 

 상태 기반 방화벽은 이러한 문제를 해결하기 위해 등장했다. SPI 엔진은 패킷의 인과 관계와 방향성을 인식하여 보다 세밀한 제어를 가능하게 한다. 예를 들어, 내부 네트워크에서 외부로 요청을 보낸 후, 해당 요청에 대한 응답 패킷이 올 때 이를 구분할 수 있다. 이를 통해, 외부에서 들어오는 응답 패킷을 정상적인 세션과 연관지어 처리하며, 양방향 통신을 보다 안전하게 관리할 수 있다.

 

 이 방식은 보안성을 크게 향상시키고, 불특정 다수의 웹사이트와의 통신에서도 정상적인 응답만 허용되도록 정책을 정교하게 설정할 수 있다. 상태 기반 방화벽은 이러한 동작을 통해, 트래픽을 처리하는 정확성과 보안성을 높여준다.

 

4. 방화벽 동작 방식

 최근의 방화벽은 보안을 강화하고 성능을 높이기 위해 여러 개의 엔진과 다양한 기능을 탑재하고 있다. 이로 인해 각 방화벽의 동작 방식이나 패킷 처리 순서는 다를 수 있다. 따라서, 모든 방화벽이 동일한 방식으로 동작하지는 않는다.

※참고 : 간단한 상태 기반 방화벽의 패킷 플로
 방화벽 제조사마다 방화벽의 동작 방식에 차이가 있기 때문에, 방화벽을 도입하거나 운영하기 전에 해당 제조사가 제공하는 Packet Processing Flow 문서를 반드시 확인하는 것이 중요하다. 이를 통해 각 방화벽의 트래픽 처리 흐름을 이해하고, 보안 정책을 효과적으로 설정할 수 있다.

 

- 방화벽 패킷 처리 순서

  1. 패킷이 장비에 들어오면, 먼저 세션 상태 테이블을 확인한다.
  2. 조건에 맞는 세션 정보가 세션 테이블에 있을 경우, 포워딩 테이블을 확인한다. (이때 라우팅ARP도 포함된다.)
  3. 조건에 맞는 세션 정보가 세션 테이블에 없을 경우, 방화벽 정책을 확인한다.
  4. 방화벽 정책은 상단부터 확인하여, 최종 정책까지 확인한다. 만약 일치하는 정책이 없으면, 암시적 거부(Implicit Denial) 규칙에 따라 패킷을 차단한다.
  5. 허용 규칙이 있을 경우, 해당 내용을 세션 테이블에 기록한다.
  6. 포워딩 테이블을 다시 확인한다. (여기서도 라우팅ARP가 포함된다.)
  7. 조건에 맞는 정보가 포워딩 테이블에 있을 경우, 적절한 인터페이스를 통해 패킷을 포워딩한다.
  8. 조건에 맞는 정보가 포워딩 테이블에 없을 경우, 패킷을 폐기한다.

 SPI 엔진을 탑재한 방화벽은 세션 인지 기능을 가지고 있기 때문에, 단순히 5-튜플 조건만 확인하는 것이 아니라, OSI 3, 4 계층의 세부적인 필드까지 검사한다. 예를 들어, TCP 컨트롤 플래그에 따라 동작 방식이 변화하거나, 시퀀스 번호ACK 번호가 갑자기 변경되는 경우를 인지하여 세션 탈취 공격을 방어할 수 있다. 이를 TCP Anti-Replay 기능이라고 한다.

 

또한, 세션을 추가로 인지하고 이를 세션 테이블에 저장함으로써, 세션을 로깅하는 것이 가능하다. 대부분의 방화벽은 통신의 전체 세션로그로 저장할 수 있으며, 보안 사고 발생 시, 이러한 세션 로그를 기반으로 어떤 통신에 문제가 있었는지를 분석할 수 있다.

※참고 : 5-튜플 데이터
 5-튜플(5-Tuple)은 TCP/IP 연결을 구성하는 5개의 서로 다른 값의 집합이다. 이는 네트워크 통신에서 각 패킷을 고유하게 식별하기 위해 사용된다.
  1. Source IP: 데이터를 전송하는 출발지의 IP 주소
  2. Source Port: 데이터를 전송하는 출발지의 포트 번호
  3. Destination IP: 데이터를 수신하는 목적지의 IP 주소
  4. Destination Port: 데이터를 수신하는 목적지의 포트 번호
  5. Protocol: 사용된 프로토콜 번호 (예: TCP는 6, UDP는 17)
이 5가지 정보는 네트워크에서 특정 연결을 식별하고, 트래픽을 관리하는 데 중요한 역할을 한다.

 

5. ALG

 방화벽은 패킷 필터 엔진보다 더 세부적인 헤더 정보를 확인하고 세션을 인지할 수 있지만, 애플리케이션 레벨헤더 정보는 처리할 수 없다. 이로 인해, 세션 기반 방화벽이 등장하기 이전에 개발된 고대 프로토콜들은 방화벽과 같은 세션 장비를 고려하지 않고 설계되어, 통신 중간에 방화벽이 있을 경우 정상적인 통신이 불가능한 상황이 발생할 수 있다. 가장 대표적인 예시가 FTP이다.

 

- FTP의 기본 동작

 FTP컨트롤 프로토콜데이터 프로토콜이 분리되어 동작하는 프로토콜이다. FTP는 컨트롤 프로토콜데이터 프로토콜이 반대 방향으로 세션을 맺기 때문에, 방화벽이 FTP 프로토콜을 이해하지 못하면 정상적인 서비스가 불가능해진다.

  1. 클라이언트는 랜덤 포트 2000을 사용해 서버의 커맨드 포트(21)에 접속하고, 데이터 전송을 위한 2001(n+1)번 포트를 서버에 전송한다.
  2. 서버는 클라이언트의 커맨드 포트(21)로 응답한다.
  3. 서버는 서버의 데이터 포트(20)를 사용해 클라이언트의 데이터 포트(2001)로 접속한다.
  4. 클라이언트는 서버의 데이터 포트에 응답한다.

- FTP 액티브 모드

 

 세션 기반 방화벽세션의 방향성을 인지하는데, FTP의 액티브 모드(Active Mode)에서는 초기 접속 방향과 반대로 데이터 프로토콜이 동작하므로 방화벽을 통과할 수 없다.

 

 이 문제를 해결하기 위해 패시브 모드(Passive Mode)로 전환할 수 있지만, 일부 시스템이나 애플리케이션에서 패시브 모드를 지원하지 않거나 변경할 수 없는 경우가 있다. 이런 상황에서 FTP 액티브 모드를 통과시키기 위해 방화벽은 애플리케이션 프로토콜을 인식하고 필요에 따라 세션을 추적하여 포트를 자동으로 열어준다. 이를 ALG (Application Layer Gateway) 기능이라고 한다.

 

 ALG 기능PAT(Port Address Translation) 기능을 갖춘 방화벽에서, PAT을 정상적으로 통과하지 못하는 프로토콜들을 자동으로 인식하고, 애플리케이션 정보를 수정하거나 세션 테이블을 생성하여 처리한다. FTP ALG가 작동하려면, 방화벽이 패킷을 처리하는 동안 해당 패킷이 참조하는 정책에 ALG 기능이 활성화되어 있어야 한다.

 

- FTP 프로토콜이 방화벽을 통과하는 동작 순서

  1. FTP ALG 기능초기 FTP 요청 커맨드를 모니터링한다.
  2. 서버가 데이터 세션을 위한 포트를 클라이언트에게 알리면, 해당 정보를 확인하여 적절한 세션 정보를 생성한다. 이때, 서버의 출발지 IP는 TCP 20번 포트이며, 클라이언트의 IP와 서버에서 알려준 포트를 도착지로 하여 세션을 세션 테이블에 등록한다.
  3. 서버가 클라이언트로 데이터 세션을 열 때, 세션 테이블에 이미 정보가 저장되어 있어 정책 확인 없이 패킷이 포워딩된다.

- ALG의 한계와 발전

 FTP ALG 기능액티브 모드와 같은 방화벽이 이해할 수 없는 프로토콜을 통과시키는 유용한 기능이지만, 모든 프로토콜에 대해 ALG가 개발되지는 않았다. ALG는 중요한 프로토콜을 지원하지만, 모든 프로토콜을 완벽하게 처리할 수는 없기 때문에, 완벽한 해결책이 될 수 없다. 최근 대부분의 애플리케이션은 방화벽이나 NAT(Network Address Translation)를 고려하여 개발되고 있으며, STUN(Session Traversal Utilities for NAT)과 같은 홀 펀칭(Hole Punching) 기술이 발전하면서, 오래된 프로토콜을 제외한 대부분의 애플리케이션은 ALG 기능 없이 동작할 수 있게 되었다.

 

6. 방화벽의 한계

 상태 기반 방화벽의 등장으로 많은 공격을 효과적으로 방어할 수 있게 되었다. 이전의 패킷 기반 방화벽은 전문적인 지식과 복잡한 설정을 요구했지만, 상태 기반 방화벽은 상대적으로 간단한 정책으로 방화벽을 관리할 수 있게 하여 많은 네트워크에서 활용되었다. 하지만 방화벽이 널리 사용되면서 기존의 공격 방법들이 효과를 잃고, 새로운 공격 방식들이 등장하게 되었다. 그 중에서도 서비스 중단을 목표로 하는 DDoS 공격이 큰 트렌드로 자리 잡았다.

 

 기존의 패킷 필터링으로는 방어가 어려워지면서, 방화벽 우회 공격이 점차 발전했다. 특히 대규모 웜 공격으로 인터넷 서비스가 마비되는 사례가 발생하면서 방화벽의 한계가 뚜렷하게 드러났다. SPI 엔진을 사용하는 방화벽은 적은 리소스로도 다양한 공격을 쉽게 방어할 수 있었기 때문에 네트워크 보안의 필수 요소로 자리잡았지만, OSI 3, 4 계층에서만 동작하기 때문에 한계가 명확하다.

 

 방화벽은 애플리케이션 레벨에서 발생하는 공격을 처리할 수 없었다. 예를 들어, 알려진 취약점을 악용한 공격이나 바이러스, 백도어, 인터넷 웜에 대한 방어는 방화벽만으로는 불가능했다. 방화벽은 주로 패킷 레벨에서만 필터링을 수행하기 때문에, 애플리케이션애플리케이션 프로토콜에서 발생하는 취약점과 공격을 인지할 수 없었다. 또한, ALG 기능을 통해 일부 애플리케이션을 인지하고 처리할 수는 있었지만, 이는 근본적인 해결책이 아니었다.

 

이러한 한계를 극복하기 위해 IPS (Intrusion Prevention System)가 등장했다. IPS웜 공격과 같은 애플리케이션 레벨에서 발생하는 공격을 감지하고 차단할 수 있는 기능을 제공하며, 방화벽과 함께 네트워크 보안의 중요한 구성 요소로 자리잡았다. 이 외에도 진화하는 공격을 방어하기 위해 다양한 네트워크 보안 장비들이 개발되고 있으며, 방화벽만으로는 완전한 보안을 제공할 수 없다는 점이 점차 부각되고 있다.

※ 참고 : 현대 방화벽 NGFW, UTM
 현대의 방화벽은 사이버 공격의 복잡성과 악성도가 증가함에 따라 지속적으로 발전해왔습니다. 기존의 상대 기반 방화벽은 '레거시 방화벽(Legacy Firewall)'이라고 불리며, 이는 전통적인 네트워크 보안 방식에 의존하던 시스템입니다. 하지만 현대의 사이버 위협에 대응하기 위해 방화벽은 단순히 네트워크 트래픽을 필터링하는 수준을 넘어, 다양한 보안 기능을 통합하고 있습니다.
현재 사용되는 두 가지 주요 보안 장비인 NGFW(Next Generation Firewall)와 UTM(Unified Threat Management Firewall)은 방화벽의 기능을 확장한 형태로, 애플리케이션 계층까지 보안을 제공할 수 있도록 설계되었습니다.
  • NGFW (Next Generation Firewall): NGFW는 기존의 방화벽 기능을 넘어, 애플리케이션 수준의 보안까지 지원하는 보안 장비입니다. 다양한 보안 기능들이 논리적으로 통합되어 있어, 네트워크의 트래픽을 세밀하게 분석하고, 애플리케이션 계층에서 발생할 수 있는 위협까지 차단할 수 있습니다. 특히, NGFW는 APT(Advanced Persistent Threat) 공격 대응을 위한 샌드박스 기능과 같은 고급 보안 기능을 제공하는 경우도 있습니다.
  • UTM (Unified Threat Management Firewall): UTM은 여러 개의 보안 엔진을 물리적으로 하나의 장비에 통합하여 동작하는 방식입니다. 방화벽 외에도 침입 탐지/차단 시스템(IDS/IPS), 바이러스 방어, 이메일 필터링, VPN 기능 등 다양한 보안 기능을 하나의 장비에서 제공하여, 네트워크 보안을 효율적으로 관리할 수 있습니다.
두 장비 모두 애플리케이션 계층에서 발생할 수 있는 위협을 처리하고, 복잡한 사이버 공격에 대한 방어를 강화하는 데 중점을 둔 통합 보안 솔루션입니다. 다만, NGFW는 기능이 논리적으로 통합되어 있는 반면, UTM은 다양한 엔진을 물리적으로 결합해 사용하는 방식에서 차이가 있습니다.

※ 참고 : NFV
 최근 네트워크 기능을 가상화하여 범용 하드웨어에서 구현하려는 기술인 NFV(Network Function Virtualization)가 주목받고 있다. NFV는 전통적인 네트워크 장비들을 범용 x86 기반의 서버에 가상화하여 라우터, 방화벽, L4 스위치 등 다양한 네트워크 컴포넌트를 소프트웨어 형태로 구현할 수 있게 한다. 이를 통해 전용 하드웨어 장비의 필요성을 줄이고, 비용 효율적인 네트워크 인프라를 구축할 수 있다.

 NFV는 ASIC(특정 응용을 위한 집적회로)와 같은 전용 칩을 사용할 수 없어 성능에 제한이 있을 수 있지만, 서비스 체이닝 기술을 통해 네트워크 서비스의 추가, 삭제 및 변경이 유연하고 간편하게 이루어질 수 있다. 또한, DPDK(데이터 플레인 개발 키트)SR-IOV(가상화된 I/O 기능)와 같은 I/O 가속 기술이 적용되면서 대형 서비스 제공업체들 사이에서 실제 환경에 점차적으로 도입되고 있다. 그러나 전용 어플라이언스 장비와 비교했을 때 성능이나 기능에서 여전히 한계가 존재하는 부분이 있다.

 기존의 전문화된 네트워크 보안 장비들은 각기 다른 보안 기능을 제공하며, 이를 운영하기 위해 복잡한 네트워크 구조를 필요로 했다. 이러한 복잡성을 해결하기 위해 네트워크 보안 기술은 발전하여, 다양한 보안 장비들을 하나로 통합하거나, 여러 장비들이 유기적으로 협력하여 동작하는 방향으로 변화하고 있다. 이러한 변화는 보안의 효율성을 높이고, 관리 복잡성을 줄이는 데 기여하고 있다.

728x90