1. 패킷 필터링(Packet filtering) 방식
- 가장 기초적인 방화벽, 네트워크(3계층) 계층과 전송 계층(4계층)에서 동작
- 데이터링크 계층에서 네트워크 계층으로 전달되는 패킷을 가로채서 해당 패킷 안의 5-Tuple를 검색하여 정의된 보안 정책에 따라 서비스의 허용/차단 결정
* 5-Tuple은 출발지 IP, 목적지 IP, 출발지 Port, 목적지 Port, 프로토콜(TCP, UDP 등) 5개의 조건을 말한다.
- 다른 방화벽 방식에 비해 속도가 빠르다.
- 낮은 레이어 (3~4계층)에서 동작하기 때문에 기존 애플리케이션과 연동이 쉽다.
- 하드웨어에 의존적이지 않으나 강력한 로깅 기능 및 사용지 인증 기대 어렵다.
* 로깅은 시스템의 동작을 추적하고 기록하는 것
- (ex : 사용자가 접속 했을 때 접속 계정 및 접속 시간 등을 로그로 남김)
- 1세대 방화벽
장점
- 다른 방식에 비해 처리 속도가 빠르고 비용이 적게 듦
- 하드웨어에 의존적이지 않는다.
- 기존 프로그램과 연동이 쉽고, 네트워크 계층에서 동작하기 때문에 데이터에 관여하지 않아 클라이언트와 서버에 변화가 없어도 됨
- 사용자에게 투명성 제공 (애플리케이션 계층에 관여하지 않는다는 의미)
단점
- TCP/IP 프로토콜이 구조적 문제로 인하여 패킷 헤더의 조작가능
* 5-Tuple 기반 정보를 기반으로 패킷을 허용하거나 차단하기 때문에 5-Tuple이 위조되어도 헤더 정보만으로는 트래픽의 의도 알 수 없다.
- 패킷 내의 데이터에 대한 공격을 차단 못하고 바이러스에 감염된 파일 전송 시 데이터 분석 불가하다.
- 2,3 세대 방화벽에 비해 로깅 기능 및 사용자 인증 기능이 떨어진다.
2. 애플리케이션 게이트웨이(Application Gateway) 방식
- OSI 7계층 중 애플리케이션 계층까지 동작하며, 통과하는 패킷 헤더 안의 Data 영역까지 통제
- 해당 서비스별로 프록시(Proxy)라는 통신 중계용 데몬이 구동되어 각 서비스 요청에 대하여 방화벽이 접근 규칙을 적용하고 연결을 대신하는 역할을 수행한다.
- 프록시 방화벽이라고도 한다.
- 2세대 방화벽
장점
- 외부 네트워크와 외부 네트워크 프록시 서버를 통해서 연결, 모든 연결을 프록시 서버를 통해서 진행하기 때문에 내부 네트워크에 대한 경계선 방어 및 내부 네트워크 정보를 숨길 수 있다.
- 패킷 필터링 방화벽보다 높은 보안 설정 가능하다.
- 일회용 패스워드(OTP)를 이용한 강력한 인증 기능을 제공한다.
* 사용자가 외부 네트워크 접근할 때 프록시 서버를 거쳐야 할 때 OTP를 이용하여 인증을 받게함
- 세션에 대한 정보 추적, 컨텐츠 보안 (Content Security)이 가능 (http, nntp, ftp 등의 경우 command level -put, get, post 등 까지 제어가 가능)
* 모든 연결을 프록시 서버를 거치기 때문에 세션 정보와 컨텐츠의 내용까지 알 수 있다.
단점
- 응용 계층에서 동작하므로 네트워크에 많은 부하를 준다.
* 네트워크 트래픽을 응용 계층에서 검사하기 때문에 리소스를 많이 잡아 먹는다.
- 일부 서비스에 대해 투명성 제공 어렵다.
* 사용자가 직접 통신을 하는 게 아니라 모든 연결을 프록시 서버에서 하기 때문에 일부 서비스나 애플리케이션 투명성 제공이 어렵다.
- 하드웨어에 의존적이다.
* 리소스를 많이 잡아 먹기 때문에 하드웨어의 성능이 곧 방화벽의 성능이 된다.
- 새로운 서비스를 제공하기 위하여 새로운 데몬이 필요하다.
- 미리 정의된 애플리케이션만 사용 가능하므로 새로운 애플리케이션에는 대응 못함
* 새로운 기능 및 애플리케이션을 제공하기 위해선 방화벽 업데이트 (기능 및 애플리케션 룰이 추가된)가 필요하다.
프록시 서버 방화벽 동작 원리
- 외부 사용자가 특정 웹 사이트나 서버에 접속하려고 할 때, 서버가 수신하지 않고 프록시 서버가 수신한다.
- 실제 서버는 방화벽 안쪽에 위치하고, 프록시 서버가 사용자가 접속하려는 서버처럼 설정한다.
- 사용자가 요청을 하면, 그 요청은 프록시 서버에 도착하고, 프록시 서버는 이 요청을 방화벽을 통해 실제 서버에 송신한다.
- 실제 서버는 사용자의 요청을 처리하고 그 결과를 방화벽을 통해 프록시 서버로 송신한다.
- 프록시 서버는 이 결과를 사용자에게 송신한다
- 만약 실제 서버에서 에러메시지를 보내야 할 경우, 프록시 서버는 이를 가로채서 사용자에게 에러 메시지를 보내기 전, 헤더에 포함된 URL을 알 수 없게 변경한다.
캐시 기능
- 사용자가 한 번 방문한 사이트 정보를 미리 저장하여 원하는 사용자에게 제공
- 방화벽 구성 시 속도나 성능 저하됨을 막기 위한 기능
3. 서킷 게이트웨이(Circuit Gateway) 방식
- 세션 계층(5계층)에서 응용 계층(7계층) 사이에서 접근 제어를 실시하는 방화벽이다.
- 애플리케이션 게이트웨이와는 달리 각 서비스 별로 프록시가 존재하지는 않는다.
- 어느 서비스 프로토콜로도 이용할 수 있는 일반적인 대표 프록시를 이용한다.
- 내부 시스템으로 접속하기 위해서는 사용자 PC 방화벽에 위치한 대표 프록시와 통신하기 위한 수정된 클라이언트 프로그램이 필요하다.
- 클라이언트 프로그램은 모든 통신에서 방화벽에 있는 프록시와 연결을 맺고 안전한 통신 채널인 서킷을 구성한 후 이 서킷을 통해 내부 시스템과 통신
장점
- 내부 IP 주소를 숨길 수 있다.
- 첫 패킷 검사 후 다음 패킷은 전달만 한다.
- 각 서비스 별로 프록시가 존재하지 않고, 모든 서비스가 이용 가능한 일반적인 프록시 존재한다.
- 수정된 클라이언트 프로그램이 설치된 사용자에게 별도의 인증 절차 없이 투명한 서비스 제공한다.
단점
- 방화벽에 접속을 위해서 서킷 게이트웨이를 인식할 수 있는 수정된 클라이언트 프로그램이 필요하다.
- 사용자들에게 프로그램을 배포하거나 사용 중인 응용 프로그램 수정이 필요하다.
4. 하이브리드(Hybrid) 방식
- 하이브리드 방식은 패킷 필터링 방식과 애플리케이션 방식을 혼합하였다.
- 패킷 필터링 장점과 애플리케이션 방식 장점을 결합한 방식이다.
- 패킷 레벨의 접근 제어뿐만 아니라 응용 프로그램의 사용자 제어 장점을 가지고 있다.
- 애플리케이션 방식의 최대 단점인 다양한 응용 서비스의 수용은 패킷 필터링 방식으로 제공한다.
장점
- 내부 보안 정책 및 애플리케이션 등에 맞추어 선택적인 보안 설정 가능하다.
- 여러 유형의 방화벽 특징을 보유하기 때문에 새로 등장하느 인터넷상의 서비스에 가장 유동적으로 대처 가능하다.
단점
- 관리가 복잡하다.
- 설치 시 전문적인 네트워크 컨설팅(Network Consulting)이 필요하다.
5. 상태추적(Stateful Inspection) 방식
- 상태추적 방식은 패킷 필터링 방화벽과 애플리케이션 방화벽 단점 극복하고 장점만 구현한 새로운 개념의 방화벽이다.
- 이스라엘의 방화벽 업체인 체크포인트(CheckPoint)라는 기업에서 최초로 사용한 용어로 네트워크 계층(3계층)에서 패킷을 처리하면서 프로토콜의 상태 정보 테이블을 유지한다.
- 프로토콜 특성에 따른 변화를 동적으로 대응해 주는 방화벽이다.
- 최근 모든 방화벽 시스템에서 사용중이다.
- 3세대 방화벽
Stateful Inspection 동작 원리
1. 초기 패킷 검사
- 패킷 헤더 확인한다.
- 방화벽 정책에 따라 허용, 차단을 결정한다.
2. 상태 테이블 생성 및 업데이트
- 허용된 패킷의 경우, 방화벽은 상태 테이블(State Table)에 해당 연결 정보를 기록한다.
- 기록되는 정보 : 5-Tuple, 현재 연결 상태 (ex : SYN_SENT, SYN_RECEIVED,ESTABLISHED 등)
- 방화벽은 이 상태 테이블을 사용하여각 연결의 상태를 지속적으로 추적
3. 연결 상태 추적 및 유지
- 상태 테이블을 참고하여 새로운 패킷이 기존 연결의 일부인지 확인 (ex : TCP 연결의 경우, 3-way handshake 과정(SYN, SYN-ACK, ACK)을 추적하여 여정상 연결을 확인한다.
- 정상 연결 확인 후 상태 테이블 연결 정보 업데이트한다.
4. 연속 패킷 처리
- 기존 연결의 일부인 패킷은 상태 테이블을 참조하여 빠르게 허용 시킨다.
- 새로운 패킷은 상태 테이블에 추가될지 안될지 결정한다.
5. 비정상적인 패킷 차단
- TCP 세션이 종료된 후 도착한 패킷이나 연결이 설정되지 않은 상태에서 도착한 패킷등을 차단한다.
장점
- 모든 통신 채널의 패킷 추적이 가능하다. (세션의 상태를 기억하고 관리하기 때문)
- 보안 수준이 높다.
- UDP와 RPC 패킷 추적이 가능하다.
- 패킷 내의 데이터 상태와 정황(Context)이 저장되고 지속적으로 갱신한다.
단점
- 상태목록(State Table)에 DoS나 DDoS 공격으로 인해 거짓 정보가 가득 차게 되면 장비가 일시적으로 정지되거나 재가동이 필요하다.
- 어떠한 이유로 방화벽을 재구동시 현재 연결에 대한 모든 정보를 잃어버리게 되고 악의적이지 않은 패킷도 차단이 될 수 있다.
6. 차세대 방화벽 (Next-Generation-Firewall, NGFW)
- 기존의 방화벽 기능을 뛰어넘어, 네트워크 보안을 강화하기 위해 다양한 고급 기능을 통합한 보안 솔루션이다.
- QoS 기능을 통해 트래픽의 헤더뿐만아니라 페이로드까지 검사하여, 숨겨진 악성 코드나 비정상적인 트래픽 탐지한다.
- 애플리케이션 레벨의 트래픽을 인식하고 제어, 특정 애플리케이션(ex : Youtube, Instagram 등) 사용 제한 및 차단을 한다.
- IPS 기능을 이용하여 실시간 트래픽 모니터링 및 알려진 취약점과 공격 패턴 탐지 및 차단한다.
- 네트워크 트래픽을 생성하는 사용자 인식, 사용자 별로 정책 적용을 한다.
장점
- 특정 애플리케이션을 식별하고 정책 적용 가능하다.
- 통합 보안 기능으로 방화벽, IPS, 안티바이러스, URL 필터링 등 다양한 보안 기능을 통합하여 제공한다.
- 사용자 및 애플리케이션 기반한 정책을 설정하고 관리할 수 있어, 세밀하고 유연한 보안 정책 적용이 가능하다.
- 다양한 보안 장치와의 연동을 통해 보안 오케스트레이션 및 자동화 기능을 제공하여, 보안 관리 효율성을 높인다.
* 보안 오케스트레이션은 서로 다른 보안 장비를 연결하여 통합하는 수단
단점
- 고급 보안 기능을 통합하고 있어, 초기 도입 비용 및 유지 관리 비용이 상대적으로 높다.
- 다양한 보안 기능이 통합되어 있어 설정 및 관리가 복잡하고 전문적인 지식이 필요하다.
- 많은 기능을 한꺼번에 사용할 경우 트래픽이 많을 경우 성능 저하가 발생할 수 있어, 고성능 하드웨어가 필요하다.
- 새로운 공격들에 대응하기 위하여 정기적인 업데이트가 필수적이다.
이중화
- 네트워크의 가용성과 안정성을 높이기 위해 두 개의 방화벽을 사용하는 방식
- 하나의 방화벽의 링크 다운되거나 문제가 발생해도 네트워크가 중단되지 않고 정상적으로 유지
방화벽 이중화 구성 방식
1. 액티브-액티브(Active-Acitve) 구성
- 두 개의 방화벽이 동시에 트래픽을 처리한다.
- 부하를 분산시켜 성능을 향상 시킨다.
- 하나의 방화벽에 장애가 바생하면 다른 방화벽이 그 트래픽을 처리한다.
- 로드 밸런싱을 통해 트래픽일 분산 시킨다.
* 로드 밸런싱은 네트워크 트래픽을 균등하게 배포하는 방법
2. 액티브-스탠바이 (Active-Standby) 구성
- 하나의 방화벽으로 트래픽을 처리하며, 다른 방화벽은 대기 상태로 존재한다.
- 액티브 방화벽에 장애가 발생하면 패시브 방화벽이 액티브로 활성화되어 트래픽을 처리한다.
- 관리가 간단하지만 액티브-액티브 구성에 비해 리소스 활용도가 낮다.
방화벽 구성 요소
상태 동기화(State Synchronization)
- 방화벽 간에 세션 상태를 실시간으로 동기화하여, 장애 발생 시 세션이 끊기지 않고 지속 된다.
- 클라이언트와 서버 간의 연결이 끊기지 않고 유지된다.
헬스 체크(Health Check)
- 방화벽의 상태를 주기적으로 검사하여, 문제 발생 시 신속하게 감지하고 대응한다.
- 일반적으로 ICMP, TCP 포트 체크 등으로 수행한다.
페일 오버(Fail Over)
- 액티브 방화벽에 장애가 발생했을 때 스탠바이 방화벽이 자동으로 활성화 되는 과정을 말한다.
- 페일오버 과정은 최대한 신속하게 작동해야 네트워크 중단을 최소화한다.
페일 백(Fail Back)
- 장애가 발생한 액티브 시스템이 복구 되었을 때 스탠바이에서 백업으로 전환하는 과정이다.
결론
요즘 NGFW 장비를 테스트를 하고 있는데 NGFW 자체에 기능이 워낙 많다보니 모든 걸 다 해보지는 않았다. 그리고 방화벽을 테스트하면서 느낀거지만 방화벽은 방화벽의 기능을 잘하는 게 제일 중요한 것 같고 방화벽을 사용하시는 일이 있다면 정책 설정과 인터페이스 및 라우팅 설정하는 걸 잘 알아야하고 방화벽은 이중화(HA)가 필수적으로 사용되기 때문에 그것도 잘 알고 있어야 할 것 같다. 브릿지, 본딩 등 다양한 모드가 많지만 이건 차후에 하고 싶을 때 해야겠다.
오탐, 미탐이 자주 발생할 수 있는 임계치 기반 및 snort, yara 등을 사용하는 보안 장비는 임계치 및 snort, yara 룰 등을 조정하여 사용자에게 맞춰 가는 장비라고 생각하여 어떤게 정답이라고 생각은 딱히 들지 않는다. 하지만 방화벽은 내부 사용자들의 IP, PREFIX 와 라우팅 정보등을 이용하여 사용하는 장비이기 때문에 정답이 있는 장비라고 생각한다.
틀린 부분이 있다면 댓글로 꼭 알려주세요.
참조
https://m.blog.naver.com/wnrjsxo/221066364387
'정보보안 > 정보보호기초' 카테고리의 다른 글
IDS(침입탐지시스템), IPS(침입방지시스템) (2) | 2024.06.13 |
---|---|
윈도우(Windows) 방화벽 (F/W, Defender) (0) | 2024.06.03 |
방화벽(Firewall) 구축 방법 (2) | 2024.05.29 |
방화벽 (Firewall) (0) | 2024.05.27 |
QoS(Quality of Service) (0) | 2024.05.24 |