Firewall
방화벽은 미리 정의된 보안 규칙에 의거하여, 출입하는 네트워크 트래픽을 감시/제어하는 네트워크 보안 시스템이다. 주로, 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크 사이의 장벽을 구성하며, 서로 다른 네트워크를 지나는 데이터를 허용 및 거부, 검열, 수정하는 소프트웨어/하드웨어 장치를 의미한다.
주요 기능
1. 접근 통제
- 허용된 서비스나 공개 정보 서버 같은 특정 호스트를 제외한 외부 네트워크의 접근 시도를 패킷 필터링, 프록시 방식으로 제어한다.
2. 인증
- 메시지 인증 : VPN 같이 신뢰할 수 있는 통신선을 통해 전송된 메시지의 신뢰성을 보장
- 사용자 인증 : OTP, 패스워드 인증 등 방화벽을 지나는 트래픽에 대한 사용자가 누구인지 증명
- 클라이언트 인증 : 모바일 사용자처럼 특수한 경우 접속을 요구하는 호스트에 대해 인가된 호스트인지 확인
3. 감사 및 로그
- 정책 설정 및 변경, 관리자 접근, 네트워크 트래픽 허용 또는 차단 관련 사항 등 접속 정보를 로그로 남긴다.
4. 프록시 (Proxy)
- 보안 정책에 따라 실제 서비스를 수행하는 서버로, 클라이언트의 서비스 요청을 받아 전달하고, 결과를 수신하여 사용자에게 전달한다.
5. NAT (Network Address Translation)
- 외부 호스트의 public IP를 내부 네트워크의 private IP로 변환하거나 그 반대를 수행하는 기능으로, 외부망과 내부망을 분리한다.
한계점
- 악성 소프트웨어 침투 방어에 대한 한계
- 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 수행하는데 바이러스, 웜 같이 문서 또는 프로그램 내부에 포함된 악성 소프트웨어는 탐지하지 못하는 한계가 존재한다.
- 이는 방화벽이 두 네트워크 사이를 오고 가는 트래픽을 중개하면서 패킷의 세부 내용까지 확인하는 건 큰 부담을 초래할 수 있음을 고려한 맹점이다.
- 악의적인 내부 사용자의 공격에 대한 한계
- 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 사설 통신망을 사용한다면 공격자가 방화벽을 우회하여 내부 네트워크로 접속할 수 있는데, 내부자가 이를 악용하면 막을 방법이 없다.
- 전혀 새로운 형태의 공격에 대한 한계
- 방화벽은 예측된 접속(= 공격)에 대한 규칙을 세우고 이것만 방어하므로 새로운 형태의 공격에는 능동적으로 대응하기 어렵다.
방화벽 기술 유형
Packet Filtering (링크)
패킷의 IP 주소/port 번호, 프로토콜 등을 규칙에 따라 검사한 후 접근 허용 여부를 결정하는 방식이다.
Packet Filtering 방식은 3 계층(네트워크)에서 동작하기 때문에 면밀한 조사 없이도 1) 패킷을 빠르게 허용하고 거부할 수 있어 처리 속도를 향상시킨다. 그리고 종종 네트워크 라우터와 통합되어 있어 독립된 방화벽 기기가 필요하지 않아 2) 경제적이다.
하지만 1) 로깅 능력이 부족하여 엄격한 business 대상으로는 사용하기 어렵고, IP 주소와 port 번호 등 피상적인 정보에 기반하기 때문에 이를 넘어서는 악성코드를 포함하고 있는 payload를 식별하기 어려운 점 등 2) 비교적 보안이 불안하다.
Stateful Inspection (링크)
Dynamic Packet Filtering 이라고도 불리며, 활성화된 연결 상태를 모니터링하고, 그 정보를 사용하여 네트워크 패킷의 방화벽 허용 여부를 결정한다. TCP와 유사 프로토콜에 적합하지만, UDP 프로토콜 또한 지원한다.
연결 상태를 항상 인식하면서도 통신을 허용하기 위해 광범위한 port 범위를 개방할 필요가 없다. Packet filtering 방화벽보다 다양한 유형의 1) Dos 공격을 예방할 수 있고, 2) 강력한 logging 기능을 제공한다. 또한 불법 데이터가 네트워크를 침투하는 데 사용되는 걸 탐지할 수 있다.
하지만 강력한 기능 만큼 1) 환경 설정(configuration)이 어려우며, 7계층 (응용) 수준의 공격을 예방하지 못한다. 2) 통신에 대한 사용자 정보를 전송하지 않고, 모든 프로토콜이 상태 정보를 포함한 것도 아니기 때문에 3) 적용 범위도 제한된다. 마지막으로 4) 상태 테이블을 유지하기 위해 추가적인 overhead가 발생한다.
Application Gateway (링크)
Application Gateway는 웹 애플리케이션 트래픽을 관리할 수 있는 웹 트래픽 부하 분산 장치 (OSI layer 7 load balancer) 다. Application Gateway는 URI 경로 또는 호스트 헤더 같은 HTTP 요청의 추가 특성을 기반으로 라우팅을 결정할 수 있다.
1) 접근 통제를 강제하고 공격 지점을 최소화하여 데이터 손실 / 신용 자격 탈취 / 공격 위험 등을 감소시킨다. 2) 들어오는 트래픽 양에 기반하여 2) 웹 서버 인스턴스 수를 자동으로 조정(auto-scaling)한다.
하지만 각 서비스를 연결하기 위한 특별 코드가 요구되어 1) 복잡도 및 부하 관리가 크게 증가하고, 2) 이에 따라 환경 설정이 매우 복잡하다. 그 외에도 3) H/W에 크게 의존하며, 빠른 애플리케이션 변환 대응에 어려움을 겪는다.
Circuit Gateway (링크)
Circuit Gateway는 네트워크 트래픽에 대한 session 수준의 통제를 제공하는 방화벽 유형으로, 응용 계층과 세션 계층에서 동작한다. 실제 서비스 요청과 응답을 프록시 서버가 대신 처리하여 클라이언트와 서버 사이에 간접적인 연결을 제공한다.
1) 프록시 기반으로 동작하기 때문에 클라이언트와 서버 간의 직접적인 연결이 차단되며, 악성 공격이 내부 네트워크로 유입되는 것을 방지한다. 2) 모든 서비스 프로토콜에 대해 방화벽을 설정할 수 있어 다양한 환경에 적용 가능하다.
연결 요청을 처리하기 위해 수정된 1) 특정 클라이언트 프로그램이 필요하다. 2) 일부 환경에서는 애플리케이션이 Circuit gateway 방식에 맞게 수정되어야 한다. 3) 그리고 프록시 서버가 모든 트래픽을 중계하기 때문에 네트워크 부하가 증가하고 응답 속도가 느려질 수 있다.
IDS와 IPS
IDS : Intrusion Detection System
IDS는 네트워크나 시스템에서 발생하는 활동을 모니터링하고, 악의적이거나 비정상적인 활동을 탐지하는 수동적 체계로, 악의적 공격의 탐지 및 경고에 중점을 둔다.
- 네트워크 기반 IDS (NIDS) : 네트워크 트래픽을 분석
- 호스트 기반 IDS (HIDS) : 개별 호스트의 활동을 분석
기능
- 로그 분석 및 실시간 모니터링
- 패턴 매칭을 통한 알려진 공격 탐지
- 알림 기능을 통해 관리자에게 경고
IPS : Intrusion Prevention System
IPS는 IDS에서 탐지된 악의적 활동을 차단하거나 방어 조치를 자동으로 수행하는 능동적 체계로, 악의적 공격 예방 및 차단이 주된 목적이다.
기능
- 실시간으로 트래픽을 분석하고 악의적인 활동을 차단함
- 공격 패턴을 인식하고 사전에 설정된 규칙에 따라 방어
- 방화벽 기능과 통합하여 보안을 강화
IDS vs. IPS
IDS는 탐지만 수행하는 반면, IPS는 탐지와 차단까지 수행하니 일견 IPS가 더 좋아보이고 선호될 것 같다. 하지만 IPS는 지나가는 packet을 실시간으로 처리해야 하기 때문에 신속히 처리해야 서비스가 느려지지 않는다. 때문에 네트워크 부하가 발생할 수 있고, 탐지만 하는 것이 아니라 실제 대응 또한 수행하기 때문에 오탐이 발생할 경우 매우 곤란하다.
반면, IDS는 지나간 패킷을 복사하여 검사하기 때문에 네트워크 부하를 유발하지 않지만 공격 패킷을 실시간으로 제어할 수 없고, 오탐에도 큰 영향을 받지 않기 때문에 최적화가 잘 이루어지지 않는다는 단점이 존재한다.
IDS (mirroring) | IPS (Inline) | |
장점 | 네트워크 부하가 덜함 | 공격 패킷 실시간 차단 가능 |
단점 | 공격 패킷을 실시간으로 차단하지 못함 | 네트워크 부하가 발생함 |
규칙(Rule) 최적화가 잘 이루어지지 않음 | 오탐 발생 시 매우 곤란함 |
DDoS : Distributed Denial of Service
DDoS는 1) 여러 대의 시스템을 동원하여 특정 서버, 서비스, 네트워크에 2) 과도한 트래픽을 발생시켜 정상적인 운영을 방해하는 공격이다.
특징
- 대규모 트래픽 발생
- 여러 대의 시스템을 사용해 목표 대상에 대량의 요청을 보내 네트워크나 서버의 자원을 고갈시킨다.
- 트래픽의 양이 방대하여 정상적인 트래픽과 구분하기 어렵다.
- 분산된 공격 소스
- 전 세계의 컴퓨터나 IoT 장치를 이용한다.
- 공격을 수행하는 봇넷(botnet)은 해킹된 컴퓨터, 라우터, 카메라 등의 IoT 장치로 구성될 수 있다.
- 지속성과 변동성
- 공격이 일정 시간 동안 지속되거나, 특정 시간에만 집중적으로 발생할 수 있다
- 트래픽 패턴이 불규칙하여 방어가 어렵다
- 은폐성과 익명성
- 공격 트래픽은 정상적인 트래픽처럼 보이게 만들어 탐지를 어렵게 한다.
- 분산된 다수의 IP를 사용해 공격을 수행하므로 추적이 어렵다.
네트워크 대역폭 소모 vs. 네트워크 자원 소모
1. 네트워크 대역폭 소모
- 대량의 데이터 트래픽을 네트워크에 보내 네트워크의 용량을 초과하게 만드는 공격
- 이로 인해 네트워크 연결 속도는 저하되고, 대역폭 부족으로 인해 네트워크 혼잡이 발생한다.
- 예시 : UDP Flood, DNS Amplification
2. 네트워크 자원 소모
- 네트워크 장치나 서버의 자원을 고갈시키는 공격으로, CPU, 메모리, 세션 테이블 등의 자원이 포함된다.
- 이로 인해 네트워크 장치나 서버의 성능이 저하되거나 다운될 수 있다.
- 예시 : SYN Flood, Ping of Death
정리하면, 대역폭 소모는 네트워크 트래픽의 양을 증가시켜 네트워크의 처리 능력을 초과시키는 것이고, 자원 소모는 네트워크 장치나 서버의 하드웨어/소프트웨어 자원을 고갈시키는 것이다.
DDoS 공격 유형
공격 유형 | 목표 계층 | 목적 | 예시 |
Volumetric | 네트워크 (3계층) | 네트워크 대역폭을 소진한다. | UDP Flood, DNS Amplification |
Protocol | 전송 (4 계층) | 서버 자원을 소진한다. (e.g., CPU) | SYN Flood, Smurfing |
Application Layer | 응용 (7 계층) | 애플리케이션 및 서버 수용량을 소진한다. | HTTP Flood, Slowloris |
DDoS 공격 방어 방법
- 트래픽 모니터링 및 분석
- 네트워크 트래픽을 실시간으로 모니터링하고 이상 트래픽을 탐지한다.
- 트래픽을 분석해 DDoS 공격을 조기에 감지한다.
- 네트워크 방어 장치
- 방화벽, IDS/IPS 같은 보안 장치를 활용해 비정상적인 트래픽을 차단한다.
- DDoS 방어 전용 장치를 도입하여 공격 트래픽을 효과적으로 처리한다
- 트래픽 분산 및 CDN 사용
- Load Balancer를 사용해 트래픽을 여러 서버로 분산시켜 서버 과부하를 방지한다.
- CDN을 활용해 트래픽을 분산시켜 공격의 영향을 최소화한다.
- 사전 준비 및 대응 계획 수립
- DDoS 공격 시나리오를 작성하고 대응 계획을 수립한다.
- 모의 훈련을 통해 실제 공격 상황에 신속히 대응 가능하도록 준비한다.
참고 출처
- [네트워크] 방화벽(Firewall) (1) - 개념, 기능, 동작방식
'리팩토링 > 2. 보안관제' 카테고리의 다른 글
리팩토링 12주차. 악성코드 분석 환경 구성 & 악성코드 샘플링 웹사이트 (1) | 2024.09.24 |
---|---|
리팩토링 11주차. 악성 코드 분석 방법 (1) | 2024.09.10 |
리팩토링 10주차. VirusTotal (2) | 2024.09.02 |
리팩토링 9주차. 보안관제 (1) | 2024.08.22 |
리팩토링 8주차. 악성 코드 (1) | 2024.08.14 |