Search
Duplicate

11. Dos와 DDos 공격

생성일
2022/06/12 07:13
태그
DoS(Denial of Service , 서비스 거부)
공격 대상이 수용할 수 있는 능력 이상의 정보를 제공하거나 사용자 또는 네트워크 용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격
DoS 공격의 특징
파괴 공격 : 디스크, 데이터, 시스템 파괴
시스템 자원 고갈 공격 : CPU, 메모리, 디스크의 과다한 사용으로 인한 부하 가중
네트워크 자원 고갈 공격 : 쓰레기 데이터로 네트워크 대역폭의 고갈
Ping of Death 공격
1.
Ping을 이용하여 ICMP 패킷의 크기를 정상 보다 아주 크게 만듦
2.
크게 만들어진 패킷은 네트워크를 통해 라우팅되어 공격 네트워크에 도달하는 동안 아주 작은 조각으로 쪼개짐
3.
공격 대상은 조각화된 패킷을 모두 처리해야 하므로 정상적인 ping 보다 부하가 훨씬 많이 걸림
패킷을 왜 작게 분할하여 전달하나?
라우팅은 패킷을 전달할 때 특성이 똑같은 네트워크를 지나지 않음(네트워크 마다 다르다는 뜻)
네트워크마다 전송 가능한 최대 패킷의 길이가 달라 전송가능한 패킷의 길이가 작은 네트워크를 지나면서 데이터는 작게 분할됨
한 번 분할된 패킷은 전송 중에 재결합되지 않음
패킷 재조합하려면 패킷을 저장한 후 다음에 들어온 패킷 데이터를 모두 합쳐 재조합해야 하지만 라운터 성능에 치명적일 정도로 높은 부하를 야기함
최종 수신처인 컴퓨터에서 재결합 진행
패킷 분할
ICMP 패킷의 최대 길이를 65,500바이트로 임의 설정
최대 크기인 65,500바이트로 네트워크에 ping 을 보내면 패킷은 전송에 적절한 크기로 분할됨
채킷이 지나는 네트워크의 최대 전송 길이가 100 바이트라면 패킷 하나가 655개로 자동 분할
보안 대책
반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하도록 설정
가장 일반적으로 할 수 있는 대책은 패치
SYN Flooding
서버별로 한정되어 있는 접속 가능 공간에 존재하지 않는 클라이언트가 접속한 것처럼 속여 다른 사용자가 서비스를 제공받지 못하게 하는 것
1.
공격자는 많은 숫자의 SYN 패킷을 서버에 보냄
2.
서버는 받은 SYN 패킷에 대한 SYN/ACK 패킷을 보내고 연결 대기
3.
공격자는 ACK 패킷을 보내지 않음
4.
서버는 자신이 보낸 SYN/ACK 패킷에 대한 ACK 패킷을 받지 못하고 대기
5.
서버는 세션을 계속 유지하여 더 이상 제공할 연결 세션이 없어 공격은 성공하게 됨
‘SYN Received’ 상태로 ACK 패킷을 기다리는 것을 ‘백 로그에 빠졌다’ 고 표현
SYN Flooding 보안 대책
시스템 패치 설치
침입 탐지 시스템이나 침입 차단 시스템을 설치
짧은 시간 안에 똑같은 형태의 패킷을 보내는 형태의 공격을 인지 했을 경우, 그에 해당하는 IP주소 대역의 접속을 금지하거나 방화벽 또는 라우터에서 해당 접속을 금지 시킴
서버에서 클라이언트로 보내는 SYN + ACK 패킷에 암호화 기술을 이용해서 인증 정보가 담긴 시퀀스 넘버를 생성하여 클라이언트에 보내는 SYN_Cookie 이용
1.
클라이언트로부터 SYN 패킷을 받으면 서버는 간단한 인증 정보가 담긴 SYN_cookie를 시퀀스 값에 넣고 전송 후 세션 종료
2.
클라이언트가 Syn_Cookie 가 포함된 값으로 ACK를 보내면 서버는 Syn_Cookie 세션 열고 정상 통신 시작
Boink, Bonk, TearDrop
시스템의 패킷 재전송과 재조합에 과부하가 걸리도록 시퀀스 넘버를 속임
Bonk
처음 패킷을 1번으로 보낸 후 두 번째와 세 번째 패킷의 시퀀스 넘버를 모두 1번으로 조작해서 보냄
Boink
처음 패킷을 1번으로 보낸 후 두번째 패킷은 101번, 세번째 패킷은 201번 등으로 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버를 보냄
Teardrop
시퀀스 넘버를 일정하게 바꾸는 것을 넘어 중첩과 빈 공간을 만들어 시퀀스 넘버가 좀 더 복잡해지도록 섞음
→ 전혀 맞지 않는 시퀀스 넘버로 인해 피공격 대상이 패킷화된 데이터를 재조합하는 과정에 혼란이 생겨 CPU에 과부하가 걸리게됨
Land
시스템을 나쁜 상태에 빠지게 하는 것
패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소의 값을 똑같이 만들어서 공격 대상에게 보냄(조작된 IP 주소 값은 공격 대상의 IP 주소 여야함)
Land 공격으로 동시 접속 사용자 수 증가하고 CPU 부하도 가중됨
보안 대책
라우터나 방화벽에 출발지 IP 주소가 내부 IP 주소와 동일한 패킷 차단
Smurf 공격
웜이 네트워크를 공격할 때 많이 사용하는 방법으로 ICMP 패킷 이용
라우터는 기본적으로 로컬 브로드 캐스트를 지원하지 않으 다른 네트워크에 브로드 캐스트를 할 때는 다이렉트 브로드 캐스트를 하게됨
네트워크 주소가 172.16.0.0 일 때, 공격자가 피공격자 IP 주소를 위조하여 목적지 방송 주소 172.16.0.255로 다이렉트 브로드 캐스트 형식으로 보냄
네트워크에 연결된 모든 컴퓨터는 피공격자 IP로 ICMP reply를 보내게 되고, 피 공격자 서버는 Ping of Death 와 같은 공격을 받게됨
보안 대책 : 라우터에서 다이렉트 브로드 캐스트를 차단토록 설정
Fraggle 공격
Smurf 공격과 유사하지만 ICMP 대신 UDP 를 사용하는 점이 다름
공격자들은 증폭 네트워크 내의 브로드 캐스트 주소로 전형적은 포트 7을 이용해 가짜 UDP 패킷을 전송
에코가 가능한 네트워크 내의 각각의 시스템은 엄청난 트래픽을 생성하고 공격 대상 서버로 응답을 보내게 됨
만약 증폭된 네트워크 내의 시스템에서 에코가 가능하지 않더라도 ICMP 도달 불능 메시지가 여전히 대역폭을 소모하게 됨
7계층 Dos 공격
최근의 DoS 공격은 웹 어플리케이션 등을 대상으로 공격 방향을 전환
7계층 공격의 주요 특징
정상적인 TCP/UDP 연결 기반의 공격으로, 변조된 IP가 아닌 정상 IP를 이용한 접속 요청 후 공격이 진행되어 정상 사용자의 트래픽과 구분하기가 어려워 탐지가 어려움
소량의 트래픽을 이용한 공격으로 오랜 시간에 걸쳐 서서히 공격이 진행되어 탐지가 어려움
특정 서비스의 취약점을 이용하여 공격(현재까지는 웹 서비스의 취약점을 이용한 공격이 주를 이루고있음)
웹 어플리케이션에 대한 DoS공격 유형
HTTP Get Flooding 공격
공격 대상 시스템에 TCP 쓰리웨이 핸드쉐이킹 과정을 통해 정상적으로 접속한 뒤, HTTP의 GET Method를 통해 특정 페이지를 무한대로 실행하는 방식
HTTP CC 공격
DoS 공격 기법에 ‘Cache-Control : no-store, must-revalidate’ 옵션을 사용하면, 웹 서버는 캐시를 사용하지 않고 응답을 해야 하므로 웹 서비스의 부하가 증가
동적 HTTP Request Flooding 공격
요청 페이지를 변경하여 웹 페이지를 지속적으로 요청하는 기법
Slow HTTP Header DoS(Sloworis) 공격
서버로 전달할 HTTP 메시지의 Header 정보를 비정상적으로 조작하여 웹 서버가 헤더 정보를 완전히 수신할 때 까지 연결을 유지하도록 하여 시스템 자원을 소비시켜 다른 클라이언트의 정상적인 서비스를 방해하는 공격
불안전한 메시지를 수신한 웹 서버는 클라이언트의 요청이 끝나지 않은 것으로 인식하여 웹 로그를 기록하지 않음
Slow HTTP Post 공격
웹 서버와의 커넥션을 최대한 장시간 동안 유지하여 웹 서버가 정상적인 이용자의 접속을 받아들일 수 없게 하는 방식
필요로 하는 Content_Length 를 설정하면 Slow HTTP POST 공격을 어느정도 대응 가능
Mail Bomb
흔히 폭탄 메일이라고 하며, 스팸 메일도 같은 종류
메일 서버는 각 사용자에게 일정한 디스크 공간을 할당하는데, 메일이 폭주하여 디스크 공간을 가득 채우면 정작 받아야 할 메일을 받을 수 없음.
DDoS(Distributed Denial of Service)
DoS 공격이 발전된 것
피해 양상이 상당히 심각하지만 확실한 대책이 없음.
공격자의 위치와 구체적인 발원지를 파악하는 일이 무척 어려워 여전히 대응이 어려운 공격중의 하나
특성상 대부분의 DDoS 공격은 자동화된 툴을 이용
DDoS 공격이 이루어지기 위한 기본 구성
공격자 : 공격을 주도하는 해커의 컴퓨터
마스터 : 공격자에게 직접 명령을 받는 시스템, 여러 대의 에이전트 관리
핸들러 프로그램 : 마스터 시스템 역할을 수행하는 프로그램
에이전트 : 공격 대상에 직접 공격을 가하는 시스템
데몬 프로그램 : 에이전트 시스템 역할을 수행하는 프로그램
DDoS 공격 구성도
DDoS 공격에서는 중간자 역할을 하는 마스터와 에이전트가 피해자이기도 하다는 것이 폭력 조직과 다름
DDoS 공격 순서
1.
많은 사람이 사용하며 대역폭이 넓고 관리자가 모든 시스템을 세세하게 관리할 수 없는 서버의 계정을 휙득한 후, 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 휙득.
2.
잠재적인 공격 대상을 파악하기 위해 네트워크 블록별로 스캐닝을 실시한 후, 원격지에서 버퍼 오버 플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악
3.
취약한 시스템 목록을 확인한 후 실제 공격을 위한 Exploit을 작성
4.
권한을 흭득한 시스템에 침투하여 Exploit을 컴파일하여 설치
5.
설치한 Exploit으로 공격 시작
Trinoo(트리누)
udp를 기본으로 공격을 시행하며, ‘statd,cmsd,ttdbserverd’ 데몬이 주된 공격 대상
TFN (Tribed Flood Network)
믹스터가 개발한 Trinoo가 약간 발전된 형태
Teletubby Flood Network 라고 부르기도 함
Trinoo처럼 statd, cmsd, ttdb 데몬의 취약점을 공격
클라이언트(마스터)와 데몬간에 ICMP Echo request 패킷을 사용하고, TCP, UDP 연결도 이뤄지지 않아 모니터링이 쉽지않음
17바이트부터 일정한 형태를 이뤄 구별이 가능해짐.
공격자 시스템과 마스터 시스템 간의 연결이 암호문이 아닌 평문으로 전달된다는 약점이 있음
TFN 2K
믹스터가 개발한 TFN의 발전된 형태
통신에 특정 포트를 사용하지 않고 암호화 되어있음(프로그램을 통해 UDP, TCP, ICMP를 복합적으로 사용하며 포토도 임의로 결정)
TCP SYN Flooding, UDP Flooding, ICMP Flooding, SMURF 공격을 씀.
모든 명령은 CAST-256 알고리즘으로 암호화됨.
지정된 TCP 포트에 백도어를 실행할 수 있음
데몬은 설치할 떄 자신의 프로세스 이름을 변경하여 프로세스 모니터링을 회피
UDP 패킷의 헤더가 실제 UDP 패킷보다 3바이트만큼 더 큼.
TCP 패킷의 헤더는 길이가 항상 0(정상 패킷이면 절대 0일 수 없음)
Stacheldraht(슈타첼드라트)
독일어로 철조망이라는 뜻
1999년 10월 처음 출현한 것으로 알려져 있으며, TFN을 발전시킨 형태
공격자와 마스터, 에이전트, 데몬과의 통신에 암호화 기능이 추가됨
Stacheldraht의 각 마스터가 제어할 수 있는 데몬의 개수는 기본적으로 1000개
마스터에 에이전트가 자동으로 갱신됨
악성코드를 이용한 DDoS 공격
악성 코드에 감염된 좀비 PC는 공격자의 공격 에이전트가 되고, 공격자가 공격 명령을 전달하면 공격 대상에게 DDoS 공격을 수행
방화벽 설치와 운영
보통 내부 네트워크와 외부 네트워크의 경계선에 우선 설치
방화벽이 차단할 수 있는 침입은 실제로 30%정도
출발지 주소, 목적지 주소, 침입을 시도하려는 서비스(포트번호), 프로토콜 침입 차단 가능
방화벽 룰셋
최소한의 서비스만 제공하고 사용하지 않는 서비스의 포트는 닫음
외부 네트워크에서 들어오는 패킷의 출발지 주소가 내부 네트워크에 존재하는 주소지와 일치할 경우 차단
침입 차단 시스템 내부의 구성 요소 간 트러스트를 금지
인증없이 시스템에 접속 할 수 있는 내부/외부 사용자를 허락하지 않음
명시적인 서비스 외의 모든 서비스 금지
침입 차단 시스템의 설치와 운영
침입 차단 시스템 : 네트워크에 침입해서 들어오는 공격을 탐지하여 능동적으로 대응하기 위한 시스템
실제 공격 시 또는 그 전에 공격 양상을 탐지할 수 있으므로 이를 설치하여 새로운 패턴을 인식할 수 있도록 지속적으로 업그레이드 하고 관리해야함.
탐지된 공격의 출발지 주소에 대한 방화벽이나 라우터에서의 영구적인 접근 금지도 예방책이 될 수 있음
시스템 패치
시스템에서 바이러스와 해킹 공격에 취약한 점이 발견되면 각 업체에서 패치를 발표하므로, 이를 설치하는 방법
해당 패치가 어떤 작용을 하는지 이해한 뒤 설치해야함
스캐닝
포괄적인 의미의 시스템 분석
서비스별 대역폭 제한
각 서비스 별로 대역폭을 조절하여 특정 서비스에 대한 공격이 이루어지더라도 나머지 서비스에 대한 영향을 최소화 할 수 있음
공격이 이루어지고 있는 서비스도 공격 성공에 필요한 최소 대역폭을 얻을 수 없어 공격에 성공하기 어려움