
사이버보안 및 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 서버, 웹 앱이 시작됩니다. 데이터베이스 스키마는 자동으로 적용됩니다.
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 변경이 필요하지 않습니다.
| 플러그인 유형 | 사용 사례 | 상태 |
|---|
| Export | IOC 내보내기 형식 (STIX, CSV, MISP, OpenIOC) | 사용 가능 |
| Enrichment | IOC 조회 (VirusTotal, Shodan, AbuseIPDB) | 계획됨 |
| IOC Patterns | 사용자 지정 지표 유형 (YARA, Bitcoin, MITRE ATT&CK) | 계획됨 |
| Import | 피드 수집 (TAXII, MISP, OpenCTI) | 계획됨 |