
オープンソースの共同ノート作成プラットフォームで、サイバーセキュリティおよびCTIチーム向け。IOC自動抽出、STIX 2.1エクスポート、リアルタイム編集、RBAC、バージョン履歴、監査ログ。Dockerでセルフホスト。
サイバー脅威インテリジェンス(CTI)およびセキュリティ運用チーム向けに構築された、コラボレーティブでリアルタイムなノート作成プラットフォーム。
ThreatPadは、現代の生産性ツールのスピードとCTI固有の機能(IOC自動抽出、STIX 2.1エクスポート、構造化された脅威テンプレート、きめ細かなアクセス制御)を組み合わせています。
ライブデモ — [email protected] / password123 でログイン


必要なのは Docker だけです。
git clone https://github.com/bhavikmalhotra/ThreatPad.git
cd ThreatPad
docker compose -f docker-compose.prod.yml up -d --build
http://localhost:3000 を開くと、管理者アカウントの作成手順が表示されます。
これにより、PostgreSQL、Redis、APIサーバー、Webアプリが起動します。データベーススキーマは自動的に適用されます。
必要なもの: Node.js 22+ と pnpm 9+
pnpm install
cp .env.example .env
docker compose up -d # Postgres + Redis
pnpm --filter @threatpad/db push
pnpm --filter @threatpad/db seed # オプションのデモデータ
pnpm dev
[email protected] / password123 (シードデータがある場合)ThreatPadはレジストリベースのプラグインシステムを使用します。エクスポートが最初のプラグインタイプであり、今後さらに追加予定です。
apps/server/src/plugins/exporters/ 内にファイルを作成します:
import type { ExportPlugin } from '@threatpad/shared/types';
export const myExporter: ExportPlugin = {
key: 'myformat',
label: 'My Format',
fileExtension: '.xml',
contentType: 'application/xml',
async export({ noteId, iocs, note }) {
const xml = buildXml(iocs);
return { data: xml, contentType: 'application/xml', filename: `iocs-${noteId}.xml` };
},
};
apps/server/src/plugins/exporters/index.ts に登録します:
import { myExporter } from './my-exporter.js';
exportRegistry.register(myExporter);
フロントエンドは新しいフォーマットを自動検出するため、UIの変更は不要です。
| プラグインタイプ | ユースケース | ステータス |
|---|
| エクスポート | IOCエクスポート形式(STIX, CSV, MISP, OpenIOC) | 利用可能 |
| エンリッチメント | IOCルックアップ(VirusTotal, Shodan, AbuseIPDB) | 計画中 |
| IOCパターン | カスタムインジケータータイプ(YARA, Bitcoin, MITRE ATT&CK) | 計画中 |
| インポート | フィードからの取り込み(TAXII, MISP, OpenCTI) | 計画中 |