
Firewall
네트워크 보안을 강화하기 위해 Network Gateway에 설치되는 장치 또는 소프트웨어
내부 네트워크와 외부 네트워크 간의 트래픽을 필터링하고, 허용 또는 차단하는 역할
미리 설정된 보안 규칙에 따라 들어오고 나가는 트래픽을 제어하여 네트워크를 보호한다.
예시

Router 아래에 방화벽을 설치하여 switch 사이에서 in/outbound 패킷들을 모두 검사한다.
Firewall rule-set
방화벽이 네트워크 트래픽을 필터링하고 제어하기 위해 설정된 규칙들의 모음
이 규칙들을 번호 순서대로 검사하여 트래픽을 처리하는데, 첫 번째로 일치하는 규칙이 우선 적용된다.
- First match 규칙 처리 : 규칙이 트래픽에 적용되면, 해당 트래픽에 더 이상의 규칙은 적용되지 않음.
- Packet Filtering (Packet Classification) : 네트워크 트래픽을 모니터링하고, 필터링 규칙에 따라 각 패킷을 허용(allow)하거나 차단(deny)하는 보안 기술

Stateless Firewall
과거에는 방화벽이 모든 패킷을 개별적으로 검사하며, 패킷이 이전의 상태 정보를 기반으로 처리하지 않았다. 즉, 하나의 규칙에 일치하지 않으면 바로 다음 규칙을 적용했다.

단점
- 비효율적인 성능
- 한번 필터링 했던 패킷도 다시 검사하게 되어, 패킷 필터링에 의해 속도가 느려지며 비효율적이다.
- 보안의 취약점
- 공격자가 rule-set에서 허용 가능한 TCP session을 설정하면 보안이 취약해진다.
Stateful Firewall
Rule-set은 각 세션의 첫 번째 패킷에 대해서만 참조된다. (In/Outbound 둘 다)
이후 해당 패킷의 정보를 세션 테이블에 저장하여 메모리에 유지하고, 규칙 집합을 참조하기 전에 세션 테이블을 먼저 조회한다
- 캐싱으로 인한 성능 향상
- keepalive 메시지의 문제를 해결하기 위해 오래된 세션 항목이 만료되어 삭제.

DMZ (demilitarized zone)
신뢰할 수 없는 네트워크에 노출되는 외부 서비스를 포함하는 네트워크 영역
주로 외부에서 접근할 수 있는 서버를 보호하기 위해 사용됨.
네트워크의 내부 시스템과 외부 인터넷 간에 통신을 제한적으로 허용

다중 방화벽으로 인해 분리된 서브네트워크들을 살펴보자

위 그림에서는, 둘 중 하나라도 방화벽이 다운되면 해당 서비스는 마비될 것이다.
(Single point of failure)
High Availability
그렇다면, 방화벽의 고가용성을 위해 어떻게 적용해줄 수 있을까?
1. Layer 4/7 switch
- layer 4 switch : TCP/IP 에서 작동 (IP : Port 까지 확인)
- layer 7 switch : Application에서 작동 (HTTP 요청까지 확인)

session은 항상 하나의 방화벽을 통해야 한다.
- 한 쪽으로 들어오고 나가야 함.
- Hash 알고리즘을 사용
- H(S_ip XOR D_ip) mod (number of FW)
- 결괏값 : 방화벽 number
단점
L4/L7 비용
FW이 다운될 경우 session을 잃어버리게 됨.
2. Session Synchronization at kernel-level
한 쪽 FW가 다운될 경우, session을 잃어버리는 문제를 해결하기 위해 세션을 커널 레벨에서 동기화 한다.
즉, 두 방화벽이 서로 rule-set, session table 등을 동기화 하는 것이다.

VRRP (Virtual Router Redundancy Protocol)
근데 만약, 방화벽 레벨이 아니라 Router가 다운되서 인터넷과의 연결이 끊어진다면 문제가 발생한다.
이를 대비해서 여러 라우터 간에 가상 라우터를 설정하여 한 대의 라우터가 다운되었을 때 다른 라우터가 자동으로 역할을 인계받아 트래픽을 계속해서 처리할 수 있도록 해야 한다.
여러 물리적 라우터를 하나의 가상 라우터(VRRP 그룹)에 추가하여 관리하는 방식을 VRRP 라고 한다.
방식 (VRRP의 Active-StandBy Mode)
- 여러 물리적 라우터를 하나의 가상 라우터( VRRP )로 묶어서 관리한다. 가상 라우터에는 가상 IP 주소가 할당된다.
- LAN 카드의 MAC은 하나이지만 여러 개의 IP를 사용 가능하므로, 각 LAN 카드에 가상 IP 주소를 추가로 설정해준다.
- 클라이언트는 가상 IP 주소를 사용하여 라우터에 패킷을 전송.
- 각 라우터 중 우선순위가 가장 높은 라우터(마스터 라우터)가 이를 처리함.
- 만약 마스터 라우터가 죽는다면, 대기하던 백업 라우터가 이를 받아서 처리함.
Server Cluster (VRRP의 Active-Active mode)
근데 만약 공격자가 Fake VRRP advertisement message (master 라우터가 죽었다는 거짓 메시지)를 라우터에 삽입한다면?
-> 해당 라우터가 죽었는지 확인하는 절차가 필요하다.
따라서 서버끼리 서로 status를 확인해줄 수 있는 heartbeat line이 필요하다

Probability of Availability
P : 가용성의 확률
N : 서버의 개수
Qn : n개의 서버 중 최소 하나의 서버가 정상적으로 작동할 확률.
Qn = 1 - (1-P)^n
n=2일 때, 제일 높음.
HA network & Server

서버와 네트워크와 방화벽, DMZ의 고가용성을 고려한 설계이다.
Disaster Recovery Center
main / backup data centor

GSLB (Global Server Load Balancing)
메인 / 백업 데이터 센터를 둔다고 했을 때 DNS에 Load Balancer를 설치하므로써 부하를 분산해줄 수 있다.
- 각 서버들의 상태를 확인
- DNS 요청에 가장 적절한 서버의 IP 주소 반환
메인 데이터 센터가 다운됐을 때, 장애 조치를 위해 DNS TTL(시간 생명) 값을 최소화해야한다.
-> DNS TTL = 0 이면, cache에서 가져오지 않고 직접 데이터를 요청하기 때문
그러나 브라우저에서 캐시된 DNS 정보가 있다면, 사용자가 여전히 구식 정보를 받을 수 있는 가능성이 있다.
Intrusion Detection System (IDS)
악의적인 활동 또는 정책을 위반하는 시스템 활동과 네트워크를 모니터링하고 기록을 남기는 침입 탐지 시스템
종류
1. Network-based IDS
악의적인 활동(예: DoS 공격, 포트 스캔 또는 컴퓨터에 침입하려는 시도)을 탐지하기 위해 네트워크 트래픽을 모니터링
- Passive Monitoring(수동 모니터링):
- 스위치 미러링 포트 or 네트워크 탭을 모니터링
- 모든 들어오는 패킷을 읽고 signature(공격 패턴)으로 알려진 의심스러운 패턴 찾기
- String(pattern) matching
- 공격 패턴과 일치하는 지 여부 검사
- 문제 : Multi-pattern String matching (여러 패턴이 한 번에 오는 경우 식별 불가)
- Signature-based IDS
- String(pattern) matching
- 일반적인 트래픽 패턴, 볼륨을 학습하고 비정상적인 현상을 식별
- Anomaly Detection (이상 탐지)
Evasion technique
- String matching 탐지에 걸리지 않기 위해 String을 작은 패킷으로 쪼개서 보내는 방법.
- 패킷 단위로 검사할 경우 String matching에 걸리지 않음.
ex> 1600 bytes 패킷을 1byte 패킷 1600개로 쪼개서 보내기.
해결 방안
- Stateful inspection
- 세션 단위로 패킷을 모아서 matching하는 방식으로 패킷들을 모아서 분석.
- memory가 많이 필요한 작업이므로, 비쌈!
2. Host-based IDS
- 외부 인터페이스의 네트워크 패킷보다 특정 호스트의 시스템 내부 활동을 분석하는 IDS
- 방식
- checksum database : HIDS가 file과 memory를 체크
3. Signature-based IDS
알려진 공격자의 명령어를 통해 탐지 [String(pattern) match]
4. Anomaly-based IDS
정상적인 트래픽 패턴을 학습하여 이상 징후가 발생시 이를 탐지
Terminology
Positive : 침입 식별.
Negative : 침입 비식별.
1. True Positive(진실된 식별) : 공격 O, 탐지 O
2. False Positive(거짓된 식별) : 공격 X, 탐지 O
3. False Negative (거짓된 비식별): 공격 O, 탐지 X
4. True Negative (진실된 비식별) : 공격 X, 탐지 X
이를 통해 Precision (정밀도) 와 Recall (재현도) 를 통해 IDS의 성능을 유추할 수 있다.
DDoS (Distributed Denial of Service)
- Denial of Service Attack(DoS): 컴퓨터 리소스를 의도된 사용자들이 사용할 수 없도록 만드는 시도.
- DDoS(Distributed Denial of Service)는 여러 분산된 공격자 시스템(좀비 또는 봇이라고 불림)이 관여된 DoS 공격.
- Malware as a Service (MaaS) : 공격을 하는데 사용되는 서비스
옛날에는 공격자를 탐지하기 쉬웠다. Zombie PC의 Request 양상이 비슷해서 파악하기 쉬웠다 (100mbps)
하지만 Botnet이 DDoS 공격의 패러다임을 바꿨다.

- Botnet : 공격자가 좀비 PC를 컨트롤하기 위해 만든 서버
- C&C (Command & Control) Server, bots, ..
방식
- 봇넷 운영자가 바이러스나 웜을 배포하여 일반 사용자의 컴퓨터를 감염시키고, 이 컴퓨터에 봇(bot)이라는 악성 애플리케이션을 설치
- 감염된 PC에 있는 봇이 특정 C&C 서버에 접속
- 스패머가 봇넷 운영자로부터 봇넷 서비스를 구매
- 스패머가 스팸 메시지를 운영자에게 제공하면, 운영자는 C&C 서버를 통해 감염된 기기들에게 지시를 내려 스팸 메시지를 발송하게 만듬.
공격자의 약점
하지만, C2(C&C) Server의 약점 중 하나는 IP가 유출된다는 것. (좀비 봇의 SYNK 패킷이 C2에게 가는 도중 발각)
하지만 Domain Generation Algorithm (DGA) 로 인해 10분에 한 번씩 C2 서버의 도메인을 변경하므로써 이를 해결했다...
DDoS 공격을 완화하기 어려운 이유
- 최근 DDoS 공격의 트래픽은 정상 트래픽과 매우 유사하다.
- 각 봇은 소량의 트래픽만 생성하므로, 겉보기에는 정상적으로 보임.
- Flash Crowd
- 네트워크 또는 호스트가 갑작스럽게 많은 트래픽을 받는 네트워크 현상
- 예를 들어, 2009년 마이클 잭슨이 사망했을 때 Google과 Twitter 같은 웹사이트가 느려지거나 심지어 다운되기도 함.
Intrusion Prevention System (IPS)
요약
- 악의적인 활동 또는 정책을 위반하는 시스템 활동과 네트워크를 모니터링하고 기록을 남기며, 이를 막거나 멈추어 공격을 방어하는 침입 방어 시스템
- IDS + Firewall
방식
IP-spoofing Test
SYN-cookie를 사용하여 테스트.

Anti-DDoS System (IPS)는 IP-Spoofing을 방지하기 위해 SYN-cookie를 사용하여 ISN를 담아 SYN-ACK를 전송한다. 송신자(bot)는 해당 ISN 값에 1을 더하여 응답해야 한다. IPS는 이를 검증하여 SYN 패킷을 수신자에게 전송하는 구조이다.
IP Spoofing 중인 경우, ISN을 유추할 수 없기 때문에 IPS가 이를 막을 수 있다.
- ISN : Hash(Src_IP, Src_Port, Dst_IP, Dst_Port, Key, time)
Traffic management
일반적인 트래픽 패턴을 학습하여 이를 벗어나는 경우(IP Spoofing 감지) 패킷을 드랍함.
한계
- False Positive와 같이 오인하는 경우에는 어떻게 해야 하는가?
- Base-Rate Fallacy
- 탐지의 정확도가 99.99%라고 하자. 10000개 중 1개 틀린다고 하더라도, 이는 1억 개 중 10000개를 오인하는 것이다. (좋지 않은 성능임을 시사함)
- 결국, 정확도가 높아도 시행횟수가 높으면 실제 횟수가 많아짐.
'Computer Science > 정보 보호와 시스템 보안' 카테고리의 다른 글
chapter 8 - Attack & Defense (Web Security 2/2) (0) | 2024.11.30 |
---|---|
chapter 8 - Attack & Defense (Web Security 1/2) (0) | 2024.11.29 |
Chapter 9 - Attack & Defense (Network Security 2/3 - TCP/IP level) (0) | 2024.10.24 |
Chapter 9 - Attack & Defense (Network Security 1/3 - ARP level) (1) | 2024.10.24 |
Chapter 7 - Security Protocol (Certificate Authority) (0) | 2024.10.24 |