Aayush-Poonia/AI-Threat-Intelligence
GitHub: Aayush-Poonia/AI-Threat-Intelligence
一款基于 React 和大模型构建的 AI 驱动型网络安全 SaaS 平台,提供假新闻检测、钓鱼 URL 分析和密码强度测试等综合安全分析功能。
Stars: 0 | Forks: 0
# AI 驱动网络安全套件 (SaaS)
一个综合性的、AI 驱动的网络安全平台,作为现代 SaaS Web 应用程序构建。它结合了**假新闻检测**、**钓鱼 URL 分析**、**密码强度测试**、**AI 聊天助手**、**PDF 报告生成**和完整的**扫描历史记录**——所有这些都由 Firebase Authentication 和 Firestore 提供支持,以实现持久化数据存储。
## 🚀 功能特性
### 🔐 身份验证 (Firebase)
- **邮箱/密码**注册和登录
- **Google OAuth**一键登录
- 受保护的路由——所有工具都需要身份验证
- 通过 Firebase Auth 进行安全的会话管理
### 📊 威胁仪表板 (`/dashboard`)
- 所有安全分析的实时概览
- **KPI 卡片**:总扫描次数、已分析新闻、已检查 URL、发现威胁
- **饼图**:各工具类型的扫描分布
- **柱状图**:威胁与安全结果的对比
- 包含最新扫描的**最近活动源**
### 📰 新闻分析器 (`/news`)
- 粘贴任何文章、标题或社交帖子
- AI 驱动的结论:`likely_real` / `uncertain` / `likely_fake`
- 置信度评分、情感和偏见检测
- 危险信号和可信度指标
- 每项声明的可验证性评估
- 由 Groq 的 `llama-3.3-70b-versatile` 提供支持,具有结构化的工具调用
### 🌐 PhishGuard (`/phishing`)
- 输入任何 URL 以进行全面的钓鱼分析
- 基于启发式规则的评分 (HTTPS、IP 主机、punycode、品牌仿冒等)
- 通过 WhoisXMLAPI 进行 WHOIS 丰富
- AI 结论:`safe` / `suspicious` / `phishing` 及风险评分
- 详细的分析与可折叠面板
### 🔑 密码实验室 (`/password`)
- 实时强度评分(熵、字符类、模式)
- 针对多种攻击场景的破解时间估算
- 具有可自定义设置的强密码生成器
- 100% 客户端运行——密码永远不会离开浏览器
### 🤖 AI 聊天助手 (`/chat`)
- 基于 **Groq** 的网络安全问答(与新闻分析器使用相同的 Edge Function 技术栈)
- **工具集成**:说“分析新闻:[文本]”或粘贴 `https://...` 链接即可从聊天中运行新闻 / PhishGuard 分析
- Markdown 渲染的响应
- 聊天记录持久化存储在 Firestore 中
- 当 Edge Function 不可用时提供离线式备用回答
### 📄 PDF 报告 (`/reports`)
- 生成全面的 PDF 安全报告
- 带有威胁统计信息的汇总表
- 新闻和钓鱼分析的详细说明
- 包含页眉、表格和页码的专业排版
- 一键下载
### 📜 扫描历史 (`/history`)
- 所有过去分析的完整日志
- 按扫描类型(新闻、钓鱼、密码)过滤
- 查看结论、置信度和风险评分
- 删除单次扫描
- 所有数据持久化存储在 Firestore 中
## 🏗️ 技术栈
| 层级 | 技术 |
|---|---|
| Frontend | React 19 + Vite 7 |
| Routing | react-router-dom v7 |
| Styling | Tailwind CSS v4 + shadcn/ui + Radix |
| State / Data | TanStack Query |
| Charts | Recharts |
| PDF Generation | jsPDF + jspdf-autotable |
| Markdown | react-markdown |
| Auth | Firebase Authentication |
| Database | Cloud Firestore |
| Backend Functions | Supabase Edge Functions (Deno) |
| AI | Groq API (llama-3.3-70b-versatile) |
| WHOIS | WhoisXMLAPI |
## 📁 项目结构
```
src/
├── App.tsx # Router + auth-protected routes
├── main.tsx # Entry point with AuthProvider
├── contexts/
│ └── AuthContext.tsx # Firebase auth context
├── components/
│ ├── AppShell.tsx # Sidebar layout for authenticated pages
│ └── ui/ # shadcn components
├── lib/
│ ├── firebase.ts # Firebase config & initialization
│ ├── firestore.ts # Firestore CRUD operations
│ ├── api.ts # Edge function invocation helper
│ └── utils.ts # Utility functions
├── pages/
│ ├── Login.tsx # Auth page (sign in / sign up / Google)
│ ├── Dashboard.tsx # Threat dashboard with charts
│ ├── Home.tsx # News analyzer
│ ├── Phishing.tsx # PhishGuard URL scanner
│ ├── Password.tsx # Password strength lab
│ ├── Chat.tsx # AI chat assistant
│ ├── Reports.tsx # PDF report generator
│ └── HistoryPage.tsx # Scan history viewer
└── integrations/supabase/ # Auto-generated Supabase client
supabase/functions/
├── analyze-news/index.ts # Groq: fake-news analysis OR AI assistant chat (`messages` in body)
├── analyze-phishing/index.ts # Heuristics + WHOIS + Groq phishing detection
└── analyze-email/index.ts # Groq: phishing-email analysis (sender/subject/body + URL extraction)
```
## 🔥 Firebase 设置
### Firestore 集合
| 集合 | 字段 |
|---|---|
| `scans` | `userId`, `type` (news/phishing/password), `input`, `source`, `result`, `createdAt` |
| `chats` | `userId`, `role` (user/assistant), `content`, `createdAt` |
### Firestore 安全规则
将这些规则复制到您的 Firebase Console → Firestore → 规则中:
```
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Users can only read/write their own scans
match /scans/{scanId} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
allow create: if request.auth != null && request.auth.uid == request.resource.data.userId;
}
// Users can only read/write their own chat messages
match /chats/{chatId} {
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
allow create: if request.auth != null && request.auth.uid == request.resource.data.userId;
}
// Deny all other access
match /{document=**} {
allow read, write: if false;
}
}
}
```
### Firebase 身份验证设置
1. 转到 [Firebase Console](https://console.firebase.google.com)
2. 选择您的项目:`cybersecurity-saas`
3. 导航到 **Authentication → Sign-in method**
4. 启用 **Email/Password**
5. 启用 **Google**(选择一个支持邮箱)
## ☁️ 后端:Lovable Cloud
**Supabase**(Edge Functions + anon 客户端环境)和**服务器端密钥**通过 **Lovable Cloud** 进行管理,而不仅仅来自此代码库的 `.env` 文件。
这里**没有单独的“AI 助手”Edge Function**。应用使用**一个**函数 —— **`analyze-news`** —— 来同时处理:
| 应用界面 | 请求体 | 相同的 Groq 密钥 |
|---|---|---|
| 新闻分析器 (Home) | `{ content, source? }` | `GROQ_API_KEY` |
| AI 助手 (Chat) | `{ messages: [...] }` | 相同 |
`supabase/functions/analyze-news/index.ts` 中的处理程序根据请求体进行分支。客户端在 `src/lib/api.ts` 中将两者封装为 `analyzeNewsArticle` / `analyzeNewsAssistantChat`,因此很明显它们属于同一个后端。
**Lovable** 必须部署此代码库中 `supabase/functions/` 目录下的所有内容(例如,当您推送更改时)。如果聊天功能运行不正常但新闻功能正常,通常是因为 Lovable 仍在运行**较旧的** `analyze-news` 打包文件,其中不包含 `{ messages }` 分支 —— 请在那里更新函数;您并不需要接入第二个 AI 服务。
Lovable 中的**密钥** (`Deno.env.get`):
- `GROQ_API_KEY` —— 用于新闻、助手聊天以及(通过其他函数)钓鱼 Groq 调用
- `WHOISXML_API_KEY` —— 可选,用于钓鱼信息丰富
## 🛠️ 本地开发
```
# 安装依赖
bun install
# 启动开发服务器
bun run dev
```
应用将在 `http://localhost:5173` 上可用。
### 环境变量
Lovable 通常会使用 Supabase **URL + anon(公开)密钥**为本地和托管构建**自动管理** `.env`。这些密钥在浏览器中是安全的;它们**无法**部署 Edge Functions 或读取 Groq 密钥。
Firebase 客户端配置位于 `src/lib/firebase.ts` 中。
### 可选:从您的机器部署 Edge Functions
如果您还使用带有**个人访问令牌**(而非 anon 密钥)的 Supabase CLI,您可以运行:
```
npm run supabase:deploy
```
这将运行 `scripts/supabase-deploy.ps1` (Windows),部署 `analyze-news` 和 `analyze-phishing`,并且如果您进行了设置,可以从 `.env` 中推送 `GROQ_API_KEY` / `WHOISXML_API_KEY`。**Lovable 用户**可以忽略此步骤,直接依赖 Lovable Cloud。
## 📦 部署
### Vercel
1. 推送至 GitHub
2. 在 Vercel 中导入 → framework:**Vite**
3. 构建命令:`bun run build`
4. 输出目录:`dist`
5. SPA 路由由 `vercel.json` 处理
### Firebase 设置检查表
- [ ] 在 Firebase Console 中启用 Email/Password 身份验证
- [ ] 在 Firebase Console 中启用 Google Sign-In
- [ ] 部署 Firestore 安全规则(见上文)
- [ ] 创建 Firestore 索引(由 Firebase 自动提示)
## 🔒 安全说明
- 所有 API 密钥(Groq、WhoisXML)均作为服务器端密钥存储——永远不会暴露给浏览器
- Firebase Auth 安全地处理会话管理
- Firestore 规则强制执行按用户的数据隔离
- 密码实验室完全在客户端运行——密码永远不会离开浏览器
- Edge functions 强制执行 CORS 和请求验证
## 📊 数据流
```
User → Firebase Auth → Protected Routes → Tools (News/Phishing/Password/Chat)
↓
Edge Functions (Groq AI + WHOIS)
↓
Results → Firestore (persisted)
↓
Dashboard / History / PDF Reports
```
## 📝 许可证
MIT
标签:AI聊天助手, DLL 劫持, Edge Functions, Firebase, Firestore, Google OAuth, Llama 3.3, PDF报告, React, SaaS, Syscalls, TCP/IP协议栈, WHOIS查询, 人工智能, 假新闻检测, 偏见检测, 协议探测, 启发式分析, 大语言模型, 威胁仪表盘, 威胁分析, 密码强度测试, 密码生成器, 情感分析, 扫描历史, 搜索语句(dork), 用户模式Hook绕过, 网络安全, 网络安全平台, 自动化侦查工具, 自动化攻击, 钓鱼网站检测, 隐私保护