정보보안교육

KISA 악성코드 분석 강의

shootgoal 2024. 9. 11. 12:00

1. 섹션의 엔트로피 분석

- 패킹되었거나 암호화된 영역이 있는 실행파일은 악성코드일 가능성이 상대적으로 높음

- 각 세션마다 엔트로피를 조사하여 7 이상인 경우 패킹 및 암호화된 것으로 판단

* 각 세션의 엔트로피 값을 계산할 수 있는 도구들(PEScanner, PE Studio 등)을 사용하여 확인 가능

2. 엔트리 포인트 분석

- 일반적인 실행 파일의 경우 엔트리 포인트가 첫번째 섹션에 속하며, 해당 섹션은 ".text", ".code" 등의 이름을 가짐

- 엔트리포인트가 첫번쨰 섹션( ".text", ".code" )에 속하지 않는 경우 악성일 가능성이 높음

* PE 파일을 파싱할 수 있는 도구들(StudPe, CFF Explorer, PE_View, IDA 등)을 사용하여 확인 가능

3. CRC Checksum

- CRC(Cyclic Redundancy Check)는 순환중복검사로서 실행 파일을 일정 비트 별로 검사하여 체크섬 값을 계산하기 위해 사용되는 방법

- 보통은 전송되는 데이터가 전송 중 손상되지 않았는지 여부를 확인할 때 사용되는 기술 중 하나

- 악성 실행파일 식별 관점에서 시그니처 분석을 우회하는 Polymorphic 악성코드를 판별하는 방법 중 하나

4. 버전 및 설명 정보 분석

- 일반적인 실행 파일은 관리를 위해 리소스 섹션(일반적으로 ".rsrc" 이름을 가짐) 내부에 파일의 버전, 벤더, 설명 정보가 포함됨

- 악성코드의 경우 해당 정보들이 누락되어 있거나 제대로 담겨져 있지 않은 경우가 있음

* PC 파일의 리소스 정보를 보여주는 도구들(CFF Explorer 등)을 사용하여 확인 가능

5. 임포트한 API 목록 분석

- Dangerous API로 분류되는 API를 임포트한 실행파일은 악성일 가능성이 높음

* 임포트 정보를 나열해주는 도구들(각종 PC 파일 파싱 도구, IDA 등)을 사용하여 확인 가능

6. API 해시 사용여부

- API 해시를 이용하여 동적 바인딩을 시도하는 실행 파일은 악성일 가능성이 높음

* API 해시 패턴 매칭을 이용하여 확인 가능

7. 실행파일 포함 여부

- 내부에 다른 실행 파일을 포함하고 있는 경우 악성일 가능성이 높음

- 파일 내에서 실행파일 시그니처를 검색하거나 이미지를 추출해 주는 도구들(YARA, PE Carver 등)을 사용하여 확인 가능

8. 배치 스크립트 포함 여부

- 내부에 배치 스크립트를 포함하고 있는 경우 악성일 가능성이 높음

- 배치 스크립트는 전역변수 영역에 정의되어 있거나, 리소스 섹션 내에 임베드 되어 있을 수 있음

* 문자열 분석도구(Srtings, IDA 등), 리소스 섹션 내의 내용을 볼 수 있는 도구(CFF Explorer 등)을 사용하여 확인 가능

9. 서명정보 분석

- 정상파일은 마이크로소프트 서명정책에 따라 개발자에 의해 생성된 서명정보가 임베드 되어 있음

- 서명정보는 PKCS#7을 기반으로 하는 공개키 기반 구조를 가지며, 윈도우 운영체제는 해당 자료구조에 따라 신뢰성을 거증하여 실행여부를 결정함

* 때문에 악성 실행파일을 서명된 자료구조를 가지기 어려움

*서명정보 분석도구(Sysinternals Suites의 sigcheck 등)를 사용하여 확인 가능

- 자료구조적 접근 -