The-Root-Access-Network/ubuntu-scam-bank

GitHub: The-Root-Access-Network/ubuntu-scam-bank

一个众包式诈骗威胁情报平台,让社区成员报告诈骗信息并获取积分,同时为安全研究人员提供结构化的开放威胁数据源。

Stars: 0 | Forks: 0

# UbuntuScamBank **UbuntuScamBank** 是一个由 [The Root Access Network (TRAN)](https://therootaccessnetwork.com) 在 [Unbuntu Bridge Initiative (UBI)](https://ubuntubridgeinitiatives.org/) 下构建的众包威胁情报平台。任何人都可以报告他们收到的诈骗信息,通过贡献获取积分,并帮助保护社区中的其他人。安全研究人员可以访问一个干净、开放的真实世界威胁数据源。 ## 🎯 核心功能 - **报告** — 提交您收到的诈骗信息(SMS、电子邮件、WhatsApp、电话、链接等) - **获取积分** — 通过已验证的报告获取积分,帮助他人保持安全 - **保护** — 浏览和搜索社区诈骗信息源,在威胁降临之前识别它们 - **研究** — 安全研究人员可访问结构化、开放的众包威胁情报源 ## 🔁提交流程 以下是用户在 60 秒内提交诈骗报告的流程: ![提交流程](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8b1ed5a3aa182020.svg) 首次报告无需账户 —— 您的账户会在提交后自动创建,以跟踪您的贡献积分。我们的 AI 会在公开存储报告之前,自动清除敏感的个人数据(姓名、电话、回复地址等)。 ## 🛠️ 技术栈 | 层级 | 技术 | | --------------- | -------------------------------------------------------------------------------------------------------- | | Frontend | [Next.js](https://nextjs.org/) + TypeScript | | Backend / API | Next.js API Routes | | Database & Auth | [Supabase](https://supabase.com/) (PostgreSQL + Auth + Storage) | | Deployment | 通过 [OpenNext](https://opennext.js.org/cloudflare) 部署到 [Cloudflare Workers](https://workers.cloudflare.com/) | ### 系统架构 我们的三层架构确保了可扩展性、安全性和可靠性: ![平台架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e0294b4a72182026.svg) **关键组件:** - **表现层** — React PWA 前端,包含上传向导、排行榜和信息流 - **逻辑层** — API 网关 (Supabase/Cloudflare)、AI 分诊服务、积分计算和研究人员导出 - **数据层** — 用于报告的 PostgreSQL,用于缓存/排行榜的 Redis,用于加密文件存储的 S3/R2,以及用于搜索的 Elasticsearch - **安全层** — 包含 AI 扫描、人工审核和敏感数据清除的审核流水线;带有 REST API 和 STIX/TAXII 导出的开放研究人员信息源 ## 🚀 快速开始 ### 前置条件 - [Node.js](https://nodejs.org/) v18+ - [npm](https://www.npmjs.com/) 或 [yarn](https://yarnpkg.com/) - 一个 [Supabase](https://supabase.com/) 项目(免费版即可) ### 安装 ``` # 克隆仓库 git clone https://github.com/TheRootAccessNetwork/ubuntu-scam-bank.git cd ubuntu-scam-bank # 安装依赖 npm install # 设置环境变量 cp .env.example .env.local # 在 .env.local 中填入你的 Supabase URL 和 anon key ``` ### 环境变量 在根目录下创建一个 `.env.local` 文件,包含以下内容: ``` NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key ``` ### 本地运行 ``` npm run dev ``` 在浏览器中打开 [http://localhost:3000](http://localhost:3000)。 ### 预览(Cloudflare Workers runtime) 要在本地实际的 Cloudflare Workers runtime 中测试应用程序: ``` npm run preview ``` 在浏览器中打开 [http://localhost:8787](http://localhost:8787)。 这比 `npm run dev` 更接近生产环境 —— 在提交 PR 或测试 API 路由和 middleware 行为之前,请使用此方法进行测试。 ### 线上 URL **_[https://ubuntu-scam-bank.therootaccessnetwork.workers.dev/](https://ubuntu-scam-bank.therootaccessnetwork.workers.dev/)_** ## 📁 项目结构 ``` ubuntu-scam-bank/ ├── src/ │ ├── app/ │ │ ├── (public)/ # Route group — public-facing pages │ │ │ └── page.tsx # Homepage (move the default page.tsx here) │ │ ├── api/ # API routes │ │ │ ├── reports/ │ │ │ │ └── route.ts # GET /api/reports │ │ │ ├── submit/ │ │ │ │ └── route.ts # POST /api/submit │ │ │ └── triage/ │ │ │ └── route.ts # Internal: Claude triage pipeline │ │ ├── globals.css │ │ ├── layout.tsx # Root layout │ │ └── not-found.tsx │ ├── components/ │ │ ├── ui/ # Primitive components (Button, Badge, Card...) │ │ ├── layout/ # Nav, Footer, PageWrapper │ │ ├── forms/ # SubmissionForm, TypeSelector, SeverityPicker │ │ └── feed/ # FeedCard, FeedList, FeedFilters │ ├── lib/ │ │ ├── supabase/ │ │ │ ├── client.ts # Browser Supabase client │ │ │ ├── server.ts # Server-side Supabase client │ │ │ └── middleware.ts # Session refresh helper │ │ ├── ai/ │ │ │ ├── triage.ts # Claude triage pipeline (from AI_TRIAGE.md) │ │ │ └── prompts.ts # System prompt — kept separate for easy editing │ │ ├── points/ │ │ │ └── calculate.ts # Points + bonus logic │ │ └── utils.ts # cn() helper, formatters, etc. │ ├── types/ │ │ ├── database.ts # Supabase table types (you'll generate these later) │ │ └── triage.ts # TriageResult, PointsResult interfaces │ └── hooks/ # Custom React hooks (useReports, useLeaderboard, etc.) │ └── .gitkeep ├── public/ ├── .env.local # Never committed ├── .env.example # Committed — template with no real values ├── middleware.ts # Next.js middleware (Supabase session refresh) ├── next.config.ts ├── open-next.config.ts ├── tailwind.config.ts ├── tailwind.config.ts ├── tsconfig.json ├── wrangler.jsonc └── package.json ``` ## 设计指南 - 编写组件时的参考 | 需求 | Tailwind class | | -------------------------------- | ------------------------------ | | 品牌绿色背景 | `bg-brand` | | 深绿色文本(用于浅色徽章) | `text-brand-dark` | | 浅绿色卡片背景 | `bg-brand-light` | | 钓鱼徽章 | `bg-phishing-bg text-phishing` | | 高危严重性圆点 | `bg-severity-high` | | 白色卡片表面 | `bg-canvas` | | 米白色页面背景 | `bg-canvas-subtle` | | 主要正文文本 | `text-fg` | | 次要/静音文本 | `text-fg-muted` | | 细微边框(0.5px 卡片) | `border-stroke-faint` | | 卡片阴影 | `shadow-card` | | 卡片圆角 | `rounded-lg` | | 输入框圆角 | `rounded-md` | | 无衬线字体 | `font-sans` | | 等宽字体 (IOCs, API code) | `font-mono` | ## 🗺️ 路线图 - [ ] 诈骗提交表单(SMS、电子邮件、WhatsApp、电话、链接) - [ ] 用户身份验证(通过 Supabase Auth 注册/登录) - [ ] 积分和贡献跟踪 - [ ] 带有搜索和过滤功能的公开诈骗信息流 - [ ] 诈骗验证工作流 - [ ] 研究人员 API 数据源(开放、结构化) - [ ] 杰出贡献者排行榜 ## 🔒 安全 如果您在本项目中发现安全漏洞,请通过发送电子邮件至 **[info@therootaccessnetwork.com](info@therootaccessnetwork.com)** 进行负责任的报告,而不是直接发布公开的 issue。 ## 📄 许可证 [MIT License](LICENSE) — © 2026 [The Root Access Network](https://therootaccessnetwork.com) ## 🌍 关于 TRAN The Root Access Network 是一家总部位于拉各斯的网络安全教育公司,致力于让每个人都能接触到数字安全知识——涵盖从中学生到非洲及其他地区的早期职业专业人士。 🌐 [therootaccessnetwork.com](https://therootaccessnetwork.com) · 📧 [info@therootaccessnetwork.com](info@therootaccessnetwork.com)
标签:Cloudflare, MITRE ATT&CK, Supabase, TypeScript, 众包平台, 反诈骗, 威胁情报, 安全插件, 开发者工具, 搜索引擎查询, 测试用例, 程序员工具, 自动化攻击