Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
how_to_become_a_malware_analyst — Guia curado para se tornar um analista de malware, abrangendo conhecimentos essenciais, engenharia reversa, ferramentas de análise e aprendizado assistido por LLM com exercícios práticos e recursos. | Kitploit
Ferramentas/GitHubGitHub/pinksawtooth/how_to_become_a_malware_analyst
Forensia de MemóriaEngenharia ReversaAnálise de MalwareForensia DigitalCTFAnálise de BináriosAprendizado e EducaçãoRecursos CuradosTrilhas e Cursos

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Labs e Prática
GitHubpinksawtooth/how_to_become_a_malware_analyst

how_to_become_a_malware_analyst

Guia curado para se tornar um analista de malware, abrangendo conhecimentos essenciais, engenharia reversa, ferramentas de análise e aprendizado assistido por LLM com exercícios práticos e recursos.

Ver Repositório
279620há 2 diasRevisado pelo Kitploit

Métodos de estudo para se tornar um analista de malware (work-in-progress)

Esta é a opinião pessoal de @PINKSAWTOOTH e pode não ser necessariamente o melhor método para você. Espero que seja útil como um exemplo de método de estudo.

Antes de ler isto, o analista de malware que respeito, @hasherezade, escreveu em seu blog como começar a estudar análise de malware. Acredito que haja partes sobrepostas, mas recomendo que leia. Além disso, como os blogs a seguir são centrados em fontes em inglês, gostaria de apresentar fontes centradas em japonês na medida do possível.

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

[!NOTE]

Adendo de 2026: Aprendizado de análise de malware na era dos LLMs

Quando comecei a escrever esta página, não era uma época em que LLMs e AI Agents pudessem ser usados diariamente como hoje. Em 2026, se você for estudar análise de malware ou engenharia reversa, recomendo utilizar ativamente LLMs além de livros e materiais na web. Especialmente, eles são muito úteis na criação de programas para estudo, explicação de código e assembly, análise, criação de scripts de análise, organização de resultados de análise, etc.

Por outro lado, em muitas técnicas de análise, os LLMs têm superado os humanos em cada vez mais situações. No entanto, isso não significa que o conhecimento básico se tornou desnecessário. Para entender a saída do LLM e verificar por conta própria sua fundamentação e correção, é importante ter conhecimento especializado (embora talvez esteja próximo o dia em que esse trabalho perca o sentido...). Neste artigo, parto do pressuposto de utilizar o LLM não como um "dispositivo que dá respostas", mas como um "professor que aprende junto, um assistente na análise".

Conhecimentos prévios para análise de malware

Primeiro, vou explicar brevemente os conhecimentos prévios necessários para a análise de malware. Antes de aprender sobre análise de malware, é necessário ter no mínimo conhecimento de ciência da computação.

  • Arquitetura de computadores
  • Redes de computadores
  • Sistemas operacionais
  • Linguagens de programação
  • Estruturas de dados e algoritmos
  • etc...

Sobre esses tópicos, acredito que seja suficiente compreender o conteúdo lecionado em universidades ou escolas técnicas. (Consultar a ementa online de alguma universidade pode ajudar a conhecer conteúdos mais específicos.) Neste artigo, como aprender linguagens de programação ou ciência da computação está fora do escopo, mas seguem recomendações de materiais:

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

Conhecimentos necessários para análise de malware

Os conhecimentos necessários para análise de malware são divididos em cinco grandes categorias:

  • Conhecimento sobre técnicas de análise de malware, comportamento de malware, implementação e formas de realização de técnicas exploradas
  • Conhecimento sobre desenvolvimento de programas alvo de engenharia reversa
  • Conhecimento sobre engenharia reversa
  • Conhecimento sobre ferramentas de análise
  • Conhecimento sobre LLMs e automação de análise

Conhecimento sobre técnicas de análise de malware, comportamento de malware, implementação e formas de realização de técnicas exploradas

Primeiro, é necessário aprender o que é malware e o que é o trabalho de análise de malware. Apresento materiais e livros recomendados para aprender sobre análise de malware em geral.

  • セキュリティ・キャンプ全国大会2015でのマルウエア分析講義
    • Aula de análise de malware realizada no Security Camp Nacional 2015 por Nakatsuru (@you0708).
  • 初めてのマルウェア解析
    • Livro que aborda desde o básico até conteúdos avançados de análise de malware em geral, em japonês.
  • リバースエンジニアリングツールGhidra実践ガイド
    • Livro do qual também sou autor, que permite aprender a implementação de malware através de análise estática usando Ghidra.
  • リバースエンジニアリング入門 @IT連載
    • Artigo que explica a análise de shellcode por Kawakoya, Aoki e Iwamura da Nippon Telegraph and Telephone Corporation.
  • アナライジング・マルウェア
    • Publicado em 2010, o conteúdo está desatualizado, mas é um livro raro que aborda análise de malware com a restrição de não ler assembly.
  • MWS Cup
    • Competição de técnicas de análise de malware organizada pelo comitê MWS sob o grupo de pesquisa em Segurança Computacional (CSEC) da Information Processing Society of Japan. Os problemas passados e explicações estão disponíveis publicamente e são úteis como referência.
  • CS6038/CS5138 Malware Analysis, UC
    • Material de aula de análise de malware da University of Cincinnati. O conteúdo é atualizado anualmente e amostras para exercícios são distribuídas, por isso é recomendado. Disponível gratuitamente.
  • Practical Malware Analysis
    • Livro estrangeiro que explica detalhadamente a análise de malware em geral. Amostras e respostas estão disponíveis publicamente, permitindo aprender enquanto realiza exercícios.
  • malware_training_vol1 by hasherezade
    • Material de treinamento de análise de malware por @hasherezade. Está em WIP, mas amostras para exercícios também são distribuídas, por isso é recomendado.
  • Malware Analysis - CSCI 4976

Treinamentos online de análise de malware também são recomendados.

  • The Beginner Malware Analysis Course
    • Treinamento introdutório de análise de malware por @0verfl0w
  • From Zero to Hero
  • Treinamento prático de análise de malware por @0verfl0w e @vk_intel
  • Zero2Automated
  • Treinamento avançado de análise de malware por @0verfl0w e @vk_intel
  • OpenSecurityTraining2
    • Material de aula gratuito para aprender assembly x86/x64, engenharia reversa, estrutura interna do Windows, etc. Exercícios também estão disponíveis.

Apresento páginas que compilam comportamentos de malware e técnicas exploradas.

  • Malware Behavior Catalog (MBC)
    • Catálogo que sistematiza objetivos (Objective), comportamentos (Behavior) e características no código de malware, especializado em análise de malware. Organiza comportamentos importantes na análise de malware, correlacionando com o ATT&CK.
  • capa-rules
    • Coleção de regras que o capa utiliza para identificar funcionalidades. Ao ler as regras, é possível aprender como funcionalidades e técnicas típicas de malware se manifestam como características no binário.
  • MITRE ATT&CK
    • Métodos, técnicas e procedimentos de ataque são definidos como framework, sendo bom para aprender não apenas análise de malware, mas ciberataques em geral.
  • ired.team
    • Introdução a técnicas usadas por pentesters, red teams e atacantes e suas implementações
  • malpedia
    • Relatórios de análise estão compilados por família de malware.
  • Ten process injection techniques: A technical survey of common and trending process injection techniques
    • Introdução a técnicas de injeção de código
  • Code Injection demos by hasherezade
    • Implementações de técnicas de injeção de código
  • Evasion techniques by cpr
    • Compilação de técnicas de evasão de análise de malware
  • Al-Khaser
    • Ferramenta OSS e código-fonte que implementa funcionalidades anti-análise de malware

Informações de ameaças publicadas diariamente e blogs e relatórios que tratam de análise de malware também são fontes importantes de informação. É conveniente configurar notificações de atualização em leitores RSS, etc. Existem também sites que compilam essas informações, que podem ser utilizados.

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

Dentre esses, apresento os que abordam análises detalhadas de malware em japonês.

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

Além disso, ler regras YARA permite aprender sobre as características de malware.

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

Conhecimento sobre desenvolvimento de programas alvo de engenharia reversa

A engenharia reversa é apenas uma parte da análise de malware, mas é um caminho inevitável para se tornar um analista de malware. Apenas com análise dinâmica usando sandbox ou análise dinâmica usando ferramentas (exceto debugging manual), é difícil identificar o panorama completo das funcionalidades do malware ou os algoritmos utilizados.

Para realizar engenharia reversa, é necessário compreender o código-fonte original. (Assumindo o ambiente Windows comum na análise de malware) Fazer análise de malware sem experiência em programação usando Windows API seria um caminho mais longo.

A Microsoft publica documentação oficial e amostras da Windows API. ※Cuidado, pois algumas exibições podem estar estranhas na tradução para japonês

  • Windows API - Microsoft Learn
  • Windows classic samples

Os seguintes livros são recomendados para aprender sobre o funcionamento do sistema operacional Windows.

  • インサイドWindows 第7版 上
    • Permite aprender o básico da estrutura interna do Windows, como arquitetura do sistema, processos, threads, gerenciamento de memória, I/O, etc.
  • インサイドWindows 第7版 下
    • Aborda mecanismos do sistema, virtualização, diagnóstico e rastreamento, sistema de arquivos, processamento de inicialização, etc.
  • Windowsセキュリティインターナル
    • Permite aprender autenticação, autorização, auditoria, mecanismos de segurança do kernel do Windows, etc., com experimentos usando PowerShell.

Conheça também linguagens e runtimes além de C/C++

C/C++ ainda é extremamente importante para aprender engenharia reversa de malware Windows, por isso é recomendado como a primeira linguagem a aprender. Por outro lado, os alvos reais de análise não são apenas C/C++. Em 2026, é útil conhecer pelo menos as seguintes características de binários e runtimes:

  • C / C++: código nativo, Windows API, CRT, otimização de compilador
  • .NET: CLR, CIL/MSIL, metadados, ofuscação
  • Go: Go runtime, goroutine, informações de strings e tipos, estrutura de binário específica do Go
  • Rust: tratamento de panic/unwind, name mangling, biblioteca padrão, geração de código por generics e otimização
  • Python: executáveis empacotados com PyInstaller etc., bytecode Python

Não é necessário aprender profundamente todas as linguagens desde o início. Lembre-se de que, quando a linguagem de desenvolvimento ou o runtime muda, os conhecimentos necessários também mudam.

Conhecimento sobre engenharia reversa

Depois de adquirir habilidades de programação na linguagem e ambiente alvo de análise, vamos estudar engenharia reversa. Ao analisar arquivos PE do Windows, comuns na análise de malware, primeiro vamos fazer engenharia reversa de programas introdutórios em C ou C++. Como próximo passo, vamos analisar arquivos PE usando Win API que você mesmo compilou (cujo código-fonte existe). Mesmo com o mesmo código-fonte, se você alterar o projeto escolhido ou as opções de compilação e linkagem e observar quais mudanças aparecem no executável, acredito que suas habilidades de engenharia reversa aumentarão consideravelmente.

Método de estudo recomendado em 2026: Fazer o LLM criar programas para prática

Anteriormente, eu recomendava procurar amostras da Microsoft ou código no GitHub e aprender reescrevendo-os. Esse método ainda é válido, mas em 2026, fazer com que LLMs ou Coding Agents criem pequenos programas adequados ao seu objetivo de estudo também é muito eficaz.

Por exemplo, inicialmente peça para gerar um pequeno programa de cerca de 10 a 50 linhas.```text CreateFileWとWriteFileを使ってテキストファイルを作成する、 できるだけ小さなWindows Cプログラムを作ってください。 リバースエンジニアリングの教材に使いたいので、 処理を複雑にせず、各Windows APIを使う理由も説明してください。

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

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

Por exemplo, é útil comparar o seguinte sobre o código-fonte do mesmo processamento.

  • Debug / Release
  • Sem otimização / Com otimização (-O0 / -O2, no MSVC /Od / /O2, etc.)
  • x86 / x64
  • Com símbolos / Sem símbolos
  • Compiladores diferentes como MSVC / Clang / GCC
  • Linguagens diferentes como C / C++ / Rust / Go

Analisar um binário conhecendo o código-fonte original é um treinamento muito bom para aprender engenharia reversa.

Para aprimorar ainda mais as técnicas de engenharia reversa, é bom resolver desafios de Rev de CTF e Crackmes. Em particular, problemas envolvendo arquivos PE e aqueles voltados para analistas de malware são recomendados.

  • The Flare On Challenge
    • CTF focado em técnicas de análise de malware pela equipe FLARE da Mandiant (Google).
  • Beginner Malware Reversing Challenges by MalwareTech
    • Exercícios para iniciantes em análise de malware por MalwareTech
  • reversing.kr
    • Site de distribuição de CrackMes, muitos no formato PE
  • crackmes.one
    • Site de publicação de CrackMes

Além disso, na engenharia reversa de malware, frequentemente se faz engenharia reversa do processamento de algoritmos criptográficos, por isso recomenda-se aprender técnicas básicas de criptografia. Depois de entender o algoritmo, leia o código-fonte de implementações de algoritmos criptográficos de código aberto publicadas no GitHub e tente fazer engenharia reversa na prática.

  • Introdução à Tecnologia de Criptografia 3ª Edição
  • OpenSSL Project
  • Network Security Services
  • Crypto++ Library
  • wolfSSL

Conhecimento sobre ferramentas de análise

Ao prosseguir com a análise de malware, usar ferramentas melhores ou dominar o uso das ferramentas pode facilitar a análise. Além disso, mesmo tendo diversos conhecimentos, na prática a análise é feita por meio de ferramentas, portanto é necessário entender também como utilizá-las.

Para gerenciar a instalação e atualização de ferramentas de análise, no ambiente Windows o FLARE-VM publicado pela Mandiant é conveniente. É possível instalar de uma só vez as ferramentas necessárias para análise de malware e engenharia reversa.

No ambiente Linux, o REMnux pode ser utilizado. Este também reúne as ferramentas necessárias para análise de malware, e você pode conferi-las na lista de ferramentas incluídas.

Tanto o FLARE-VM quanto o REMnux permitem construir facilmente um ambiente de análise de malware, sendo recomendados também para quem vai criar um ambiente de análise pela primeira vez. Ao verificar as ferramentas incluídas em cada um e experimentá-las na prática, você pode aprender quais ferramentas de análise existem e em quais situações são utilizadas.

Além disso, é bom experimentar também as ferramentas apresentadas nos links a seguir.

  • awesome-reversing
  • Awesome Malware Analysis
  • Awesome Ghidra

Aprendizado e análise utilizando LLM e Coding Agent

Utilizar o LLM como professor

Uma das formas úteis de usar o LLM é utilizá-lo como um professor a quem você pode perguntar na hora sobre coisas que não entende. Antes do surgimento dos LLMs, era necessário pesquisar por conta própria aquilo que não se compreendia e entender o conteúdo. Especialmente para iniciantes, muitas vezes não se sabe nem o que pesquisar, o que era um obstáculo no aprendizado. Atualmente, LLMs com alto nível de conhecimento explicam com paciência quantas vezes forem necessárias, de acordo com o seu nível de compreensão. Se não entender, basta perguntar novamente, e também é possível usar de formas como "explique de maneira mais simples", "dê exemplos concretos" ou "confirme se este entendimento está correto". Se houver disposição, é possível aprender perguntando infinitamente sobre o que não se entende — acho que vivemos em uma época boa.

Por exemplo, sobre resultados de desmontagem ou resultados de descompilação, é possível fazer perguntas como as seguintes.```text この関数の役割と、そう判断できる理由を教えてください。

root@kitploit:~
## インストール

### 前提条件

- Python 3.8以上
- pip(Pythonパッケージマネージャー)

### インストール手順

1. リポジトリをクローンします:
```bash
git clone https://github.com/yourusername/kitploit-tool.git
cd kitploit-tool
  1. 仮想環境を作成して有効化します:
root@kitploit:~
python -m venv venv
source venv/bin/activate  # Windowsの場合: venv\Scripts\activate
  1. 依存関係をインストールします:
root@kitploit:~
pip install -r requirements.txt
  1. 設定ファイルをセットアップします:
root@kitploit:~
cp config.example.yaml config.yaml
# config.yamlを編集して設定をカスタマイズします

使用方法

基本的な使い方

root@kitploit:~
python main.py --target example.com

高度なオプション

root@kitploit:~
python main.py --target example.com --scan-type full --output results.json --verbose

設定オプション

機能

  • 自動検出: 一般的な脆弱性を自動的に検出します
  • レポート生成: 詳細なレポートを複数の形式で出力します
  • プラグインシステム: カスタムプラグインで機能を拡張できます
  • マルチスレッド: 高速な並列スキャンを実現します

設定

config.yamlファイルで以下の設定が可能です:

root@kitploit:~
scanner:
  threads: 10
  timeout: 30
  retries: 3

output:
  format: json
  verbose: false

plugins:
  - name: example_plugin
    enabled: true

ライセンス

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

貢献

プルリクエストは歓迎します。大きな変更を加える場合は、まずissueを開いて変更内容について議論してください。

サポート

  • ドキュメント: https://docs.example.com
  • issue tracker: https://github.com/yourusername/kitploit-tool/issues```text このデコンパイル結果から変数の型を推定したいです。 型を判断するために、どの命令、API、参照先を確認すべきですか?
root@kitploit:~
## 検出ルール

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

```yaml
title: Suspicious File Download
description: Detects suspicious file downloads via curl, wget, or PowerShell
level: medium
tags:
  - attack.command_and_control
  - attack.t1071.001
detection:
  selection:
    EventID: 1
    Image|endswith:
      - '\curl.exe'
      - '\wget.exe'
      - '\powershell.exe'
    CommandLine|contains:
      - 'http://'
      - 'https://'
      - '-OutFile'
      - '-o '
  condition: selection
falsepositives:
  - Legitimate software updates
  - Package managers

ルール2: 認証情報ダンプの検出

root@kitploit:~
title: Credential Dumping Attempt
description: Detects potential credential dumping activity
level: high
tags:
  - attack.credential_access
  - attack.t1003
detection:
  selection:
    EventID: 1
    CommandLine|contains:
      - 'sekurlsa'
      - 'lsadump'
      - 'kerberos::golden'
      - 'mimikatz'
  condition: selection
falsepositives:
  - Penetration testing
  - Security assessments

ルール3: 永続化の検出

root@kitploit:~
title: Registry Run Key Persistence
description: Detects persistence via registry Run keys
level: medium
tags:
  - attack.persistence
  - attack.t1547.001
detection:
  selection:
    EventID: 13
    TargetObject|contains:
      - '\CurrentVersion\Run\'
      - '\CurrentVersion\RunOnce\'
  condition: selection
falsepositives:
  - Legitimate software installation
  - System updates

カスタムルールの作成

ルールジェネレーターの使用

root@kitploit:~
# 対話形式でルールを作成
python3 rule_generator.py --interactive

# テンプレートからルールを作成
python3 rule_generator.py --template suspicious_process --output my_rule.yml

# 既存のルールを検証
python3 rule_generator.py --validate my_rule.yml

ルールテンプレート

root@kitploit:~
title: [Rule Title]
description: [Detailed description]
level: [critical|high|medium|low|informational]
status: [stable|test|experimental]
author: [Your Name]
date: [YYYY/MM/DD]
tags:
  - attack.[tactic]
  - attack.[technique_id]
logsource:
  product: windows
  service: security
detection:
  selection:
    [Field]: https://raw.githubusercontent.com/pinksawtooth/how_to_become_a_malware_analyst/main/%5BValue%5D
  condition: selection
falsepositives:
  - [Known false positive]

ログソースの設定

Windows Event Log

root@kitploit:~
logsource:
  product: windows
  service: security
  definition: 'Requires Windows Security Audit Policy'

Sysmon

root@kitploit:~
logsource:
  product: windows
  service: sysmon
  definition: 'Requires Sysmon installation'

Linux Auditd

root@kitploit:~
logsource:
  product: linux
  service: auditd
  definition: 'Requires auditd configuration'

アラート通知

Slack通知

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

Email通知

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-webhook-endpoint.com/alerts'
    method: 'POST'
    headers:
      Content-Type: 'application/json'
      Authorization: 'Bearer YOUR_TOKEN'

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

メモリ使用量の最適化

root@kitploit:~
performance:
  max_memory_mb: 2048
  batch_size: 1000
  buffer_size: 10000
  gc_interval: 300

CPU使用率の最適化

root@kitploit:~
performance:
  max_workers: 4
  thread_pool_size: 8
  process_pool_size: 4
  cpu_threshold: 80

ディスクI/Oの最適化

root@kitploit:~
performance:
  async_io: true
  io_buffer_size: 65536
  max_open_files: 1024
  write_batch_size: 100

トラブルシューティング

よくある問題

問題1: ログが取り込まれない

root@kitploit:~
# ログソースの確認
python3 hayabusa.py --check-logs

# 権限の確認
sudo -u hayabusa python3 hayabusa.py --test

# デバッグモードで実行
python3 hayabusa.py --debug --verbose

問題2: パフォーマンスが遅い

root@kitploit:~
# プロファイリング
python3 -m cProfile -o profile.stats hayabusa.py

# プロファイルの分析
python3 -c "import pstats; p = pstats.Stats('profile.stats'); p.sort_stats('cumulative').print_stats(20)"

問題3: メモリリーク

root@kitploit:~
# メモリ使用量の監視
python3 -m memory_profiler hayabusa.py

# オブジェクトの追跡
python3 -c "import gc; gc.set_debug(gc.DEBUG_LEAK)"

ログの確認

root@kitploit:~
# アプリケーションログ
tail -f logs/hayabusa.log

# エラーログ
tail -f logs/error.log

# 監査ログ
tail -f logs/audit.log

デバッグモード

root@kitploit:~
# デバッグモードで実行
python3 hayabusa.py --debug

# 詳細ログを出力
python3 hayabusa.py --log-level DEBUG

# 特定のモジュールのみデバッグ
python3 hayabusa.py --debug-module detection
``````text
このWindows API呼び出しの前後で使われている構造体について説明してください。
各フィールドを確認するためにGhidra上でどこを見るべきかも教えてください。

検出機能

  • 静的解析: ファイルシステムをスキャンして、既知のマルウェアシグネチャ、不審なコードパターン、難読化されたスクリプトを検出します。
  • ヒューリスティック分析: ファイルの動作と特性を評価して、ゼロデイ脅威や未知の脅威を特定します。
  • YARAルール: カスタムYARAルールをサポートし、高度で標的型のマルウェア検出を実現します。
  • ClamAV統合: 包括的なウイルス検出のためにClamAVエンジンを活用します。
  • リアルタイム監視: ファイルシステムの変更を継続的に監視し、脅威を即座に検出します。

アーキテクチャ

root@kitploit:~
+-------------------+     +-------------------+     +-------------------+
|                   |     |                   |     |                   |
|   スキャナー      |---->|   アナライザー    |---->|   レポーター      |
|                   |     |                   |     |                   |
+-------------------+     +-------------------+     +-------------------+
        |                         |                         |
        v                         v                         v
+-------------------+     +-------------------+     +-------------------+
|                   |     |                   |     |                   |
|   シグネチャDB    |     |   ヒューリスティクス|    |   ログ/アラート   |
|                   |     |                   |     |                   |
+-------------------+     +-------------------+     +-------------------+

インストール

前提条件

  • Python 3.8以上
  • pipパッケージマネージャー
  • (オプション)ClamAVがインストールされていること

ソースからのインストール

root@kitploit:~
git clone https://github.com/example/malware-scanner.git
cd malware-scanner
pip install -r requirements.txt
python setup.py install

Dockerの使用

root@kitploit:~
docker pull example/malware-scanner:latest
docker run -v /path/to/scan:/scan example/malware-scanner:latest /scan

使用方法

基本的なスキャン

root@kitploit:~
malware-scanner scan /path/to/directory

特定のファイルタイプをスキャン

root@kitploit:~
malware-scanner scan /path/to/directory --extensions exe,dll,scr

カスタムYARAルールの使用

root@kitploit:~
malware-scanner scan /path/to/directory --yara-rules /path/to/rules.yar

リアルタイム監視の有効化

root@kitploit:~
malware-scanner monitor /path/to/directory --real-time

設定

設定ファイルは~/.malware-scanner/config.yamlにあります:

root@kitploit:~
scanner:
  threads: 4
  max_file_size: 100MB
  timeout: 300

detection:
  enable_yara: true
  enable_clamav: true
  heuristic_level: medium

reporting:
  format: json
  output_dir: /var/log/malware-scanner
  verbose: false

検出ルール

YARAルールの例

root@kitploit:~
rule ExampleMalware
{
    meta:
        description = "Example malware detection rule"
        author = "Security Team"
        date = "2024-01-01"

    strings:
        $s1 = "malicious_string_1" ascii
        $s2 = "malicious_string_2" wide
        $hex1 = { 4D 5A 90 00 }

    condition:
        $s1 or $s2 or $hex1
}

シグネチャフォーマット

シグネチャはJSON形式で定義されます:

root@kitploit:~
{
  "name": "ExampleSignature",
  "type": "hash",
  "value": "d41d8cd98f00b204e9800998ecf8427e",
  "severity": "high",
  "description": "Known malware hash"
}

APIリファレンス

スキャンAPI

root@kitploit:~
from malware_scanner import Scanner

scanner = Scanner(config_path="config.yaml")
results = scanner.scan("/path/to/directory")

for result in results:
    print(f"File: {result.file_path}")
    print(f"Threat: {result.threat_name}")
    print(f"Severity: {result.severity}")

監視API

root@kitploit:~
from malware_scanner import Monitor

monitor = Monitor(path="/path/to/watch")
monitor.start(callback=lambda event: print(f"Detected: {event}"))

出力形式

JSON出力

root@kitploit:~
{
  "scan_id": "abc123",
  "timestamp": "2024-01-01T12:00:00Z",
  "scanned_files": 1500,
  "threats_found": 3,
  "threats": [
    {
      "file": "/path/to/malware.exe",
      "threat": "Trojan.Generic",
      "severity": "high"
    }
  ]
}

CSV出力

root@kitploit:~
file_path,threat_name,severity,detection_time
/path/to/malware.exe,Trojan.Generic,high,2024-01-01T12:00:00Z

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

  • スレッド数の増加: マルチコアシステムでは、threadsの値を増やしてスキャン速度を向上させます。
  • ファイルサイズ制限: max_file_sizeを調整して、大きなファイルのスキャンをスキップします。
  • 除外リスト: 頻繁に変更されるディレクトリを除外して、誤検知を減らします。
  • キャッシュの有効化: 以前にスキャンしたファイルの結果をキャッシュして、再スキャンを高速化します。

トラブルシューティング

よくある問題

問題: スキャンが遅い 解決策: スレッド数を増やし、除外リストを設定してください。

問題: 誤検知が多い 解決策: ヒューリスティックレベルを下げるか、特定のルールを無効にしてください。

問題: ClamAVが検出されない 解決策: ClamAVが正しくインストールされ、clamdデーモンが実行されていることを確認してください。

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

  • スキャナーをroot権限で実行しないでください。
  • スキャン結果を定期的に確認し、脅威に対応してください。
  • シグネチャデータベースを最新の状態に保ってください。
  • スキャンログを安全な場所に保存してください。```text このアセンブリを1命令ずつ説明するのではなく、 まずbasic blockごとの役割を整理して、私が自分で処理を推定できるようにヒントをください。
root@kitploit:~
## 検出機能

- **静的解析**: ファイルシステムをスキャンして、既知のマルウェアシグネチャ、不審なコードパターン、難読化されたスクリプトを検出します。
- **動的解析**: 制御されたサンドボックス環境でファイルを実行し、ランタイムの動作を監視します。
- **ヒューリスティックエンジン**: 機械学習モデルを活用して、未知の脅威やゼロデイ脅威を特定します。
- **YARAルール統合**: カスタムYARAルールをサポートし、標的型検出を実現します。

## インストール

```bash
git clone https://github.com/example/malware-scanner.git
cd malware-scanner
pip install -r requirements.txt

使用方法

スキャナを実行するには、次のコマンドを使用します。

root@kitploit:~
python scanner.py --path /path/to/scan --output report.json

オプション

オプション説明
--pathスキャン対象のディレクトリまたはファイル
--outputレポートの出力ファイル
--recursiveサブディレクトリを再帰的にスキャン

設定

設定ファイル config.yaml を編集して、スキャナの動作をカスタマイズします。

root@kitploit:~
scan:
  max_file_size: 104857600
  timeout: 300
  threads: 4
detection:
  enable_heuristics: true
  yara_rules_path: ./rules
``````text
私はこの関数を「設定ファイルの読み込み処理」だと推測しました。
この仮説を検証するために確認すべきポイントを挙げてください。

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

Agentic Reverse Engineering

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

  • Using AI with REMnux
  • REMnux MCP Server

Ghidraについても、AI Agentから操作するためのMCP実装がいくつか登場しています。私もGhidraをHeadlessで利用し、MCP経由でAI Agentから解析を行うためのMecha Ghidraを開発しています。

  • 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
  • Vx Underground

参考情報として以下のサービスも記載しておきます。

  • URLhaus
  • ThreatFox
  • MalShare
  • VirusShare
  • VirusBay
  • Vx Vaul
  • theZoo
  • malpedia

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

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

  • Hybrid Analysis
  • Any Run
  • Triage
  • Joe Sandbox
  • cape

OSS RAT

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

  • Lilith RAT
  • Quasar RAT
  • NGLite
  • AsyncRAT
  • trochilus RAT
  • gh0st RAT
  • Poison-Ivy-Reload
  • GitHub Topics rat

C2フレームワーク

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

  • Sliver
  • Mythic
  • Mythic Agents
  • AdaptixC2
  • Empire
  • PoshC2
  • Merlin
  • MITRE CALDERA
  • Havoc
  • The C2 Matrix
    • 様々なC2フレームワークの機能や特徴を比較するための一覧
Baixar ferramenta
  • Material de aula de análise de malware do Rensselaer Polytechnic Institute. Amostras para exercícios também são distribuídas.
  • Workshop by Malware Unicorn
    • Material de workshop de engenharia reversa por @malwareunicorn.
  • Youtube channel by SANS Digital Forensics and Incident Response
    • Canal do Youtube relacionado a DFIR do SANS, treinamento de segurança mundialmente famoso.
  • Youtube channel by OALabs
    • Canal do Youtube da OALabs, centrado em vídeos de análise de malware.
  • Youtube channel by hasherezade
    • Canal do Youtube de hasherezade, centrado em vídeos de análise de malware.
  • RecommendationofPerfectUnpacking
    • Material sobre técnicas de unpacking por Nakatsuru (@you0708).
  • 同人誌 by Allsafe
    • Fanzine do círculo doujin Allsafe, ao qual pertenço, focado principalmente em engenharia reversa e técnicas de análise de malware.
  • Malware Analysis at Scale ~ Defeating EMOTET by Ghidra ~ by Allsafe
    • Material do workshop de análise do Emotet pela Allsafe.
    • Scripts distribuídos
  • Advanced Binary Deobfuscation
    • Aula sobre ofuscação de binários e técnicas de desofuscação no GCC Tokyo e Security Camp Nacional 2020 por @ntddk.
  • MÖBIUS STRIP REVERSE ENGINEERING
    • Rico em artigos de análise que aproveitam conhecimentos de CS e a estrutura interna do IDA. recommended by ntddk.
  • リバースエンジニアリングバイブル
    • Bom livro que explica cuidadosamente para iniciantes, em japonês.
  • デバッガによるx86プログラム解析入門 x64対応版
    • Se você quer aprender debugging em japonês, recomendo este primeiro.
  • マルウエアの教科書 増補改訂版
    • Livro de Takashi Yoshikawa que aborda amplamente desde o básico de malware, métodos de ataque, ransomware até métodos de análise. Também explica concretamente como começar a análise, sendo recomendado para iniciantes compreenderem o panorama geral de malware.
  • 実践バイナリ解析
    • Aborda formato binário, desassemblagem, instrumentação binária, análise dinâmica de taint, execução simbólica, etc. É centrado em Linux/ELF, mas é útil para aprender sistematicamente a própria análise de binários.
  • マスタリングGhidra
    • Livro de referência abrangente que aborda detalhadamente desde operações básicas do Ghidra até tipos de dados, scripts, extensões, etc.
  • 実践 メモリフォレンジック
    • Aborda principalmente forense de memória usando Volatility, incluindo processos, rede, injeção de código, análise de malware, etc.
  • 脅威インテリジェンスの教科書
    • Não é um livro de análise de malware, mas permite aprender a forma de pensar para vincular amostras analisadas, IoCs e métodos de ataque a informações sobre campanhas e atacantes.
  • オプション説明デフォルト
    --targetスキャン対象のホストまたはIPアドレス必須
    --scan-typeスキャンの種類(quick、full、stealth)quick
    --output出力ファイルのパスstdout
    --verbose詳細なログを出力false
    --timeoutタイムアウト秒数30
    --yaraカスタムYARAルールファイルへのパス