각자 선정한 악성코드 샘플을 분석하기 전 정적분석 방법에 대한 개념 정리를 진행하였다.
사용하기로 한 악성코드
1. Mekotio
https://malpedia.caad.fkie.fraunhofer.de/details/win.mekotio
최근 Malwarebazaar 사이트에서 가장 많이 조회된 악성코드를 샘플로 선정
정적 분석
- 코드를 실행하지 않고 정적으로 프로그램의 문제를 찾는 과정.
- 동적 분석과 가장 큰 차이는 분석 시점으로 동적분석은 런타임 환경에서 코드의 문제를 발견하고 정적 분석은 비 런타임 환경에서 수행됨
- 정적 분석을 사용하면 코드에서 코드 스멜 문제점과 보안 취약점 등의 문제 발견 가능
정적 분석 주요 기법
- 비공식 검토: 문서에서 오류를 찾기 위해 프로세스를 따르지 않는 검토 방법
- 기술적 검토: 소프트웨어 제품의 기술 사양을 검토하고 프로젝트에 적합한지 확인하는 방법
- Walkthrough: 작업 산출물 작성자와 참가자가 질의응답을 하며 검토하는 방법
- Inspection: 공식적인 일정에 맞추어 보고서를 작성하고 평가하며, 시작과 종료 기준(Entry & exit criteria)을 가진 규칙과 체크리스트에 기반한 형식적인 프로세스
정적 분석 소프트웨어
1. CheckStyle
- 프로그래머가 코딩 표준 컨벤션을 지킬 수 있도록 도와주는 도구
2. CPD
- Copy/Paste Detector
- 복사/붙여넣기로 짜여진 코드를 감지하는 도구
3. SpotBugs
- 코드 내에서 발생될 수 있는 버그 취약 코드를 찾아내어 개발자에게 알려줌
4. PMD
- Programming Mistake Detector
- 높은 복잡도, 중복 코드와 같은 소스코드의 결함 탐지 가능
5. IntelliJ Inspection
- 프로젝트에서 비정상적인 코드를 컴파일하기 전에 이를 감지하고 수정하는 코드 검사 세트 존재
6. ESLint
- 자바스크립트 문법에서 에러를 표시해주는 도구
7. Klockwork
- 정적 애플리케이션 보안 테스트 표준 준수를 위한 도구
'4-1. 2024-2 심화 스터디 > 악성코드분석 1팀' 카테고리의 다른 글
[7주차] 2024.11.16 악성코드 분석 보고서 (0) | 2024.11.18 |
---|---|
[6주차] 241109 악성코드분석 1팀 (0) | 2024.11.15 |
[4주차_10/2_동적분석(2)] (0) | 2024.11.06 |
[3주차_09/28_동적분석] (0) | 2024.10.05 |
[1주차_악코! 넘어질 뻔했네~] 악성코드 선정 (0) | 2024.09.21 |