
실전 악성코드 분석 및 분류를 위한 랩
계속 진행하기 전에 이 내용을 주의 깊게 읽으십시오.
이 저장소에는 실전 악성코드 분석 및 분류(PMAT) 과정에서 사용하기 위한 실제 악성코드 샘플이 포함되어 있습니다. 이 샘플들은 일반적인 악성코드 특성을 모방하도록 작성되었거나, 실제 현장에서 수집된 라이브 샘플입니다. 두 범주 모두 위험합니다. 이 샘플들은 항상 극도로 주의하여 다루어야 합니다.
이 저장소의 내용을 다운로드함으로써, 과정을 구매했는지 여부와 관계없이 최종 사용자 사용권 계약에 동의하는 것으로 간주됩니다. 자세한 내용은 EULA.md를 참조하십시오.
과정을 구매하고 이곳에 오셨다면 환영합니다! 콘텐츠 제작자로서 저를 지원해 주셔서 감사합니다. 다음 섹션으로 넘어가 실습 저장소의 작동 방식을 알아보세요.
과정을 구매하지 않고 이곳에 오셨다면 환영합니다! 과정의 실습 자료는 무료이며(항상 그럴 것입니다), 관심 있는 모든 분을 위해 GitHub에 호스팅되어 있습니다. 하지만 어디서부터 시작해야 할지 잘 모르거나 9시간 이상의 고품질 비디오 콘텐츠로 악성코드 분석을 배우고 싶다면 과정 구매를 고려해 보세요! 비디오는 여러분을 유능하고 지식 있는 악성코드 분석가로 성장시키기 위해 사랑을 담아 제작되었습니다.
과정을 구매하고 콘텐츠 제작자로서 저를 지원하려면 제 제휴 링크를 사용해 주시기 바랍니다!
이 저장소의 구조는 과정 비디오와 매핑됩니다. 최상위 디렉터리에는 섹션 이름이 포함되어 있고, 하위 디렉터리는 해당 과정 부분에서 사용되는 샘플입니다. 예를 들어:
📦labs
┣ 📂0-1.HandlingAndSafety
┃ ┣ 📜Malware.Calc.exe.7z
┃ ┣ 📜md5sum.txt
┃ ┣ 📜password.txt
┃ ┗ 📜sha256sum.txt
┣ 📂1-1.BasicStaticAnalysis
┃ ┣ 📂Malware.PackedAndNotPacked.exe.malz
┃ ┃ ┣ 📜Malware.PackedAndNotPacked.exe.zip
┃ ┃ ┣ 📜md5sum.txt
┃ ┃ ┣ 📜password.txt
┃ ┃ ┗ 📜sha256sum.txt
┃ ┣ 📂Malware.Unknown.exe.malz
┃ ┃ ┣ 📜Malware.Unknown.exe.7z
┃ ┃ ┣ 📜README.txt
┃ ┃ ┗ 📜password.txt
...[snip]...
위 예시에서 0-1.HandlingAndSafety 디렉터리에는 Malware.Calc.exe.7z의 압축 복사본과 해당 샘플과 함께 제공되는 기타 파일이 포함되어 있습니다. 이 샘플은 과정의 'Handling and Safety' 섹션에서 사용됩니다.
Handling and Safety 샘플 아래에 있는 1-1.BasicStaticAnalysis 디렉터리에는 해당 섹션에서 사용되는 두 개의 샘플이 포함되어 있습니다. 전체 과정은 이 구조를 따르므로 현재 있는 섹션을 확인한 후 비디오에서 작업할 샘플을 참조하십시오.
각 섹션은 주제별로 구분됩니다:
이 섹션에서는 악성코드 무력화(defanging) 및 전송 및 저장을 위한 안전한 절차를 포함한 기본적인 악성코드 처리 및 안전에 대해 다룹니다.
이 섹션에서는 초기 분류, 정적 분석, 초기 실행 및 기본 분석의 주요 방법론을 다룹니다.
이 섹션에서는 고급 악성코드 분석 방법론을 다루고 어셈블리, 디버깅, 디컴파일 및 ASM 수준에서 Windows API 검사를 소개합니다.
이 섹션에서는 maldocs, C# 어셈블리 및 스크립트 기반 악성코드와 같은 다양한 특수 클래스의 악성코드를 다룹니다. 또한 모바일 플랫폼 악성코드 분석 섹션도 포함되어 있습니다.
보스전에서는 실제 현장에서 수집된 악명 높은 악성코드 샘플을 상대하며 전체 분석을 수행해야 합니다.
이 섹션에서는 효과적인 보고서 작성, Yara 규칙 작성 및 Blue-Jupyter를 사용한 초기 분류 단계 자동화를 다룹니다.
과정 최종 과제는 캡스톤으로 구성되어 있으며, 이 과정의 모든 관련 기술을 결합하여 과정의 주어진 샘플에 대한 오픈 소스 정보를 작성하고 게시합니다.
과정 결론에는 추가 학습 자료, 참고 자료 및 추가 학습을 위한 유용한 리소스가 포함되어 있습니다.
참고: 일부 샘플은 여러 섹션에서 여러 번 사용됩니다. 과정 비디오에서 참조하는 샘플을 확인하고 해당 비디오에 올바른 샘플이 있는지 확인하십시오.
이 과정의 도전 과제 샘플은 다양한 섹션의 미니 캡스톤으로 사용됩니다. 도전 과제로 표시된 각 샘플에는 샘플에 대한 질문 세트와 answers/ 디렉터리가 포함되어 있습니다. answers/ 디렉터리의 README에는 도전 과제의 각 질문에 대한 간략한 답변이 포함되어 있습니다. 먼저 답변을 보지 않고 최대한 진행해 보세요!
각 샘플은 압축되어 있으며 비밀번호로 보호되어 있습니다. 모든 악성코드 샘플의 비밀번호는 infected입니다.
과정의 마지막 섹션 중 하나에서는 간단한 악성코드 분석 보고서를 작성하는 방법을 가르칩니다. 해당 섹션에서 사용된 템플릿은 여기에 있습니다. 이 과정이나 다른 악성코드 보고서를 만들 때 자유롭게 템플릿으로 사용하십시오.

왜 루트 디렉터리에 멋진 고양이 사진이 있는지 궁금하실 수도 있습니다.
cosmo.jpeg
그건 제 고양이 Cosmo입니다. 그는 악성코드 분석에 능숙하지 않아서 배움을 위해 함께하게 되었습니다. 저는 그에게 큰 기대를 걸지 않습니다 (결국 그는 그냥 고양이일 뿐이니까요).
cosmo.jpeg는 두 가지 기능을 합니다.
이 과정의 악성코드 샘플은 다양한 기능을 수행하도록 제작되었습니다. 일부는 데이터를 파괴하도록 설계되었고, 일부는 데이터를 훔치도록 설계되었으며, 일부는 데이터를 전혀 건드리지 않습니다.
cosmo.jpeg는 일반 최종 사용자가 호스트에 가지고 있을 수 있는 소중한 데이터의 자리 표시자 역할을 합니다. 이 과정의 일부 악성코드 샘플은 그를 훔치거나, 암호화하거나, 인코딩하여 외부로 유출하는 등 온갖 방법을 시도할 것입니다. 따라서 데이터 도난이나 파괴가 어떤 모습인지 정확히 표현하기 위해, 이 과정에서 직접 작성한 악성코드 샘플은 이 파일을 구체적으로 대상으로 삼을 것입니다.
Cosmo 자신이 통통한 고양이가 아닌 것과 달리, 파일 크기는 약 1.6MB로 다소 큽니다. 따라서 데이터 파일 자리 표시자로 잘 사용될 수 있습니다.
저는 이 과정의 샘플을 최대한 안전하게 만들기 위해 처음부터 직접 작성했습니다. 악성코드 샘플을 의도와 관계없이 세상에 내놓는 것이 위험을 수반한다는 것을 알고 있습니다. 따라서 이러한 샘플이 악의적으로 사용될 가능성을 줄이기 위해, 이 특정 파일에 키잉(keying)했습니다. 이는 페이로드가 환경에 특정 식별자가 존재할 때만 트리거되도록 보장하는 레드 팀 전술입니다. FLARE-VM 바탕 화면에 있는 cosmo.jpeg는 이 과정의 대부분의 악성코드 샘플에 대한 키 역할을 합니다.
이 실습 저장소의 다운로드 및 압축 해제가 완료되면 cosmo.jpeg를 Windows FLARE-VM 호스트의 기본 사용자 계정 바탕 화면에 복사하십시오. 그게 전부입니다!