Skip to content

Commit

Permalink
Update 2024_02_27_[9장] DDoS 그 외.md
Browse files Browse the repository at this point in the history
  • Loading branch information
playhuck authored Feb 27, 2024
1 parent 609f395 commit 4759fa8
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions docs/playhuck/2024_02_27_[9장] DDoS 그 외.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,88 @@
네트워크 보안 장비 중 가장 유명하고 대중적인 것은 방화벽이다.

- **9.3.1 방화벽의 정의**


네트워크 중간에 위치해 해당 장비를 통과하는 트래픽을 사전에 설정된 조건에 맞추어 패킷을 허용하거나 차단하는 장비가 방화벽이다.

일반적으로 3, 4 계층에서 동작하며 세션을 인지하는 상태 기반 엔진으로 동작한다.

- **9.3.2 초기 방화벽**


패킷이 장비에 들어오면 방화벽에 설정된 정책에 일치하는 것이 있는지 확인한다.

이 조건을 5-튜플이라고 한다.

- Source IP (데이터 전달하는 출발지 IP)
- Destination IP (데이터를 전달받는 목적지 IP)
- Protocol No, (프로토콜 번호, 3계층 지시자로 TCP, UDP를 지정할 때 사용)
- Source Port, (데이터를 전달하는 출발지의 포트 번호)
- Destination Port (데이터를 전달받는 목적지 IP)

초기 설정은 간단한 정책에는 문제가 없지만, 불특정 다수와의 통신을 위한 정책을 수립하면 룰셋이 복잡해지고 보안 취약점이 생기는 문제가 존재한다.

또한, 패킷 단위 필터링이기 때문에 5-튜플 외의 3, 4 계층 헤더를 변조하면 방어가 불가능하다.


- **9.3.3 현대적 방화벽의 등장(SPI 엔진)**


패킷 기반 필터 방화벽의 한계를 극복하기 위해 개발된 것이 바로 상태 기반 방화벽(Stateful Inspection Firewall)이다.

현재 일반적으로 방화벽이라고 부르는 대부분의 장비는 세션 기반의 상태 기반 엔진을 탑재하고 있다.

3 Way Handshake를 거친 후 HTTP 요청과 응답 과정을 거치게되는데, 과거 패킷 필터 방화벽에서 이런 트래픽을 처리하기 위해 정책을 선언하려면 Destination이 불특정 다수의 웹이기 때문에 외부로 나갈 수는 있지만 내부로 들어올 수는 없게 된다.

만약, 응답에 대한 정책을 설정한다면 외부 웹사이트는 불특정이기 때문에 출발지가 모든 IP이고 목적지 포트는 내부에서 외부 호출 시 랜덤 포트를 지정하기 때문에 모든 포트여야 한다.

이런 정책은 보안상 매우 취약하기 때문에 패킷의 인과관계를 파악하는 SPI가 나오게 됐다.

SPI는 패킷의 인과 관계와 방향성을 인지해 정책을 적용할 수 있어 내부 네트워크에서 인터넷으로 통신할 때 유용하게 사용된다. 또, 아웃바운드와 인바운드에 대한 패킷을 구분할 수 있습니다.


- **9.3.4 방화벽 동작 방식**


SPI 기준 방화벽 동작은 다음과 같다.

1. 장비에 패킷이 들어오면 세션 상태 테이블 확인
2. 조건에 맞는 세션 정보가 테이블에 있을 때, 포워딩 테이블 확인
3. 조건에 맞는 세션 정보가 없을 때, 방화벽 정책 확인
4. 정책은 위부터 아래로 천천히 확인 후 없다면 암시적 거부를 참조해 차단
5. 허용 규칙이 있다면 내용을 세션 테이블에 기록
6. 포워딩 테이블 확인
7. 조건에 맞는 정보가 포워딩 테이블에 있다면 적절한 인터페이스로 포워딩
8. 조건에 맞는 정보가 포워딩 테이블에 없을 때 패킷을 폐기

SPI 엔진은 5-튜플 뿐만 아니라, OSI 3, 4 계층의 세부적 필드도 함께 확인한다.

대부분의 방화벽 통신은 통신 전체의 세션을 로그로 저장할 수 있다.


- **9.3.5 ALG**


방화벽은 헤더 정보를 더 상세히 확인하고, 세션을 인지할 수 있지만 Application 헤더 정보를 인지할 수 없다(EX : FTP).

세션 기반인 방화벽은 세션의 방향성이 매우 중요하다.

따라서, FTP같은 오래된 프로토콜을 방화벽에서 동작 시키기 위해 Application 프로토콜을 확인하고 필요에 따라 세션을 인지해 포트를 자동으로 열어준느데 이것을 ALG라고 한다.

일반적으로 ALG는 PAT기능이 동작하는 방화벽에서 PAT를 정상적으로 통과하지 못하는 프로토콜을 자동으로 인지해 정보를 변경해주거나 세션 테이블을 만들어주는 작업을 한다.


- **9.3.6 방화벽의 한계**


DDos 공격이 새로운 트렌드가 됐다.

방화벽을 우회하는 다양한 공격 및 대규모 웜 공격으로 방화벽의 한계가 드러났다.

근본적인 바이러스나 백도어 혹은 웜을 방어할 수는 없었다.

보안 취약점으로 인해 다양한 공격을 방어할 수 없게 된 것이다.


<aside>
💡 현대 방화벽 NGFW, UTM
Expand All @@ -37,7 +110,46 @@ Application 공격은 서비스의 자체적인 시스템 보안 취약점을
이런 Application 계층에서 이루어지는 공격을 탐지, 방어하기 위해 IDS와 IPS가 개발됐다.

- **9.4.1 IPS, IDS의 정의**


- IDS란 Intrusion Detection System(침입 탐지 시스템)의 약자다.
- IPS란 Intrusion Prevention System(침입 방지 시스템)의 약자다.
- 호스트 기반 IPS(엔드포인트 보안)
- 네트워크 기반 IPS(네트워크 보안)

일반적인 IPS 시스템은 네트워크 기반 NIPS이다.


- **9.4.2 IPS, IDS의 동작 방식**


기본적으로 IPS는 공격 데이터베이스를 사용한 패턴 매칭 방식이다. 그 외에도 Protocol Anomaly나 Profile Anomaly 등의 기법이 있다.

1. 패턴 매칭 방식


기존 공격이나 취약점을 통해 공격 방식에 대한 데이터베이스를 습득하고 공격을 파악하는 기술을 패턴 방식, 시그니처 방식, 데이터베이스 방식 방어라고 한다.

default.ida?NNNNNNNNNNNNNNNNNN 같은 특별한 문자열이 오면 모니터링하고 있다 매칭되는 패킷을 방어하는 식이다.


1. 어노말리 공격 방어


특정 기준 이상의 행위를 이상행동으로 판단하고 방어한다.

- 프로파일 어노말리


관리자가 정해놓은 기준이나 모니터링해 정해진 기준과 다르면 공격으로 판단한다. 이 기능은 향후 DDoS 방어 장비로 진화했다.


- 프로토콜 어노말리


해커가 PC를 공격하기 위해 웹 서버나 이메일에 악성코드를 올려놓고 받도록 유도하고 좀비 PC가 되려고 할 때, 잘 알려진 포트와 실제 포트가 통신하는 프로토콜이 다를 때 이것을 파악해 제어하는 기법을 어노말리라고 한다.



### 9.5 DDoS 방어 장비

Expand All @@ -48,9 +160,36 @@ Application 공격은 서비스의 자체적인 시스템 보안 취약점을
이러한 공격 방식을 DoS라고 한다.

- **9.5.1 DDoS 방어 장비의 정의**


DDoS 방어 장비는 볼류메트릭 공격을 방어하기 위한 트래픽 프로파일링 기법을 주로 사용하고, 인터넷의 공격 정보를 수집한 데이터베이스를 사용하기도 한다.


- **9.5.2 DDoS 방어 장비 동장 방식**


DDoS 공격을 탐지해 공격을 수행하는 IP 리스트를 넘겨주면 방어 장비나 내부에서 이 IP를 버리는 것이 가장 흔한 DDoS 방어 기법이다.

평소 데이터의 흐름을 습득해 평소와 다른 과도한 트래픽이 들어오면 알림과 함께 차닪나다.

또 하나의 방법은 보안 장비처럼 데이터베이스 기반으로 방어하는 것이다.

- **9.5.3 DDoS 공격 타입**


1. 볼류 메트릭 공격

⇒ 대용량 트래픽을 사용해 대역폭을 포화시키는 공격

2. 3, 4 계층의 취약점과 리소스 고갈을 노리는 프로토콜 공격

⇒ 공격 대상이나 중간 위험 리소스의 처리 용량을 모두 사용해 서비스 중단을 유발

3. Application의 취약점을 노리는 공격

⇒ 연결을 설정한 후 프로세스와 트랜잭션을 독점해 서버자원을 소모



### 9.6 VPN

Expand Down

0 comments on commit 4759fa8

Please sign in to comment.