Gutem/abusech-sdk

GitHub: Gutem/abusech-sdk

面向 abuse.ch 恶意软件威胁情报平台的 JavaScript/TypeScript 客户端 SDK,提供 MalwareBazaar 模块的 25 个 API 方法及 CLI 工具。

Stars: 0 | Forks: 0

# abuse.ch SDK 针对 [abuse.ch](https://abuse.ch) API 的 JavaScript/TypeScript 客户端 —— 最大的开源恶意软件威胁情报平台。包含 **150 万+ 恶意软件样本**、**300 万+ 恶意 URL** 以及 **IOC 共享**。 | API | 模块 | 状态 | |-----|--------|--------| | **MalwareBazaar** | `abusech-sdk/malwarebazaar` | ✅ 25 个方法 | | **URLhaus** | `abusech-sdk/urlhaus` | 🔜 计划中 | | **ThreatFox** | `abusech-sdk/threatfox` | 🔜 计划中 | 零依赖。支持 **Bun**、**Node.js**、**Deno**、**Cloudflare Workers**。 ``` bun add abusech-sdk # 在 https://auth.abuse.ch/ 免费注册获取 API key export ABUSE_CH_KEY=your-key ``` ## 快速开始 ``` import { MalwareBazaar } from 'abusech-sdk/malwarebazaar'; const mb = new MalwareBazaar(process.env.ABUSE_CH_KEY); // Latest tagged malware (24h) const detections = await mb.recentDetections({ hours: 24, limit: 50 }); // Sample metadata by hash const info = await mb.searchByHash('46faab8ab153fae...'); console.log(info.signature, info.file_type, info.tags); // Download a sample (zip, password: "infected") const bytes = await mb.downloadSample('46faab8ab153fae...'); await Bun.write('/tmp/malware.zip', bytes); // Search Shai-Hulud samples const shai = await mb.searchByTag('Shai-Hulud', 100); // Fuzzy hash search const byImphash = await mb.searchByImphash('f34d5f2d4577ed6d'); ``` ## CLI ``` bun src/cli.js hash 46faab8ab153fae... bun src/cli.js download 46faab8ab153fae... ./malware.zip bun src/cli.js recent 24 50 bun src/cli.js tag Shai-Hulud 100 bun src/cli.js sig TrickBot 50 bun src/cli.js type elf 20 ``` ## API 参考 — MalwareBazaar ### 构造函数 ``` const mb = new MalwareBazaar(apiKey, { baseUrl: 'https://mb-api.abuse.ch/api/v1/', // default timeoutMs: 60000, // AbortController timeout fetch: customFetch, // for CF Workers }); ``` ### 核心(2 个方法) | 方法 | 描述 | |--------|-------------| | `searchByHash(hash)` | SHA256/SHA1/MD5 → 完整元数据 + 厂商情报 | | `downloadSample(sha256)` | 原始 zip 字节 (密码: `infected`) | ### 列表 (2) | 方法 | 描述 | |--------|-------------| | `recentDetections({hours, limit})` | 带标签的恶意软件(最近 N 小时) | | `recentAdditions(selector?)` | 最新上传 | ### 按元数据搜索 (4) | 方法 | 查询 | |--------|-------| | `searchByTag(tag, limit)` | `get_taginfo` | | `searchBySignature(sig, limit)` | `get_siginfo` | | `searchByFileType(type, limit)` | `get_file_type` | | `searchByClamAV(sig, limit)` | `get_clamavinfo` | ### 模糊哈希 (5) | 方法 | 哈希类型 | |--------|-----------| | `searchByImphash(h, limit)` | PE 导入哈希 | | `searchByTLSH(h, limit)` | Trend Micro TLSH | | `searchByTelfhash(h, limit)` | ELF 哈希 | | `searchByGimphash(h, limit)` | Go 二进制哈希 | | `searchByDhashIcon(h, limit)` | PE 图标 dhash | ### YARA 与证书 (4) | 方法 | 查询 | |--------|-------| | `searchByYARA(rule, limit)` | YARA 规则命中 | | `searchByCertificateIssuer(cn, limit)` | 签名证书颁发者 | | `searchByCertificateSubject(cn, limit)` | 签名证书主题 | | `searchByCertificateSerial(sn, limit)` | 签名证书序列号 | ### 写入操作 (3) | 方法 | 描述 | |--------|-------------| | `uploadSample(bytes, opts)` | 上传 + 元数据 (multipart) | | `updateEntry(sha256, fields)` | 更新标签/签名 | | `addComment(sha256, comment)` | 添加分析师评论 | | 方法 | 描述 | |--------|-------------| | `getCSCB()` | 代码签名证书黑名单 | ## 许可证 MIT © [gutem](https://github.com/gutem)
标签:API客户端, CMS安全, DAST, JavaScript, MITM代理, TypeScript, 威胁情报, 安全插件, 开发者工具, 恶意软件分析, 数据可视化, 程序员工具, 自定义脚本