[W@S 2023] [SC1-⓷] IT보안을 위한 와이어샤크 네트워크 패킷 분석 기초

cybergangster·2023년 1월 17일
0

미분류

목록 보기
8/10
post-thumbnail

SEC 1. 네트워크에 대한 이해 ref.

1.1 네트워크 개념 소개

  • 네트워크 정의
    • 둘 이상 연결된 컴퓨터의 집합
    • 컴퓨터 간 정보와 자원을 공유하기 위해 연결하는 것
  • 네트워크 상 컴퓨터 연결 방식
    • 전화선, 동축 케이블, 위성, 무선 등 다양한 통신 기술
    • 컴퓨터들은 지리적으로 어느 곳에나 위치 가능
  • 네트워크 기본 동작 방식
    1) 요청
    2) 인지
    3) 응답
    4) 확인
  • 네트워크 핵심용어
    • MAC 주소 : Media Access Control Address
      • 물리적 주소
      • 네트워크 인터페이스에 저장된 주소
      • 12개의 16진수 숫자로 구성
      • AA : BB : CC (제조사 번호) DD : EE : FF (일련 번호(시리얼 넘버)
    • IP 주소 : IP Address
      • 우리가 부르는 인터넷 주소
      • 인터넷에 연결된 각 컴퓨터를 구분하기 위해 사용
      • 1바이트 크기를 가진 네 자리 숫자로 구성
    • 호스트명
      • 등장 배경 : 사람은 숫자보다 자연어로 된 이름을 더 선호
      • 예) www.velog.io
    • 포트 번호
      • 컴퓨터에서 돌아가고 있는 각 서비스를 구분하는 번호
      • 새로운 포트 번호 생성 가능
    • TCP/IP 프로토콜
      • 프로토콜 : 컴퓨터와 컴퓨터 사이에서 데이터를 어떻게 주고받을 것인지 정의한 통신 규약/약속
      • 인터넷 네트워크는 TCP/IP라는 프로토콜에 따라서 동작하고 데이터를 주고 받음
      • TCP와 IP는 인터넷을 통해 성공적인 메시지 전달을 보장함
  • OSI 7계층(OSI 7Layer)
    • 서비스 영역별 레이어를 통해 독자적 서비스를 제공
    • 7계층, 어플리케이션 계층 : 네트워크에 대한 응용, 어플리케이션에 대한 프로토콜 제공
    • 4계층, 전송 계층 : 프로세스와 프로세스 간의 데이터 전송, TCP/UDP 관련
    • 3계층, 네트워크 계층 : 한 호스트에서 다른 호스트로 패킷을 전송할 때 데이터그램에 대한 라우팅
    • 2계층, 데이터링크 계층 : 경로 상의 인접 네트워크 노드 간의 전송 담당
    • 1계층, 물리 계층 : 매체 상의 비트 단위로 전송
  • 캡슐화(Encapsulation)
    • 상위 계층에서 하위 계층으로 데이터를 보낼 때, 데이터그램 : 메시지에 정보가 붙는 것 -> 수신단에서는 헤더 하나씩 잘라서 위로 보내줌 -> 최종 : 메시지만 확인 가능
  • DNS 서버(Domain Name Server)
    • URL을 컴퓨터가 인식할 수 있는 IP 주소로 변환해주는 서버
  • UDP(User Datagram Protocol)
    • 비연결형 프로토콜
    • 인터넷 상에서 서로 정보를 주고 받을 때 정보를 보내는 신호나 받는다는 acknowledgement 절차를 거치지 않고 보내는 쪽에서 일방적으로 메시지를 보내는 송신 프로토콜
  • ICMP(Internet Control Message Protocol)
    • 네트워크에서 문제가 있는 장비를 통지하기 위해 사용

1.2 인터넷과 우리의 일상

  • 인터넷 동작 방식
    • 인터넷 연결 시 필요한 정보
      • IP 주소를 할당 받고 네트워크에 연결
        • 네트워크 연결 시 통신 규약(프로토콜)의 도움을 받음
      • IP 주소, 라우터 주소, DHCP(Dynamic Host Configuration Protocol)를 사용하는 DNS 서버 주소

        > DHCP 클라이언트는 관련 정보를 받기 위해 요청 메시지를 브로드캐스팅
        > 브로드캐스팅 요청을 받은 DHCP 서버는 응답 메시지 전송
        > 응답 메시지를 받은 노트북은 인터넷 서비스 사용가능 단계가 됨
        > 검색 등을 위해 브라우저에 URL 작성
        > HTTP Request 시 google.com의 IP Address 필요해서 DNS서버에 도메인명 보냄
        > DNS서버는 IP Address 정보를 제공
        > 서버와 커뮤니케이션 하기 위해서 TCP소켓 설정
        > TCP SYN 세그먼트는 도메인을 거쳐 웹서버로 전달
        > TCP SYNACK로 응답
        > 클라이언트와 서버 간 통신 소켓(TCP 소켓) 생성 시 메시지 상호 전달 가능
        > 소켓이 생성되어 메시지 전송 가능
        > 클라이언트-서버 간 TCP 소켓 생성
        > HTTP Request를 TCP 소켓을 통해 보냄
        > HTTP Request를 포함하는 IP 데이터그램은 Google 서버로 전달
        > 웹 서버는 HTTP Reply로 응답
        > HTTP Reply는 라우터를 거쳐 클라이언트에게 전달
        > 서버와의 네트워크 연결을 통해 서비스 이용

1.3 인터넷 주소 추적해보기

  • IPConfig
    • 시스템에 대한 정보를 보여주는 툴
    • IP Address, 서브넷 마스크, 게이트웨이
  • Ping
    • 시스템이 네트워크에 연결되었는지를 알려주는 툴
    • 통신하고자 하는 상대편 네트워크 연결여부 확인을 도와주는 역할
    • 상대편에 패킷을 보내 응답을 확인하여 호스트가 살아있는지 확인
  • Tracert
    • 내 컴퓨터의 패킷이 상대편에 전달되는 경로에 대한 상세 정보를 알려줌
    • Tracert를 이용해 상대방에게 전송되는 라우팅 경로 확인 가능
    • 운영체제에서 기본적으로 제공하는 툴로, 별도의 설치 필요 없음
  • Whois 데이터베이스 활용
    • IP Address 소속, 주소, 전화번호 등 정보를 알 수 있음
  • 정보의 역이용
    • 호스트 IP 주소를 얻어 데이터베이스를 활용하면 여러 정보의 습득이 가능함
  • 요청에 대한 타임아웃(Reqeust timed out)
    • 해당 라우터가 보안을 이유로 관련 정보를 제공하지 않음
    • 네트워크 연결이 좋지 않아 정보를 얻지 못한 경우

SEC 2. 네트워크 보안 및 실습

2.1 네트워크를 활용한 다양한 보안 문제점들 이해하기

  • 네트워크 공격 발생 원인
    • TCP/IP는 연결성을 위해 디자인됨
      • 송신자 및 수신자간 신용이 존재한다는 가정
      • 보안 메커니즘이 많이 빠져잇어 해커, 공격자들이 이를 공격
    • 네트워크 기기의 취약점
      • 계속적인 버그가 계속적인 공격의 원인
      • 네트워크 표준규격에 나온 일부 기능들의 경우 서로 다르게 해석되고 구현됨
  • IP 공격
    • Address 스푸핑
      • IP 주소는 송신자에 의해 채워짐
      • IP 주소를 악의적 목적으로 변경하면 스푸핑 공격 가능
      • 소스 라우팅 공격
    • IP 단편화 공격
      • 메시지를 하나의 IP 패킷에 보낼 수 없는 경우 메시지를 잘게 쪼개(단편화) 수신자에게 보냄
      • 단편화된 메시지 정보가 같이 전달됨
      • 단편화된 정보가 조작될 경우 수신 쪽에서 정보를 다시 합칠 때 문제 발생
    • 트래픽 증폭 공격
      • IP에서는 브로드캐스팅(불특정다수에게 메시지를 보내는~)을 허용하므로 공격자들이 패킷을 증폭시켜 특정 피해 호스트에게 보냄
      • PING flood 공격
  • TCP 공격
    • TCP SYN Flooding
      • 클라이언트가 서버로 SYN Request를 보냄
      • 서버에서 Request에 대한 ACK를 보냄
      • 3Way 핸드셰이킹
      • Request만 보내고 마지막 ACK를 보내지 않음으로써 서버에서 리소스를 사용하게 함
      • 리소스가 엄청난 Request를 보내면서 서버를 다운시킴

        1) SYN 패킷 전송, ACK에 미응답
        2) 서버는 ACK에 대한 응답을 511초간 대기
        3) 완료되지 않은 연결에 대한 관리가 유한한 큐에서 이루어짐
        4) 큐가 다 차게 될 경우 더 이상의 요청을 처리하지 못하게 됨

      • 서버가 더 이상의 메시지 Request 처리를 하지 못하도록 공격하는 것
  • 어플리케이션 계층 공격
    • 어플리케이션
      • FTP : 파일 전송
      • 메일 : 메일 관리
      • DNS : 도메인 네임을 IP 주소로 변경
    • Mail Bomb
      • 메일서버 공격 시 스팸메일을 보냄
      • 스팸메일 때문에 디스크 공간이 차면 필요한 메일으르 받을 수 없게 됨
        • 디도스 공격에 활용
  • 디도스 공격
    • 공격자
      • 공격을 주도하는 해커의 컴퓨터
    • 마스터
      • 공격자에게서 직접 명령을 받는 시스템, 여러 대의 에이전트를 관리하는 시스템
    • 짧은 시간에 여러 곳에서 일어나게 하는 공격
      • 심각한 피해 양상 및 대책이 없는 실정
    • 공격자의 위치와 구체적인 발원지 파악이 불가능
    • 공격의 범위가 방대함
      • 디도스 공격은 항상 이슈가 되고 공격자를 찾는 노력이 계속되고 있음

2.2 네트워크 보안이란?

  • 방화벽의 기능과 목적
    • 네트워크 보안
      • 시스템들을 위협하는 것이 무엇인지 사실적으로 평가, 명시하는 것
      • 방어 준비를 충분히 하려면 위험에 대한 명확한 그림을 머릿속에 갖고 있어야 함
    • 네트워크 보안 취약점
      • 네트워크의 수많은 호스트들에 취약점이 내재
      • 사용자들은 시스템을 최신 상태로 유지하지 않음
      • 패치가 준비되어지지 않은 여러 익스플로잇이 존재
    • 네트워크 보안 취약점 해결방안
      • 네트워크에의 접속 제한
        • 사용성이 제한됨
      • 방화벽 설치
        • 방화벽의 기능
          • 네트워크에서의 보안을 높이는데 가장 1차적인 방식
          • 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 시이를 지나는 패킷을 정해놓은 규칙에 따라 차단하거나 보내주는 기능
          • 접근 제어(Access Control)
          • 로깅(Logging)과 감사추적(Auditing)
          • 인증(Authentication)
          • 데이터 암호화
        • 스크리닝(Screening) 라우터
          • 내부 네트워크에 존재하는 여러 호스트들이 라우터를 통해 외부 인터넷과 연결됨
          • 라우터의 방화벽을 설치해서 원치 않는 패킷이 내부로 들어오는 것을 막아주는 개념
            • 3계층인 네트워크 계층, 4계층인 전송 계층에서 실행
          • IP 주소와 포트에 대한 접근 제어 가능
          • 외부 네트워크와 내부 네트워크의 경계선
          • 라우터에 패킷 필터링 규칙을 적용하는 것으로 방화벽 역할을 수행하게 함
  • 패킷 필터링
    • 망을 통해 원치 않는 것과 원하는 것을 걸러서 통과하게 하는 방식 - ex) 커피를 내리는 것
    • 명백히 허용하지 않는 서비스에 대해 거부하는 기능을 방화벽에 적용하는 것
    • 패킷 필터링의 설정 과정
      1) 허용할 서비스 확인
      2) 제공하려는 서비스의 보안 문제점 및 허용ㅇ에 대한 타당성 검토
      3) 서비스가 이루어지는 형태 확인 및 어떤 규칙을 적용할지 결정
      4) 방화벽에 실제 적용 및 적용된 규칙 검사
  • 방화벽의 경우 합법적인 호스트와 서비스로부터의 트래픽만을 허용, 하지만 이러한 합법적인 호스트 및 서비스로의 트래픽도 공격에 활용되어질 수 있음 > 해결책 IDS

  • Intrusion Detection System

    • 데이터와 호스트의 행동 모니터링
    • 공격 감지 시 리포트
    • IDS 유형
      • 시그니처 기반 IDS
        • 알려진 공격 패턴을 비교 매칭
      • 변칙 기반 IDS
        • 통계 또는 머신러닝을 활용하여 정상적인 유형의 행동들을 규정
      • 호스트 기반 IDS
        • 단일 호스트 위에서 동작, 로그 등을 분석
      • 네트워크 기반 IDS
        • 가공되지 않은 패킷들을 분석

2.3 네트워크 보안 문제점 분석 실습

  • 풋프린팅

    • 해킹에서 공격 대상의 정보를 모으는 방법
    • 본격적인 해킹을 위한 사전 준비 작업
  • 여러 가지 스캔 기법

    • 스캔은 서비스를 제공하는 서버의 작동 여부와 서버가 제공하는 서비스를 확인하는 방법

    • ex) TCP 기반의 프로토콜에서 요청(Request)을 보내면 응답(Response)을 전달해주는 것

    • 스캔은 방화벽과 침입탐지시스템을 우회하기 위해 발전

    • Ping

      • 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티
      • 일반적으로 옵션 없이 Ping 유틸리티 사용
    • TCP Open 스캔

      • 가장 기본적인 스캔 기법

      • 세션을 생성하기 위한 SYN 패킷 송신

    • 스텔스 스캔

      • 공격자에 대한 증거가 남는 TCP Open 스캔에서 발전한 스캔 방법

      • 흔적을 남기지 않고 하늘을 나는 스텔스 전투기에서 따온 이름

      • 세션을 완전히 성립하지 않고, 공격 대상 시스템의 포트 활성화 여부를 알아내기 때문에 공격 대상 시스템에 로그가 남지 않음

      • TCP Half Open

        • 스캔의 시작은 TCP Open 스캔과 동일

    • UDP 스캔

      • UDP를 이용한 포트 스캔은 신뢰하기 어려움
        • UDP 패킷이 네트워크를 통해 전달되는 동안 라우터나 방화벽에 의해 손실될 수 있기 때문
    • ICMP 스캔

      • ?
  • 스캔 실습 - fping, nmap

    • fping을 이용해 스캔하기
      • (우분투/리눅스)관리자 모드 진입 : sudo su
      • fping 설치 : apt-get install fping
      • 스캔 시행 : fping - g (확인하고 싶은 IP 주소)
    • nmap을 이용해 스캔하기
      • 타깃 호스트에 여러 가지 동작되는 서비스에 대한 스캔을 제공하는 툴
      • 설치(윈도우) : nmap.org 에 접속하여 다운로드

SEC 3. 네트워크 패킷 분석

3.1 네트워크 패킷 분석 툴

  • 네트워크 패킷

    • 컴퓨터 네트워크가 전달하는 데이터의 정형화된 블록
    • 전송이 용이하도록 잘라서 보낼 수 있는 데이터 전송 단위
    • 패킷과 네트워크 Layer

    • 네트워크 패킷 분석이란?
      • 실제 동작 방식과 내용을 직접 볼 수 있어 프로토콜 이해에 도움이 됨
      • 프로토콜 스펙의 조건과 내용
        • 패킷 분석을 통해 이해를 도움
      • Packet Sniffer
        • 메시지의 교환을 살펴볼 수 있음
        • 송수신 메시지를 복사하여 Header의 내용을 보여줌
  • 네트워크 패킷 분석 툴

    • WireShark
      • 무료 패킷 스니핑 툴
      • 네트워크 프로토콜 분석/수집/검사 기능
      • 특정 프로토콜 디자인/구현
        • 직접 분석, 새로운 프로토콜 추가 분석
      • 다양한 운영체제에서 사용 가능
        • 네트워크 분석가, 정보보호 엔지니어 사용 多
    • TCP Dump
      • 네트워크 관찰 및 관제에도 사용되는 상당히 일반적인 네트워크 스니핑 툴
      • 법원에서 인정하는 툴
      • 위변조가 쉽고 진위를 알아내기 어려움
    • Microsoft Network Monitor
      • 네트워크 트래픽을 수집 및 조회
      • MS 전용 프로토콜 지원
      • 트래픽 동시 수집, 무선 모니터링, 유해 트래픽 감지 기능
    • Nagios
      • 네트워크 모니터링 툴
      • 데이터 시각화, 트래픽 분산 등 기능 제공
  • 네트워크 패킷 분석 툴 응용

    • 스니핑(Sniffing)
      • 랜 카드로 들어오는 전기적인 신호로 다른 이의 패킷을 관찰하는 공격
      • 수동적으로 정보를 습득할 수 있는 공격
      • 네트워크 분석 툴을 활용
        • 개인정보를 습득

3.2 와이어샤크 기본 기능

  • WireShark 소개
    • 자유 및 오픈소스 패킷 분석 프로그램
    • Network Interface Card 송수신 패킷 분석
    • 가장 많이 쓰이는 네트워크 프로토콜 분석기
    • TCP Dump와 유사
    • GUI라는 강력한 기능 제공
    • 많은 산업 및 교육기관의 표준으로 사용
    • WireShark의 용도
      • 네트워크 트러블 슈팅
        • 네트워크 관련 문제 분석 및 파악
      • 보안 문제 관찰
        • 네트워크 패킷 분석 및 관찰
      • 프로토콜 구현 디버깅
        • 프로토콜이 제대로 동작하는지 확인
      • 네트워크 프로토콜 internals 학습
  • WireShark 설치 및 실행
    • WireShark 홈페이지에서 운영체제에 맞는 설치 파일 다운로드 및 설치
    • 네트워크 인터페이스 선택 후 패킷을 수집하는 작업 시작
      • VMware, 이더넷, wifi 등
    • WireShark 메뉴
    • WireShark 캡처
      • 캡처를 시작한다 = Go
      • 인터페이스 송수신 패킷 : WireShark 저장
      • WireShark를 통해 패킷 내용 확인
      • 예시) 패킷 캡처 시작 > 수백, 수천 개의 패킷 기록 > 원하는 패킷 검색 필요 - 패킷 필터 기능!
  • WireShark 기능
    • 패킷 필터 기능 예시
      • Statistics-Conversations 기능
      • Statistics-IO Graphs 기능

3.3 와이어샤크 실습(DNS 분석)

  • WireShark DNS 캡처

    • WireShark 시작
    • DNS란?
      • Domain Name Service
        • 도메인 네임, IP Address 정보
      • DNS 패킷 검색 방식
        • 목표 프로토콜 패킷 : DNS를 하는 패킷
        • DNS 해당 패킷 검색 방식?
          • DNS의 IP Address
            • 필터에 넣어 패킷 캡처
          • Well-known 포트
            • DNS 사용 포트 : 53번 포트
          • 원하는 필터 입력(DNS)
            • UDP + 53번 포트
            • UDP port=53
            • DNS 서버가 사용하는 포트
              • 캡처 가능
        • DNS 접속을 위한 명령어
          • 도메인 서비스를 사용하는 어플리케이션 실행 > 캡처
          • nslookup의 기능
            • DNS에 접속을 하여 IP 주소를 전달
          • cmd nslookup
          • cmd www.google.co.kr
          • WireShark에서 패킷 확인
  • DNS 캡처 패킷 보기

    • Response 패킷
      • DNS 프로토콜 제공 여러가지 정보
  • WireShark의 활용

    • HTTP 프로토콜
    • DDoS Attack

SEC 4. 와이어샤크(Wireshark) 기본 활용법 이해 ref.

4.1 와이어샤크 강의 소개 ref.

  • 와이어샤크 기본 개념
  • 와이어샤크 도구 활용법
  • 웹 자동화 취약점 패킷 분석 실습
  • 소프트웨어 공격 패킷 분석 실습
  • 패킷 분석 챌린지 실습

4.2 와이어샤크 기본 개념 및 윈도우 프로그램 설치 ref.

  • WireShark 개요
    • 세계에서 가장 널리 쓰이는 네트워크 분석 프로그램
    • 네트워크상에서 캡처한 데이터에 대한 네트워크/상위 레이어 프로토콜의 정보를 제공
    • 패킷을 캡처하기 위해 pcap 네트워크 라이브러리 사용
  • WireShark 장점
    • 쉬운 설치
    • GUI 인터페이스를 이용한 간단한 사용법
    • 매우 다양한 기능들
  • WireShark 설치

4.3 와이어샤크 인터페이스 살펴보기

  • 언제 사용?

    • 침해대응 분석 - 모니터링
      • IPS/IDS 패킷 샘플
    • 모의해킹 - PC->서버 평문/암호화 통신(?)
    • 어플리케이션 패킷 분석 - 중요 정보 노출 여부
    • 포렌식 분석 - 침해대응, 사고대응, 개인정보 등의 노출 - 정보 분석
  • winpcap - 패킷 드라이브 - 모니터링 모드

  • 인터페이스 - 기능(?)별 설명, 영상 참고

4.4 와이어샤크로 패킷 캡처해보기

4.5 와이어샤크 필터링 기능 이해하기

  • 캡처 필터 : 캡처를 할 때 미리 필터링

    • winpcap 드라이브가 관여를 해서 원하는 형태들만 캡처
      • 대용량의 패킷들을 수집할 때, 실시간 등
      • 필터링 한 것 외의 중요한 패킷 놓칠 수 있음
  • 화면 필터

  • 영상 참고

4.6 메인툴바 기능 살펴보기

4.7 와이어샤크 패킷필터 사용 실습

4.8 와이어샤크 화면필터 사용 실습

4.9 와이어샤크 컬러링 마크 기능 사용하기

4.10 와이어샤크 패킷 검색 기능 활용하기

4.11 와이어샤크 상태 요약(Statistics) 기능 사용하기

4.12 와이어샤크 패킷에 Comment를 달아 나만의 분석 결과 만들기

4.13 원하는 패킷만 선택해서 분석하고 싶을 때 마킹을 하고 Export Specified Packet

4.14 Merge 기능을 이용하여 패킷을 합치기

0개의 댓글