악성코드 정적,동적분석

정지범·2024년 1월 7일
0

refactoring

목록 보기
9/19

악성코드의 정적,동적분석의 특징 및 차이점

정적분석(Static Analysis)

  • 악성코드를 직접 실행하지 않고 그 자체가 갖고 있는 속성들을 통해 악의적인 여부를 진단하는 방법으로, 실행했을 때 실행 파일의 행위는 확인이 불가능하지만 속성은 파악이 가능합니다.
  • 검사할 때 악성코드가 실행하는 경우를 방지하기 위해 가상환경에서 실행합니다.
  • 파일, 바이너리 코드, 문자열, 파일의 헤더, 리소스 등을 조사하여 악성 코드를 식별합니다.

동적분석(Dynamic Analysis)

  • 악성코드를 직접 시스템에 실행시킨 후 변화를 모니터링하여 행동 패턴을 분석하는 방법을 의미합니다.
  • 실제 악성코드가 실행되기 때문에 가상의 환경에서 테스트하며 분석할 필요가 있습니다.
  • 프로세세스 -> 파일 -> 레지스트리 -> 네트워크 순으로 확인합니다.
  • 시스템의 변화가 악성코드가 원인지 정확히 파악하기 위해 반복하여 확인하는 과정이 필요합니다.

정적분석 도구

Virustotal(기초 분석)

  • 백신에 따른 악성코드 확인과 해시값 조회를 통한 과거 검사 이력 확인을 할 수 있습니다.
  • 기본적인 참고용 자료하고 생각하시면 됩니다.

Exeinfo PE(패킹 여부 확인)

패킹여부확인 (실행파일을 압축하는 것)

  • 해커들은 악성코드의 크기를 줄여 빠르게 유포하고 분석하기 어렵게 악성코드를 암호화 및 압축하는 패킹기법 사용
  • 패킹 여부를 확인하고 패킹이 된 파일은 분석 전 패킹을 해제하여 평문 형태로 만든 다음 정적분석 진행
  • A.S.L이 만든 소프트웨어로 exe파일 분석 프로그램(PEiD와 비슷한 프로그램)
  • 실행 후 파일을 드래그&드롭하여 프로그램이 어느 언어로 작성되었는지, 패킹, 크립팅, 프로텍팅 여부를 알 수 있다.

Bin Text(문자열 확인)

문자열 확인

  • 코드 내의 문자열을 나열하여 검사
  • 도메인 주소, ip주소, 실행파일, 명령어, 함수 등을 분석하여 악성코드와 관련된 정보가 있는 지 확인
  • BinText 는 파일에 포함된 문자열들을 GUI 의 형태로 보여주는 툴 입니다.
  • 해당 툴의 경우 패킹이 된 파일을 스캔할 경우에는 제대로된 정보가 나오지 않기 때문에 언패킹을 꼭 진행한 후에 사용을 해야합니다.

PEView(크로스 체크)

PE 구조 확인

  • Protable Executable 파일을 분석 -> 파일의 헤더, 섹션, 함수, 리소스 등에 대한 정보를 확인
  • dll.exe.sys등의 확장자를 가진 파일들은 PE 파일 구조
  • 악성 파일의 확장자가 위조된 확장자 인지 확인가능

동적분석 도구

Process Explorer(프로세스)

프로세스 분석

  • 악성코드 실행 후 나타나는 프로세스 모니터링 -> 프로그램의 행위, 시스템 호출 등을 관찰

Autoruns(파일 및 레지스토리)

파일 및 레지스트리 분석

  • 파일의 생성, 삭제, 변경을 모니터링 -> 다운되는 파일 및 악성코드의 복제 여부 파악 가능
  • 레지스트리의 추가, 삭제, 변경 모니터링 -> 악성코드가 windows 설정을 변경하는지 확인

WireShark(네트워크)

네트워크 분석

  • 정보유출, 원격제어, C&C(Command and Control) 서버, 악성 경유지와의 통신 확인
  • 네트워크 패킷을 분석하여 악성코드가 어떤 정보를 수집하고 어떤 명령을 수행하는지 확인 가능

참고

profile
안녕하세요

0개의 댓글