Dreamhack ReversingCource #2
정적 분석(Static Analysis)
- 악성 프로그램을 분석하여 실제로 실행하지 않고 도구에서 특징 및 특성 확인.
- 파일의 종류, 크기, PE 헤더 정보, imprt/export API, 디버깅 정보 등... 다양한 내용 확인함
- 디스어셈블러를 이용해서 내부 코드와 그 구조를 확인하는 것
- 분석 환경의 제약에서 비교적 자유로움. (분석을 지원하는 도구만 존재한다면)
- 프로그램에 난독화(Obfuscation)가 적용되면 분석에 어려움이 생길 수 있다.
- 다양한 동적 요소를 고려하기 어려움
- Ex) IDA
동적 분석(Dynamic Analysis)
- 격리된 환경에서 의심 바이너리를 실행한 후 그 행위를 모니터링하는 방법
- 어떤 입력에 대한 개별 함수 또는 프로그램의 출력을 빠르게 확인 가능. -> 출력값 통해 동작 추론 가능
- 수행하기 쉬워 유용하지만, 악의적인 프로그램이 가진 모든 기능을 찾아낼 순 없다.
- 분석환경을 구축하기 어려울 수 있음.
- 디버깅을 방해하는 안티디버깅의 존재로 분석에 어려움 생길 수 있음.
- Ex) x64dbg
또다른 분석 방법
코드 분석(code analysis)
- 바이너리 내부 동작을 이해하기 위한 악성코드 분석 방법이다.
- 정적 분석과 동적 분석을 통해 파악 불가능한 정보를 얻을 수 있음.
- 정적 코드 분석과 동적 코드 분석으로 나뉜다.
- 정적 코드 분석: 의심 바이너리를 디스어셈블링한 후 프로그램의 동작을 이해하고자 의심 바이너리를 통제된 방법으로 디버깅
- 동적 코드 분석: 소스코드 자체를 분석하는 것이 아닌, 시나리오를 설계하여 적용 후 실행과정에서 문제가 발생하는지를 점검하는 방법.
메모리 분석(memory analysis, memory forensic)
- 메모리 아티팩트(사용흔적)를 위해 컴퓨터 메모리를 분석하는 기법
- 악성코드 분석에 포렌식 기술을 활용함으로써 감염 후 악성코드 행위를 이해하는 데 도움을 준다.
- 메모리분석은 악성코드의 은닉 또는 회피능력을 파악하는데 특히 유용
※ 악성코드 분석 수행하면서 다양한 분석기술을 융합하면 가치있는 많은 정보를 얻을 수 있음.
악성코드 분석 시작하기 ◀
책 참고하여 작성하였다. 좋다 책^
'보안 > 리버싱' 카테고리의 다른 글
reversing.kr - Easy ELF (0) | 2024.08.26 |
---|---|
x64 assembly basic (0) | 2022.07.10 |
Dreamhack Quiz: x86 Assembly 2 (0) | 2022.07.10 |
86 Assembly: Essential Part(1) quiz (0) | 2022.07.08 |
#1 리버싱이란? (0) | 2022.07.01 |