밍경송의 E.B

[사이버보안] 네트워크 보안 - DoS, DDoS, DRDoS, Network Scanning 본문

CSE/사이버보안개론

[사이버보안] 네트워크 보안 - DoS, DDoS, DRDoS, Network Scanning

m_gyxxmi 2024. 4. 24. 21:47

이 글은 2024-1 ㅇ화여대 사이버보안개론 수업자료를 참고하였음을 밝힙니다

 

🔒네트워크 공격의 유형

많은 공격 지점, 자원 과 작업의 공유 가능, 시스템의 복잡성 등이 넽웤를 취약하게 만듦.

 

🔑 네트워크 위협의 유형

수동적 공격 - 직접적 피해 없음
- 탐지 어려움 
  -> 수동적 공격을 통해 능동적 공격을 실행할 가능성이 높아 탐지 중요
ex 스니핑, 도청
능동적 공격 - 직접적 피해 있음
- 탐지 비교적 쉬움
ex 사회공학, 변조, Dos, DDos, 세션 하이재킹

 


 

🔒서비스 거부 공격

 

 

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

- 서비스가 정상적으로 제공되지 못하도록 공격. (목적 : 가용성 ↓)

how? : 대규모 가짜 요청을 만들어 vic의 시스템 과부하

 

2 분산서비스거부(DDos : Distributed Denial of Service) 공격

how? : 공격자가 여러 곳에서 동시에 서비스 거부 공격을 함  (근본적 해결 어려움)

 

* 공격 유형

대역폭 소진 공격
(sys 전체 점유)
형태 : TCP SYN flooding, ICMP/UDP flooding, IP flooding(LAND, Teardrop)
대상 : 넼웤 인프라
증상 : 대역폭 고갈
서버 마비 공격
(특정 서버타겟팅)
형태 : HTTP GET flooding
대상 : 웹서버, 정보보호 장비 등
증상 : 공격 대상 sys 만 피해

 


 

[TCP SYN flooding]

1) SYN 패킷을 대량으로 보내어 대역폭 낭비 -> 일반 사용자 접속 불가하게 하기

  -> 버퍼의 크기보다 더 많은 개수의 패킷 동시 전송 or 대기 큐에서, 지워지는 속도보다 채워지는 속도가 더 빠르게.

 

2) TCP의 3-way handshaking 악용 : 송신자(공격자)가 3번째 단계인 ACK을 보내지 않음-> 수신자 계속 대기

 

🔑대처 -  1) 대기 큐 크기 증가, 최대 접속 대기시간 감소 (ack 안오면 강제 종료), 보안솔루션 적용(방화벽 등 이용 특정 IP 차단)

 

 

[ICMP flooding : Smurf attack]

*ICMP이란? : TCP/IP에서 IP패킷 처리 시 에러 발생 시  -> src에게 정보 전달

**ping 명령 시에 사용 (request 4개 날림)

: 대량의 ICMP echo response를 만드는 공격으로,

출발 IP를 vic의 IP로 변조해서 ICMP echo를 보내면 대량의 response가 vic에게 감.

 

step 1) 공격자에 의한 브로드캐스트 

: 어떤 클래스든, IP 주소 중 호스트 부분의 주소가 255or 255.255 or.. 면 broadcast로 여겨짐(동일 네트워크 주소의 모든 애들한테 보내는 것으로)

 

 

step 2) 에이전트에 의한 공격

: 변조된 request(정확히는 ICMP echo request)를 받은 에이전트들이 동시에 vic에게 request 보냄.

 

 

🔑대처 : ICMP echo response 패킷 다량 발생? -> drop 시킴

 

 

 

[UDP flooding]

: 많은 수의 UDP packet을 victim에게 전송하여 정상 서비스가 불가하도록 하는 공격

* spoofed IP& port (남의 것 도용) 사용 -> filter로 차단 어려움

* 해당 포트가 닫혀있으면 ICMP Destination Unreachable 패킷 -> 요청자에게 회신해줌.(이 port 닫혀있어)

-> 대역폭 소모. 서비스 불가해짐

* 보통 DDos)

 

🔑대처 : 필요한 포트에서만 인바운드 트래픽 허용

 

 

 

[LAND(Local Area Network Denial)]

: 출발지 IP 주소를 변조하는 공격. 패킷 전송 시

출발지 IP 주소 == 도착지 IP 주소 (vic의 IP) -> 무한 루프 or 무의미한 세션 생성

 

🔑대처 : 출발==도착인 경우 예외처리

 

 

 

[Ping of Death]

: 넽웤 연결 상태 점검용 ping을 보낼 때 ping 1개의 패킷 길이를 개개ㅐ개개길게 보냄 -> 수천 개의 패킷으로 쪼개 전송

-> 대량의 작은 패킷 수신한 vic 마비 

 

🔑대처 : ICMP 아예 차단 or ICMP패킷 중 분할된 패킷 의심 (ICMP은 분할 잘 안함)

 

 

 

[Teardrop]

: IP (fragment)의 헤더를 일부로 중첩/빼먹음 (조작) -> 재조합 과정에서 오류 발생 -> 연결 끊김 or 블루스크린 발생

 

🔑대처시퀀스 번호 오류 패킷 무시 but 완전 차단 어렵.

 

 

[Bonk attack]

: 2번 3번째 패킷 모두 시퀀스 넘버를 1번으로 조작

 

[Boink attack]

: 1번 패킷 정상 -> 중간에 계속 비정상적인 시퀀스넘버 사용

 

🔑대처 : 패치, 이상한 패킷 주는 애 MAC/IP 주소 차단

 


 

🔒분산 서비스 거부 공격

Dos와 공격 방식은 유사. '다수'의 컴퓨터를 사용한다는 차이 존재 -> 구체적인 발원지 차이 불가능

 

* 구성요소

마스터 : 중간 증폭기 역할, 공격자 ->에이전트로 명령 전달

에이전트 : vic에게 실제 공격을 하는 주체

 

 

[UDP/ICMP flooding]

: 공격자가 다량의 UDP/ICMP 패킷을 서버로 전송-> 대역폭 가득 채움. -> 다른 client 사용 불가

: connectionless임을 이용하여 src IP 변조

 

 

[DNS query flooding]

*DNS :  Domain name과 IP 주소 상호 변환해주는 서비스

: 공격자가 DNS query를 다량으로 서버에 전송 -> 서비스 방해

 

 

[TCP traffic flooding]

  • SYN flooding : 공격자가 다량의 SYN 패킷 서버로 전송 -> 대키 큐 가득 (connection-oriented 특징 이용)
  • TCP flag flooding : TCP의 flag 값 임의로 조작 -> 검증에 자원 소진 (ex SYN + FIN 을 같이 보냄)

[IP flooding]

  • LAND : 출발 ==도착 (IP, port)
  • Teardrop : IP datagram의 순서 조작, 의도 중복

 

[HTTP GET flooding]

- 특정 웹페이지를 동시에 여러 에이전트가 요청 -> 특정 서비스 중단

* 요청 다 거부할 순 없음 - 대처 어렵 ->🔑 임계치 기반 방어

 

 

[HTTP traffic flooding]

  • CC(Cache-control) 공격 : 웹서버에서 캐시 기능을 사용하지 않게 만듦 -> 오버헤드 증가
  • Dynamic HTTP request flooding : 요청되는 웹페이지 주소가 동적으로 바뀜 (매번 URL 주소 변경)
    • 🔑 임계치X, 시간 내에 같은 IP에서 많은 요청 ->차단

 

 

[HTTP header/option spoofing flooding]

  • Slow HTTP header 공격 : 헤더 정보 조작. (<헤더> 안 끝냄) -> 장시간 연결유지_자원소비
  • Slow HTTP post 공격 : 공격자가 길이가 긴 data를 개개ㅐ개ㅐ 느린 속도로 서버에 전송 -> "

 

 

3 분산반사서비스거부(DRDoS : Distributed Reflection Denial of Service) 공격

: 출발지 IP를 변조시킨 후 정상적인 프로토콜 요청을 통한 공격

* 봇넷이 필요없다. 정상 프로토콜(reflector)을 이용한다. DDos보다 위협적이다. 역추적이 어렵다.

 

공격자가 나 target이야~라고 하고 syn보냄.

 

 



 

Network Scanning

공격 목적의 정보 수집을 위한 활동 :

1) Foot printing : 공격 전 다양한 정보 수집 - 사회공학기법 사용. 주변조사

2) Scanning : 실제 공격 방법결정/ 공격에 이용될 넽웤 구조 등 정보 취득.

3) Enumeration : 1) 2) 의 정보를 바탕으로 더 구체적인 정보 획득. 목록화

 

🔒Scan 공격

scanning : 보안 장비 사용 현황, 넽웤 구조, 시스템 플랫폼 형태, os 커널 종류, 서비스 종류 등 파악

 

[1 Sweep]

: 특정 넽웤에 속한 sys의 작동 유무 판단, 타겟 기관의 소유/사용 IP주소와 넽웤 범위 파악

  • ICMP Sweep : ping 응답 O -> 활성화 상태
  • TCP Sweep : TCP SYN 패킷을 잘 알려진 port 번호로 요청(연결 요청) -> 응답 있음 활성화
  • UDP Sweep : ICMP Port Unreachable 메시지가 안 오면 활성화 가능성 매우 높음
    • ** 저 메세지가 왔다면 무조건 닫혀있는 거임.

 

[2 Open scan(port scan)]

: 시스템 자체의 활성화 여부 + 포트에 해당하는 서비스 활성화 여부도 파악

  • TCP scan : 3-way handshaking 과정을 통해 판단 가능
  • SYN scan (half-open scan) : 세션로그 안 남김. -> SYN만 보내고 SYN/ACK 패킷이 오면 RST

* 3번째 경우도 TCP 상황 (port가 닫힌 경우)

  • UDP scan :  ICMP Port Unreachable 오면 포트 활성화되지 않았음 확인.

 

[3 Stealth scan(port scan)]

: 세션 완전 성립X. port 활성화 여부를 알아냄. (로그 안남음)

  • FIN, NULL, XMAS 스캔 : 헤더의 flag 비정상적 설정 -> 반응을 보고 상태 진단.
    • 포트 열림 or 방화벽 차단 -> 응답X(무시하기 때문)
    • 포트 닫힘 -> RST 패킷이 돌아옴 (**RST 패킷이 돌아오면 포트가 확실히 닫힌 것)
  • Decoy Scan : 다양한 주소로 위조한 상태로 scan

 

*스캔 도구 = Nmap(Network Map) : 컴과 서비스 찾기 목적.

*source 공개됨.

*os 종류, 정보, 취약점을 이용한 공격 가능. -> 시스템 보안툴(보안진단)이자 해킹툴