Firewall
방화벽
- Premises Network와 Internet 사이의 제어 가능한 Link를 형성해주고 외부로부터 보안을 강화해주는 메커니즘이다.
- Premises Network를 Internet-Based Attack으로부터 방어하고,
보안성 강화와 감시를 위해 Single Choke Point를 제공한다.
- Defense 측면에서 추가적인 Layer를 제공하며,
내부 시스템을 외부 시스템으로부터 격리시키는 효과를 가져온다.
Firewall Design Goals (방화벽 설계 목적)
- 내부에서 외부로, 외부에서 내부로의 모든 트래픽은 반드시 방화벽을 통해야 한다.
- Local Security Policy에 따라, 반드시 Authorized Traffic만 방화벽을 통과할 수 있다.
- 방화벽은 그자체로 침투하기 힘든 시스템이어야 한다.
Access Control and Security Policy Mechanism of Firewall Characteristics
(방화벽에서 제공하는 접근 제한과 보안 정책)
- IP Address and Protocol Values
- 방화벽은 Inbound and Outbound(내부와 외부를 오가는) Internet Service의 종류를 제한할 수 있다.
- 방화벽은 IP Address, Port Number, Protocol(L3, L4)을 기반으로 Traffic을 Filtering할 수 있다.
- 방화벽은 Proxy Software를 통해 특정 Service에 대한 요청 메시지를 수정할 수 있다.
- 방화벽에서 Web Server, Mail Server와 같은 서비스를 직접 운영할 수 있다. - Application Protocol
- 방화벽은 Authorized Application Protocol Data에 대한 Access Control을 수행할 수 있다.
- 이러한 Filtering으로 Application Layer의 Gateway에서 오가는 정보들을 Relay하거나 Monitor한다.
- SMTP의 Spamfiltering이나, HTTP의 Authorized Site에 대한 Web Request가 이에 해당된다. - User Identify
- 방화벽은 User의 Identity를 기반으로 Access Control을 수행할 수 있다.
- 이때, User는 일반적으로 방화벽 내부의 사용자들을 지칭하며,
외부 사용자에 대한 Access Control은 IPSec과 같은 Authentication Mechanism을 통해야 한다. - Network Activity
- 방화벽은 특정 서비스가 어떻게 사용될지를 정의한다.
- 방화벽은 스팸 메일을 제거하기 위해 수신 이메일들을 Filtering하거나,
외부 웹 서버가 접근할 수 있는 정보들을 제한한다.
Firewall Classification (방화벽의 종류)
- 방화벽은 종류에 따라
기준을 통과하는 패킷만을 허용하는 Positive Filter를 선택하거나,
특정 조건에 해당되는 패킷은 거부하는 Negative Filter를 선택할 수 있고,
각 패킷의 헤더에서 하나 혹은 여러 개의 프로토콜을 검사할 수도 있으며,
페이로드 또한 검사할 수 있다.
- 방화벽은 Deployment되는 Layer에 따라 아래와 같은 종류로 구분된다.
- Packet Filtering Firewall (패킷 필터링 방화벽) (L3; IP Layer)
- Stateful Inspection Firewall (상태 유지 검사 방화벽) (L4; TCP Layer)
- Circuit-Level Gateway (회선 레벨 게이트웨이) (L4; TCP Layer)
- Application-Level Gateway (응용 레벨 게이트웨이) (L5; Application Layer)
Packet Filtering Firewall (패킷 필터링 방화벽)
- Incoming and Outgoing IP Packet들을 미리 정해진 규칙에 의거하여 Relay하거나 Discard한다.
- 오고가는 각각의 Packet에 대한 Filtering만을 결정하고, 상위 계층의 Context는 고려하지 않는다.
- Default Policy에 따라, 아래처럼 크게 두 가지 중 하나로 동작한다.
- Default = discard (Conservative)
- 허락되지 않은 모든 Packet은 폐기한다. - Default = forward
- 거부대상이 아닌 이상, 모든 Packet을 허용한다.
- 패킷 필터링 방화벽의 설정 요소는 아래와 같다.
Inspects | Description |
Direction | - Inbound | Outbound 중 하나 |
Source Address | - 출발지의 IP 주소 |
Source Port Number | - 출발지의 포트번호 |
Destination Address | - 도착지의 IP 주소 |
Destination Port Number | - 도착지의 포트번호 |
Protocol | - 프로토콜 |
Flag | - Flag Bits (SYN, ACK, etc) |
Action | - Permit | Deny 중 하나 |
- 패킷 필터링 방화벽의 장단점은 아래와 같다.
Pros of Packet Filtering Firewall | Cons of Packet Filtering Firewall |
- 구조가 단순하여 동작 속도가 빠르다. | - 상위 계층 데이터를 검사하지 않아, 특정 Application의 취약점을 노린 공격을 방어할 수 없다. (TCP Connection이나 Application Data를 검사하지 않는다.) - 방화벽이 접근 가능한 정보가 제한적이라 기능이 제한적이다. - Advanced User Authentication을 지원하지 않는다. (상위 계층의 기능을 지원하지 않기 때문이다.) - Protocol Stack의 문제를 악용한 공격에 취약하다. (L3 주소가 무단 수정된 패킷을 감지하지 못한다.) - 설정 실수로 인해 보안 문제가 발생하는 경우가 잦다. - NAT Device를 거쳐 들어오는 Packet의 Port 번호는 제대로 Filtering되지 않을 수 있다. |
* NAT (네트워크 주소 변환) (URL)
- 아래는 패킷 필터링 방화벽에 대해 가능한 공격법과 그에 대한 대응책들이다.
Attacks on Packet Filtering Firewall | Countermeasures |
IP Address Spoofing - 공격자가 시스템 내부 호스트의 주소를 Source Address로 위장한 Packet을 전송하는 공격이다. |
- Ingress Packet들 중, 방화벽 내부의 주소를 하고 있는 Packet을 Discard한다. |
Source Routing Attacks - 공격자가 패킷의 Route를 명시적으로 지정하여 접근 불가능한 내부 사설망에 침투하려 하는 공격이다. |
- 방화벽에서 TCP Header의 Signal이 Source Routing인 Packet을 Discard한다. |
Tiny Fragment Attacks - 공격자가 IP Fragmentation을 이용하여 TCP Header가 분리되도록 작게 Packet을 나누어 방화벽에서 Header 정보에 의해 Filtering되는 것을 우회하는 공격이다. |
- 방화벽에 도착하는 첫 번째 Fragment가 최소 크기의 Header를 갖추고 있는지를 검사하여 최소 크기 이하의 Packet을 Discard한다. |
Port Scanning - 공격자는 Packet Filtering Firewall의 유무를 확인하기 위해 TCP ACK Scan(ACK가 통과되는지를 확인)을 수행한다. |
- SYN과 ACK의 상태와 순서를 기록하는 Stateful Inspection Firewall로 대응한다. |
* Port Scanning
- 공격자(Trudy)는 TCP ACK Scan을 통해 1209 포트가 Firewall에 Filtering 되지 않음을 확인할 수 있다.
(Filtering된 Packet에 대해서는 응답이 오지 않기 때문이다.)
Stateful Inspection Firewall (상태 유지 검사 방화벽)
- 방화벽 외부와의 TCP Connection 정보를 저장하고 있는 List를 관리하며,
Packet Filtering Firewall보다 까다로운 규칙들을 TCP Traffic에 적용하며,
방화벽은 규칙에 부합하는 Incoming Traffic만을 허용한다.
- 기본적으로 Stateful Inspection Firewall은 Packet Filtering Firewall이 검사하는 모든 항목을 동일하게 검사하고,
추가적으로 각 TCP Connection에 대한 정보도 기록한다.
- Hijacking을 방지하기 위해, TCP Sequence까지 기록 및 검사하기도 하며,
FTP, IM, SIPS와 같은 프로토콜의 데이터 일부를 검사하기도 한다.
Circuit-Level Gateway (Circuit-Level Proxy; 회선 레벨 게이트웨이)
- Circuit-Level Proxy는 Stand-Alone System이거나
어떤 Application Proxy에서 제공하는 특정 기능일 수 있다.
- 시스템 관리자가 내부 사용자들을 신뢰할 수 있는 경우에 채택하는 방화벽 모델이다.
- Application Proxy와 같이, Circuit-Level Proxy 또한 End-to-End TCP Connection을 관장하지 않고,
Inner Host간 TCP Connection과 Inner Host와 Outer Host간 TCP Connection을 관장한다.
- Connection을 허용할지 말지를 결정하며,
Connection이 이루어지고 나서 오가는 데이터를 감시하지는 않는다.
- Gateway는 Inbound Connection을 위해 Application Proxy를 적용하고,
Outbound Connection을 위해 Circuit-Level Proxy를 적용하는 것과 같이
교차하여 방화벽 모델을 채택할 수 있다.
Example. SOCKS Package (RFC 1928)
- Unix 기반 방화벽에 많이 구현되어 있는 SOCK Server와,
방화벽에 의해 보호되며 내부 호스트에서 작동하는 SOCKS Client Library,
SOCK을 위해 개정된 FTP나 TELNET 등으로 구성된다.
- TCP Client는 SOCK Server와 SOCK Port를 통해 Connection을 시작하고,
SOCK Server는 이 연결 요청을 받아들이거나 거절한다.
Application-Level Gateway (Application Proxy; 응용 레벨 게이트웨이)
- Application간의 Traffic을 Relay하는 역할을 하는 방화벽이다.
- Application Proxy의 장단점은 아래와 같다.
Pros of Application Proxy | Cons of Application Proxy |
- TCP/IP Layer에서의 수많은 결정사항을 다루는 대신, Application Layer에서 허용된 Application들만 철저히 감시하기 때문에 복잡성이 낮다. - Worm과 같은 악의적 데이터(악성 코드)를 Application Layer에서 Filtering할 수 있다. - Connection과 Application Data를 파악하기 용이하다. |
- Application의 사이에 Proxy가 위치하기 때문에 추가적으로 Overhead가 발생하여 동작 속도가 매우 느리다. |
Example. Great Firewall of China
- 중국은 Application Proxy를 통해 Mail과 Web Content를 2000년대부터 범국가적으로 검열해왔다.
Firewalls and Defense in Depth (다중 방화벽)
Network Component | Description | |
Internet | - 외부 네트워크 | |
Packet Filter | - 1차 방화벽 - 상대적으로 구조가 단순하고 처리 속도가 빨라 빈번하게 Communication이 일어나는 1차 방화벽으로 적절하다. |
|
DMZ | - 2차 방화벽 - 외부 네트워크와 직접적으로 연결되는 Web Server, Mail Server, DNS Server 등으로 구성된다. |
|
Application Proxy | - 3차 방화벽 | |
Intranet | - 내부 네트워크 |
- Internet에서 Intranet 사이에 다른 타입의 방화벽들을 위치시킴으로써
한 방화벽이 Break 되더라도 나머지 방화벽으로 보호하는 형태로 보안성을 더욱 강화할 수 있다.
Reference: Information Security: Principles and Practice 2nd Edition
(Mark Stamp 저, Pearson, 2011)
Reference: Computer Security: Principles and Practice 3rd Edition
(William Stallings, Lawrie Brown, Pearson, 2014)
Reference: 2022학년도 1학기 홍익대학교 네트워크 보안 강의, 이윤규 교수님