카테고리 보관물: 정보보안전문가

정보보안전문가

분석가가 사용하는 파일 분석 도구

간편하게 파일 분석이 가능한 프로그램을 살펴 보자. 올리디버거를 이용한 파일 분석 방법은 책 한권 분량이 나올 만큼 양이 방대하다. 이미 올리디버거를 이용해 정적으로 악성코드나 파일을 분석하는 좋은 책들이 많이 있기 때문에 관련 내용을 참고하기 바랍니다.

침해사고분석 과정에서 악성코드로 의심되는 파일이 확보되면 해당 파일의 기능 분석을 수행한다. 수집된 악성코드를 별도의 분석 시스템으로 옮겨와서 분석할 수 있지만 경우에 따라서는 부득이 분석 대상 시스템에서 악성코드 분석을 수행하기도 한다. 시스템에 영향을 최소화 하고 악성코드로 의심되는 파일을 분석하는데 많이 사용되는 분석도구가 PEiD이다.

PEiD 프로그램은 정적으로 파일을 분석하는데 사용되고 실행파일의 API, 문자열 정보, 실행압축정보 등을 확인하는데 사용한다. 대표적인 기능과 함께 실제 PE헤더 파일을 분석해보자.

그림 PEiD

악성코드 샘플을 분석하는 것도 의미가 있지만 샘플을 구하기 어려운 경우 윈도우 시스템에 “cmd.exe” 파일을 분석해보는 것으로도 기능 파악에 도움이 된다.

분석할 PE파일을 불러 온다.

그림 PEiD 주요기능

문자열 검색

파일 디버깅을 통해서 파일에 포함된 식별 가능한 문자열 검색을 수행할 수 있다.

일부 악성코드의 경우 하드코딩 형식으로 마스터 서버에 접속할 IP정보를 PE파일안에 넣어 두기도 한다. 이 경우 악성코드가 어떤 IP로 접속하는지 혹은 어떤 프로그램인지 확인할 수 있다.

API 확인

실행 파일에서 사용되는 API를 통해서 대략적인 프로그램이 수행하는 행위에 대해 추측이 가능하다. 정확한 분석을 위해서는 디버깅 프로그램을 이용해 분석이 필요하겠지만, API를 확인하는 것으로 침해사고 분석에 필요한 정보를 확보할 수 있다.

그림 PEiD주요기능-API점검

PEiD는 현재는 업데이트가 중단되었다. 대체 도구는 아래 사이트를 참고해 필요한 목적에 맞게 사용할 수 있다.

도구 이름특징장점플랫폼
Detect It Easy (DIE)PEiD의 최신 대안, GUI 제공다양한 포맷 지원 (PE, ELF, Mach-O 등), 스크립팅 가능, 지속적인 업데이트Windows, Linux, macOS
Exeinfo PEPE 파일 분석 및 패커 탐지정확한 패커 탐지율, 아이콘/리소스 분석, 내부 오프셋 표시Windows
RDG Packer Detector패커, 크립터, 프로텍터 탐지광범위한 패커 DB, 다양한 탐지 옵션Windows
CFF ExplorerPE 파일 편집/분석PE 헤더 편집 가능, 다양한 플러그인 지원Windows
PEStudio정적 분석 도구디지털 서명, API 호출, 의심 정보 자동 표시Windows
PackerID명령줄 기반 분석 도구스크립팅 자동화에 유리Windows, Linux

분석가가 사용하는 패킷 분석 도구

효율적으로 침해사고 분석 업무를 수행하기 위해서 필요한 분석 도구를 살펴보자. 분석도구란 분석에 필요한 정보를 해석하고, 분석가가 쉽게 필요한 정보를 볼 수 있도록 도와주는 도구다. 이러한 분석 도구는 크게 네트워크 패킷 분석 도구와 로그 분석, 파일 분석 도구로 나눌 수 있다.

가장 많이 사용되는 와이어샤크에 대해서 살펴 보자. 예전 이더리얼이라 불렸던 와이어샤크는 무료로 사용할 수 있는 대표적인 패킷분석 프로그램 이다. 네트워크 트래픽 통계와 스트림 정보, 파일 추출 등 분석에 필요한 다양한 기능을 제공한다. 공격자에게 백도어가 있다면 분석가에겐 분석 도구가 있다.

와이어샤크는 분석가들 사이에 워낙 많이 사용되는 툴이기 때문에 기본적인 사용법은 홈페이지[1]를 참고하자. 우리는 분석할 때 유용한 메뉴를 중심으로 분석도구로서 사용하는 방법을 같이 살펴 볼 것이다. 그리고 간편하게 사용할 수 있는 네트워크마이너도 살펴볼 예정이다.


[1] https://www.wireshark.org/docs/wsug_html_chunked/

와이어샤크(Wireshark)

  • 네트워크를 통해 전달된 파일 확인

포렌식 관점에서 와이어샤크의 가장 유용한 기능은 패킷에서 파일을 추출하는 것이다. 먼저 파일을 추출할 pcap 파일을 불러온다. 파일을 불러오면 Export objects 명령을 이용해 파일을 추출하자.

File > Export objects

그림 와이어샤크(파일추출)

통신 프로토콜을 선택하다. HTTP 통신을 선택하면 다음과 같이 웹 통신을 통해 주고 받은 파일 목록이 나타난다.

그림 추출파일목록

Save All 명령을 이용해 전체 파일을 저장할 수 있고, 필요한 파일만 Save As 메뉴를 이용해 저장한다.

그림 추출파일저장

악성코드로 의심되는 파일을 추출하면 파일 분석 도구를 이용해 정적분석을 수행하거나, 가상머신에서 파일을 실행시켜 동적분석을 수행하는데 사용한다. 혹은, 기업이나 조직의 중요한 내부 문서가 외부로 유출되는 경우 의심 파일을 추출해서 증거로 사용한다.

  • 트래픽 정보 확인

이상 트래픽을 분석하는 관점에서 와이어샤크가 제공하는 유용한 기능 중 하나는 저장된 pcap파일의 트래픽 정보를 통계적인 관점으로 제공하는 것이다. 와이어샤크에서 제공하는 메뉴 중에서 Statistic 메뉴를 활용하면 다양한 통계 정보를 확보할 수 있다.

Statistics -> IO 그래프

IO그래프를 분석에 활용하기 위해서는 필터링 항목을 적극 이용해야 한다. IO 그래프를 실행시킨 화면만으로는 이상 트래픽을 분석하기 위한 단서 정보를 찾기 어렵다. 아래 그림은 IO그래프를 실행 시킨 모습니다. 아래 그래프를 통해서 우리가 확보할 수 있는 단서는 12시 13분쯤 트래픽이 한차례 증가 되었고, 이후 12:14분에 다시 한번 트래픽 증가가 있었다는 내용이다.

그림 IO 그래프

좀더 분석을 효율적으로 하기 위해 우리는 각각의 프로토콜 별로 색깔을 다르게 그래프로 표시해 보자. 각각 프로토콜 별로 필터링을 통해 실제 의심 현상과 관련된 프로토콜 연관성을 확인하는 작업을 수행한다. 이러한 과정을 통해 많은 정보를 분석할 때 좀더 효율적으로 시간을 아낄 수 있다.

그림 IO 그래프
그림 IO 그래프 패킷 필터 적용
  • Protocol Hierarchy

앞서 IO 그래프를 통해 전체 트래픽 중에서 이상 현상이 발생된 트래픽을 확인하는 과정을 수행 했다면, 실제 세부 트래픽을 분석하는 작업이 필요한데, 이때 statistic 메뉴 중에 프로토콜 하이라키를 이용하면 저장된 pcap 파일의 구조를 살펴 볼 수 있다. 전체 트래픽 중 패킷 비율이나 프토토콜 비율 확인을 통해서 분석의 단서를 찾아 나간다.

Statistics -> Protocol Hierarchy

그림 Protocol Hierarchy
  • 패킷분석

효율적인 패킷 분석에 빠질 수 없는 것 중 하나가 패킷 필터이다. 기본적으로 표준 pcap 형식의 파일은 BPF(Berkeley Packet Filter)를 지원한다. 와이어샤크를 통해 불러온 pcap파일은 BPF 구문을 이용해 효율적으로 패킷 분석이 가능하다.

패킷 필터 구문 사용 시 기본 지원 되는 연산자 종류는 3가지가 있다.

연산자 종류문법
AND 연산자AND (&&)필터 구문간 AND 조합 연산샘플 구문 tcp.port == 80 && ip.addr == 74.195.238.237
OR 연산자OR (||)필터 구문간 OR 연산샘플 구문 tcp.port == 80 || ip.addr == 74.195.238.237
NOT 연산자NOT (!)지정 필터 구문에 대한 NOT 연산샘플 구문 tcp.port == 80 && !(ip.addr == 74.195.238.237)

필터 관련 문법은 와이어샤크 프로그램에서 자동완성 형식으로 저장되기 때문에 복잡한 구문을 일일이 외우고 있을 필요 없다. 필요한 프로토콜을 지정하면 사용 가능한 문법이 자동 완성 된다.

그림 패킷필터구문

네트워크마이너(NetworkMiner)

네트워크 패킷 분석 도구 중에 네트워크마이너에 대해서 살펴보자. 앞서 패킷 분석 작업에 가장 많이 사용되는 와이어샤크를 살펴 보았다. 와이어샤크를 사용하기 위해서는 프로토콜에 대한 이해도 필요하고 정보를 찾기 위해 프로그램에서 제공하는 메뉴에 대해 공부가 필요하다. 하지만 이번에 살펴볼 네트워크마이너는 쉽고 강력하게 분석가에게 필요한 정보를 제공하는 툴 중에 하나다. 저장된 pcap 파일을 프로그램에 불러오면 자판기에서 먹고 싶은 음료수를 누르듯이 필요한 정보를 클릭하기만 하면 된다.

홈페이지[1]에서 프로그램을 다운 받을 수 있다. 버전은 프리버전과 상용 버전이 있다.

프로그램을 실행하고 분석할 pcap파일을 오픈하면 자동으로 각각의 메뉴에 맞게 패킷을 가공 한다.

그림 네트워크마이너

분석가는 각 탭을 하나씩 클릭해서 분석에 필요한 정보를 하나씩 살펴 보면 된다. 복잡하게 필터 문법을 사용하거나 메뉴을 하나씩 클릭할 필요 없이 쉽게 필요한 정보를 마우스 클릭으로 찾아서 사용하면 된다. 어려운 툴을 사용해야만 고급 분석을 할 수 있는 건 아니다. 상황과 조건에 맞게 적합한 툴을 사용하는 것이 분석 도구를 선택하는 중요한 기준이다.

네트워크 기반의 패킷 분석 프로그램을 살펴 보았고, 이제 파일 기반의 분석 프로그램을 살펴보자.


[1] https://www.netresec.com/?page=NetworkMiner

분석가의 기본 지식

  • 침해사고대응 전문가

전문 침해 대응 업무를 수행하기 위해서 필요한 기술의 종류는 다양하다. 트래픽 분석에서부터 악성코드 분석까지 보안 업무의 분야가 다양한 만큼 필요한 기술의 종류도 여러 가지다.

전문 침해 대응 업무를 수행하기 위해서 필요한 대표적인 업무 스킬 항목을 살펴 보자. 각 업무 마다 기술 수준에 따라 초급, 중급, 고급으로 나눌 수 있다. 기술수준을 나눌 때 어떤 기준으로 나누는지 표를 통해 살펴 볼 것이다. 해당 수준 정의는 조직이나 기업의 상황에 따라 차이가 발생할 수 있다.

패킷 분석 레벨

Beginner

  • 단일 패킷 분석 – 처음 패킷을 분석하는 분석가는 개별 패킷을 구분하고 패킷 내용을 이해 합니다. 단편화된 패킷의 헤더와 페이로드 구성을 이해할 수 있습니다.
  • 헤더 정보 이해 – 패킷 헤더에 포함된 프로토콜 정보를 이해 할 수 있습니다. TTL 의미와 IP Flags, Fragment Offset이 의미하는 내용을 이해할 수 있어야 합니다.
  • 응용프로그램 식별 – 패킷 데이터의 페이로드 정보를 통해 통신 애플리케이션(응용프로그램)이 무엇인지 식별할 수 있어야 합니다. 식별을 위해 HTTP/FTP/SSH 등 응용 프로그램 프로토콜 통신 형식에 대해서 이해가 필요 합니다.
  • IP/Port정보 식별 – 클라이언트와 서버의 통신 주소와 통신 포트를 식별할 수 있습니다.

Intermediate

  • 단일 패킷 분석 – 패킷을 분석하는 분석가는 개별 패킷을 구분하고 패킷 내용을 이해 합니다. 단편화된 패킷의 헤더와 페이로드 구성을 이해할 수 있습니다.
  • 헤더 정보 이해 – 패킷 헤더에 포함된 프로토콜 정보를 이해 할 수 있습니다. TTL 의미와 IP Flags, Fragment Offset이 의미하는 내용을 이해할 수 있어야 합니다.
  • 응용프로그램 식별 – 패킷 데이터의 페이로드 정보를 통해 통신 애플리케이션(응용프로그램)이 무엇인지 식별할 수 있어야 합니다. 식별을 위해 HTTP/FTP/SSH 등 응용 프로그램 프로토콜 통신 형식에 대해서 이해가 필요 합니다.
  • IP/Port정보 식별 – 클라이언트와 서버의 통신 주소와 통신 포트를 식별할 수 있습니다.
  • 페이로드 분석 – 통신 애플리케이션 형식에 대한 이해를 바탕으로 전달된 파라미터 정보를 구분할 수 있습니다. 정상 파라미터 유형에 대해서 이해하고 있습니다. HTTP 통신에 사용되는 표준 통신 메소드 종류. Ex. GET / POST / HEAD 등
  • 공격 패킷 구분 – 공격 관련 통신 애플리케이션과 비정상 통신 애플리케이션 특징을 구분할 수 있어야 합니다. 페이로드 분석을 통해 정상 통신 패킷의 파라미터 정보와 공격을 시도하는 패킷을 구분할 수 있어야 합니다.
  • 공격 경로 식별 – 공격 패킷 페이로드에 포함된 정보를 분석해서 공격에 사용된 특징을 분석 할 수 있어야 합니다. HTTP URL 정보나 시스템 명령 실행 경로 등을 분석해서 공격이 발생한 대상과 위치를 식별할 수 있어야 합니다.
  • 공격 영향 구분 – 공격 패킷 페이로드에 포함된 정보를 분석해서 공격에 사용된 특징을 분석 할 수 있어야 합니다. 파악된 공격 유형과 패킷에 포함된 시스템 응답 정보를 분석해서 공격이 성공했는지 실패했는지 파악 할 수 있어야 합니다. 파악한 정보를 통해 시스템에 발생 가능한 영향을 분석 할 수 있어야 합니다.

Advanced

  • 단일 패킷 분석/ 풀패킷 분석 – 패킷을 분석하는 분석가는 개별 패킷을 구분하고 패킷 내용을 이해 합니다. 단편화된 패킷의 헤더와 페이로드 구성을 이해할 수 있습니다. 전체 패킷을 조합해서 세션 기반의 통신 정보를 분석 할 수 있어야 합니다. 공격자가 시스템에 연결한 시간, 시스템과 주고 받은 전체 데이터 양, 다운받거나 업로드한 파일 정보를 분석할 수 있어야 합니다.
  • 패킷 재조합, 패킷 필터 – 키워드 또는 통신 유형에 따라 패킷을 재 구성하거나 방대한 패킷에 분석에 필요한 패킷을 효율적으로 분석 할 수 있습니다.
  • 헤더 정보 이해 – 패킷 헤더에 포함된 프로토콜 정보를 이해 할 수 있습니다. TTL 의미와 IP Flags, Fragment Offset이 의미하는 내용을 이해할 수 있어야 합니다.
  • 응용프로그램 식별 – 패킷 데이터의 페이로드 정보를 통해 통신 애플리케이션(응용프로그램)이 무엇인지 식별할 수 있어야 합니다. 식별을 위해 HTTP/FTP/SSH 등 응용 프로그램 프로토콜 통신 형식에 대해서 이해가 필요 합니다.
  • IP/Port정보 식별 – 클라이언트와 서버의 통신 주소와 통신 포트를 식별할 수 있습니다.
  • 페이로드 분석 – 통신 애플리케이션 형식에 대한 이해를 바탕으로 전달된 파라미터 정보를 구분할 수 있습니다. 정상 파라미터 유형에 대해서 이해하고 있습니다. HTTP 통신에 사용되는 표준 통신 메소드 종류. Ex. GET / POST / HEAD 등
  • 공격 패킷 구분 – 공격 관련 통신 애플리케이션과 정상 통신 애플리케이션 특징을 구분할 수 있어야 합니다. 페이로드 분석을 통해 정상 통신 패킷의 파라미터 정보와 공격을 시도하는 패킷을 구분할 수 있어야 합니다.
  • 공격 경로 식별 – 공격 패킷 페이로드에 포함된 정보를 분석해서 공격에 사용된 특징을 분석 할 수 있어야 합니다. HTTP URL 정보나 시스템 명령 실행 경로 등을 분석해서 공격이 발생한 대상과 위치를 식별할 수 있어야 합니다.
  • 공격 영향 구분 – 공격 패킷 페이로드에 포함된 정보를 분석해서 공격에 사용된 특징을 분석 할 수 있어야 합니다. 파악된 공격 유형과 패킷에 포함된 시스템 응답 정보를 분석해서 공격이 성공했는지 실패했는지 파악 할 수 있어야 합니다. 파악한 정보를 통해 시스템에 발생 가능한 영향을 분석 할 수 있어야 합니다.

이외에도 다양한 보안 관련 이벤트에 대해서 분석 가능한 역량이 구분 됩니다.

 초급중급고급
패킷분석단일 패킷 분석헤더 정보 이해응용프로그램 식별IP/Port정보 식별단일 패킷 분석헤더 정보 이해응용프로그램 식별IP/Port정보 식별 페이로드 분석공격 패킷 구분공격 경로 식별공격 영향 구분단일 패킷 분석/ 풀패킷 분석패킷 재조합, 패킷 필터헤더 정보 이해응용프로그램 식별IP/Port정보 식별 페이로드 분석공격 패킷 구분공격 경로 식별공격 영향 구분
로그분석윈도우/유닉스 로그 타입 이해로그 저장 경로로그 내용 이해윈도우/유닉스 로그 타입 이해로그 저장 경로로그 내용 이해비정상 로그 식별윈도우/유닉스 로그 타입 이해로그 저장 경로로그 내용 이해비정상 로그 식별 트러블 슈팅원인 분석
네트워크 침입탐지IDS/IPS 이해오픈 소스(Snort)위험도 구분IDS/IPS 이해침입탐지원리 이해오픈 소스(Snort)위험도 구분룰셋 이해기본 구성 및 설정IDS/IPS 이해침입탐지원리 이해오픈 소스(Snort)위험도 구분룰셋 이해기본 구성 및 설정설정 최적화룰셋 제작네트워크 구성 및 설치
방화벽방화벽 이해접근제어리스트(ACL)  방화벽 이해침입차단원리 이해접근제어리스트(ACL)ACL 작성방화벽 이해침입차단원리 이해접근제어리스트(ACL)ACL 작성네트워크 구성 및 설치ACL 관련 고급 설정방화벽 운영 및 설정최적화
호스트기반 침입탐지HIDS 이해오픈 소스(OSSEC)HIDS 이해침입탐지원리 이해오픈 소스(OSSEC)탐지 항목 이해룰셋 이해기본 구성 및 설정호스트 기반의 침입HIDS 이해침입탐지원리 이해오픈 소스(OSSEC)탐지 항목 이해룰셋 이해기본 구성 및 설정호스트 기반의 침입HIDS 설치 및 구성 설계HIDS 탐지 및 수집 항목 정의

표 침입대응 수준 정의

침해사고대응 프로세스 단계별 설명

기업이나 정부 기관에서는 침해사고가 발생하면 사전에 정의된 업무 절차에 따라 사고대응 활동을 수행한다. 금융권 혹은 개인정보 유출과 연관된 사고의 경우에는 기업 내부뿐만 아니라 관리 기관과 함께 사고 조사를 수행하기도 한다.
침해사고 대응 활동을 통해 사고 원인을 파악하고 피해가 재발하지 않도록 재발방지 방안을 수립하는 것이 침해사고대응 활동의 목적인다. 침해사고 대응 하는 과정을 요약 하면 다음과 같다.

표 침해사고분석 과정 요약

표 침해사고분석 과정 요약

사고의 유형은 다양하다. 랜섬웨어에 의해 시스템의 중요한 데이터가 암호화되는 피해를 입거나, 사전식 대입 공격을 통해서 시스템에 공격자가 침입할 수 있다. 사고 유형에 따라 침해사고를 어떻게 분석할지 분석가는 조사 방법을 정의 한다.
증거 수집 과정은 침해사고원인을 파악하기 위해 필요한 정보를 모으는 과정이다. 사전식 대입 공격에 의해서 사고가 의심되는 경우에는 침해사고원인 분석을 위해서 시스템의 로그인 로그가 필요하다. 만약 랜섬웨어에 의해 파일이 암호화 되었다면 시스템 명령 실행내역과 프로그램 설치 내역이 사고원인 분석을 위해 필요하다. 사고 원인을 정확히 파악하기 위해서는 공격자의 흔적이 기록된 정보를 활용한다.
증거 수집 과정에서는 다양한 보안 솔루션이 활용된다. 엔드포인트에서 수집된 로그에서 부터 클라우드 기반의 로그까지 다양한 로그를 활용한다. SOC팀에서 운영하는 보안 솔루션 장비가 분석가가 사고 조사 시 수집 대상으로 고려가 필요한 로그 정보다.
다음 그림은 SOC 보안 모니터링을 위한 솔루션 아키텍처 그림이다.

그림 – SOC 솔루션 아키텍처

수집된 로그를 가공하고 분석에 필요한 정보만 추출하는 과정을 거쳐 침해사고와 핵심이 되는 정보를 분석하게 된다. 최근에는 다양한 보안 솔루션을 이용해서 상관분석을 수행한다. 서로 다른 보안 장비간에 연관된 사고 관련 이벤트를 그래프나 히트맵으로 시각화해 분석 시간을 효율적으로 활용할 수 있게 도와 준다.
머신러닝(Machine Learning)을 활용해 방대한 로그를 분석해 사고와 관련된 이벤트를 사전에 탐지 할 수 있는 방법도 다양하게 시도된다. 보안 위협 탐지와 분석 과정에 인공지능 기술이 활용되면 업무 효율성을 높일 수 있을 것으로 기대 된다.
침해사고 원인이 확인되면 재발방지를 위해 필요한 조치를 정의 하고, 개인정보가 유출되거나 기업 고객 정보와 관련된 피해가 발생했다면 관련 규정에 따라 필요한 조치가 포함된 의사 결정이 이뤄진다. 일련의 침해사고분석 과정이 정상적으로 완료되면 침해사고 케이스를 종료한다.