Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
how_to_become_a_malware_analyst — Guía curada para convertirse en analista de malware, abarcando conocimientos esenciales, ingeniería inversa, herramientas de análisis y aprendizaje asistido por LLM con ejercicios prácticos y recursos. | Kitploit
Herramientas/GitHubGitHub/pinksawtooth/how_to_become_a_malware_analyst
Forensia de MemoriaIngeniería InversaAnálisis de MalwareForensia DigitalCTFAnálisis de BinariosAprendizaje y EducaciónRecursos CuradosRutas de Aprendizaje y Cursos

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Labs y Práctica
GitHubpinksawtooth/how_to_become_a_malware_analyst

how_to_become_a_malware_analyst

Guía curada para convertirse en analista de malware, abarcando conocimientos esenciales, ingeniería inversa, herramientas de análisis y aprendizaje asistido por LLM con ejercicios prácticos y recursos.

Ver Repositorio
279638hace 3 díasRevisado por Kitploit

Métodos de estudio para convertirse en analista de malware (work-in-progress)

Esta es la opinión personal de @PINKSAWTOOTH y puede que no sea necesariamente el mejor método para ti. Espero que te sirva como un ejemplo de método de estudio.

Antes de leer esto, la analista de malware a quien respeto, @hasherezade, ha resumido en su blog cómo empezar a estudiar análisis de malware. Es posible que haya partes que se solapen, pero recomiendo leerlo. Además, como los siguientes blogs están centrados principalmente en fuentes en inglés, me gustaría presentar fuentes centradas en japonés en la medida de lo posible.

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

[!NOTE]

Añadido en 2026: Aprendizaje del análisis de malware en la era de los LLM

Cuando empecé a escribir esta página, no era una época en la que los LLM y los AI Agent se pudieran usar a diario como ahora. A fecha de 2026, si vas a estudiar análisis de malware o ingeniería inversa, recomiendo utilizar activamente los LLM además de libros y materiales en la web. Especialmente, son muy útiles para crear programas de aprendizaje, explicar código y ensamblador, analizar, crear scripts de análisis, organizar resultados de análisis, etc.

Por otro lado, en muchas técnicas de análisis han aumentado las situaciones en las que los LLM superan a los humanos. Sin embargo, eso no significa que los conocimientos básicos hayan dejado de ser necesarios. Para comprender la salida del LLM y verificar por uno mismo sus fundamentos y su corrección, es importante tener conocimientos especializados (aunque puede que pronto llegue el día en que ese trabajo pierda sentido...). En este documento, se parte de la premisa de utilizar el LLM no como un "dispositivo que da respuestas", sino como un "profesor con el que aprender juntos, un asistente en el momento del análisis".

Conocimientos previos necesarios para el análisis de malware

Primero, explicaré brevemente los conocimientos previos necesarios para el análisis de malware. Antes de aprender sobre análisis de malware, se necesitan como mínimo conocimientos de informática (ciencias de la computación).

  • Arquitectura de computadoras
  • Redes de computadoras
  • Sistemas operativos
  • Lenguajes de programación
  • Estructuras de datos y algoritmos
  • etc...

Sobre estos, creo que basta con comprender los contenidos que se cursan en la universidad o en escuelas técnicas. (Consultando el programa de estudios en línea de alguna universidad, etc., se puede conocer contenido más concreto.) En este documento, cómo aprender lenguajes de programación o ciencias de la computación queda fuera del alcance, pero los siguientes son materiales recomendados.

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

Conocimientos necesarios para el análisis de malware

Los conocimientos necesarios para el análisis de malware se dividen a grandes rasgos en los siguientes cinco.

  • Conocimientos sobre técnicas de análisis de malware, comportamiento del malware, e implementación y métodos de realización de las técnicas que explota
  • Conocimientos sobre el desarrollo de programas que son objeto de ingeniería inversa
  • Conocimientos sobre ingeniería inversa
  • Conocimientos sobre herramientas de análisis
  • Conocimientos sobre LLM y automatización del análisis

Conocimientos sobre técnicas de análisis de malware, comportamiento del malware, e implementación y métodos de realización de las técnicas que explota

Primero, es necesario aprender qué es el malware y qué tipo de trabajo se realiza en el análisis de malware. Presento materiales y libros recomendados para aprender sobre el análisis de malware en general.

  • セキュリティ・キャンプ全国大会2015でのマルウエア分析講義
    • Es una clase sobre análisis de malware impartida por Nakatsuru (@you0708) en el Security Camp Nacional 2015.
  • 初めてのマルウェア解析
    • Es un libro que trata desde los fundamentos hasta contenidos avanzados del análisis de malware en general, en japonés.
  • リバースエンジニアリングツールGhidra実践ガイド
    • Es un libro del que también soy autor, y permite aprender la implementación del malware a través del análisis estático usando Ghidra.
  • リバースエンジニアリング入門 @IT連載
    • Es un artículo que explica el análisis de shellcode, a cargo de Kawakotani, Aoki e Iwamura de Nippon Telegraph and Telephone Corporation.
  • アナライジング・マルウェア
    • Como se publicó en 2010, su contenido ha quedado desactualizado, pero es un libro poco común que aborda el análisis de malware con la restricción de no leer ensamblador.
  • MWS Cup
    • Es un concurso que pone a prueba las técnicas de análisis de malware, organizado por el comité de organización de MWS bajo el grupo de investigación de Seguridad Informática (CSEC) de la Sociedad de Procesamiento de Información de Japón. Los problemas y explicaciones de ediciones pasadas están publicados y resultan útiles como referencia.
  • CS6038/CS5138 Malware Analysis, UC
    • Material de clase sobre análisis de malware de la University of Cincinnati. Se actualiza cada año y también se distribuyen muestras para los ejercicios, por lo que es recomendable. Está publicado de forma gratuita.
  • Practical Malware Analysis
    • Libro en inglés que explica en detalle el análisis de malware en general. Como las muestras y las respuestas están publicadas, se puede aprender mientras se realizan los ejercicios.
  • malware_training_vol1 by hasherezade
    • Material de entrenamiento en análisis de malware de @hasherezade. Aunque es WIP, también se distribuyen muestras para los ejercicios, por lo que es recomendable.

También se recomiendan los entrenamientos en línea de análisis de malware.

  • The Beginner Malware Analysis Course
    • Entrenamiento de introducción al análisis de malware de @0verfl0w
  • From Zero to Hero
  • Entrenamiento práctico de análisis de malware de @0verfl0w y @vk_intel
  • Zero2Automated
  • Entrenamiento avanzado de análisis de malware de @0verfl0w y @vk_intel
  • OpenSecurityTraining2
    • Material de clase gratuito para aprender ensamblador x86/x64, ingeniería inversa, estructura interna de Windows, etc. También incluye ejercicios.

Presento páginas que recopilan el comportamiento del malware y las técnicas que explota.

  • Malware Behavior Catalog (MBC)
    • Catálogo especializado en análisis de malware que sistematiza los objetivos (Objective), comportamientos (Behavior) y características en el código del malware. Organiza los comportamientos importantes en el análisis de malware, vinculándolos con ATT&CK.
  • capa-rules
    • Colección de reglas que capa utiliza para identificar funcionalidades. Leyendo las reglas, se pueden aprender las características que las funcionalidades y técnicas representativas del malware presentan en el binario.
  • MITRE ATT&CK
    • Los métodos, técnicas y procedimientos de ataque están definidos como un framework, y es bueno para aprender no solo análisis de malware sino ciberseguridad en general.
  • ired.team
    • Presentación de técnicas usadas por pentesters, red teams y atacantes, y su implementación
  • malpedia
    • Se recopilan informes de análisis por cada familia de malware.
  • Ten process injection techniques: A technical survey of common and trending process injection techniques
    • Presentación de técnicas de inyección de código
  • Code Injection demos by hasherezade
    • Implementación de técnicas de inyección de código
  • Evasion techniques by cpr
    • Recopilación de técnicas de evasión del análisis de malware
  • Al-Khaser
    • Herramienta OSS y código fuente que implementa funcionalidades anti-análisis de malware

Los blogs e informes que tratan información de amenazas y análisis de malware publicados a diario también son fuentes de información importantes. Es conveniente configurar notificaciones de actualización con un lector RSS, etc. También hay sitios que los recopilan, por lo que se pueden aprovechar.

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

De entre estos, presento los que abordan análisis detallados de malware en japonés.

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

Además, leyendo reglas YARA se pueden aprender las características del malware.

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

Conocimientos sobre el desarrollo de programas que son objeto de ingeniería inversa

La ingeniería inversa no es más que una parte del análisis de malware, pero es un camino inevitable para convertirse en analista de malware. Solo con el análisis dinámico usando un sandbox o el análisis dinámico usando herramientas (exceptuando la depuración realizada manualmente), es difícil identificar la totalidad de las funcionalidades del malware o los algoritmos utilizados.

Para realizar ingeniería inversa, es necesario comprender el código fuente original. (Se asume el entorno Windows, que es común en el análisis de malware) Analizar malware sin experiencia en programación usando la Windows API sería un rodeo.

Microsoft publica documentación oficial y ejemplos de la Windows API. ※Hay que tener cuidado, ya que en ocasiones la visualización es extraña en las traducciones al japonés

  • Windows API - Microsoft Learn
  • Windows classic samples

Para aprender el funcionamiento del sistema operativo Windows, se recomiendan los siguientes libros.

  • インサイドWindows 第7版 上
    • Se pueden aprender los fundamentos de la estructura interna de Windows, como la arquitectura del sistema, procesos, hilos, gestión de memoria, I/O, etc.
  • インサイドWindows 第7版 下
    • Trata mecanismos del sistema, virtualización, diagnóstico y trazado, sistemas de archivos, procesamiento de arranque, etc.
  • Windowsセキュリティインターナル
    • Se pueden aprender la autenticación, autorización, auditoría y los mecanismos de seguridad del kernel de Windows, con experimentos usando PowerShell.

Conocer también lenguajes y runtimes distintos de C/C++

C/C++ sigue siendo muy importante para aprender ingeniería inversa de malware de Windows, por lo que lo recomiendo como primer lenguaje a aprender. Por otro lado, el objeto de análisis real no es solo C/C++. A fecha de 2026, resulta útil conocer al menos las características de los binarios y runtimes de lo siguiente.

  • C / C++: código nativo, Windows API, CRT, optimización del compilador
  • .NET: CLR, CIL/MSIL, metadatos, ofuscación
  • Go: runtime de Go, goroutine, información de cadenas y tipos, estructura binaria propia de Go
  • Rust: manejo de panic/unwind, name mangling, biblioteca estándar, generación de código por genéricos y optimización
  • Python: ejecutables empaquetados con PyInstaller, etc., bytecode de Python

No es necesario aprender todos los lenguajes en profundidad desde el principio. Hay que tener en cuenta que, cuando cambian los lenguajes de desarrollo o los runtimes, también cambian los conocimientos necesarios.

Conocimientos sobre ingeniería inversa

Una vez adquiridas las habilidades de programación en el lenguaje y entorno del objeto de análisis, pasemos a estudiar ingeniería inversa. Al analizar archivos PE de Windows, que son comunes en el análisis de malware, primero hagamos ingeniería inversa de programas introductorios en C o C++. Como siguiente paso, analicemos archivos PE que usen Win API y que hayamos compilado nosotros mismos (cuyo código fuente tengamos). Incluso con el mismo código fuente, si se cambian las opciones de proyecto, compilación o enlace seleccionadas y se observa qué cambios aparecen en el ejecutable, creo que se adquirirán bastantes habilidades de ingeniería inversa.

Método de estudio recomendado en 2026: hacer que un LLM cree programas de práctica

Antes recomendaba buscar ejemplos de Microsoft o código en GitHub y aprender reescribiéndolo. Este método sigue siendo válido, pero a fecha de 2026 también es muy eficaz hacer que un LLM o un Coding Agent cree pequeños programas adaptados a tu objetivo de aprendizaje.

Por ejemplo, primero se le pide que genere un programa pequeño de unas 10 a 50 líneas.```text CreateFileWとWriteFileを使ってテキストファイルを作成する、 できるだけ小さなWindows Cプログラムを作ってください。 リバースエンジニアリングの教材に使いたいので、 処理を複雑にせず、各Windows APIを使う理由も説明してください。

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

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

Por ejemplo, sería bueno comparar lo siguiente respecto al código fuente del mismo proceso.

  • Debug / Release
  • Sin optimización / Con optimización (-O0 / -O2, en MSVC /Od / /O2, etc.)
  • x86 / x64
  • Con símbolos / Sin símbolos
  • Diferentes compiladores como MSVC / Clang / GCC
  • Diferentes lenguajes como C / C++ / Rust / Go

Analizar un binario conociendo el código fuente original es un entrenamiento muy bueno para aprender ingeniería inversa.

Además, para perfeccionar las técnicas de ingeniería inversa, es recomendable resolver retos de Rev de CTF y Crackmes. En particular, se recomiendan los problemas de archivos PE y los dirigidos a analistas de malware.

  • The Flare On Challenge
    • CTF enfocado en técnicas de análisis de malware por parte del equipo FLARE de Mandiant (Google).
  • Beginner Malware Reversing Challenges by MalwareTech
    • Ejercicios para principiantes en análisis de malware por parte de MalwareTech
  • reversing.kr
    • Sitio de distribución de CrackMes, muchos en formato PE
  • crackmes.one
    • Sitio de publicación de CrackMes

Además, en la ingeniería inversa de malware a menudo se realiza ingeniería inversa del procesamiento de algoritmos criptográficos, por lo que se recomienda aprender sobre técnicas criptográficas básicas. Una vez que comprendas el algoritmo, lee el código fuente de implementaciones de algoritmos criptográficos de código abierto publicadas en GitHub, etc., y realiza ingeniería inversa en la práctica.

  • Introducción a la tecnología criptográfica 3ª edición
  • OpenSSL Project
  • Network Security Services
  • Crypto++ Library
  • wolfSSL

Conocimientos sobre herramientas de análisis

Al avanzar en el análisis de malware, usar mejores herramientas o dominarlas puede facilitar el análisis. Además, incluso teniendo diversos conocimientos, en la práctica se analiza a través de herramientas, por lo que es necesario comprender también cómo utilizarlas.

Para la gestión de instalación y actualización de herramientas de análisis, en entornos Windows es útil FLARE-VM publicada por Mandiant. Permite instalar de forma conjunta las herramientas necesarias para el análisis de malware y la ingeniería inversa.

En entornos Linux, se puede utilizar REMnux. Esta también reúne las herramientas necesarias para el análisis de malware, y se pueden consultar en la lista de herramientas incluidas.

Tanto FLARE-VM como REMnux permiten construir fácilmente un entorno de análisis de malware, por lo que se recomiendan también para quienes crean un entorno de análisis por primera vez. Al revisar las herramientas incluidas en cada uno y probarlas en la práctica, se puede aprender qué herramientas de análisis existen y en qué situaciones se utilizan.

Además, sería bueno probar también las herramientas presentadas en los siguientes enlaces.

  • awesome-reversing
  • Awesome Malware Analysis
  • Awesome Ghidra

Aprendizaje y análisis utilizando LLM y Coding Agents

Utilizar el LLM como profesor

Una de las formas útiles de usar un LLM es utilizarlo como un profesor al que se le puede preguntar en el momento lo que no se entiende. Antes de la aparición de los LLM, era necesario investigar por uno mismo lo que no se comprendía y entender su contenido. Especialmente en el caso de los principiantes, muchas veces no se sabía ni qué investigar, lo que creo que era uno de los obstáculos para el aprendizaje. Actualmente, un LLM con un alto nivel de conocimiento explica con paciencia tantas veces como sea necesario, adaptándose al nivel de comprensión de cada uno. Si no se entiende, basta con volver a preguntar, y también se puede usar diciendo "explícalo de forma más sencilla", "da un ejemplo concreto" o "confirma si esta comprensión es correcta". Creo que hemos llegado a una buena época en la que, si uno tiene motivación, puede aprender preguntando sin límite sobre lo que no entiende.

Por ejemplo, sobre los resultados de desensamblado o descompilación, se pueden hacer preguntas como las siguientes.```text この関数の役割と、そう判断できる理由を教えてください。

root@kitploit:~
## クイックスタート

### インストール

```bash
# リポジトリをクローン
git clone https://github.com/yourusername/kitploit-tool.git
cd kitploit-tool

# 依存関係をインストール
pip install -r requirements.txt

# ツールをインストール
python setup.py install

基本的な使用方法

root@kitploit:~
# 単一のターゲットをスキャン
python kitploit.py -t example.com

# 複数のターゲットをスキャン
python kitploit.py -f targets.txt

# 詳細出力を有効化
python kitploit.py -t example.com -v

# 結果をファイルに保存
python kitploit.py -t example.com -o results.json

設定

ツールは、設定ファイルを通じてカスタマイズできます。デフォルトの設定ファイルは config.yaml です:

root@kitploit:~
# スキャン設定
scan:
  timeout: 30
  threads: 10
  retries: 3

# 出力設定
output:
  format: json
  verbose: false

# API キー
api_keys:
  shodan: YOUR_API_KEY
  virustotal: YOUR_API_KEY

高度な使用方法

カスタムモジュール

独自のスキャンモジュールを作成できます:

root@kitploit:~
from kitploit.core import BaseModule

class CustomModule(BaseModule):
    def __init__(self):
        super().__init__()
        self.name = "custom"
    
    def run(self, target):
        # ここにカスタムロジックを記述
        return results

API 統合

ツールは、以下の外部 API との統合をサポートしています:

  • Shodan: インターネットに接続されたデバイスの検索
  • VirusTotal: ファイルと URL の分析
  • Censys: インターネット全体のスキャンデータ

トラブルシューティング

よくある問題

問題: インストール時に ModuleNotFoundError が発生する

解決策: 依存関係が正しくインストールされていることを確認してください:

root@kitploit:~
pip install --upgrade -r requirements.txt

問題: スキャンがタイムアウトする

解決策: 設定ファイルでタイムアウト値を増やしてください:

root@kitploit:~
scan:
  timeout: 60

貢献

貢献を歓迎します!以下の手順に従ってください:

  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 ファイルを参照してください。

免責事項

このツールは、教育および倫理的なテスト目的のみで提供されています。許可なくシステムをスキャンすることは違法です。ユーザーは、このツールの使用に関連するすべての法的責任を負います。```text このデコンパイル結果から変数の型を推定したいです。 型を判断するために、どの命令、API、参照先を確認すべきですか?

root@kitploit:~
## 検出ルール

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

```yaml
name: "Suspicious File Download Detection"
description: "Detects suspicious file downloads from web browsers"
severity: "medium"
enabled: true

conditions:
  - field: "process_name"
    operator: "in"
    values: ["chrome.exe", "firefox.exe", "msedge.exe", "iexplore.exe"]
  - field: "event_type"
    operator: "equals"
    value: "file_create"
  - field: "file_extension"
    operator: "in"
    values: [".exe", ".dll", ".scr", ".bat", ".cmd", ".ps1", ".vbs", ".js"]
  - field: "file_path"
    operator: "not_contains"
    values: ["\\AppData\\Local\\Temp\\", "\\Windows\\Temp\\"]

actions:
  - type: "alert"
    priority: "high"
    message: "Suspicious file download detected: {file_path}"
  - type: "quarantine"
    target: "{file_path}"
  - type: "log"
    level: "warning"
    message: "Download blocked and quarantined"

ルール2: プロセスインジェクションの検出

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

conditions:
  - field: "event_type"
    operator: "equals"
    value: "process_access"
  - field: "access_rights"
    operator: "contains_any"
    values: ["PROCESS_VM_WRITE", "PROCESS_VM_OPERATION", "PROCESS_CREATE_THREAD"]
  - field: "source_process"
    operator: "not_in"
    values: ["svchost.exe", "lsass.exe", "csrss.exe", "wininit.exe"]
  - field: "target_process"
    operator: "in"
    values: ["lsass.exe", "winlogon.exe", "services.exe", "explorer.exe"]

actions:
  - type: "alert"
    priority: "critical"
    message: "Potential process injection detected: {source_process} -> {target_process}"
  - type: "block"
    target: "{source_process}"
  - type: "forensics"
    capture: ["memory_dump", "process_tree", "network_connections"]

ルール3: 永続化メカニズムの検出

root@kitploit:~
name: "Persistence Mechanism Detection"
description: "Detects common persistence mechanisms"
severity: "high"
enabled: true

conditions:
  - field: "event_type"
    operator: "in"
    values: ["registry_modify", "service_create", "scheduled_task_create"]
  - field: "registry_path"
    operator: "contains_any"
    values: [
      "\\CurrentVersion\\Run",
      "\\CurrentVersion\\RunOnce",
      "\\CurrentVersion\\Windows\\Load",
      "\\CurrentVersion\\Windows\\Run"
    ]
  - field: "process_name"
    operator: "not_in"
    values: ["msiexec.exe", "setup.exe", "installer.exe"]

actions:
  - type: "alert"
    priority: "high"
    message: "Persistence mechanism detected: {registry_path}"
  - type: "log"
    level: "warning"
    message: "Registry modification logged for analysis"
  - type: "collect"
    artifacts: ["registry_key", "process_info", "file_info"]

ルール4: 疑わしいネットワーク接続の検出

root@kitploit:~
name: "Suspicious Network Connection Detection"
description: "Detects suspicious outbound network connections"
severity: "medium"
enabled: true

conditions:
  - field: "event_type"
    operator: "equals"
    value: "network_connect"
  - field: "destination_port"
    operator: "in"
    values: [4444, 5555, 6666, 7777, 8888, 9999, 31337, 12345]
  - field: "process_name"
    operator: "not_in"
    values: ["svchost.exe", "chrome.exe", "firefox.exe", "msedge.exe"]

actions:
  - type: "alert"
    priority: "medium"
    message: "Suspicious network connection: {process_name} -> {destination_ip}:{destination_port}"
  - type: "log"
    level: "info"
    message: "Network connection logged"

ルール5: 特権昇格の検出

root@kitploit:~
name: "Privilege Escalation Detection"
description: "Detects potential privilege escalation attempts"
severity: "critical"
enabled: true

conditions:
  - field: "event_type"
    operator: "equals"
    value: "token_manipulation"
  - field: "privilege"
    operator: "in"
    values: ["SeDebugPrivilege", "SeImpersonatePrivilege", "SeAssignPrimaryTokenPrivilege"]
  - field: "process_name"
    operator: "not_in"
    values: ["lsass.exe", "services.exe", "winlogon.exe"]

actions:
  - type: "alert"
    priority: "critical"
    message: "Privilege escalation attempt detected: {process_name}"
  - type: "block"
    target: "{process_name}"
  - type: "forensics"
    capture: ["memory_dump", "token_info", "process_tree"]

カスタムルールの作成

ルールテンプレート

root@kitploit:~
name: "Custom Rule Name"
description: "Description of what this rule detects"
severity: "low|medium|high|critical"
enabled: true

# 検出条件
conditions:
  - field: "field_name"
    operator: "equals|contains|in|not_in|regex|gt|lt|gte|lte"
    value: "single_value"
    # または
    values: ["value1", "value2", "value3"]

# アクション
actions:
  - type: "alert|block|quarantine|log|collect|forensics"
    priority: "low|medium|high|critical"
    message: "Alert message with {field} placeholders"
    target: "{field_name}"
    level: "info|warning|error|critical"
    capture: ["artifact1", "artifact2"]
    artifacts: ["artifact1", "artifact2"]

利用可能なフィールド

利用可能な演算子

利用可能なアクション

ルールのテスト

root@kitploit:~
# ルールをテスト
python -m src.rule_engine.test_rule --rule custom_rule.yaml --event test_event.json

# ルールを検証
python -m src.rule_engine.validate_rule --rule custom_rule.yaml

# すべてのルールを一覧表示
python -m src.rule_engine.list_rules --directory rules/

# ルールをリロード
python -m src.rule_engine.reload_rules --config config.yaml

ルールのデプロイ

root@kitploit:~
# ルールをデプロイ
python -m src.rule_engine.deploy_rule --rule custom_rule.yaml --target production

# ルールをエクスポート
python -m src.rule_engine.export_rules --output rules_backup.yaml

# ルールをインポート
python -m src.rule_engine.import_rules --input rules_backup.yaml
``````text
このWindows API呼び出しの前後で使われている構造体について説明してください。
各フィールドを確認するためにGhidra上でどこを見るべきかも教えてください。

検出ルール

ルール1: 危険なコマンド実行

root@kitploit:~
id: dangerous-command-execution
name: 危険なコマンド実行の検出
severity: critical
action: block
patterns:
  - "rm -rf /"
  - "curl.*\\|.*sh"
  - "wget.*\\|.*bash"
  - "eval.*base64"
  - "nc -e /bin/sh"
  - "bash -i >& /dev/tcp/"

ルール2: 機密ファイルアクセス

root@kitploit:~
id: sensitive-file-access
name: 機密ファイルへのアクセス検出
severity: high
action: alert
patterns:
  - "\\.ssh/id_rsa"
  - "\\.aws/credentials"
  - "\\.env"
  - "etc/passwd"
  - "etc/shadow"
  - "\\.kube/config"

ルール3: プロンプトインジェクション

root@kitploit:~
id: prompt-injection
name: プロンプトインジェクションの検出
severity: high
action: block
patterns:
  - "ignore previous instructions"
  - "disregard.*system prompt"
  - "you are now"
  - "new instructions:"
  - "forget everything"

ルール4: データ漏洩

root@kitploit:~
id: data-exfiltration
name: データ漏洩の検出
severity: critical
action: block
patterns:
  - "curl.*-d.*@"
  - "wget.*--post-file"
  - "base64.*\\|.*curl"
  - "cat.*\\|.*nc"

カスタムルールの作成

ルールテンプレート

root@kitploit:~
id: my-custom-rule
name: カスタムルール名
description: このルールが検出する内容の説明
severity: high  # critical, high, medium, low
action: block   # block, alert, log
patterns:
  - "regex-pattern-1"
  - "regex-pattern-2"
conditions:
  - field: command
    operator: contains
    value: "suspicious"
tags:
  - custom
  - security

ルールのテスト

root@kitploit:~
# ルールをテスト
python -m ai_agent_security.cli test-rule --rule my-rule.yaml --input "test command"

# すべてのルールを検証
python -m ai_agent_security.cli validate-rules --dir rules/

設定

メイン設定ファイル

root@kitploit:~
# config.yaml
version: "1.0"

# エージェント設定
agent:
  name: "my-agent"
  type: "claude-code"  # claude-code, cursor, custom
  timeout: 300

# セキュリティ設定
security:
  # 検出レベル: strict, balanced, permissive
  level: "balanced"
  
  # ブロックモード: true の場合、危険な操作をブロック
  block_mode: true
  
  # ログレベル: debug, info, warn, error
  log_level: "info"
  
  # ルールディレクトリ
  rules_dir: "./rules"
  
  # カスタムルール
  custom_rules:
    - "./custom-rules/*.yaml"

# 通知設定
notifications:
  # コンソール出力
  console:
    enabled: true
    color: true
  
  # Slack 通知
  slack:
    enabled: false
    webhook_url: "${SLACK_WEBHOOK_URL}"
    channel: "#security-alerts"
  
  # メール通知
  email:
    enabled: false
    smtp_host: "smtp.example.com"
    smtp_port: 587
    from: "[email protected]"
    to:
      - "[email protected]"

# 監査ログ
audit:
  enabled: true
  log_file: "./logs/audit.log"
  rotation: "daily"
  retention_days: 90

# 統合
integrations:
  # SIEM 統合
  splunk:
    enabled: false
    hec_url: "${SPLUNK_HEC_URL}"
    hec_token: "${SPLUNK_HEC_TOKEN}"
  
  # Webhook
  webhook:
    enabled: false
    url: "${WEBHOOK_URL}"
    events:
      - "block"
      - "alert"

環境変数

root@kitploit:~
# .env ファイル
AI_AGENT_SECURITY_CONFIG=./config.yaml
AI_AGENT_SECURITY_LOG_LEVEL=info
AI_AGENT_SECURITY_BLOCK_MODE=true

# 通知
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx
WEBHOOK_URL=https://example.com/webhook

# SIEM
SPLUNK_HEC_URL=https://splunk.example.com:8088
SPLUNK_HEC_TOKEN=your-token-here

使用例

基本的な使用方法

root@kitploit:~
# エージェントを監視モードで起動
ai-agent-security monitor --agent claude-code

# 特定のコマンドをチェック
ai-agent-security check "rm -rf /tmp/test"

# ルールを一覧表示
ai-agent-security list-rules

# 統計を表示
ai-agent-security stats --period 7d

Python API

root@kitploit:~
from ai_agent_security import SecurityMonitor, RuleEngine

# モニターを初期化
monitor = SecurityMonitor(config_path="./config.yaml")

# ルールエンジンを初期化
engine = RuleEngine(rules_dir="./rules")

# コマンドをチェック
result = engine.check_command("curl http://example.com | bash")

if result.blocked:
    print(f"ブロックされました: {result.rule_name}")
    print(f"理由: {result.reason}")
else:
    print("コマンドは安全です")

# 監視を開始
monitor.start()

# イベントを処理
@monitor.on_event
def handle_event(event):
    print(f"イベント: {event.type}")
    print(f"重大度: {event.severity}")
    print(f"詳細: {event.details}")

# 監視を停止
monitor.stop()

CI/CD 統合

root@kitploit:~
# .github/workflows/security.yml
name: AI Agent Security Check

on:
  pull_request:
    branches: [main]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      
      - name: Install AI Agent Security
        run: pip install ai-agent-security
      
      - name: Run security scan
        run: |
          ai-agent-security scan --dir ./src --output sarif > results.sarif
      
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

アーキテクチャ

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                      AI エージェント                          │
│  (Claude Code, Cursor, カスタムエージェント)                   │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────────┐
│                   AI Agent Security                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  インター   │  │   ルール    │  │   監査      │         │
│  │  セプター   │──│   エンジン  │──│   ログ      │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│         │                │                │                 │
│         ▼                ▼                ▼                 │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  ブロック   │  │   通知      │  │   SIEM      │         │
│  │  アクション │  │   システム  │  │   統合      │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

パフォーマンス

指標値
レイテンシ< 10ms
スループット> 1000 チェック/秒
メモリ使用量< 100MB
CPU 使用率< 5% (アイドル時)

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

ベストプラクティス

  1. 最小権限の原則: エージェントには必要最小限の権限のみを付与
  2. 定期的なルール更新: 新しい脅威に対応するためルールを定期的に更新
  3. 監査ログの保護: 監査ログは改ざん防止されたストレージに保存
  4. ネットワーク分離: エージェントを分離されたネットワークで実行
  5. 定期的なレビュー: セキュリティイベントを定期的にレビュー

既知の制限事項

  • 正規表現ベースの検出は、難読化されたコマンドを検出できない場合があります
  • ゼロデイ攻撃に対する完全な保護は保証できません
  • パフォーマンスとセキュリティのトレードオフを考慮する必要があります

トラブルシューティング

よくある問題

問題: ルールが適用されない

root@kitploit:~
# ルールファイルの構文を確認
ai-agent-security validate-rules --dir ./rules

# デバッグモードで実行
ai-agent-security monitor --debug

問題: パフォーマンスが低下する

root@kitploit:~
# ルールの数を確認
ai-agent-security list-rules --count

# 不要なルールを無効化
ai-agent-security disable-rule --id unnecessary-rule

問題: 誤検知が多い

root@kitploit:~
# 誤検知を報告
ai-agent-security report-false-positive --rule rule-id --input "command"

# ルールを調整
ai-agent-security tune-rule --id rule-id --threshold 0.8

貢献

貢献を歓迎します!詳細については CONTRIBUTING.md を参照してください。

開発環境のセットアップ

root@kitploit:~
# リポジトリをクローン
git clone https://github.com/example/ai-agent-security.git
cd ai-agent-security

# 仮想環境を作成
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 依存関係をインストール
pip install -e ".[dev]"

# テストを実行
pytest tests/ -v

# リントを実行
ruff check .
mypy src/

ライセンス

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

謝辞

  • Claude Code - AI コーディングエージェント
  • Cursor - AI コードエディタ
  • すべての貢献者とコミュニティメンバー

サポート

  • 📖 ドキュメント
  • 💬 Discord コミュニティ
  • 🐛 Issue トラッカー
  • 📧 メールサポート

⚠️ 免責事項: このツールは追加のセキュリティ層を提供しますが、完全なセキュリティソリューションではありません。多層防御戦略の一部として使用してください。```text このアセンブリを1命令ずつ説明するのではなく、 まずbasic blockごとの役割を整理して、私が自分で処理を推定できるようにヒントをください。

root@kitploit:~
## セキュリティに関する考慮事項

### 認証情報の取り扱い

- **APIキーをハードコードしないでください。** 環境変数またはシークレットマネージャーを使用してください。
- **認証情報をバージョン管理にコミットしないでください。** `.gitignore` に `.env` や `*.key` などのパターンを追加してください。
- **定期的にキーをローテーションしてください。** 漏洩の疑いがある場合は、直ちに無効化して再発行してください。

### ネットワークセキュリティ

- 本番環境では、すべての通信に **TLS 1.2 以上** を使用してください。
- 受信接続を **ファイアウォールルール** で制限し、必要なポートのみを開放してください。
- 内部サービスを公共のインターネットに直接公開しないでください。リバースプロキシまたは VPN を使用してください。

### 依存関係の管理

- 依存関係を最新の状態に保ち、既知の脆弱性を定期的に確認してください。
- `npm audit`、`pip-audit`、`cargo audit` などのツールを CI パイプラインに統合してください。
- ロックファイル(`package-lock.json`、`poetry.lock`、`Cargo.lock`)を必ずコミットしてください。

### ログと監視

- 認証の失敗、権限昇格の試み、異常なトラフィックパターンを監視してください。
- ログに **パスワード、トークン、個人を特定できる情報(PII)** を記録しないでください。
- アラートを設定し、重大なイベントに迅速に対応できるようにしてください。

### インシデント対応

セキュリティインシデントが発生した場合:

1. **影響範囲を特定** し、侵害されたシステムを隔離します。
2. **証拠を保全** します(ログ、メモリダンプ、ディスクイメージ)。
3. **関係者に通知** し、必要に応じて規制当局に報告します。
4. **根本原因を分析** し、再発防止策を実施します。
5. **事後レビュー** を実施し、教訓を文書化します。

---

## 貢献

貢献を歓迎します!以下の手順に従ってください:

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

### コーディング規約

- 既存のコードスタイルに従ってください。
- 新機能にはテストを追加してください。
- ドキュメントを更新してください。
- コミットメッセージは明確かつ簡潔にしてください。

### バグ報告

バグを報告する際は、以下の情報を含めてください:

- **再現手順**: バグを再現するための明確な手順。
- **期待される動作**: 何が起こるべきか。
- **実際の動作**: 実際に何が起こるか。
- **環境**: OS、バージョン、その他の関連情報。
- **スクリーンショット**: 該当する場合は添付してください。

---

## ライセンス

このプロジェクトは [MIT License](https://github.com/pinksawtooth/how_to_become_a_malware_analyst/blob/main/LICENSE) の下でライセンスされています。詳細については `LICENSE` ファイルを参照してください。

---

## 謝辞

- すべての貢献者とメンテナーに感謝します。
- このプロジェクトを可能にしたオープンソースコミュニティに感謝します。
- インスピレーションを与えてくれた類似プロジェクトに感謝します。

---

## サポート

質問やサポートが必要な場合:

- [GitHub Issues](https://github.com/example/project/issues) で問題を報告してください。
- [Discussions](https://github.com/example/project/discussions) で質問してください。
- [ドキュメント](https://example.com/docs) を参照してください。

---

**最終更新**: 2024年```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フレームワークの機能や特徴を比較するための一覧
Descargar herramienta
  • Malware Analysis - CSCI 4976
    • Material de clase sobre análisis de malware del Rensselaer Polytechnic Institute. También se distribuyen muestras para los ejercicios.
  • Workshop by Malware Unicorn
    • Material de taller sobre ingeniería inversa de @malwareunicorn.
  • Youtube channel by SANS Digital Forensics and Incident Response
    • Canal de Youtube relacionado con DFIR de SANS, un entrenamiento de seguridad de fama mundial.
  • Youtube channel by OALabs
    • Canal de Youtube de OALabs centrado en vídeos de análisis de malware.
  • Youtube channel by hasherezade
    • Canal de Youtube de hasherezade centrado en vídeos de análisis de malware.
  • RecommendationofPerfectUnpacking
    • Material sobre técnicas de desempaquetado de Nakatsuru (@you0708).
  • 同人誌 by Allsafe
    • Es el fanzine del círculo doujin Allsafe, al que pertenezco, centrado principalmente en ingeniería inversa y técnicas de análisis de malware.
  • Malware Analysis at Scale ~ Defeating EMOTET by Ghidra ~ by Allsafe
    • Material del taller de análisis de Emotet de Allsafe.
    • Scripts distribuidos
  • Advanced Binary Deobfuscation
    • Clase de @ntddk sobre ofuscación de binarios y técnicas para deshacerla, en GCC Tokyo y el Security Camp Nacional 2020.
  • MÖBIUS STRIP REVERSE ENGINEERING
    • Abundan los artículos de análisis que aprovechan conocimientos de ciencias de la computación y la estructura interna de IDA. recommended by ntddk.
  • リバースエンジニアリングバイブル
    • Buen libro que explica con cuidado y para principiantes, en japonés.
  • デバッガによるx86プログラム解析入門 x64対応版
    • Si quieres aprender depuración en japonés, este es el primero que recomiendo.
  • マルウエアの教科書 増補改訂版
    • Libro de Takashi Yoshikawa que abarca ampliamente desde los fundamentos del malware, las técnicas de ataque, el ransomware, hasta los métodos de análisis. También explica de forma concreta cómo empezar el análisis, por lo que es recomendable para que los principiantes capten la imagen general del malware.
  • 実践バイナリ解析
    • Trata formatos binarios, desensamblado, instrumentación de binarios, análisis dinámico de taint, ejecución simbólica, etc. Está centrado en Linux/ELF, pero es útil para aprender sistemáticamente el análisis de binarios en sí mismo.
  • マスタリングGhidra
    • Libro de referencia integral que trata en detalle desde las operaciones básicas de Ghidra hasta tipos de datos, scripts, extensiones, etc.
  • 実践 メモリフォレンジック
    • Centrado en el análisis forense de memoria usando Volatility, trata procesos, redes, inyección de código, análisis de malware, etc.
  • 脅威インテリジェンスの教科書
    • No es un libro de análisis de malware, pero permite aprender la forma de pensar para vincular las muestras analizadas, los IoC y las técnicas de ataque con información sobre campañas y atacantes.
  • フィールド説明例
    process_nameプロセス名chrome.exe
    process_idプロセスID1234
    parent_process親プロセス名explorer.exe
    command_lineコマンドライン引数-enc <base64>
    file_pathファイルパスC:\temp\file.exe
    file_extensionファイル拡張子.exe
    file_hashファイルハッシュa1b2c3...
    registry_pathレジストリパスHKLM\...\Run
    registry_valueレジストリ値malware
    network_protocolネットワークプロトコルTCP
    source_ip送信元IPアドレス192.168.1.100
    destination_ip宛先IPアドレス10.0.0.1
    destination_port宛先ポート443
    user_nameユーザー名admin
    event_typeイベントタイプprocess_create
    timestampタイムスタンプ2024-01-01T12:00:00Z
    演算子説明例
    equals完全一致field equals "value"
    not_equals不一致field not_equals "value"
    contains部分一致field contains "substring"
    not_contains部分不一致field not_contains "substring"
    inリスト内に存在field in ["a", "b", "c"]
    not_inリスト内に存在しないfield not_in ["a", "b", "c"]
    contains_anyいずれかを含むfield contains_any ["a", "b"]
    contains_allすべてを含むfield contains_all ["a", "b"]
    regex正規表現マッチfield regex "^[a-z]+$"
    gtより大きいfield gt 100
    ltより小さいfield lt 100
    gte以上field gte 100
    lte以下field lte 100
    アクション説明パラメータ
    alertアラートを生成priority, message
    blockプロセス/接続をブロックtarget
    quarantineファイルを隔離target
    logログに記録level, message
    collectアーティファクトを収集artifacts
    forensicsフォレンジックデータをキャプチャcapture