본문 바로가기

Kisa아카데미/[정보보호제품군] 기초2

네트워크 해킹 이론 - 기초2(Kisa아카데미 x VROOM) (3)

1. 스캐닝

  • 공격자가 공격대상의 네트워크나 시스템 정보를 탐색하는 행위
    • 수집 대상 : 실행 중인 TCP/UDP 서비스들, 시스템 및 운영체제 정보, 그 외 다양한 정보 등..
    • 수집 목적 : 공격자가 공격목표로 하는 네트워크나 시스템의 자세한 정보(IP, OS, Port 및 Version 등)를 수집하기 위함
  •  스캐닝의 종류
    • 활성 시스템 스캐닝 (Active Host Scanning)
    • 포트 스캐닝 (Port Scanning) 
    • 취약점 스캐닝 (Vulnerability Scanning)

 1 - 1 . 활성 시스템 스캐닝 (Active Host Scanning)

  • 현재 동작 중인 호스트를 찾기 위한 스캐닝 기법
    • 서버, PC 등 단말기
      • ICMP(Internet Control Message Protocol)을 이용한 ping 통신을 통해 동작 여부 확인
      • 대상 네트워크의 구조와 공격 대상을 찾는 방법으로 직접적인 공격 영향 없음
  • 종류
    • ICMP Echo ping
    • ARPing
    • TCP/UDP ping
  • 대표적인 도구
    • Nmap
    • ARPing

 1 - 1 - 1. 활성 시스템 스캐닝 (Active Host Scanning) 예시

  • Nmap을 이용한 활성 시스템 스캐닝
    • nmap -sn {네트워크 대역 | 호스트 IP} : Ping 요청을 보내고 해당 요청에 대한 응답이 있는 활성화 된 호스트만 출력
    • nmap -Pn {네트워크 대역 | 호스트 IP} : 사전에 활성여부(-Ping 테스트)없이 모든 대상을 탐색 수행

 1 - 2 . 포트 스캐닝 

  • 호스트에서 실행 중인 서비스를 찾기 위한 스캐닝 기법
    • 서비스 실행 시 통신을 위한 포트가 필요하며, 공격자는 해당 서비스의 취약점을 목표로 공격을 시작함
  • 종류
    • TCP Port Scanning
    • UDP Port Scanning

 1 - 2 - 1. TCP Connect Scanning

  • TCP 연결을 맺어서 포트의 활성화 여부를 판단하는 방법
    • 포트가 열린 경우, 신뢰성 있는 연결을 수행하며 연결 기록을 남김
    • 수행 명령어 : nmap -sT {네트워크 대역|호스트 IP}

 1 - 2 - 2.  SYN Stealth(Half Open) Scanning

  • TCP 연결을 완전히 하지 않고 포트의 활성화 여부를 판단하는 방법
    • 포트가 열린 경우, 연결 중간(3-Way HandShake 2단계)에 끊으며 연결 기록(로그)을 남기지 않음
    • 수행 명령어 nmap -sS {네트워크 대역|호스트 IP}

 1 - 2 - 3. NULL Scanning

  • TCP 헤더 내 플래그 값을 설정하지 않고 전송하여 그에 대한 응답으로 포트의 활성화 여부를 판단하는 방법
    • 포트가 열린 경우, 목표대상은 요청을 알 수 없어 응답을 하지 않음
    • 수행명령어 : nmap -sN {네트워크 대역|호스트 IP}

 1 - 2 - 4. FIN Scanning

  • TCP 헤더 내 FIN 플래그를 설정하여 전송하고 그에 대한 응답으로 포트의 활성화 여부를 판단하는 방법
    • 포트가 열린 경우, 목표대상은 연결을 수행한 적이 없기에 응답을 하지 않음
    • 수행 명령어 : nmap -sF {네트워크 대역|호스트 IP}

 1 - 2 - 5. X-MAS Scanning

  • TCP 헤더 내 일부 또는 모든 플래그를 설정하여 전송하고 그에 대한 응답으로 포트의 확성화 여부를 판단하는 방법
    • 포트가 열린 경우, 목표대상은 요청에 대한 정확한 응답을 하기 어렵기 때문에 아무 응답을 하지 않음
    • 수행 명령어 : nmap -sx{네트워크 대역|호스트 IP}

 

 1 - 2 - 6. UDP Port Scanningd

  • ICMP Unreachable 메시지를 이용하여 UDP 포트의 여부를 판단하는 방법
    • 포트가 열린 경우 : UDP 응답이 오거나 별도 응답없음(정책차단)
    • 포트가 닫힌 경우 : ICMP 메시지 응답 (TYPE 3 : Destination Unreachable, Code 3 : Port Unreachable)
    • 수행 명령어 : nmap -sU{네트워크 대역|호스트 IP}

 

 

2. 스니핑

  • 네트워크 트래픽을 도청(eavesdropping)하는 해킹 기법
    • 사전적의미 : 코를 킁킁거리다, 냄새를 맡다 등
    • 대상 몰래 도청만 하므로 피해 여부를 인지하거나 탐지하기 어려움
  • 스위치 환경세서 스니핑을 하기 위해서는 스위치에 선행 공격이 필요함
    • 스위치 재밍 (Switch Jamming)
    • ARP 스푸핑 (ARP Spoofing)
    • ARP 리다이렉트 (ARP Redirect)
    • ICMP 리다이렉트 (ICMP Redirect)

 2 - 1. 스위치 스니핑 선수과정 - ① 스위치 재밍

  • 스위치에서 관리하는 MAC 주소 테이블의 버퍼를 오버플로우 시켜 스위치가 더미허브처럼 동작하게 만드는 기법
    • 신호 증폭의 역할을 수행하는 장비로 네트워크 내 모든 대상에게 데이터를 전송하는 브로드캐스트(BroadCast) 수행

 2 - 2. 스위치 스니핑 선수과정 - ② ARP 스푸핑 (ARP Spoofing)

  •  공격자가 통신 대상자인 것처럼 MAC 주소를 위조하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법

 2 - 3. 스위치 스니핑 선수과정 - ③ ARP 리다이렉트 (ARP Redirect)

  •  공격자가 라우터인 것처럼 MAC 주소를 위조하여 데이터 패킷을 중간에서 가로채는 중간자 공격 기법

 2 - 4. 스위치 스니핑 선수과정 - ④ ICMP 리다이렉트 (ICMP Redirect)

  • ICMP 리다이렉트 메시지를 이용하여 라우팅 경로를 재설정하도록 하여 데이터 패킷을 가로채는 공격 기법

 2 - 5. 스니핑 환경 - 더미 허브(Dummy Hub)

  • 단순 네트워크 연결 및 신호 증폭 기능을 가진 네트워크 장비
    • 브로드캐스트(BroadCast)를 통해 연결된 모든 장비에 패킷 전달
      • 유니캐스트(1:1 통신), 브로드캐스트(1:N 통신), 멀티캐스트(MultiCast N:N 통신)

 2 - 6. 스니핑 환경 - 스위치 허브(Switch Hub)

  • 네트워크 연결 및 스위칭 기능을 가진 네트워크 장비
    • 들어온 데이터 프레임을 확인하여 목적지에만 데이터 프레임 전송

 2 - 8. 스니핑 환경 - 프로미스큐어스(Promiscuous) 모드

  • 기본모드 
    • 들어온 패킷 데이터의 2계층 주소(MAC)와 3계층 주소(IP)를 확인하여 필터링 수행
    • 패킷의 IP,MAC 주소를 확인하여 버퍼에 저장할 지 여부를 결정하며 자신의 것과 일치하지 않으면 무시

  • 들어온 패킷 데이터의 모든 필터링(2계층, 3계층)을 해제하는 모드
    • 네트워크 감시 목적으로 사용됨
    • 유닉스/리눅스 운영체제에서는 랜 카드에 대한 모드 설정 지원
      • 설정 : ifconfig 네트워크 인터페이스 promisc
      • 해제 : ifconfig 네트워크 인터페이스 -promisc

3. 스푸핑

3 - 1. ARP (Address Resolution Protocol) 정의

  • 네트워크 상에서 IP 주소를 물리적 네트워크 주소(MAC)로 대응시키기 위해 사용하는 프로토콜
    • 내부 네트워크에선 IP 주소가 아닌 MAC 주소를 통해 통신이 이루어짐
    • 내부 호스트는 대상의 MAC 주소를 알아내기 위해 ARP 메시지를 발신, 수신함

3 - 2. ARP 동작원리

  • ARP는 ARP 캐시 테이블에 IP 주소와 MAC 주소를 대응시켜 저장함
    • 동적방식
    • 정적방식
  • 호스트는 통신 전 ARP 테이블을 확인 후 통신 수행
    • 통신할 때마다 ARP 메시지를 보낼 경우 네트워크 내 과부하가 걸릴 수 있음

  • 발신자는 목적지의 물리주소(MAC)를 알기 위해 이더넷 프레임에 목적지 물리주소를 특정 값으로 지정하여 전송
    • FFFF:FFFF:FFFF
    • 통신 대상자의 MAC 주소는 모르기 때문에 ARP Request 메시지 내에는 0000:0000:0000 값을 채움

 

  • 스위치는 연결된 모든 포트에 ARP Request 메시지를 브로드캐스트(BroadCast) 수행

  • ARP Request 메시지를 수신한 호스트는 User_1 정보를 저장하며, 자신에 대한 요청인지 확인 후 ARP Reply 수행

 

3 - 3. ARP Spoofing 원리

  • 공격자가 통신 대상자인 것처럼 MAC 주소를 위조하고 상대방의 ARP 캐시 테이블을 오염시키는 원리
    • ARP Request를 보내지 않은 호스트에게 ARP Response를 전달할 수 있음 (ARP는 Stateless한 프로토콜)
    • 발신자에 대한 인증을 하지 않고 ARP 정보를 받음 (발신자에 대한 인증 매커니즘이 없음)
    • 따라서, ARP Request 발생 여부와 상관 없이 공격자가 보낸 위조된 ARP Response로 인하여 대상의 ARP Cache Table이 오염됨

  • 공격자는 대상의 ARP 캐시 테이블을 오염시키기 위해 위조된 ARP Response를 전송

  • 대상의 ARP 캐시 테이블이 오염되면 대상은 의도치 않게 공격자에게 통신 데이터를 전송함
    • 통신 데이터는 공격자에게 발송되므로 대상자는 아무 것도 수신하지 못함

  • 공격자는 IP Forwarding 기능을 활용하여 라우터처럼 동작하며 데이터를 확인하고 원래 대상에게 전달까지 수행
    • 실제 발신자와 수신자는 정상적으로 통신하는 것처럼 보이나 공격자는 중간에서 모든 데이터를 확인할 수 있음
    • 설정방법
      • 운영체제에서 자체적으로 지원(/etc/sysctl.conf)
      • fragrouter와 같은 도구 사용

  • 공격자는 중간의 위치에서 모든 데이터를 보고 조작할 수 있음
    • 발신자와 수신자는 서로 연결되어있다고 알고 있지만 실제론 공격자에게 각각 연결되어 있으며 공격자는 데이터 조작 후 전송 가능

 

 

4. 암호 프로토콜

4 - 1. 대칭형 암호화

  • 대칭형 암호화는 암호화 하느 키와 복호화하는 키가 동일하다는 특징을 가지고 있음
    • 암호화 통신을 하는 Entity는 동일 한 키를 갖고 있어야 함
    • a.k.a 비밀키 암호화, 대칭키 암호화 방식
  • 톡징
    • 비대칭형 방식에 비해 암호화 / 복호화 속도가 빠름 (10 ~ 1000배)
    • 데이터 암호화 시 사이즈 증가가 없음
    • 통신 상에서 데이터 암호화에 사용됨 -> 기밀성을 보장하기 위해 사용
    • Block Cipher / Stream Cipher 두 종류의 암호화 방식이 있음
  • 대표적인 알고리즘
    • DES, 3DES, AES, BlowFish, IDEA, RC4, SEED

4 - 1 - 1. 대칭형 암호화(Symmetric Cryptogtaphy)문제점

  • 대칭형 암호화 방식으로 통신하는 모든 엔티티들은 서로 간에 다른 암호화키를 갖고 있어야함
    • 확장성이 좋지 않으므로 불특정 다수를 상대로 한 암호화에는 좋지 않음
    • 키 분배 문제를 해결하기 위해서 Key Distribution Center를 운용함
  • 필요한 키의 개수 = Entity * (Entity-1) / 2
  • EX) 5대의 컴퓨터가 암호화 통신을 위해서 필요한 키의 개수
    • 5 * (5-1) / 2 = 5*4/2 = 10

4 - 1 - 2. 대칭형 암호화(Symmetric Cryptography) key 동기화

  • Manual 방식
    • 키를 두 통신 당사자가 직접 만나서 교환하는 방식
    • 두 통신 당사가 특정 장소에서 모여 키를 교환함
    • ex) 소프트웨어 구매 시 시리얼 번호 제공
  • 직접 키를 교환하기 때문에 보안성이 높으며 외부자가 키를 가로 채기 어려움
  • 직접 만나야 하므로 불편하고 시간이 많이 소요되기 때문에 편의성이 떨어지는 단점이 있음
  • Difffie-Hellman 방식
    • Public Key 암호화 기법을 제안한 Diffe와 Hellman은 대칭키를 안전하게 송/수신자들에게 분배하는 알고리즘도 제안함
    • 실제 Key값은 전송하지 않으며, Key를 생성하는데 필요한 값(임의의 넌스값)만 주고 받음
    • Diffe-Hellman 알고리즘을 이용하여 계산하면 동일한 Key를 얻을 수 있음
  • 중간에 해커가 임의의 넌스값을 조작할 수 있음 -> MITM 공격에 취약
    • 대안 방안으로 RSA방식이 나왔음
  • Key Wrapping 방식 (Hybrid)
    • 대칭키를 전송하기 전에, 보내는 측에서 키를 암호화하여 전달하는 방식
    • 중간에 가로채도 암호화되어 있기 때문에 해독이 불가능
    • 비대칭 암호화 방식의 개인키를 사용하여 암호화된 키를 복호화 하여 원래의 키를 받을 수 있음

4 - 2 - 1. 비대칭형 암호화

  • 암호화 하는 키와 복호화 하는 키가 다르다는 톡징을 가지고 있음
    • 개인키(Private Key)와 공개키(Public Key)가 쌍을 이룬 형태
    • a.k.a 공개키 방식
  • 특징
    • 인증, 부인방지, 기밀성 등의 서비스 제공
    • 공개캐 획득하더라도 복호화에 어려움이 있음
    • Key 동기화 문제를 고려하지않아도 됨
  • 대표적인 알고리즘
    • RSA, DSA, ECC

 

 

4 - 2 - 2. 비대칭형 암호화 문제점

  • 동기화 과정이 없다는 특징이 있지만, 상대방의 공개키를 인증하지 않으면 MiTM 공격에 취약함
    • 공격자에 의해서 만들어진 공개키를 적절한 검증절차 없이 받아 들이는 경우 공격자의 개인키로 암호화된 데이터를 복호화 가능

4 - 3. 하이브리드 암호 시스템

  • 대칭 암호와 공개키 암호의 장점을 조합한 시스템
    • 대칭 암호의 장점인 빠른 처리속도
    • 공개키 암호의 장점인 키 교환문제의 편리함

  • 암호화 과정
    • 평문(Plain Text)을 대칭키(Secret Key)로 암호화 -> 암호문(Cipher Text)
    • 대칭키(Secret Key)를 수신자의 공객키(Receiver's Public Key)로 암호화 -. 암호화된 키(Cipher Key)

  • 복호화 과정
    • 암호화된 키(Cipher Key)를 수신자의 개인키(Receiver's Private Key)로 복호화 -> 대칭키(Secret Key)
    • 암호문(Cipher Text)을 대칭키(Secret Key)로 복호화 -> 평문(Plain Text)

4 - 4. 해시(Hash)

  • 입력 데이터를 고정된 길이의 데이터로 변환된 값(해시 값)
  • 해시 값으로 부터 원래의 입력값과의 관계를 찾기 어려운 성질이 있음
  • 일방향 암호화라고 불리지만 복호화가 불가능 하기 때문에 암호화라고 할 수는 없음
  • 비밀번호는 반드시 해시 함수로 변환하여 저장 하여야 함
  • 종류 
    • MD5, SHA-1, SHA-256,SHA-512.....

4 - 5. 인증

  • 시스템이 사용자나 장치의 신원을 확인하고 신뢰할 수 있는 대상인지 검증하는 과정
    • 인증이 없는 경우 권한 없이 데이터에 접근이 가능하여 데이터 유출, 시스템 침해 등의 보안 문제가 발생할 수 있음
  • 인증은 데이터 보호, 법적 요구사항 준수, 사이버 공격 방지 등 개인과 조직의 안전과 신뢰를 보장하기 위함
    • 데이터 무결성 유지 : 인증을 통해 올바른 사용자만 중요한 데이터에 접근 및 수정할 수 있음
    • 접근 제어 : 인증 절차가 없는 경우 누구나 시스템에 접근하여 민감한 정보를 취득할 수 있음
    • 사이버 침해 방어 : 인증이 없는 경우 네트워크를 통한 사이버 공격에 취약할 수 있음
  • 주요 인증 프로토콜
    • Kerberos : 티겟 기반의 중앙 집중형 인증 시스템
    • OAuth : 토큰을 활용한 사용자 인증
    • RADIUS : 원격 네트워크 접근을 관리하는 프로토콜
    • EAP : 확장 가능한 인증 프레임워크로 무선네트워크에서 주로 사용

4 - 6. 암호화 통신 채널

  • 네트워크 상에서 테이터를 안전하게 주고 받기 위한 보안 통로
    • SSL/TLS : 웹 트래픽 보호
    • 터널링 네트워크 전반의 암호화 통신

4 - 7. SSL/TLS

  • 웹 트래픽을 보호하는 대표적인 프로토콜로 브라우저와 서버 간의 안전한 통신을 보장함
    • 브라우저와 서버는 공개키(비대칭키)를 통해 세션키를 공유하고 데이터는 대칭키 암호화로 전송 
    • SSL/TLS HandShake 과정에서 인증서 교환, 키교환을 통해 데이터 암호화 수행

4 - 8. 터널링

  • 네트워크 상에서 두 지점 간에 가상의 터널을 만들어 외부로부터 데이터를 안전하게 보호하는 방법
    • VPN, IPSEC, SSH 등을 통해 원격 네트워크나 사설 네트워크에 안전하게 접속하는데 사용
    • 데이터 전체를 암호화하기에 중간 경로에서 도청 및 변조를 방지함
  • 터널링 원리
    • 캡슐화 : 상위 계층의 데이터를 하위 계층의 프로토콜 헤더와 함께 감싼느 과정
    • 디캡슐화 : 수신한 데이터에서 헤더를 제거하고 원본 데이터를 복원하는 과정

5. 서비스 거부 공격(DOS/DDOS)

5 - 1. DOS

  • 시스템을 악의적으로 공격해 해당 시스템의 리소스를 부족하게 하여 원래 의도된 용도록 사용하지 못하게 하는 공격

5 - 1 - 1. DOS 공격 예시 - TCP SYN Flooding

  • SYN 요청을 지속적으로 보내는 네트워크 계층 공격
    • 반개방(Half-open)공격이라고 불리며, TCP의 3-Way HandShake를 이용한 공격
    • 네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 한정되어 있어 해당 공격을 통해 서버 자원을 소모시킴

5 - 1 - 2. DOS 공격 예시 - TCP Connection Flooding

  • TCP의 세션을 이용한 공격
    • 한 개의 IP가 다양한 포트로 SYN패킷을 전송
    • 클라이언트는 서버와 3 Way-Handshake를 통해 세션을 연결하게 됨
    • 세션 열결이 가득차면 더 이상의 연결이 불가

5 - 1 - 3. DOS 공격 예시 - DNS Query Flooding

  • DNS Query 요청 패킷을 대량으로 서버에 전송하여 DNS의 정상적인 서비스 방해
  • 대량의 Query를 발생시켜 서버가 더 이상 DNS 응답을 하지 못하도록 함

5 - 1 - 4. DOS 공격 예시 - Slow HTTP Header Dos

  • HTTP Header 정보를 비정상적으로 조작하여 웹서버가 온전한 Header 정보가 올 때 까지 기다리도록 함
  • HTTP에선 헤더의 끝을 /r/n라는 문자로 구분하게 되는데 공격자는 마지막 개행 문자를 보내지 않음
  • 일명 Slowloris 공격이라고 부름
    • Slowhttptest -c 4000 -u http://{타겟주소]

5 - 2. DDOS

  • 분산 서비스 거부 공격은 여러 대의 공격자를 분산적으로 배치해 DoS 공격을 실시
  • 악성 코드를 이용하여 일반 사용자의 PC를 감염시켜 좀비 PC로 만든 다음 C&C(명령 제어)서버의 제어를 통해 특정 시간에 동시에 수행