정적분석이란?
정적분석(static analysis)은 소프트웨어 개발에서 사용되는 소프트웨어 품질 관리 기법 중 하나입니다. 이 기법은 소스 코드를 실행하지 않고도 코드를 분석하여 프로그램의 동작을 예측하고 품질을 평가합니다. 정적분석은 프로그램의 구조, 흐름, 데이터 사용 등을 검토하여 잠재적인 버그나 보안 취약점을 식별하고 개선할 수 있는데 주로 사용됩니다.
정적분석을 하는 이유?
정적 분석 도구를 사용하면 코드에서 보안 취약점 등의 문제를 발견할 수 있다.
- 잠재적으로 버그가 발생할 수 있는 코드
- 안티 패턴
- 코드 스타일(컨벤션) 위반 여부
- 성능 문제
- 오타
- 사용되지 않는 코드
- 잠재적인 보안 취약점
정적분석 실습 (1) - 애드웨어 분석
정적분석 실습 (2) - LockBit 랜섬웨어 분석
2021년 7월 9일에 컴파일된 악성코드임을 확인할 수 있습니다. C/C++로 작성되었으며, 패커나 프로텍터는 사용하지 않았습니다.
엔트로피 값이 높기 때문에 데이터 섹션을 난독화한 것으로 추정하였습니다.
랜섬노트로 추정되는 문자열과 몸값 협상을 위해 사용자에게 제공되는 ID 값을 확인할 수 있습니다.
LockBit 랜섬웨어에서 사용하는 몸값 협상 채팅 주소와 tor 주소를 확인할 수 있습니다.
run 레지스트리 키를 설정할 것이라 예측할 수 있고, cmd를 이용한 행위를 수행할 것이라 예측할 수 있습니다.
IAT Table과 EAT Table, RESOURCE Table 등의 값이 할당되어있지 않기 때문에 일부 데이터가 암호화되어 실행 과정 중에 복호화되면서 동적으로 DLL을 불러올 것입니다. 종합적으로 데이터 섹션이 암호화되어 있고, 메타데이터를 암호화한 채로 다른 주소에 저장하여 동적으로 불러와 동작할 것을 확인할 수 있습니다.
메타데이터가 부족하여 더이상의 정적 분석은 불가능하였습니다.
'4-2. 2024-1 심화 스터디 > 윈도우 악성코드분석' 카테고리의 다른 글
[악성코드 코드 분석] (0) | 2024.05.24 |
---|---|
[악성코드 코드분석] (0) | 2024.05.10 |
[악성코드 매뉴얼 분석] (0) | 2024.04.05 |
[악성코드 정적 및 동적 분석] (0) | 2024.03.28 |
[악성코드 분석 개요] (0) | 2024.03.15 |