현재 선택한 정보보안 과정

정보보안기사 필기 이론 학습

이론 목록으로 돌아가기

방화벽의 동작과 정책

패킷 필터링·상태 추적·프록시를 비교하고 규칙 순서와 DMZ 정책을 해석합니다.

예상 읽기 10

1. 방화벽은 구역 사이의 통신 정책을 집행한다

Security Zone

Security Zone은 비슷한 신뢰 수준과 통신 요구를 가진 Interface·Subnet·Workload를 정책 단위로 묶은 논리적 구역이다.

대표 Zone예시 자산일반적인 정책 방향
Internet통제할 수 없는 외부 Network필요한 공개 Service만 제한적으로 허용
DMZ외부에 공개하는 Web·Mail·DNS ServerInternet 접근은 필요한 Service만, 내부 접근은 더 엄격하게 제한
Application내부 API·업무 Application Server허가된 Frontend·업무 주체에서만 접근
DatabaseDB·중요 Data Store지정된 Application·관리 주체만 최소 Port로 접근
User일반 사용자 단말업무 목적의 외부·내부 Service만 허용
Management관리자 단말·Bastion·관리 도구관리자 신원·MFA·승인 경로를 조건으로 관리 Port 허용

Zone 이름 자체가 안전성을 보장하지 않는다. DMZ라는 이름을 붙였더라도 Internet→DMZ, DMZ→Internal, DMZ→Internet 규칙이 과도하면 위험하다. 또한 같은 Zone 안의 Host 간 통신이 방화벽을 지나지 않는 구조라면 Zone 내부 이동은 그 방화벽이 통제하지 못할 수 있다.

Ingress와 Egress

  • Ingress Filtering: 외부 또는 다른 Zone에서 들어오는 트래픽을 검사한다.
  • Egress Filtering: 내부에서 외부나 다른 Zone으로 나가는 트래픽을 검사한다.

Ingress만 통제하면 내부 침해 Host가 외부 C2, 임의 파일 전송, 위조된 Source Address를 사용할 수 있다. Egress는 외부 연결을 전부 금지한다는 뜻이 아니라, 업무에 필요한 Destination·Protocol·Service·Identity만 허용하고 비정상 흐름을 제한하는 것이다.

2. Stateless Packet Filtering

Stateless Packet Filter는 각 Packet을 독립적으로 보고 주로 다음 값으로 판단한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
Source/Destination Address
Protocol
Source/Destination Port
Ingress/Egress Interface
Direction
일부 TCP Flag·Fragment 정보

장점

  • 구조가 단순하고 처리 비용이 비교적 낮다.
  • Router ACL이나 특정 Network 경계의 기초 통제에 적합하다.
  • 명확한 주소·Protocol·Port 제한을 빠르게 적용할 수 있다.

한계

  • 여러 Packet이 같은 Session에 속하는지 충분히 연결하지 못한다.
  • Return Traffic을 허용하기 위해 넓은 Port 범위를 열게 될 수 있다.
  • Header 조건은 맞지만 실제 Protocol 상태가 비정상인 Packet을 놓칠 수 있다.
  • Application Payload·사용자 신원·업무 맥락을 직접 이해하지 못한다.

TCP ACK Flag가 설정된 Packet 허용 같은 단순 Rule은 실제 연결 상태를 증명하지 못한다. Stateful Inspection은 이 한계를 줄이기 위해 State Table을 사용한다.

3. Stateful Inspection과 Connection Tracking

Stateful Inspection Firewall은 Packet Header뿐 아니라 통신의 진행 상태를 기억한다.

TCP 상태 추적

대표적으로 다음을 관찰한다.

  1. Client의 SYN으로 신규 연결 시작
  2. Server의 SYN+ACK와 Client의 ACK로 연결 성립
  3. 허용된 Sequence·Acknowledgment·Flag 범위 안의 데이터 교환
  4. FIN 또는 RST, Timeout에 따른 State 종료

방화벽의 ESTABLISHED전송 계층 흐름이 기존 State에 속한다는 의미다. 사용자가 Application 로그인에 성공했거나 요청 내용이 안전하다는 의미는 아니다.

UDP의 Pseudo-State

UDP는 TCP처럼 연결 설정·종료 Flag가 없다. Stateful Firewall은 일반적으로 내부에서 외부로 보낸 UDP Packet의 주소·Port를 저장하고 일정 시간 동안 반대 방향의 대응 Packet을 Return Traffic으로 인정한다.

  • State 생성 기준과 Timeout은 제품·Protocol Helper·정책에 따라 다르다.
  • Timeout이 너무 짧으면 정상 응답이 차단될 수 있다.
  • 너무 길면 State Table을 불필요하게 점유하고 원치 않는 Return Traffic 범위가 넓어질 수 있다.

ICMP·ICMPv6 오류에는 원인이 된 원래 Packet Header 일부가 포함될 수 있다. Stateful Firewall은 이 정보를 기존 흐름과 연결해 RELATED로 처리할 수 있다. Path MTU Discovery에 필요한 Packet Too Big 또는 Fragmentation Needed를 무조건 차단하면 작은 Packet은 되지만 큰 전송이 멈추는 장애가 생길 수 있다.

상태 테이블도 자원이므로 대량의 연결 상태가 쌓이면 정상 통신이 방해될 수 있다. 상태 추적만으로 모든 공격이 차단되는 것은 아니다.

4. 방화벽 유형 비교

유형주된 판단 기준특징
Packet FilterIP·Port·Protocol·Flag빠르고 단순하지만 Application 내용 이해가 제한된다.
Stateful Firewall5-tuple과 연결 상태기존 연결의 응답을 State로 판단한다.
Application ProxyClient와 Server 사이의 별도 연결Application 명령·내용을 자세히 검사할 수 있다.
Circuit-Level Gateway연결·세션 수립과 중계응용 명령 자체의 상세 검사와 구분한다.
NGFW상태 기반 검사와 Application·사용자·위협 정보기능 범위는 제품·License·암호화 가시성에 따라 다르다.
WAFHTTP/HTTPS 요청·응답Web Application 공격 방어에 특화된다.

Proxy와 WAF가 모든 Network Protocol을 대신 보호하는 것은 아니다.

5. 기본 정책은 최소 허용으로 설계한다

Deny by Default

Deny by Default는 명시적으로 허용하지 않은 Inbound·Outbound Traffic을 차단하는 원칙이다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
필요한 흐름 식별 → 구체적인 Allow Rule 작성 → 나머지는 Default Deny

반대 방식인 Permit by Default는 알려진 위험만 차단하므로 새 Service·Port·Protocol이 생겼을 때 의도치 않게 허용될 수 있다. 다만 Default Deny를 적용하기 전에 DNS, NTP, 인증, Update, Monitoring, Backup, 장애 복구 등 필수 Dependency를 식별해야 한다.

Least Privilege

  • Any Source보다 실제 Source Prefix·Identity를 제한한다.
  • Any Destination보다 실제 Server·Service Group을 지정한다.
  • Any Service보다 필요한 Protocol·Port만 허용한다.
  • 관리 접근은 일반 User Zone이 아니라 Management Zone·Bastion을 통한다.
  • 임시 Rule은 만료일을 설정하고 자동 또는 정기 검토로 제거한다.

양방향을 별도로 생각한다

내부→외부가 허용되어도 외부→내부의 신규 연결이 자동 허용되는 것은 아니다. Stateful Firewall은 허용된 내부 Initiation에 대한 Return Traffic을 State로 허용할 수 있지만, 외부에서 새로 시작하는 연결은 별도 Rule이 필요하다.

6. 규칙 순서와 가려지는 정책

위에서부터 처음 일치한 규칙을 적용하는 방화벽을 가정한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
1. 외부 → 웹 서버의 모든 TCP 포트 허용
2. 외부 → 웹 서버의 TCP 22 차단

22번 포트도 1번 규칙에 먼저 일치하므로 2번 차단에 도달하지 못한다. 이런 경우를 규칙 가림(Shadowing)이라고 한다. 웹 서비스에 필요한 포트만 구체적으로 허용하고 나머지는 기본 차단하도록 검토한다.

규칙의 평가 방식은 제품마다 다를 수 있으므로 문제에서 주어진 처리 순서를 따른다. 중복 규칙, 범위가 넓은 허용, 사용이 끝난 임시 규칙도 대표적인 관리 오류다.

7. DMZ 정책 예제

대표적인 최소 허용 구조는 다음과 같다.

  1. Internet → DMZ Web Server: 필요한 HTTPS만 허용
  2. DMZ Web Server → 내부 Application: 지정된 Service만 허용
  3. Application → Database: 지정된 DB Port만 허용
  4. 관리망 → 각 장비: 승인된 관리자와 관리 Protocol만 허용
  5. 나머지 신규 연결: 기본 차단

DMZ에 있다는 사실만으로 안전한 것이 아니며 Zone 사이마다 별도 Rule이 필요하다.

좌우로 이동해 그림을 확인하세요.그림 크게 보기
DMZ와 최소 허용 정책
DMZ와 최소 허용 정책

8. 방화벽 배치 형태

  • Routed Firewall: 서로 다른 IP Network 사이에서 Routing과 정책을 수행한다.
  • Transparent Firewall: Layer 2 경로에 배치되어 주소 구조 변경을 줄일 수 있다.
  • Host Firewall: 개별 Server·Client의 Inbound·Outbound Traffic을 통제한다.
  • Screened Subnet/DMZ: 외부 공개 Service를 내부망과 분리한 Zone에 둔다.

장비 형태보다 어떤 Zone 사이의 Traffic이 실제로 그 통제 지점을 통과하는지가 중요하다.

9. DROP과 REJECT를 상황에 맞게 선택한다

Action동작장점주의점
DROP응답 없이 Packet 폐기불필요한 응답을 줄이고 일부 정보 노출 감소Client Timeout이 길어 장애 진단이 어려울 수 있음
REJECTTCP RST 또는 ICMP 오류 등으로 명시적 거부실패를 빠르게 알려 사용자·운영 진단에 유리Service 존재·정책 정보를 일부 노출하고 응답 자원 사용

Internet에서 Unsolicited Traffic은 DROP을 사용할 수 있고, 내부 정책 위반이나 잘못된 Port에는 REJECT로 빠른 실패를 제공할 수 있다. 하지만 정답은 환경마다 다르며, Reflection 가능성·ICMP 정책·운영 요구를 함께 본다.

10. 방화벽의 한계

방화벽은 통과 경로의 Traffic만 검사한다. 우회 회선, 같은 내부 Zone의 통신, 허용된 HTTPS 안의 공격, 탈취 계정, 감염 Endpoint는 별도 통제가 필요하다.

따라서 Network 분리, IDS·IPS, Endpoint 보안, 안전한 Application 설계, 계정·권한 통제를 함께 적용한다.

전통적인 배치 용어도 구분한다. Bastion Host는 외부 접근에 노출되는 방어 거점으로 보안을 강화한 호스트다. Dual-homed Host는 두 인터페이스를 가진 중계 호스트에서 직접 IP 전달을 제한하고 프록시 등으로 통제하는 구성이다. Screened Host는 패킷 필터 라우터와 Bastion Host를 조합하고, Screened Subnet은 외부와 내부 사이에 DMZ를 두어 분리한다.

스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01ACK 플래그만 있으면 기존의 허용된 연결임을 증명하는가?
정답 및 해설

아니다. 공격자도 ACK를 설정할 수 있다. 상태 추적 방화벽은 저장된 연결 정보와 패킷을 함께 판단한다.

02처음 일치하는 규칙을 쓰는데 모든 TCP 허용이 TCP 22 차단보다 앞에 있으면?
정답 및 해설

22번도 앞의 허용 규칙에 먼저 일치하여 뒤의 차단 규칙이 가려진다. 필요한 포트를 구체적으로 허용하도록 순서와 범위를 검토한다.