[KDT_AISEC] 4주차 - 다양한 네트워크 공격

Gloomy·2024년 1월 23일
0

KDT_AISEC

목록 보기
10/25
post-thumbnail

Scanning


스캐닝이란?

  • 스캐닝
    스캐닝은 목표로 하는 네트워크에서 동작중인 시스템, 단말, OS, 포트, 서비스 등을 탐색하는 행위를 말한다.

  • 스캐닝의 종류
    활성 시스템 스캐닝, 포트 스캐닝, 취약점 스캐닝 등이 있다.

  • 능동적 정보 수집(Active Information Gathering)
    해킹 과정에 있어서 가장 먼저 시행되며 중요한 단계이다. 스캐닝은 보통 능동적 정보 수집 과정의 대부분을 차지하고, 로그를 남길 확률이 높기 때문에 능동적 정보 수집이라고 불린다.

스캐닝의 목적

스캐닝의 목적은 여러가지가 있지만, 가장 대표적으로 세 가지 정도를 꼽을 수 있다. 첫 번째는 목표 네트워크에 동작중인 시스템의 IP주소를 확인하는 것이다. 두 번째는 각 시스템에서 운영중인 OS를 확인하는 것이다. 마지막으로 세 번째는 각 OS에서 동작중인 서비스의 포트 및 버전을 확인하는 것이다.

활성 시스템 스캐닝

  • 현재 동작중인 호스트를 찾아내기 위한 스캐닝 기법이다.
  • 네트워크 상의 서버들의 구조와 공격 대상을 찾기 위한 방법이기 때문에 직접적인 공격 영향은 없다.
  • 종류
    • ICMP Echo ping: ICMP메시지를 이용하여 동작중인 호스트를 식별하는 방식
    • ARPing: ARP패킷을 이용하여 동작중인 호스트를 식별하는 방식(ARP Request)
    • TCP ping: TCP패킷을 이용하여 동작중인 호스트를 식별하는 방식
    • UDP ping: UDP패킷을 이용하여 동작중인 호스트를 식별하는 방식
  • 도구
    • ping, arping, fping, namp, hping3

포트 스캐닝

  • 해당 OS에서 동작중인 서비스의 포트 및 버전을 찾아내기 위한 스캐닝 기법이다.
  • 포트는 곧 서비스를 의미하기 때문에, 해당 서비스가 가지고 있는 취약점을 목표로 공격을 시작한다.
  • 종류
    • TCP Scanning
    • IDLE Scanning
    • FTP Bounce Scanning
    • UDP Port Scanning
  • 도구
    • nmap

SYN Stealth(Half Open) Scanning

  • 3-Way Hand Shake중 2단계(SYN, SYN+ACK)까지만 진행하는 기법이다.
  • 비교적 로그가 적게 남는다(3단계중 2단계만 수행하기 때문에).
  • nmap -sS {네트워크 대역}

TCP Connect Scanning

  • 열려있는 포트에 대해 기본 3-Way Hand Shake를 진행하는 기법이다.
  • 가장 정확하지만, 로그가 너무 많이 남고 발각되기 쉽다.
  • nmap -sT {네트워크 대역}

NULL Scanning

  • 아무런 flag설정 없이 TCP연결 요청을 하는 기법이다.
  • 기본적으로 열려 있는 포트는 어떤 응답을 해야 하는지 몰라 아무런 응답을 하지 않지만, 닫혀 있는 포트는 연결을 초기화하는 Response를 주게 된다.
  • IDS를 회피할 가능성이 있지만, 목표물이 UNIX플랫폼일 경우에만 가능하다.
  • nmap -sN {네트워크 대역}

    이 외에도 비슷한 방법으로 FIN ScanningX-MAS Scanning이 있지만, 현재는 거의 사용하지 않는다.

nmap 스캐닝 실습

실습환경은 VROOM에서 진행하였다.

kali: 192.168.200.100
webgoat7: 103.101.200.2
webgoat8: 103.101.200.3

해당 실습은 SYN Stealth(Half Open) Scanning으로 진행하였다. webgoat7webgoat8은 모두 80번 포트, 즉 http포트가 열려있는 상태임을 확인할 수 있다.

ARP Spoofing


ARP (Address Resolution Protocol)

ARP란 네트워크 상에서 IP주소와 MAC주소를 매핑해주는 프로토콜이다. 2계층과 3계층 사이의 프로토콜이고 대표적인 2계층의 프로토콜인 Ethernet의 경우 아래와 같은 구조를 가진다.

ARP 패킷의 경우 앞에 이더넷 프레임 헤더가 붙어서 전달되는 구조이다. ARP 프레임 헤더의 구조는 다음과 같다.

지난 글에서도 언급했지만, ARP Request의 경우, 이더넷 프레임 헤더의 MAC주소에는 ff:ff:ff:ff:ff:ff가 입력되고 ARP패킷의 MAC주소에는 00:00:00:00:00:00이 입력된다. ARP에서는 이러한 ARP정보를 저장해두지 않는다면 연결할 때마다 매번 브로드캐스팅을 해야하기 때문에 효율성 측면에서 매우 떨어진다. 따라서 각각의 호스트에서 다른 호스트들의 ARP정보를 저장한 ARP Cache Table을 보유하고 있다.

ARP 취약점 발생 원인

ARP프로토콜은 연결 지향형 프로토콜이 아니기 때문에, Request를 보내지 않은 호스트에서 Response를 전달할 수 있고, 송신자에 대한 검증을 하지 않기 때문에 송신자가 보낸 정보를 그대로 받아 들이는 구조이다.

따라서 공격자가 변조된 ARP Response를 보내게 된다면 ARP Cache Table이 감염될 수 있다.

Sniffing


Sniffing이란?

스니핑의 사전적 의미는 '코를 킁킁거리다', '냄새를 맡다'등의 뜻으로 정의되는데, 해킹 기법으로서의 스니핑은 사전적 의미와 같이 네트워크 트래픽을 도청하는 기법이다. 막기가 매우 힘들며 탐지도 어렵다. 하지만 스니핑을 하기 위해서는 다음의 선행공격이 필요하다.

  • 스위치 재밍(Switch Jamming): 스위치의 MAC Address Table의 버퍼를 오버플로우 시켜 스위치가 허브처럼 동작하게 하는 기법
  • ARP Spoofing
  • ARP Redirect: 공격자가 자신이 라우터인 것처럼 MAC주소를 위조하여 ARP Reply패킷을 해당 네트워크에 BroadCast하는 기법
  • ICMP Redirect: 라우터 경로를 재설정하기 위해 전송하는 메시지로 공격자가 이를 악용하여 특정 IP대역으로 나가는 패킷의 라우팅 경로를 자신의 주소로 위조한 ICMP Redirect메시지를 생성하여 희생자에게 전송하는 기법

네트워크 필터링

네트워크에 접속하는 모든 시스템은 IP주소와 MAC주소를 가진다. 기본적으로 호스트는 들어온 패킷의 IP주소와 MAC주소를 확인하여 알맞은 패킷 이외의 패킷은 모두 버리는데, 프러미스큐어스 모드를 활성화하면 자신의 패킷이 아니더라도 모두 받을 수 있게 된다.

프러미스큐어스(Promiscuous) 모드

2, 3계층 정보(IP주소, MAC주소)의 필터링을 해제하는 모드이다. 즉, 각 호스트에서 알맞은 패킷이 아니더라도 모두 수용하는 모드이다.

DoS & DDoS


DoS & DDoS

DoS(Denial of Service)공격은 시스템에 과도한 패킷을 전송해 시스템의 가용성을 침해하는 공격이다.

TCP SYN Flooding

네트워크 동시 접속자 수가 한정되어있는 특성과 TCP3-way hand shake의 특성을 악용한 공격이다. 존재하지 않는 클라이언트가 서버에 접속하는 것처럼 속여 SYN패킷을 전송하고 서버에서는 SYN+ACK를 전송한 후 ACK패킷을 대기하는 상태가 된다.

  • TCP SYN Flooding 실습
    실습은 기존 V-ROOM 실습환경에서 진행했다.

    webgoat7.com에 sudo hping3 -S --flood --rand-source 명령어를 이용해서 TCP SYN Flooding 공격을 진행한 후 WireShark를 이용해 해당 패킷을 캡쳐한 내역이다. 1초도 안 되는 짧은 순간에 패킷을 약 17만여개 보냈음을 볼 수 있고, 무작위 호스트에서 SYN패킷만을 전송한 것을 볼 수 있다.

    하지만 이후 ping을 날려보니 해당 서버가 잘 살아있는 것을 확인할 수 있었는데, 요즘은 이러한 DoS공격이 잘 먹히지 않는다고 한다.

TCP Connection Flooding

TCP Connection Flooding은 한 개의 IP가 다양한 포트로 SYN패킷을 전송하는 공격이다. 클라이언트는 서버와 3-way hand shake를 이용해 연결하게 되고 서버의 세션이 꽉 차면 더 이상 연결이 불가능해진다.

DNS Query Flooding

DNS Query 요청 패킷을 대량으로 서버에 전송하여 DNS서버를 마비시키는 공격이다.

DNS Amplification

DNS서버들을 이용하여 공격하는 DoS공격이다. 공격자는 피해자의 IP주소로 DNS서버에 질의하게 되고, DNS서버는 많은 양의 패킷을 피해자의 IP주소로 전송하게 된다.

Slow HTTP Header DoS

일명 Slowloris공격이라고 부른다. 공격자는 Http의 헤더 정보를 비정상적으로 조작하여 서버에 패킷을 보내게 되고, 서버에서는 정상적인 패킷이 올때까지 대기하게된다. Http에서는 헤더의 끝을 \r\n이라는 문자로 구분하는데, 공격자는 마지막 개행문자를 전송하지 않는다.

DDoS

DDoSDistributed Denial of Service의 약자이다. 디도스 공격은 여러 대의 좀비PC를 기반으로 특정 시간에 타겟에 많은 양의 패킷을 보내는 서비스 거부 공격이다.

네트워크 보호 장비


방화벽

방화벽은 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이를 지나는 패킷에 대하여 rule-based로 차단하거나 통과시키는 기능을 가진 하드웨어 혹은 소프트웨어를 의미한다.

방화벽의 기능에는 크게 세 가지가 있는데 첫 번째는 접근 제어 기능이다. 문자 그대로 접근해오는 패킷에 대하여 패킷 필터링 혹은 프록시 기반으로 차단하거나 통과시키는 기능을 한다. 두 번째는 로깅과 감사추적 기능이다. 접근 제어의 내용을 기록한다. 마지막 세 번째는 인증 기능이다. 메시지 인증, 사용자 인증, 클라이언트 인증이 가능하다.

IDS(Intrusion Detection System), 침입탐지시스템

IDS는 전통적인 방화벽이 탐지할 수 없는 모든 종류의 악성 네트워크를 탐지하는 시스템이다. IDS는 설치된 위치와 목적에 따라 두 가지로 나뉜다. 첫 번째는 N-IDS로 네트워크 기반 침입탐지시스템이고 두 번째는 H-IDS로 호스트 기반 침입탐지시스템이다.

IPS(Intrusion Prevention System), 침입차단시스템

IPSIDS와 방화벽의 조합으로 생각할 수 있다. 패킷을 검사하여 악성 패킷으로 판단되면 해당 패킷을 차단하는 기능을 한다. 하지만 IPS는 사실상 대부분의 기업에서 사용하지 않는 추세인데, 이유는 패킷의 차단이라는 요소 자체가 굉장히 치명적일 수 있기 때문이다. 확실한 공격, 알려진 공격으로 분류되는 패킷은 차단해도 상관없지만 정상인지 악성인지 애매모호한 패킷들의 차단은 굉장히 민감한 요소이기 때문이다.

WAF(Web Application Firewall), 웹 어플리케이션 방화벽

일반적인 방화벽과는 달리 WAS(Web Application Service)의 보안에 특화된 솔루션이다. 웹 해킹 공격기법인 SQL Injection, Cross Site Scripting(XSS)등과 같은 공격을 탐지하고 차단한다.

통합위협관리시스템(UTM)

통합위협관리시스템은 앞에서 설명한 방화벽, IDS, IPS, WAF등의 여러가지 보안도구를 사용하는 통합 솔루션 관리 시스템이다. 비용 절감 측면에서 좋고 관리 능력이 향상되는 포괄적인 관리 시스템이 장점이다. 또한, 중소기업 뿐만 아니라 모든 규모의 네트워크에서 이용이 가능하다.

이미지 출처 : https://www.juniper.net/

보안 정보 & 이벤트 관리 시스템(SIEM)

ESM(Enterprise Service Management)의 진화된 형태로 볼 수 있으며 네트워크 하드웨어 및 애플리케이션에 의해 생성된 보안 이벤트를 실시간으로 분석할 수 있는 시스템이다. SIEM의 특징은 다음과 같다.

  • 데이터 통합: 다양한 장비의 데이터를 수집, 분석
  • 상관 관계: 수집된 데이터를 유용한 정보로 만들기 위해 다양한 상관 관계 분석 가능
  • 대시보드: 분석 결과를 대시보드 형태로 제공
  • 알림: 이벤트 발생 시 관리자에게 알림
profile
𝙋𝙤𝙨𝙨𝙤 𝙁𝙖𝙧𝙚!

0개의 댓글