Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
how_to_become_a_malware_analyst — Guida curata per diventare un analista di malware, che copre le conoscenze essenziali, il reverse engineering, gli strumenti di analisi e l'apprendimento assistito da LLM con esercizi pratici e risorse. | Kitploit
Strumenti/GitHubGitHub/pinksawtooth/how_to_become_a_malware_analyst
Memory ForensicsReverse EngineeringAnalisi MalwareDigital ForensicsCTFAnalisi di BinariApprendimento e FormazioneRisorse CuratePercorsi e Corsi

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Lab e Pratica
GitHubpinksawtooth/how_to_become_a_malware_analyst

how_to_become_a_malware_analyst

Guida curata per diventare un analista di malware, che copre le conoscenze essenziali, il reverse engineering, gli strumenti di analisi e l'apprendimento assistito da LLM con esercizi pratici e risorse.

Vedi Repository
2796453 giorni faRevisionato da Kitploit

Metodi di studio per diventare un analista di malware (work-in-progress)

Questa è l'opinione personale di @PINKSAWTOOTH e potrebbe non essere necessariamente il metodo migliore per te. Spero che tu possa usarla come esempio di metodo di studio.

Prima di leggere questo, l'analista di malware che rispetto, @hasherezade, ha riassunto nel suo blog come iniziare a studiare l'analisi del malware. Probabilmente ci saranno parti sovrapposte, ma vi consiglio di dargli un'occhiata. Inoltre, poiché i blog seguenti sono principalmente in inglese, vorrei presentare fonti il più possibile incentrate sul giapponese.

  • https://hshrzd.wordpress.com/how-to-start/

[!NOTE]

Aggiunta del 2026: Apprendimento dell'analisi del malware nell'era degli LLM

Quando ho iniziato a scrivere questa pagina, non era un'epoca in cui LLM e AI Agent fossero utilizzabili quotidianamente come oggi. Nel 2026, se si studia l'analisi del malware o il reverse engineering, consiglio di utilizzare attivamente gli LLM oltre a libri e risorse web. Sono particolarmente utili per la creazione di programmi di studio, la spiegazione di codice e assembly, l'analisi, la creazione di script di analisi e l'organizzazione dei risultati dell'analisi.

D'altra parte, in molte tecniche di analisi gli LLM superano gli esseri umani in un numero crescente di situazioni. Tuttavia, ciò non significa che le conoscenze di base siano diventate inutili. Per comprendere l'output degli LLM e verificarne personalmente le basi e la correttezza, è importante possedere conoscenze specialistiche (anche se potrebbe avvicinarsi il giorno in cui tale lavoro perderà significato...). In questo documento, si presuppone l'utilizzo degli LLM non come "dispositivi che forniscono risposte", ma come "insegnanti con cui imparare insieme, assistenti durante l'analisi".

Conoscenze prerequisite per l'analisi del malware

Innanzitutto, spiegherò brevemente le conoscenze prerequisite per l'analisi del malware. Prima di studiare l'analisi del malware, sono necessarie come minimo conoscenze di informatica (computer science).

  • Architettura dei computer
  • Reti di computer
  • Sistemi operativi
  • Linguaggi di programmazione
  • Strutture dati e algoritmi
  • etc...

Per quanto riguarda questi argomenti, ritengo che sia sufficiente comprendere i contenuti che si studiano all'università o negli istituti professionali. (Consultando i sillabi online di qualche università, si possono conoscere contenuti più specifici.) In questo documento, come apprendere i linguaggi di programmazione e l'informatica è fuori ambito, ma ecco le risorse consigliate.

  • コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識
  • プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
  • インテル® 64および IA-32 アーキテクチャのソフトウェア開発者向けマニュアル (最新)
  • IA-32 インテル® アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、上巻: 基本アーキテクチャー (日本語:古い)
  • IA-32 インテル® アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、中巻 A: 命令セット・リファレンス A-M(日本語:古い)
  • IA-32 インテル® アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、中巻 B: 命令セット・リファレンス N-Z(日本語:古い)
  • IA-32 インテル® アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、下巻: システム・プログラミング・ガイド(日本語:古い)
  • マスタリングTCP/IP 入門編(第6版)
  • CS50x
  • CS50.jp

Conoscenze necessarie per l'analisi del malware

Le conoscenze necessarie per l'analisi del malware si dividono in grandi linee nelle seguenti 5 categorie.

  • Conoscenze sulle tecniche di analisi del malware, sul comportamento del malware e sull'implementazione e realizzazione delle tecniche sfruttate
  • Conoscenze sullo sviluppo di programmi oggetto di reverse engineering
  • Conoscenze sul reverse engineering
  • Conoscenze sugli strumenti di analisi
  • Conoscenze su LLM e automazione dell'analisi

Conoscenze sulle tecniche di analisi del malware, sul comportamento del malware e sull'implementazione e realizzazione delle tecniche sfruttate

Innanzitutto, è necessario imparare cos'è il malware e in cosa consiste il lavoro di analisi del malware. Presento le risorse e i libri consigliati per apprendere l'analisi del malware in generale.

  • セキュリティ・キャンプ全国大会2015でのマルウエア分析講義
    • Lezione sull'analisi del malware tenuta da Nakatsuru (@you0708) al Security Camp National Convention 2015.
  • 初めてのマルウェア解析
    • Un libro che tratta in giapponese dalle basi agli argomenti avanzati dell'analisi del malware in generale.
  • リバースエンジニアリングツールGhidra実践ガイド
    • Un libro di cui sono anch'io autore, che permette di imparare l'implementazione del malware attraverso l'analisi statica con Ghidra.
  • リバースエンジニアリング入門 @IT連載
    • Articoli che spiegano l'analisi dello shellcode, a cura di Kawakotani, Aoki e Iwamura di Nippon Telegraph and Telephone Corporation.
  • アナライジング・マルウェア
    • Pubblicato nel 2010, quindi i contenuti sono datati, ma è un libro raro che affronta l'analisi del malware con il vincolo di non leggere l'assembly.
  • MWS Cup
    • Un contest che mette alla prova le tecniche di analisi del malware, organizzato dal comitato MWS sotto il gruppo di ricerca Computer Security (CSEC) dell'Information Processing Society of Japan. I problemi passati e le relative spiegazioni sono pubblicati e risultano utili come riferimento.
  • CS6038/CS5138 Malware Analysis, UC
    • Materiale didattico del corso di analisi del malware della University of Cincinnati. I contenuti vengono aggiornati ogni anno e vengono distribuiti anche campioni per gli esercizi, quindi è consigliato. È pubblicato gratuitamente.
  • Practical Malware Analysis
    • Un libro in lingua straniera che spiega in dettaglio l'analisi del malware in generale. Poiché campioni e soluzioni sono pubblicati, si può imparare svolgendo gli esercizi.
  • malware_training_vol1 by hasherezade
    • Materiale di training sull'analisi del malware a cura di @hasherezade. È WIP, ma vengono distribuiti anche campioni per gli esercizi, quindi è consigliato.

Anche i training online di analisi del malware sono consigliati.

  • The Beginner Malware Analysis Course
    • Training introduttivo all'analisi del malware a cura di @0verfl0w
  • From Zero to Hero
  • Training pratico di analisi del malware a cura di @0verfl0w e @vk_intel
  • Zero2Automated
  • Training avanzato di analisi del malware a cura di @0verfl0w e @vk_intel
  • OpenSecurityTraining2
    • Materiale didattico gratuito per apprendere assembly x86/x64, reverse engineering, strutture interne di Windows e altro. Sono disponibili anche esercizi.

Presento le pagine che riassumono il comportamento del malware e le tecniche sfruttate.

  • Malware Behavior Catalog (MBC)
    • Un catalogo che sistematizza, specializzandosi nell'analisi del malware, gli obiettivi (Objective), i comportamenti (Behavior) e le caratteristiche a livello di codice del malware. I comportamenti importanti nell'analisi del malware sono organizzati in correlazione con ATT&CK.
  • capa-rules
    • La raccolta di regole utilizzate da capa per identificare le funzionalità. Leggendo le regole, si possono apprendere le caratteristiche con cui le funzionalità e le tecniche tipiche del malware si manifestano nel binario.
  • MITRE ATT&CK
    • I metodi, le tecniche e le procedure di attacco sono definiti come framework, ed è utile per apprendere non solo l'analisi del malware ma anche gli attacchi informatici in generale.
  • ired.team
    • Presentazione delle tecniche utilizzate da pentester, red team e attaccanti e della loro implementazione
  • malpedia
    • Per ogni famiglia di malware, sono raccolti i report di analisi.
  • Ten process injection techniques: A technical survey of common and trending process injection techniques
    • Presentazione delle tecniche di code injection
  • Code Injection demos by hasherezade
    • Implementazione delle tecniche di code injection
  • Evasion techniques by cpr
    • Raccolta delle tecniche di elusione dell'analisi del malware
  • Al-Khaser
    • Strumento OSS e codice sorgente che implementa le funzionalità anti-analisi del malware

Anche i blog e i report che trattano informazioni sulle minacce e analisi del malware pubblicati quotidianamente sono fonti importanti. È comodo ricevere notifiche degli aggiornamenti tramite un lettore RSS. Esistono anche siti che li raccolgono, quindi è possibile utilizzarli.

  • AlienVault - Open Threat Exchange
  • Vx Underground - Malware Analysis

Tra questi, presento quelli che trattano analisi dettagliate del malware in giapponese.

  • Japan Security Analyst Conference
  • JPCERTコーディネーションセンター公式ブログ
  • LACレポート by 石川 芳浩氏
  • 標的型攻撃の実態と対策アプローチ by マクニカネットワークス(最新記事をリンク)
  • NTT Security Japan Technical blog
  • MBSD Blog
  • fortinetブログ 脅威リサーチ
  • Unit42ブログ
  • トレンドマイクロ セキュリティブログ

Inoltre, leggendo le regole YARA si possono apprendere le caratteristiche del malware.

  • コミュニティのYARAルール
  • Neo23x0のYARAルール
  • CAPEv2のYARAルール​
  • ESETのYARAルール​
  • JPCERTのYARAルール​
  • awesome-yara

Conoscenze sullo sviluppo di programmi oggetto di reverse engineering

Il reverse engineering è solo una parte dell'analisi del malware, ma è una strada inevitabile per diventare un analista di malware. Con la sola analisi dinamica tramite sandbox o tramite strumenti (escluso il debug manuale), è difficile identificare l'intera funzionalità del malware e gli algoritmi utilizzati.

Per eseguire il reverse engineering, è necessario comprendere il codice sorgente originale. (Supponendo l'ambiente Windows tipico dell'analisi del malware) fare analisi del malware senza esperienza di programmazione con le Windows API sarebbe una strada più lunga.

Microsoft pubblica documentazione ufficiale e campioni per le Windows API. ※Attenzione al fatto che alcune visualizzazioni potrebbero risultare anomale quando tradotte in giapponese

  • Windows API - Microsoft Learn
  • Windows classic samples

Per apprendere il funzionamento del sistema operativo Windows, sono consigliati i seguenti libri.

  • インサイドWindows 第7版 上
    • Permette di apprendere le basi della struttura interna di Windows, come architettura del sistema, processi, thread, gestione della memoria e I/O.
  • インサイドWindows 第7版 下
    • Tratta meccanismi di sistema, virtualizzazione, diagnostica e tracing, file system, processo di avvio e altro.
  • Windowsセキュリティインターナル
    • Permette di apprendere autenticazione, autorizzazione, auditing e meccanismi di sicurezza del kernel di Windows, con esperimenti tramite PowerShell.

Conoscere anche linguaggi e runtime diversi da C/C++

C/C++ è ancora oggi molto importante per apprendere il reverse engineering del malware Windows, quindi è consigliato come primo linguaggio da imparare. D'altra parte, gli oggetti di analisi reali non sono solo C/C++. Nel 2026, conoscere le caratteristiche dei binari e dei runtime almeno per i seguenti linguaggi è utile.

  • C / C++: codice nativo, Windows API, CRT, ottimizzazioni del compilatore
  • .NET: CLR, CIL/MSIL, metadati, offuscamento
  • Go: runtime Go, goroutine, informazioni su stringhe e tipi, struttura binaria specifica di Go
  • Rust: gestione di panic/unwind, name mangling, libreria standard, generazione di codice tramite generics e ottimizzazioni
  • Python: eseguibili pacchettizzati con PyInstaller ecc., bytecode Python

Non è necessario imparare approfonditamente tutti i linguaggi fin dall'inizio. Teniamo presente che, quando cambiano i linguaggi di sviluppo e i runtime, cambiano anche le conoscenze necessarie.

Conoscenze sul reverse engineering

Una volta acquisite le competenze di programmazione nel linguaggio e nell'ambiente oggetto di analisi, passiamo a studiare il reverse engineering. Quando si analizzano file PE di Windows, tipici dell'analisi del malware, iniziamo con il reverse engineering di programmi introduttivi in C o C++. Come passo successivo, proviamo ad analizzare un file PE che utilizza le Win API e che abbiamo compilato noi stessi (di cui esiste il codice sorgente). Anche con lo stesso codice sorgente, se si cambiano il progetto scelto o le opzioni di compilazione e linking e si osserva quali cambiamenti appaiono nell'eseguibile, credo che le competenze di reverse engineering miglioreranno notevolmente.

Metodo di studio consigliato nel 2026: far creare all'LLM programmi per esercitarsi

In precedenza consigliavo di cercare campioni Microsoft o codice su GitHub e di studiarli modificandoli. Questo metodo è ancora valido, ma nel 2026 è anche molto efficace far creare a un LLM o a un Coding Agent piccoli programmi adatti ai propri obiettivi di studio.

Ad esempio, all'inizio si può far generare un piccolo programma di circa 10-50 righe.```text CreateFileWとWriteFileを使ってテキストファイルを作成する、 できるだけ小さなWindows Cプログラムを作ってください。 リバースエンジニアリングの教材に使いたいので、 処理を複雑にせず、各Windows APIを使う理由も説明してください。

root@kitploit:~
生成されたコードを、Microsoft Learnのドキュメントと照らし合わせながら内容を確認し、自分でコンパイルします。
その後、GhidraやIDAなどで自分がコンパイルしたバイナリを解析し、元のソースコードと逆アセンブル・デコンパイル結果を比較します。

以下のループで勉強します。```text
LLMに小さなコードを作らせる
        ↓
ソースコードを読む・APIを調べる
        ↓
自分でビルドする
        ↓
Ghidraなどで解析する
        ↓
元のソースコードと比較する
        ↓
分からない部分だけLLMに質問する
        ↓
別の条件で再ビルドして比較する

例えば、同じ処理のソースコードについて以下を比較してみるとよいでしょう。

  • Debug / Release
  • 最適化なし / 最適化あり(-O0 / -O2、MSVCでは /Od / /O2など)
  • x86 / x64
  • シンボルあり / シンボルなし
  • MSVC / Clang / GCCなど異なるコンパイラ
  • C / C++ / Rust / Goなど異なる言語

元のソースコードを知っている状態でバイナリを解析することは、リバースエンジニアリングを学ぶ上で非常に良いトレーニングになります。

さらにリバースエンジニアリング技術を磨くにはCTFのRev問やCrackmeを解くと良いでしょう。 特にPEファイルの問題やマルウェア解析者を対象としたものが、おすすめです。

  • The Flare On Challenge
    • Mandiant(Google)のFLAREチームによるマルウェア解析技術にフォーカスしたCTF。
  • Beginner Malware Reversing Challenges by MalwareTech
    • MalwareTech氏によるマルウェア解析初心者向け演習問題
  • reversing.kr
    • PE形式が多いCrackMe配布サイト
  • crackmes.one
    • CrackMe投稿サイト

またマルウェアのリバースエンジニアリングでは、暗号アルゴリズムの処理をリバースエンジニアリングすることが多いので、基本的な暗号技術について学ぶことを推奨します。 アルゴリズムを理解したらGitHubなどで公開されているオープンソースの暗号アルゴリズム実装のソースコードを読み、実際にリバースエンジニアリングしてみましょう。

  • 暗号技術入門 第3版
  • OpenSSL Project
  • Network Security Services
  • Crypto++ Library
  • wolfSSL

解析ツールに関する知識

マルウェア解析をすすめるうえで、よりよいツールを使うことやツールを使いこなすことで容易に解析できることがあります。 また、様々な知識を持っていても実際にはツールを通して解析するため、ツールの利用方法も理解しておく必要があります。

解析ツールのインストールや更新などの管理には、Windows環境ではMandiantが公開しているFLARE-VMが便利です。マルウェア解析やリバースエンジニアリングに必要なツールをまとめて導入することができます。

Linux環境では、REMnuxが利用できます。こちらもマルウェア解析に必要なツールがまとめられており、収録ツールの一覧から確認できます。

FLARE-VMとREMnuxはどちらもマルウェア解析環境を簡単に構築できるため、初めて解析環境を作る場合にもおすすめです。それぞれに含まれているツールを確認し、実際に使ってみることで、どのような解析ツールが存在し、どのような場面で利用するのかを学ぶことができます。

また、以下のリンクで紹介されているツールについても利用してみるとよいでしょう。

  • awesome-reversing
  • Awesome Malware Analysis
  • Awesome Ghidra

LLM・Coding Agentを利用した学習と解析

LLMを教師として利用する

LLMの便利な使い方の一つは、分からないことをその場で質問できる教師として利用することです。LLMが登場する以前は、自分が理解できていないことを自分で調べ、その内容を理解する必要がありました。特に初学者の場合、そもそも何を調べればよいのか分からないことも多く、学習するうえで一つのハードルになっていたと思います。現在では、高いレベルの知識を持つLLMが、自分の理解度に合わせて何度でも丁寧に説明してくれます。分からなければ聞き直せばよいですし、「もっと簡単に説明して」、「具体例を出して」、「この理解で合っているか確認して」といった使い方もできます。 意欲さえあれば、分からないことをいくらでも質問しながら学習できる、いい時代になったと思います。

例えば、逆アセンブル結果やデコンパイル結果について、以下のような質問ができます。```text この関数の役割と、そう判断できる理由を教えてください。

root@kitploit:~
## Funzionamento

1. **Raccolta di informazioni**
   - Risoluzione DNS, rilevamento CDN/WAF, scansione delle porte
   - Rilevamento di tecnologie e framework
   - Raccolta di sottodomini e endpoint

2. **Scansione delle vulnerabilità**
   - Test di SQL injection (basato su errori, booleano, temporale)
   - Test XSS (riflesso, memorizzato, DOM)
   - Rilevamento di path traversal e LFI
   - Test di command injection
   - Scansione di vulnerabilità comuni (OWASP Top 10)

3. **Analisi di sicurezza**
   - Verifica della configurazione SSL/TLS
   - Analisi delle intestazioni di sicurezza
   - Rilevamento di file e directory sensibili
   - Test di autenticazione e autorizzazione

4. **Generazione di report**
   - Report dettagliati in formato JSON, HTML e Markdown
   - Classificazione della gravità e punteggio CVSS
   - Passaggi di riproduzione e raccomandazioni per la correzione

## Utilizzo

### Scansione di base

```bash
# Scansione di un singolo URL
python3 webvulnscan.py -u https://example.com

# Scansione con crawling approfondito
python3 webvulnscan.py -u https://example.com --deep-scan

# Scansione di più URL da un file
python3 webvulnscan.py -f urls.txt

# Scansione con output in un formato specifico
python3 webvulnscan.py -u https://example.com -o report.html --format html

Opzioni avanzate

root@kitploit:~
# Scansione con cookie di autenticazione
python3 webvulnscan.py -u https://example.com --cookie "session=abc123"

# Scansione con proxy
python3 webvulnscan.py -u https://example.com --proxy http://127.0.0.1:8080

# Scansione con thread personalizzati e timeout
python3 webvulnscan.py -u https://example.com --threads 20 --timeout 30

# Scansione con User-Agent personalizzato
python3 webvulnscan.py -u https://example.com --user-agent "Mozilla/5.0..."

# Scansione con verifica SSL disabilitata
python3 webvulnscan.py -u https://example.com --no-ssl-verify

Esempi di scansione

root@kitploit:~
# Scansione completa con tutte le opzioni
python3 webvulnscan.py -u https://example.com \
  --deep-scan \
  --threads 15 \
  --timeout 20 \
  --cookie "session=abc123" \
  --proxy http://127.0.0.1:8080 \
  -o full_report.html \
  --format html \
  --verbose

# Scansione di più URL con output JSON
python3 webvulnscan.py -f urls.txt -o results.json --format json

# Scansione rapida senza crawling
python3 webvulnscan.py -u https://example.com --no-crawl --quick

Riferimento delle opzioni della riga di comando

Esempi di output

Output JSON

root@kitploit:~
{
  "scan_info": {
    "target": "https://example.com",
    "start_time": "2024-01-01T12:00:00",
    "end_time": "2024-01-01T12:05:00",
    "duration": 300
  },
  "vulnerabilities": [
    {
      "type": "SQL Injection",
      "severity": "High",
      "url": "https://example.com/login",
      "parameter": "username",
      "payload": "' OR '1'='1",
      "description": "Vulnerabilità di SQL injection rilevata nel parametro username",
      "remediation": "Utilizzare query parametrizzate e validazione dell'input"
    }
  ],
  "summary": {
    "total_vulnerabilities": 1,
    "critical": 0,
    "high": 1,
    "medium": 0,
    "low": 0
  }
}

Output HTML

Il report HTML include:

  • Riepilogo della scansione con statistiche
  • Elenco dettagliato delle vulnerabilità
  • Passaggi di riproduzione
  • Raccomandazioni per la correzione
  • Riferimenti e risorse

Output Markdown

root@kitploit:~
# Report di scansione delle vulnerabilità Web

## Riepilogo della scansione
- **Target**: https://example.com
- **Data di scansione**: 2024-01-01 12:00:00
- **Durata**: 5 minuti

## Vulnerabilità rilevate

### 1. SQL Injection (Alta)
- **URL**: https://example.com/login
- **Parametro**: username
- **Payload**: `' OR '1'='1`
- **Descrizione**: Vulnerabilità di SQL injection rilevata nel parametro username
- **Correzione**: Utilizzare query parametrizzate e validazione dell'input
``````text
このデコンパイル結果から変数の型を推定したいです。
型を判断するために、どの命令、API、参照先を確認すべきですか?

検出ルール

ルール1: 不審なファイルダウンロードの検出

root@kitploit:~
name: "Suspicious File Download Detection"
description: "Detects suspicious file downloads from web servers"
severity: "medium"
enabled: true

conditions:
  - field: "http.response.status_code"
    operator: "equals"
    value: 200
  - field: "http.response.headers.content_type"
    operator: "contains"
    value: "application/octet-stream"
  - field: "http.response.headers.content_disposition"
    operator: "contains"
    value: "attachment"

actions:
  - type: "alert"
    message: "Suspicious file download detected"
  - type: "log"
    level: "warning"

ルール2: SQLインジェクション試行の検出

root@kitploit:~
name: "SQL Injection Attempt Detection"
description: "Detects potential SQL injection attempts"
severity: "high"
enabled: true

conditions:
  - field: "http.request.uri.query"
    operator: "regex"
    value: "(?i)(union|select|insert|update|delete|drop|create|alter|exec|execute)"
  - field: "http.request.uri.query"
    operator: "regex"
    value: "(?i)(\\'|\\\"|;|--|#|/\\*|\\*/)"

actions:
  - type: "alert"
    message: "Potential SQL injection attempt detected"
  - type: "block"
    duration: 3600

ルール3: 不審なユーザーエージェントの検出

root@kitploit:~
name: "Suspicious User Agent Detection"
description: "Detects requests with suspicious user agents"
severity: "low"
enabled: true

conditions:
  - field: "http.request.headers.user_agent"
    operator: "regex"
    value: "(?i)(sqlmap|nikto|nmap|masscan|dirb|gobuster|wfuzz|burp|zap)"

actions:
  - type: "alert"
    message: "Suspicious user agent detected"
  - type: "log"
    level: "info"

設定リファレンス

グローバル設定

root@kitploit:~
# config.yaml
server:
  host: "0.0.0.0"
  port: 8080
  workers: 4
  timeout: 30

logging:
  level: "info"
  format: "json"
  output: "/var/log/kitploit/kitploit.log"
  rotation:
    max_size: "100MB"
    max_files: 10

detection:
  enabled: true
  rules_path: "/etc/kitploit/rules"
  reload_interval: 300

database:
  type: "sqlite"
  path: "/var/lib/kitploit/kitploit.db"
  max_connections: 10

api:
  enabled: true
  port: 9090
  auth:
    type: "bearer"
    token: "${KITPLOIT_API_TOKEN}"

環境変数

使用例

基本的な使用方法

root@kitploit:~
# Start the server
kitploit server --config /etc/kitploit/config.yaml

# Start with custom port
kitploit server --port 9090

# Start in daemon mode
kitploit server --daemon

# Check server status
kitploit status

# Reload configuration
kitploit reload

# Stop the server
kitploit stop

ルール管理

root@kitploit:~
# List all rules
kitploit rules list

# Enable a rule
kitploit rules enable rule-001

# Disable a rule
kitploit rules disable rule-001

# Test a rule
kitploit rules test rule-001 --input request.json

# Validate rules
kitploit rules validate /etc/kitploit/rules
``````text
このWindows API呼び出しの前後で使われている構造体について説明してください。
各フィールドを確認するためにGhidra上でどこを見るべきかも教えてください。

検出機能

  • ファイルレス検出: メモリ内で実行される悪意のあるコードを検出
  • プロセスインジェクション検出: リモートプロセスインジェクションの試行を検出
  • 難読化スクリプト検出: エンコードされたPowerShellコマンドを検出
  • 永続化メカニズム検出: レジストリのRunキー、スケジュールされたタスク、WMIイベントサブスクリプションを監視
  • 横展開検出: PsExec、WMI、WinRMの悪用を検出
  • 資格情報アクセス検出: LSASSメモリダンプの試行を検出

検出ルール

ファイルレス攻撃

root@kitploit:~
title: ファイルレスペイロード実行
description: メモリ内で実行される悪意のあるコードを検出
level: critical
tags:
  - attack.defense_evasion
  - attack.t1055
detection:
  selection:
    EventID: 1
    Image|endswith: '\powershell.exe'
    CommandLine|contains:
      - 'IEX'
      - 'Invoke-Expression'
      - 'FromBase64String'
  condition: selection

プロセスインジェクション

root@kitploit:~
title: リモートプロセスインジェクション
description: リモートプロセスインジェクションの試行を検出
level: critical
tags:
  - attack.defense_evasion
  - attack.t1055.002
detection:
  selection:
    EventID: 8
    SourceImage|endswith: '\powershell.exe'
    TargetImage|endswith:
      - '\lsass.exe'
      - '\winlogon.exe'
  condition: selection

難読化スクリプト

root@kitploit:~
title: 難読化されたPowerShellコマンド
description: エンコードされたPowerShellコマンドを検出
level: high
tags:
  - attack.execution
  - attack.t1059.001
detection:
  selection:
    EventID: 4104
    ScriptBlockText|contains:
      - 'FromBase64String'
      - 'EncodedCommand'
      - '-enc '
  condition: selection

永続化

root@kitploit:~
title: レジストリRunキーの永続化
description: レジストリのRunキーによる永続化を検出
level: high
tags:
  - attack.persistence
  - attack.t1547.001
detection:
  selection:
    EventID: 13
    TargetObject|contains:
      - '\CurrentVersion\Run\'
      - '\CurrentVersion\RunOnce\'
  condition: selection

横展開

root@kitploit:~
title: PsExecによる横展開
description: PsExecを使用した横展開を検出
level: high
tags:
  - attack.lateral_movement
  - attack.t1021.002
detection:
  selection:
    EventID: 1
    Image|endswith: '\PSEXESVC.exe'
  condition: selection

資格情報アクセス

root@kitploit:~
title: LSASSメモリダンプ
description: LSASSメモリダンプの試行を検出
level: critical
tags:
  - attack.credential_access
  - attack.t1003.001
detection:
  selection:
    EventID: 10
    TargetImage|endswith: '\lsass.exe'
    GrantedAccess|contains:
      - '0x1010'
      - '0x1410'
  condition: selection

アラート通知

Slack通知

root@kitploit:~
notifications:
  slack:
    enabled: true
    webhook_url: "https://hooks.slack.com/services/XXX/YYY/ZZZ"
    channel: "#security-alerts"
    mention: "@security-team"

メール通知

root@kitploit:~
notifications:
  email:
    enabled: true
    smtp_server: "smtp.example.com"
    smtp_port: 587
    username: "[email protected]"
    password: "your-password"
    from: "[email protected]"
    to:
      - "[email protected]"
    tls: true

Webhook通知

root@kitploit:~
notifications:
  webhook:
    enabled: true
    url: "https://your-siem.example.com/api/alerts"
    method: "POST"
    headers:
      Authorization: "Bearer YOUR_TOKEN"
      Content-Type: "application/json"

アラート出力例

root@kitploit:~
{
  "timestamp": "2024-01-15T10:30:00Z",
  "rule_name": "ファイルレスペイロード実行",
  "severity": "critical",
  "hostname": "WORKSTATION-01",
  "user": "DOMAIN\\user",
  "process": {
    "name": "powershell.exe",
    "pid": 1234,
    "command_line": "powershell.exe -enc SQBFAFgA..."
  },
  "mitre_attack": {
    "tactic": "Defense Evasion",
    "technique": "T1055"
  },
  "details": {
    "detection_type": "fileless",
    "confidence": "high"
  }
}

ログ出力例

root@kitploit:~
2024-01-15 10:30:00 INFO  Hayabusa started
2024-01-15 10:30:01 INFO  Loading rules from ./rules
2024-01-15 10:30:02 INFO  Loaded 150 detection rules
2024-01-15 10:30:03 INFO  Monitoring started
2024-01-15 10:30:15 WARN  Suspicious process detected: powershell.exe
2024-01-15 10:30:15 CRIT  Fileless payload execution detected
2024-01-15 10:30:15 INFO  Alert sent to Slack
2024-01-15 10:30:16 INFO  Alert sent to email

パフォーマンス最適化

メモリ使用量の削減

root@kitploit:~
performance:
  max_memory_mb: 512
  buffer_size: 10000
  batch_size: 100

CPU使用率の削減

root@kitploit:~
performance:
  worker_threads: 4
  cpu_limit_percent: 50
  nice_level: 10

ディスクI/Oの削減

root@kitploit:~
performance:
  async_logging: true
  log_buffer_size: 1000
  flush_interval_seconds: 5

トラブルシューティング

検出が機能しない

  1. ルールファイルが正しいディレクトリにあることを確認
  2. ルールの構文が正しいことを確認
  3. ログソースが正しく設定されていることを確認
  4. デバッグモードを有効にして詳細ログを確認
root@kitploit:~
hayabusa --debug --log-level debug

パフォーマンスの問題

  1. ワーカースレッド数を調整
  2. バッファサイズを増やす
  3. 不要なルールを無効化
  4. ハードウェアリソースを確認
root@kitploit:~
performance:
  worker_threads: 8
  buffer_size: 50000
  batch_size: 500

メモリリーク

  1. 最新バージョンにアップデート
  2. メモリ制限を設定
  3. 定期的な再起動をスケジュール
root@kitploit:~
performance:
  max_memory_mb: 1024
  restart_interval_hours: 24

よくある質問

Q: 対応しているOSは?

A: Windows 10/11、Windows Server 2016/2019/2022に対応しています。

Q: 必要な権限は?

A: 管理者権限が必要です。イベントログの読み取りとプロセス監視に必要です。

Q: 他のEDRと併用できますか?

A: はい、併用可能です。ただし、パフォーマンスへの影響を考慮してください。

Q: ルールはどこから入手できますか?

A: 公式リポジトリのrulesディレクトリ、またはSigmaルールから変換できます。

Q: 誤検知が多い場合は?

A: ホワイトリスト機能を使用するか、ルールをカスタマイズしてください。

root@kitploit:~
whitelist:
  processes:
    - "C:\\Program Files\\Legitimate\\app.exe"
  commands:
    - "legitimate-command"
  users:
    - "SYSTEM"

コミュニティ

  • GitHub Discussions: 質問とディスカッション
  • Discord: リアルタイムチャット
  • Twitter: 最新情報のフォロー
  • ブログ: 技術記事とチュートリアル

貢献

貢献を歓迎します!以下の方法で参加できます:

  1. バグの報告
  2. 新機能の提案
  3. ルールの追加
  4. ドキュメントの改善
  5. コードの貢献

詳細はCONTRIBUTING.mdを参照してください。

ライセンス

このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。

謝辞

  • Sigmaプロジェクト
  • YARAプロジェクト
  • MITRE ATT&CKフレームワーク
  • すべてのコントリビューター

連絡先

  • Issues: GitHub Issues
  • Security: [email protected]
  • Twitter: @SecurityYamato```text このアセンブリを1命令ずつ説明するのではなく、 まずbasic blockごとの役割を整理して、私が自分で処理を推定できるようにヒントをください。
root@kitploit:~
## 検出ルールのカスタマイズ

`config/detection_rules.yaml` を編集して、検出ルールをカスタマイズできます:

```yaml
rules:
  - name: "AWS Access Key"
    pattern: "AKIA[0-9A-Z]{16}"
    severity: "critical"
    description: "AWS Access Key ID detected"
    enabled: true

  - name: "Generic API Key"
    pattern: "(?i)(api[_-]?key|apikey)[\\s]*[=:][\\s]*['\"]?([a-zA-Z0-9_\\-]{16,})['\"]?"
    severity: "high"
    description: "Generic API key pattern"
    enabled: true

  - name: "Private Key"
    pattern: "-----BEGIN (RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----"
    severity: "critical"
    description: "Private key detected"
    enabled: true

ルールフィールド

カスタムルールの例

root@kitploit:~
rules:
  # Detect Slack tokens
  - name: "Slack Token"
    pattern: "xox[baprs]-[0-9a-zA-Z]{10,48}"
    severity: "high"
    description: "Slack API token detected"
    enabled: true

  # Detect Stripe keys
  - name: "Stripe API Key"
    pattern: "sk_live_[0-9a-zA-Z]{24,}"
    severity: "critical"
    description: "Stripe live API key detected"
    enabled: true

  # Detect JWT tokens
  - name: "JWT Token"
    pattern: "eyJ[A-Za-z0-9_-]*\\.eyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]*"
    severity: "medium"
    description: "JSON Web Token detected"
    enabled: true

除外設定

特定のファイル、ディレクトリ、またはパターンをスキャンから除外できます:

root@kitploit:~
exclude:
  paths:
    - "node_modules/"
    - "vendor/"
    - ".git/"
    - "test/fixtures/"
    - "*.min.js"
    - "*.lock"

  patterns:
    - "EXAMPLE_KEY"
    - "test_key_"
    - "dummy_"

出力形式

テーブル形式(デフォルト)

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                     Scan Results                            │
├──────────────┬──────────┬──────────┬────────────────────────┤
│ File         │ Line     │ Severity │ Rule                   │
├──────────────┼──────────┼──────────┼────────────────────────┤
│ config.py    │ 42       │ CRITICAL │ AWS Access Key         │
│ .env         │ 7        │ HIGH     │ Generic API Key        │
│ secrets.json │ 15       │ CRITICAL │ Private Key            │
└──────────────┴──────────┴──────────┴────────────────────────┘

JSON 形式

root@kitploit:~
{
  "scan_info": {
    "timestamp": "2024-01-15T10:30:00Z",
    "target": "./src",
    "files_scanned": 156,
    "duration_ms": 1234
  },
  "findings": [
    {
      "file": "config.py",
      "line": 42,
      "column": 15,
      "rule": "AWS Access Key",
      "severity": "critical",
      "match": "AKIA***************",
      "description": "AWS Access Key ID detected"
    }
  ],
  "summary": {
    "critical": 1,
    "high": 1,
    "medium": 0,
    "low": 0,
    "total": 2
  }
}

SARIF 形式

root@kitploit:~
{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "SecretScanner",
          "version": "1.0.0"
        }
      },
      "results": []
    }
  ]
}

ベストプラクティス

1. 定期的なスキャン

シークレットスキャンを CI/CD パイプラインに統合します:

root@kitploit:~
# .github/workflows/secret-scan.yml
name: Secret Scan
on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run SecretScanner
        run: |
          python secret_scanner.py . --format json --output results.json
      - name: Upload results
        uses: actions/upload-artifact@v4
        with:
          name: scan-results
          path: results.json

2. pre-commit フック

コミット前にシークレットを検出します:

root@kitploit:~
# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: secret-scanner
        name: Secret Scanner
        entry: python secret_scanner.py
        language: system
        pass_filenames: false

3. ベースラインの使用

既知の検出結果をベースライン化して、新規の問題のみに集中します:

root@kitploit:~
# Create baseline
python secret_scanner.py . --format json --output baseline.json

# Scan and compare against baseline
python secret_scanner.py . --baseline baseline.json

4. 除外の設定

誤検出を減らすために除外を設定します:

root@kitploit:~
exclude:
  paths:
    - "tests/"
    - "docs/"
    - "*.example"
  patterns:
    - "EXAMPLE"
    - "PLACEHOLDER"
    - "YOUR_KEY_HERE"

5. 検出結果のローテーション

シークレットが検出された場合:

  1. 直ちにローテーション - 侵害された認証情報を無効化します
  2. 監査 - シークレットがどのように漏洩したかを判断します
  3. 修正 - 環境変数またはシークレットマネージャーを使用します
  4. 監視 - 不正使用がないか確認します

トラブルシューティング

よくある問題

問題: スキャンが遅い

解決策: 大きなディレクトリを除外するか、ファイルサイズ制限を使用します:

root@kitploit:~
python secret_scanner.py . --max-file-size 1048576  # 1MB limit

問題: 誤検出が多い

解決策: ルールを調整するか、除外を追加します:

root@kitploit:~
exclude:
  patterns:
    - "test_"
    - "example_"
    - "sample_"

問題: エンコーディングエラー

解決策: ファイルエンコーディングを指定します:

root@kitploit:~
python secret_scanner.py . --encoding utf-8

デバッグモード

詳細なデバッグ出力を有効にします:

root@kitploit:~
python secret_scanner.py . --verbose --debug

ログ

ログは logs/secret_scanner.log に書き込まれます:

root@kitploit:~
# View logs
tail -f logs/secret_scanner.log

# Set log level
python secret_scanner.py . --log-level DEBUG

パフォーマンスチューニング

並列処理

root@kitploit:~
# Use 4 worker threads
python secret_scanner.py . --workers 4

メモリ制限

root@kitploit:~
# Limit memory usage to 512MB
python secret_scanner.py . --max-memory 512

増分スキャン

root@kitploit:~
# Only scan files modified in the last 24 hours
python secret_scanner.py . --since "24 hours ago"

セキュリティに関する考慮事項

  • シークレットをコミットしない: 常に環境変数またはシークレットマネージャーを使用してください
  • 定期的にローテーションする: 認証情報を定期的に変更してください
  • アクセスを制限する: 最小権限の原則に従ってください
  • 監査ログ: シークレットへのアクセスを監視してください
  • 暗号化: 保存時および転送時にシークレットを暗号化してください

貢献

貢献を歓迎します!プルリクエストを送信する前に、貢献ガイドラインをお読みください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します (git checkout -b feature/amazing-feature)
  3. 変更をコミットします (git commit -m 'Add amazing feature')
  4. ブランチにプッシュします (git push origin feature/amazing-feature)
  5. プルリクエストを開きます

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細については LICENSE ファイルを参照してください。

謝辞

  • すべての貢献者に感謝します
  • このプロジェクトを支援するツールとライブラリに感謝します

サポート

  • Issue: GitHub Issues
  • ディスカッション: GitHub Discussions
  • メール: [email protected]

ロードマップ

  • クラウドプロバイダー統合(AWS Secrets Manager、Azure Key Vault)
  • リアルタイム監視モード
  • 機械学習ベースの検出
  • Web インターフェース
  • プラグインシステム
  • 追加の出力形式(CSV、XML)

SecretScanner で安全を保ちましょう! 🔒```text 私はこの関数を「設定ファイルの読み込み処理」だと推測しました。 この仮説を検証するために確認すべきポイントを挙げてください。

root@kitploit:~
最初から答えを聞くのではなく、ヒント、確認ポイント、検証方法を聞く使い方がおすすめです。

### Agentic Reverse Engineering

2026年現在は、ChatGPTのような対話型LLMだけでなく、ファイルの読み書き、プログラムのビルド、コマンドの実行などを行えるCoding Agentも利用できるようになっています。
さらに、MCP(Model Context Protocol)などを利用することで、AI Agentから解析ツールを直接操作する方法も広まりつつあります。
例えばREMnuxには、AI AgentからREMnux上のマルウェア解析ツールを利用するためのMCP Serverが用意されています。
- [Using AI with REMnux](https://docs.remnux.org/tips/using-ai)
- [REMnux MCP Server](https://github.com/REMnux/remnux-mcp-server)

Ghidraについても、AI Agentから操作するためのMCP実装がいくつか登場しています。私もGhidraをHeadlessで利用し、MCP経由でAI Agentから解析を行うためのMecha Ghidraを開発しています。
- [Mecha Ghidra](https://github.com/ghidra-user-jp/mecha_ghidra)

IDAやその他のリバースエンジニアリングツールについても、MCPやAgentと連携するための実装が複数登場しており、これまで人間が手作業で行っていた解析作業をAgentに任せることができるようになっています。
一方で、初学者の段階からすべての解析をAgentに任せてしまうのはおすすめしません。「なぜその解析を行ったのか」「ツールが内部で何をしているのか」「出力された結果が正しいのか」といったことを自分で判断する力が身につきにくくなるためです。

まずは自分で解析し、分からない部分をLLMに質問するところから始めるとよいでしょう。慣れてきたら、解析支援スクリプトの作成、MCPによるツール連携、Agentを使った解析の自動化へと徐々に進んでいくことをおすすめします。

### LLMへ情報を入力するときの注意

業務で扱っているマルウェア、顧客から提供されたファイル、未公開のIoC、インシデント情報、社内情報などを外部のLLMサービスへ入力する場合には注意が必要です。
利用しているサービスの契約内容、データの保持期間、学習への利用有無、所属組織のルールなどを確認したうえで利用しましょう。

必要に応じて、以下のような対策を検討してください。
- 機微情報をマスクする
- 組織で許可されたLLMサービスを利用する
- APIやEnterprise向けサービスのデータ取り扱いを確認する
- 必要に応じてローカルLLMを利用する

また、マルウェア本体や解析対象のファイル、解析結果の中には、AI Agentを意図しない動作へ誘導する文字列が含まれている可能性もあります。
特に、AI Agentがファイル操作やコマンド実行、解析ツールの操作まで行える場合は、通常のLLMよりも強い権限を持つことになります。そのため、マルウェア解析でAI Agentを利用する場合は、VMなどの隔離環境上で実行し、安全性を確保することをおすすめします。

AIはかなり賢くなりましたが、それでも意図しないコマンドを実行することがあります。
これまでのマルウェア解析と同様に解析環境を隔離するという基本を守って利用しましょう。

# 実際のマルウェアを使わない学習

2026年現在、マルウェア解析を勉強するために、最初から実際のマルウェアを入手する必要はありません。
むしろ初学者には、以下の順番をおすすめします。

1. LLMや自分で作成した10〜50行程度の小さなプログラム
2. 自分でコンパイルしたWindows APIのサンプル
3. CTF/Crackme/マルウェア解析トレーニング用サンプル
4. マルウェアやC2フレームワークなど、ソースコードが公開されているOSS実装
5. 必要性があり、安全な解析環境を準備できる場合のみ実際のマルウェア

最初のうちは、元のソースコードが分かっているプログラムを教材にするのがおすすめです。
自分で解析した結果と実際のソースコードを比較できるため、「どこまで正しく解析できたか」「どこを読み違えたか」を自分で確認できます。
いきなり実際のマルウェアを解析するよりも、まずは答え合わせのできる教材を使って、逆アセンブルやデコンパイル結果の読み方に慣れる方が効率よく学習できると思います。

# マルウェアの入手

## 前置き

ここではマルウェアの入手方法について触れますが、紹介するサービスを利用する際は利用規約を必ず読んで利用してください。
また、以下の内容は、マルウェアの入手を勧めるものではありません。

不正指令電磁的記録に関する罪では、マルウェアの作成、提供、取得、保管などについて、その目的や正当な理由の有無などが要件になります。
私は法律の専門家ではないため、どういった理由であれば法律上の`正当な理由`にあたるかはわかりません。
個人の趣味でマルウェア解析をおこなうことは`正当な理由`として認められない可能性もあります。
捜査されると困る、裁判になったら困る、正当な理由として提示できる活動実績がない、弁護費用がないなど、平穏な人生を絶対に送りたいという人は、個人の趣味でやらないほうがよいかと思います。

とはいえ過度に怯えすぎて萎縮する必要はないとは思います。
最低限、警視庁が公開している不正指令電磁的記録に関する罪に関するページには目を通して、内容を確認しておきましょう。

- https://www.keishicho.metro.tokyo.jp/kurashi/cyber/law/virus.html

マルウェアを扱う上で気にしなければいけないことは、法律面だけではありません。
マルウェアを実行(故意かどうかは問わない)すると、たいていの場合は攻撃者の用意したサーバにアクセスします。
攻撃者のサーバには自分の利用しているIPアドレスのログが残りますし、接続時に利用しているシステムの情報を送信することもあります。
マルウェアによっては、攻撃者によるコマンドの実行などがおこなわれることも考えられますし、内部ネットワークのスキャンや(一番避けるべき)外部への感染活動などがおこなわれるかもしれません。
攻撃者のサーバに記録された情報は攻撃者自身だけでなく、第三者へ提供されることもあります。また、捜査機関はサーバを差し押さえてログを解析したうえで、ISPに情報開示請求をおこなうことができます。

以下のどれか一つにでも当てはまる場合は、実際のマルウェアを利用した学習は控えましょう。

- マルウェアを取り扱う上で、不安がある。
- マルウェア解析のための専用PCや独立したネットワークなど隔離した環境を用意できない。
- 未成年もしくは学生であるが、マルウェアを扱った解析や研究をするうえで責任者がいない(社会人の場合は、全て自己責任として責任を取れない)。

実際のマルウェアを個人的に入手しなくても、学習する方法は前述しております。

最後にオタクがみんな大好きな以下の名言たちで前置きを終えます。
- `With great power comes great responsibility`
- `The abyss gazes also into you.`

## マルウェア共有サービス/IoC共有サービス

マルウェアのサンプルやIoCを共有するためのサービスがいくつかあります。もっとも登録が多く有名なサービスはVirusTotalですが、有償アカウントのみダウンロードが可能であるため、ここでは無償で利用可能なサービスを紹介します。

この2つのサービスがサンプルの入手先としては有力です。
- [MalwareBazaar](https://bazaar.abuse.ch/)
- [Vx Underground](https://www.vx-underground.org/)

参考情報として以下のサービスも記載しておきます。
- [URLhaus](https://urlhaus.abuse.ch/)
- [ThreatFox](https://threatfox.abuse.ch/)
- [MalShare](https://www.malshare.com/)
- [VirusShare](https://virusshare.com/)
- [VirusBay](https://beta.virusbay.io/)
- [Vx Vaul](http://vxvault.net//ViriList.php)
- [theZoo](https://thezoo.morirt.com/)
- [malpedia](https://malpedia.caad.fkie.fraunhofer.de/)

## オンラインサンドボックス

無料で使用できるオンラインサンドボックスのサービスは本来マルウェアの挙動を解析するサービスですが、他者の投稿したマルウェアをダウンロードすることができます。

- [Hybrid Analysis](https://www.hybrid-analysis.com/)
- [Any Run](https://app.any.run/)
- [Triage](https://tria.ge/)
- [Joe Sandbox](https://www.joesandbox.com/)
- [cape](https://capesandbox.com/)

## OSS RAT

以下はRAT(Remote Access Trojan)の実装を理解するのに役に立つリポジトリです。
ソースコードと実際のバイナリを比較することで、通信処理、コマンド実行、ファイル操作などの実装を学ぶことができます。

- [Lilith RAT](https://github.com/werkamsus/Lilith)
- [Quasar RAT](https://github.com/quasar/Quasar)
- [NGLite](https://github.com/Maka8ka/NGLite)
- [AsyncRAT](https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp)
- [trochilus RAT](https://github.com/5loyd/trochilus)
- [gh0st RAT](https://github.com/sin5678/gh0st)
- [Poison-Ivy-Reload](https://github.com/killeven/Poison-Ivy-Reload)
- [GitHub Topics rat](https://github.com/topics/rat)

## C2フレームワーク

マルウェアのC2通信やAgentの実装を理解するためには、オープンソースで公開されているC2フレームワークのソースコードを読むことも参考になります。
C2フレームワークには、AgentとC2 Server間の通信、コマンドの受信と実行、ファイル操作、プロセス操作、通信データの暗号化など、マルウェアでもよく見られる機能が実装されています。
それぞれ実装言語やAgentの構造、通信方式が異なるため、ソースコードと生成されたAgentを比較しながらリバースエンジニアリングしてみるのもよいでしょう。

- [Sliver](https://github.com/BishopFox/sliver)
- [Mythic](https://github.com/its-a-feature/Mythic)
- [Mythic Agents](https://github.com/MythicAgents)
- [AdaptixC2](https://github.com/Adaptix-Framework/AdaptixC2)
- [Empire](https://github.com/BC-SECURITY/Empire)
- [PoshC2](https://github.com/nettitude/PoshC2)
- [Merlin](https://github.com/Ne0nd0g/merlin)
- [MITRE CALDERA](https://github.com/mitre/caldera)
- [Havoc](https://github.com/HavocFramework/Havoc)
- [The C2 Matrix](https://www.sans.org/tools/the-c2-matrix)
  - 様々なC2フレームワークの機能や特徴を比較するための一覧
Scarica lo strumento
Malware Analysis - CSCI 4976
  • Materiale didattico del corso di analisi del malware del Rensselaer Polytechnic Institute. Vengono distribuiti anche campioni per gli esercizi.
  • Workshop by Malware Unicorn
    • Materiale del workshop di reverse engineering a cura di @malwareunicorn.
  • Youtube channel by SANS Digital Forensics and Incident Response
    • Canale Youtube dedicato a DFIR del rinomato training di sicurezza mondiale SANS.
  • Youtube channel by OALabs
    • Canale Youtube di OALabs incentrato principalmente su video di analisi del malware.
  • Youtube channel by hasherezade
    • Canale Youtube di hasherezade incentrato principalmente su video di analisi del malware.
  • RecommendationofPerfectUnpacking
    • Materiale sulle tecniche di unpacking a cura di Nakatsuru (@you0708).
  • 同人誌 by Allsafe
    • Le fanzine del circolo doujin Allsafe, di cui faccio parte, incentrate principalmente su reverse engineering e tecniche di analisi del malware.
  • Malware Analysis at Scale ~ Defeating EMOTET by Ghidra ~ by Allsafe
    • Materiale del workshop di analisi di Emotet a cura di Allsafe.
    • Script distribuiti
  • Advanced Binary Deobfuscation
    • Lezione sull'offuscamento binario e le tecniche per rimuoverlo, tenuta da @ntddk al GCC Tokyo e al Security Camp National Convention 2020.
  • MÖBIUS STRIP REVERSE ENGINEERING
    • Ricco di articoli di analisi che sfruttano conoscenze di CS e la struttura interna di IDA. recommended by ntddk.
  • リバースエンジニアリングバイブル
    • Un buon libro che spiega con cura le basi in giapponese per i principianti.
  • デバッガによるx86プログラム解析入門 x64対応版
    • Se vuoi imparare il debug in giapponese, questo è il primo consigliato.
  • マルウエアの教科書 増補改訂版
    • Un libro di Takashi Yoshikawa che tratta ampiamente le basi del malware, le tecniche di attacco, il ransomware e i metodi di analisi. Spiega anche concretamente come iniziare l'analisi, ed è consigliato per i principianti che vogliono cogliere il quadro generale del malware.
  • 実践バイナリ解析
    • Tratta formati binari, disassemblaggio, strumentazione binaria, analisi dinamica del taint, esecuzione simbolica e altro. È incentrato su Linux/ELF, ma è utile per apprendere sistematicamente l'analisi binaria stessa.
  • マスタリングGhidra
    • Un manuale completo che tratta in dettaglio dalle operazioni di base di Ghidra ai tipi di dati, agli script e alle estensioni.
  • 実践 メモリフォレンジック
    • Tratta processi, rete, code injection, analisi del malware e altro, incentrandosi sulla memory forensics che utilizza Volatility.
  • 脅威インテリジェンスの教科書
    • Non è un libro di analisi del malware, ma permette di imparare il modo di pensare per collegare i campioni analizzati, gli IoC e le tecniche di attacco alle informazioni sulle campagne e sugli attaccanti.
  • OpzioneDescrizionePredefinito
    -u, --urlURL di destinazione da scansionare-
    -f, --fileFile contenente un elenco di URL-
    -o, --outputFile di output per i risultati-
    --formatFormato di output (json, html, markdown)json
    --deep-scanAbilita la scansione approfonditafalse
    --quickModalità di scansione rapidafalse
    --no-crawlDisabilita il crawlingfalse
    --threadsNumero di thread10
    --timeoutTimeout della richiesta in secondi10
    --cookieStringa di cookie per l'autenticazione-
    --proxyURL del proxy-
    --user-agentStringa User-Agent personalizzata-
    --no-ssl-verifyDisabilita la verifica del certificato SSLfalse
    --verboseAbilita l'output dettagliatofalse
    変数説明デフォルト
    KITPLOIT_CONFIG設定ファイルのパス/etc/kitploit/config.yaml
    KITPLOIT_LOG_LEVELログレベルinfo
    KITPLOIT_API_TOKENAPI認証トークン-
    KITPLOIT_DB_PATHデータベースファイルのパス/var/lib/kitploit/kitploit.db
    KITPLOIT_RULES_PATH検出ルールのパス/etc/kitploit/rules
    フィールド型説明
    namestringルールの一意な名前
    patternstringマッチング用の正規表現パターン
    severitystring重大度レベル: critical、high、medium、low
    descriptionstring人間が読める形式の説明
    enabledbooleanこのルールを有効にするかどうか