728x90

분산 DoS 공격 (DDoS)

  • 공격에 많은 호스트(zombie)를 동원
  • 공격자는 공격에 사용하기 위한 호스트(zombie)에 멀웨어를 설치하여 조정
  • 공격자가 직접 zombie를 조정할 수도 있지만, 보통 다음의 구조를 갖는다.
    • 공격자
    • Handler(C&C)
    • Agent(zombie)
  • Botnet
    • Zombie 군단을 보통 봇넷이라고 한다.

 

 

DDoS 방어

No zombie - no infection

  • 해석: zombie가 없으면 DDoS 공격은 가능하지 않다.
  • 그러나 이 방법은 전세계 호스트를 대상으로 해야 하는 일이므로 각 호스트 개인의 책임 영역에 있다.

 

Source IP address spoofing 방어

  • ISP의 협조
  • 사용하지 않는 IP 소스 주소의 패킷을 막음

 

SYN cookie - TCP authentication

  • 서버가SYN패킷을받았을때이것이정당한SYN패킷인지아닌지모르 기때문에 half-open 연결을 하지 않는다.
  • 대신, 서버는 초기 TCP sequential number를 다음과 같이 계산된 해시값 으로 사용한다.
    • TCPSN초기값=H(IP소스주소,IP목적지주소,SYN의포트번호,비밀값),비밀 값은 서버 만이 알고 있는 값
    • 이와 같이 계산된 SN 초기값을 SYN cookie라고 한다.
    • 그리고 서버는 SYN-ACK을 전송한다.
    • 이때, 서버는 SYN cookie 값이나 어떠한 연결 정보도 TCP 버퍼에 기록하지 않는다.
    • 나중에 SYN-ACK에 대한 응답을 받으면, 그 패킷에서 동일한 정보로 cookie값을 계 산한다. 만약 cookie+1이 응답된 패킷의 sequence number와 일치하면 정당한 연결 요청으로 TCP 버퍼에 연결 정보를 기록한다.
    • 이와 같이 서버는 SYN에 대한 정보를 기록하지 않고도 정당한 연결에 대해서 연결을 설정할 수 있다.
  • SYN Cookie는 서버(시스템)의 자원에 대한 공격을 방어하는 방법이다.
  • 서버가 네트워크에 연결된 링크의 대역에 대한 공격을 방어하지는 못한다.

 

다리를 파괴하라 (drop)

  • 감당할 수 없을 경우 패킷들을 drop 시킨다.
  • 그런데 이때 공격 패킷과 정상 패킷을 구분할 수 없다.
    • 공격 패킷 뿐만 아니라 정상 패킷까지 같이 drop된다.
    • 그렇다면, DDoS 공격이 어느 정도 성공되었다고 볼 수 있다.

출처: KISA

분산 서버 ("눈에는 눈, 이에는 이")

  • 서버를 지역적으로 분산시킨다.
  • 사실상이방법이현재웹서비스를하는회사들이DDoS를 방어하는 현실적인 방법이다.
  • 그래서 대표적인 웹 서비스 회사들의 서버는 DDoS 공격을 당하지 않는다.
  • 이러한 분산 서버 운영을 지원하는 대규모(다국적) 웹 호스 팅 서비스 회사들이 존재한다.

 

공격자 추적

  • 앞의 Botnet에서 보았듯이, 전문적인 공격자는 자신의 존재의 자취(log 기록 등)는 남기지 않는다.
  • IP 주소로도 추적하기가 힘들다.
  • 사실상, 공격자 추적은 가능하지 않고, 단지 zombie들만 추 적할 수 있다.

 

CAPTCHA

  • CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)는 DoS 공격을 막는 방법의 한 종류라고 할 수있다.
  • 공격자가 자동적인(automated) 방법으로 접근을 시도 하려고 할 때 막는 방법이다.

 

728x90

서비스 거부 공격: DoS (Denial of Service)

  • 네트워크 대역, CPU, 메모리, 디스크 공간 등의 자원을 소모하여 네트워크, 시스템, 응용 서비스의 정당한 사용을 방해하는 공격 행위

DoS 공격 목표

  • 네트워크 대역
  • 시스템 자원 (resources)
  • 응용 프로그램 자원

DoS 공격은 정보 보안 요소의 가용성 (availability) 에 대한 공격이다.


공격 형태

Flooding

  • 공격 목표에 대량의 패킷을 집중적으로 전송한다.

Flooding 방법

  • Ping flooding
  • Source IP address spoofing
  • SYN flooding (spoofing)
    • Half-open connection
  • Reflector
  • Amplifier (Smurf attack)

Ping

Ping of death

  • 정상적인 ping 패킷 길이는 56바이트(ICMP 64, IP 84바이트)
  • IP 패킷의 최대 길이 65,535바이트
  • 공격자는 ping 패킷을 65,535바이트로 하고, 이것을 8바이트 로 분해하여 목표 호스트(target)에 전송하면, 이것을 재결합 하는 할 때 버퍼 오버플로우가 발생
  • 이전 시스템은 쉽게 이러한 문제가 발생했음

 

Ping flooding

  • 단순히 목표 호스트에 Ping 패킷을 집중적으로 보냄

 

Source IP address spoofing

  • 한 개의 호스트에서 공격 패킷이 날아오면 쉽게 공격을 찾아내고 방어할 수 있다.
  • 그래서 공격 패킷의 소스 IP 주소를 가짜 주소로 해서 보낸다.
    • 라우터에서 패킷을 처리할 때 IP 소스 주소의 진위 여부는 가리지 않는다.

 

반사 (reflection)

  • IP 소스 주소를 공격 대상 호스트로 하여 불특정 호스트에게 패킷을 보낸다.
    • 자신의 존재를 숨길 수 있다. (추적 방지)
    • 공격량을 증대시킬 수 있다.
  • 분산 반사 공격이라고 불리움
    • DRDoS (Distributed Reflection DoS)

 

 

증폭 (amplifier)

  • IP 브로드캐스트 주소 사용
    • IP 소스 주소를 공격 대상 호스트의 IP 주소로 한다.
    • 패킷의 수신 주소를 브로드캐스트 주소로 한다.
    • 그러면, 브로드캐스트 주소에 해당하는 모든 호스트가 공격 대상으로 응답 패킷을 보낸다.
  • Smurf 공격 (ICMP echo reply amplifier)

 

 

 

SYN flooding (spoofing)

  • 초기 대표적 DoS 공격 형태였다.
  • TCP 3-way handshake 절차 악용
    • 공격자는 SYN 패킷을 보낸다.
    • 수신 호스트는 메모리에 TCP 버퍼(스택)에 연결을 요청한 호스트 정보를 기록하고 SYN-ACK으로 응답한다. (half-connection)
    • 공격자는 소스 주소를 바꾸어 계속 SYN 패킷을 동일 호스트에 전송한다.
    • 수신 호스트는 메모리의 TCP 버퍼가 넘치면 더 이상 SYN 패킷을 처리할 수 없게 된다 (그것이 정상적인 SYN 패킷이라 하더라도).

 

'서버 > 암호' 카테고리의 다른 글

방화벽 (Firewall)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29
728x90
  • 방화벽은 어떤 패킷이 네트워크를 통과할 수 있는지를 결정한다. - packet filtering
  • 어떤 패킷이 통과할 수 있는지의 여부는 망 보안 정책에 따라 결정된다.


방화벽 유형

원래 다음과 같은 두 가지 유형의 패킷 필터가 존재한다.

  • 패킷 필터
    • 네트워크와 수송 계층의 정보를 조사
  • Stateful 패킷 필터
    • 패킷 필터 + TCP 연결 상태를 조사

 


패킷 필터 (Packet Filter)

네트워크와 수송 계층의 헤더 정보를 사용

  • IP 소스/목적지 주소
  • IP 패킷의 Protocol Type
  • TCP/UDP의 소스/목적지 포트 번호
  • TCP Flag bits (SYN, ACK, etc.)
  • ICMP 메시지 유형(message type)
  • 네트워크 입구/출구에서의 기타 규칙

( + ) 장점 

  • 빠른 처리 속도

( - ) 단점

  • 각 패킷은 다른 패킷과 독립해서 별도로 처리된다.
  • TCP연결을볼수없다.
  • 응용데이터를볼수없다.
    • 따라서, 바이러스가 포함된 패킷이 통과할 수 있다.

 

패킷 필터링

 

Action Source IP Dest IP Source Port protocol Dest Port Flag Bits
Allow 202.30.107.0/24 Outside > 1024 TCP 80 Any
Allow Outside 202.30.107.0/24 80 TCP > 1023 ACK
Deny All All All   All All

( Access Control Lists (ACLs)에 의해 구성 )

  • 내부망의 주소: 202.30.107.0/24
  • 내부 호스트는 외부망의 웹 서버에 접속을 허용
  • 이외의 모든 트래픽은 차단

 

TCP ACK 스캔

공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.

  • 공격자는 3-way handshake 없이 ACK 비트를 세팅하고 패킷을 보낸다.
  • 이것은 TCP/IP 프로토콜을 위반하는 것이다.
  • ACK 패킷은 패킷 필터를 통과한다.
    • 현재 연결 설정이 진행 중인 것으로 보여진다.
  • 이 패킷을 받은 수신 프로세스는 Reset 비트를 세팅하여 보낸다.
  • 공격자는 이와 같이 하여 방화벽을 통과할 수 있는 포트 번호를 스캔할 수 있다.


Stateful Packet Filter

패킷 필터에 연결 상태 정보를 추가한다.

TCP 연결과 flag 비트를 기억한다.

UDP 패킷도 기억할 수 있다. (e.g., DNS requests)

Action Source IP Dest IP Source Port protocol Dest Port Flag Bits 연결조사
Allow 202.30.107.0/24 Outside > 1024 TCP 80 Any  
Allow Outside 202.30.107.0/24 80 TCP > 1023 ACK O
Deny All All All   All All  

Intrusion Prevention System (IPS)

  • 원래 방화벽은 규범적인 용어가 아니라 서술적 용어, 즉, 이렇게 만들어야만 방화벽이라고 할 수 있다라는 것은 아니다.
  • 장비회사들은 원래의 패킷 필터가 사용하는 정보 이상의 정보를 사용하여 필터링하는 장비를 만들고 여러가지 이름으로 불렀다.
  • 이중 고착된 이름 중에 하나가 IPS이다.
  • IPS를 포괄적으로 정의를 해 보면,
    • 네트워크와 수송 계층 이상의 정보를 사용하여 필터링
    • 경우에 따라서는 트래픽에서의 규칙, 특성(signature)을 사용하여 필터링
      1. 이런 점에서는 IDS의 기능과 중복, 즉 패킷 필터링을 하는 IDS라고 할 수도 있다.

 

Applicartion Gateway (Proxy)

  • Application Gateway는 들어오는 (incoming) 응용 계층의 데이터를 검사한다.
  • 진입을 허용하기 전에 데이터가 안전한지 확인한다.
  • Proxy는 응용 프로토콜을 대신 동작하는 것을 의미한다.
  • 외부망으로 (에서) 접근할 때는 반드시 proxy와 먼저 통신을 해야 한다.
    • Proxy는 접근자에 대한 인증을 할 수도 있다.
    • 적법한 사용자의 패킷을 받아서 외부망의 서버에 패킷을 새로 구성해서 전달한다.
  • 여러 종류의 application proxy가 존재할 수 있다.
    • Telnet, HTTP, FTP, email application proxy 등등

( + ) 장점

  • 연결과 응용 데이터 모두를 볼 수 있다.
  • 응용 계층에서 나쁜 데이터를 걸러 낼 수도 있다. (viruses, Worm macros)

( - ) 단점

  • 느린 속도

 

예) Telnet gateway

예를 들어, 내부망의 특정 사용자만 외부망에 telnet으로 연결할 수 있도록 하고 싶다.

  • 사용자의 telnet 요청은 Application gateway와 먼저 연결
  • Gateway는 사용자를 인증
  • 허락된 사용자일 경우 외부망의 서버와 telnet 연결
  • 따라서, 두 개의 telnet 세션이 존재: gateway-to-내부 호스트, gateway-to-외부 호스트

 

 

방화벽과 심층 방어 (Defense in Depth)

  • DMZ부분은 쉽게 접근하여야 한다. 그리고 빨라야 한다.
  • 외부망에서 내부망 접근은 Telnet으로 연결이 된다. 속도가 느리다.

'서버 > 암호' 카테고리의 다른 글

네트워크 공격 : DoS (1)  (0) 2021.08.02
Spoofing (속이기)  (0) 2021.07.29
Snooping (sniffing) – 정찰(탐색)  (0) 2021.07.29
네트워크 공격  (0) 2021.07.29
ICMP 질문 메시지(Query)  (0) 2021.07.29

+ Recent posts