Karri53/malicious-file-analyzer
GitHub: Karri53/malicious-file-analyzer
与NSA合作的Web端恶意文件静态分析平台,支持邮件转发、URL和上传三种零风险提交方式,自动提取威胁指标并给出恶意评分。
Stars: 0 | Forks: 0
# 🛡️ 恶意文件分析器
[](https://github.com/Karri53/malicious-file-analyzer)
[-blue)](https://github.com/Karri53/malicious-file-analyzer)
[](https://github.com/Karri53/malicious-file-analyzer)
## 📋 目录
- [概述](#overview)
- [团队成员](#team-members)
- [问题背景](#the-problem)
- [我们的解决方案](#our-solution)
- [功能特性](#features)
- [技术栈](#technology-stack)
- [7周时间线](#7-week-timeline)
- [当前进度](#current-progress)
- [项目结构](#project-structure)
- [快速开始](#getting-started)
- [每周目标](#weekly-goals)
- [文档](#documentation)
## 🎯 概述
本项目解决了一个关键的网络安全挑战:**用户如何在不将潜在恶意文件下载到个人设备的情况下安全地进行分析?**
该项目与 **美国国家安全局 (NSA)** 合作构建,这是一个基于 Web 的平台,允许用户转发可疑邮件、粘贴文件 URL 或上传文档以进行自动化安全分析。所有文件处理均在服务端使用 AWS 基础设施进行,确保终端用户零风险。
**项目周期:** 7周(2026年3月2日 - 4月17日)
**当前状态:** 第1周 - 基础与搭建
**完成度:** 14%(第1天/共49天完成)
## 👥 团队成员
**Team Opulence**
| 角色 | 姓名 | 职责 | GitHub |
|------|------|-----------------|--------|
| **项目负责人** | Karrington Hall | 架构设计、AWS/Snowflake 集成、团队协调、主要实现工作 | [@Karri53](https://github.com/Karri53) |
| **UI 开发者** | Kendall Brown | React 前端、用户体验、响应式设计 | [@kbrownpv](https://github.com/kbrownpv) |
| **正则与数据评估员** | LeMikkos Starks | 模式匹配、指标提取、评分算法 | [@lstarks1513](https://github.com/lstarks1513) |
| **后端开发者** | Brandon Nobles | Flask API 支持、文件处理、数据库集成 | [@BRegardQ](https://github.com/BRegardQ) |
**指导教师:** Dr. Nourshin Ghaffari
**NSA 联络员:** Dr. Gregory Stevenson
**NSA 软件工程师:** Mr. Andrew Hutton
**Snowflake 联络员:** Mr. Jonathan Martindale
## ❓ 问题背景
**当前现状:**
- 用户收到带有潜在恶意附件的邮件(PDF、Word 文档、图片)
- 打开这些文件面临恶意软件感染、数据盗窃或勒索软件的风险
- 传统杀毒软件需要先下载文件(为时已晚!)
- 非技术用户无法评估文件安全性
**现实影响:**
- **94%** 的恶意软件通过邮件附件传播 *(Verizon DBIR 2023)*
- 平均勒索软件攻击成本为 **$4.54M** *(IBM Security)*
- 2023年钓鱼邮件增加了 **61%** *(Cloudflare)*
## ✨ 我们的解决方案
一个**三层分析平台**,优先保障用户安全:
### 1️⃣ 邮件转发(主要方法 - 最安全)
```
User forwards suspicious email → analyze@[domain].com
↓
Attachments automatically extracted and analyzed
↓
Results emailed back in 2-3 minutes
```
**零点击。零下载。零风险。**
### 2️⃣ URL 分析(次要方法)
```
User pastes file link → File downloads to our server
↓
Analyzed safely in isolated environment
↓
Results displayed instantly
```
### 3️⃣ 直接上传(备选方案)
```
User uploads file → Processed server-side
↓
Results shown on dashboard
```
**所有方法均采用静态分析**(读取文件而非执行文件),符合 Dr. Stevenson 提供的 NSA 安全指导原则。
## 🚀 功能特性
### 核心功能 (MVP - 第1-4周)
- ✅ 多方式文件提交(邮件/URL/上传)
- ✅ PDF、Word 文档、PNG/JPG 图片的静态文件分析
- ✅ 自动化指标提取(URL、IP、邮箱、哈希值、加密货币地址)
- ✅ 恶意评分算法(0.0 - 1.0 刻度)
- ✅ 严重程度分类(低/中/高)
- ✅ 结果展示及详细说明
- ✅ 发现结果 CSV 导出
- ✅ Snowflake 中的历史扫描记录追踪
### 增强功能(第5-7周)
- 🔄 具有响应式设计的专业 UI
- 🔄 全面测试与 Bug 修复
- 🔄 在 AWS EC2 上进行生产部署
- 🔄 演示视频与演示材料
### 未来增强(项目后期)
- 💡 基于机器学习的威胁检测
- 💡 自定义正则表达式模式构建器
- 💡 与威胁情报源集成
- 💡 供第三方集成的 API
- 💡 支持更多文件类型
## 🛠️ 技术栈
### 前端
```
React 18 - UI framework
Axios - HTTP client
React Router - Navigation
Tailwind CSS - Styling (or custom CSS)
```
### 后端
```
Python 3.10 - Core language
Flask - Web framework
pdfplumber - PDF text extraction
python-docx - Word document parsing
Pillow - Image metadata extraction
```
### 云基础设施 (AWS)
```
S3 - Temporary file storage (auto-delete 24hrs)
SES - Email receiving/sending automation
Lambda - Serverless email processing
EC2 - Backend API hosting (t3.micro)
IAM - Security & permissions management
```
### 数据库
```
Snowflake - Permanent result storage
- Historical analytics
- Structured data queries
```
### DevOps
```
GitHub - Version control & collaboration
Git - Source control
AWS CLI - Cloud resource management
```
## 📅 7周时间线
**开始日期:** 2026年3月2日(周日)
**结束日期:** 2026年4月17日(周五)
**总周期:** 7周(49天)
### 逐周分解:
| 周次 | 日期 | 重点 | 主要交付物 |
|------|-------|-------|-----------------|
| **第1周** | 3月2日-8日 | 基础与搭建 | 配置 AWS S3、创建 Snowflake 数据库、所有开发环境就绪 |
| **第2周** | 3月9日-15日 | 后端核心开发 | Flask API 路由、文件处理引擎、评分算法 |
| **第3周** | 3月16日-22日 | 邮件集成 | 配置 AWS SES、Lambda 函数运行、邮件流程完成 |
| **第4周** | 3月23日-29日 | 前端开发 | 包含所有3种分析方法的 React 应用、结果展示 |
| **第5周** | 3月30日-4月5日 | 完善与测试 | 专业 UI、Bug 修复、用户测试、优化 |
| **第6周** | 4月6日-12日 | 最终测试与文档 | 端到端测试、安全审查、API 文档 |
| **第7周** | 4月13日-17日 | 部署与演示 | 生产部署、演示视频、最终演示 |
## 📊 当前进度
**最后更新:** 2026年3月8日,晚上 10:30 CST
**已过天数:** 7 / 49 (14%)
**当前周次:** 第1周 - 已完成 ✅
**下周:** 第2周 - 后端 API 开发
### ✅ 第1周已完成(3月2日-8日)
**后端基础设施(100% 完成):**
- ✅ Flask API 的3个端点正常工作
- ✅ 文件处理引擎(PDF, DOCX, 图片, 文本)- 250行
- ✅ 正则表达式模式库(URL, IP, 邮箱, 加密货币, 哈希)- 200行
- ✅ 恶意评分算法(加权威胁检测)- 150行
- ✅ 带工厂模式的 Mock AWS S3 客户端
- ✅ 带工厂模式的 Mock Snowflake 客户端
- ✅ 真实 Snowflake 客户端实现
- ✅ 完整测试套件(6个测试文件,100% 通过率)
**数据库设置(100% 完成):**
- ✅ Snowflake OPULENCE_DB 已配置
- ✅ 5个生产表已创建(scan_results, indicators, email_sources, url_sources, file_metadata)
- ✅ 支持 mock/真实切换的连接工厂
- ✅ Snowflake MFA 认证已配置(Microsoft Authenticator)
- 💡 开发阶段使用 MockSnowflakeClient(生产认证需要 2FA 登录)
**代码指标:**
- 代码行数:1,500+
- 测试通过率:100%
- 已完成模块:8/8(第1周计划)
**待办事项:**
- 等待 Dr. Yang 提供 AWS 凭证(预计本周)
- 与 Mr. Jonathan 进行 Snowflake MFA 设置
### 🔄 第2周任务(3月9日-15日)
**重点:** 后端 API 开发
- [ ] 完成 REST API 端点(所有方法的 POST/GET)
- [ ] 邮件处理管道(AWS SES 集成)
- [ ] URL 下载与分析
- [ ] AWS S3 真实客户端(凭证到位后)
- [ ] UI 线框图
- [ ] RegEx 验证与测试数据集
## 📁 项目结构
```
malicious-file-analyzer/
│
├── backend/ # Python Flask API
│ ├── routes/ # API endpoints (to be created)
│ │ ├── email_routes.py # Email analysis endpoints
│ │ ├── url_routes.py # URL analysis endpoints
│ │ └── upload_routes.py # File upload endpoints
│ │
│ ├── services/ # Business logic (to be created)
│ │ ├── aws_client.py # AWS S3/SES interactions
│ │ ├── snowflake_client.py # Database operations
│ │ ├── file_processor.py # File parsing & analysis
│ │ └── scoring.py # Malicious score calculation
│ │
│ ├── utils/ # Helper functions (to be created)
│ │ ├── validators.py # Input validation
│ │ └── regex_patterns.py # Indicator regex patterns
│ │
│ ├── tests/ # Unit & integration tests
│ ├── app.py # ✅ Main Flask application
│ ├── requirements.txt # ✅ Python dependencies
│ └── .env.example # ✅ Environment variables template
│
├── frontend/ # React application (to be created)
│ ├── public/ # Static files
│ │ └── index.html
│ │
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── EmailInstructions.js
│ │ │ ├── URLAnalyzer.js
│ │ │ ├── FileUploader.js
│ │ │ ├── ResultsDisplay.js
│ │ │ └── LoadingSpinner.js
│ │ │
│ │ ├── pages/ # Page components
│ │ │ ├── HomePage.js
│ │ │ └── AboutPage.js
│ │ │
│ │ ├── services/ # API integration
│ │ │ └── api.js # Axios API client
│ │ │
│ │ ├── App.js # Main React component
│ │ └── App.css # Global styles
│ │
│ └── package.json # Node dependencies
│
├── lambda/ # AWS Lambda functions (to be created)
│ ├── email_processor.py # Email attachment extraction
│ └── requirements.txt # Lambda dependencies
│
├── docs/ # Documentation
│ ├── SETUP.md # Setup instructions
│ ├── ARCHITECTURE.md # Architecture details
│ ├── API_DOCUMENTATION.md # API endpoint docs
│ └── AWS_CONFIGURATION.md # AWS setup guide
│
├── scripts/ # Utility scripts
│ └── setup_snowflake.sql # Snowflake schema creation
│
├── config/ # Configuration files
│
├── .gitignore # ✅ Git ignore rules
├── README.md # ✅ This file
└── LICENSE # MIT License
✅ = Created and working
(to be created) = Planned for upcoming weeks
```
## 🚀 快速开始
### 前置条件
在开始之前,请确保您具备:
- **Python 3.10+** - [下载](https://www.python.org/downloads/)
- **Node.js 18+** - [下载](https://nodejs.org/)
- **Git** - [下载](https://git-scm.com/)
- **AWS 账户** - 需要大学访问权限
- **Snowflake 账户** - 大学学术访问权限
### 快速启动(面向团队成员)
**第1步:克隆仓库**
```
git clone https://github.com/Karri53/malicious-file-analyzer.git
cd malicious-file-analyzer
```
**第2步:后端设置**
```
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
**第3步:配置环境变量**
```
cp .env.example .env
# 使用你的 AWS/Snowflake 凭证编辑 .env
```
**第4步:测试后端**
```
python app.py
# 在浏览器中访问 http://localhost:5000/api/health
```
### 详细设置
请参阅我们的综合设置指南:[docs/SETUP.md](docs/SETUP.md) *(第1周创建)*
## 📈 每周目标
### 第1周:基础与搭建(3月2日-8日)- 进行中
**目标:**
- ✅ 完成所有团队成员的开发环境设置
- ⏳ 从大学获取 AWS 凭证
- ⏳ 配置带有生命周期策略的 AWS S3 存储桶
- ⏳ 设置具有完整模式的 Snowflake 数据库
- ⏳ 所有4名团队成员都能在本地运行 Flask 后端
- ⏳ 完成项目文档结构
**成功标准:**
- AWS S3 可运行,支持测试上传/下载
- Snowflake 数据库可从 Python 访问
- 所有4名团队成员都有可用的开发环境
- GitHub 工作流已建立(所有人都可以提交/推送)
### 第2周:后端核心(3月9日-15日)
**目标:**
- 构建带有路由蓝图的完整 Flask API 结构
- 实现文件处理引擎(PDF、Word、图片解析)
- 创建用于指标提取的正则表达式库
- 开发恶意评分算法
- 集成 AWS S3 客户端用于文件操作
- 集成 Snowflake 客户端用于数据持久化
**成功标准:**
- 能够分析 PDF 并提取 URL、IP、邮箱
- 评分算法返回准确的严重程度级别
- 文件上传至 S3 且结果保存至 Snowflake
- 所有 API 端点已通过 Postman 测试
### 第3周:邮件集成(3月16日-22日)
**目标:**
- 配置 AWS SES 用于邮件接收
- 验证邮件转发的域名
- 部署用于邮件处理的 Lambda 函数
- 实现自动化结果邮件生成
- 测试端到端邮件转发流程
**成功标准:**
- 用户可以转发邮件至 analyze@[domain]
- 附件被自动提取
- 结果在3分钟内通过邮件回复
- 对无效邮件的错误处理
### 第4周:前端开发(3月23日-29日)
**目标:**
- 初始化 React 应用
- 构建 EmailInstructions 组件(主要方法)
- 构建 URLAnalyzer 组件(次要方法)
- 构建 FileUploader 组件(备选方法)
- 构建带有指标列表的 ResultsDisplay 组件
- 实现 CSV 导出功能
- 将前端连接到后端 API
**成功标准:**
- 所有3种分析方法功能正常
- 结果正确显示并带有严重程度指示器
- 用户可以将结果导出为 CSV
- 基本样式已就位(外观专业)
### 第5周:完善与测试(3月30日-4月5日)
**目标:**
- 应用专业的 CSS 样式(Tailwind 或自定义)
- 实现移动端响应式设计
- 进行用户测试(3-5名测试用户)
- 修复所有关键 Bug
- 优化后端性能
- 添加加载状态和错误处理
**成功标准:**
- UI 看起来专业且完善
- 在移动设备上正常工作
- 无关键 Bug
- 用户满意度评分 >4/5 星
- 所有功能已进行端到端测试### 第6周:最终测试与文档(4月6日-12日)
**目标:**
- 端到端集成测试
- 安全审查与加固
- 完成 API 文档
- 编写部署指南
- 创建用户手册
- 性能测试与优化
**成功标准:**
- 所有测试场景通过
- 未发现安全漏洞
- 文档完整且清晰
- 准备好进行生产部署
### 第7周:部署与演示(4月13日-17日)
**目标:**
- 将后端部署到 AWS EC2
- 将前端部署到托管服务
- 制作演示视频(3-5分钟)
- 准备最终演示幻灯片
- 排练演示
- **最终演示:2026年4月17日**
**成功标准:**
- 应用上线并可通过 HTTPS 访问
- 演示视频质量专业
- 演示准备就绪并经过练习
- 所有交付物已提交
## 📚 文档
- **[设置指南](docs/SETUP.md)** - 完整安装说明 *(第1周)*
- **[架构概览](docs/ARCHITECTURE.md)** - 系统设计与数据流 *(第1周)*
- **[API 文档](docs/API_DOCUMENTATION.md)** - REST API 参考 *(第6周)*
- **[AWS 配置](docs/AWS_CONFIGURATION.md)** - 云基础设施设置 *(第1周)*
## 🤝 贡献
这是 Prairie View A&M University 高级设计课程的学术项目。在开发阶段(2026年3月2日 - 4月17日),贡献仅限于团队成员。
### 面向团队成员
**每日 Git 工作流:**
```
# 每天开始 - 获取最新代码
git pull origin main
# 开发你的功能
# ... 进行更改 ...
# 每天结束 - 保存并分享
git add .
git commit -m "Brief description of changes"
git push origin main
```
**沟通:**
- 使用 GitHub Issues 进行任务追踪
- 每日站会(5分钟,可选)
- AI 群聊用于技术问题
- 邮件用于紧急阻碍事项
## 📄 许可证
本项目在 Prairie View A&M University 和美国国家安全局的指导下开发。保留所有权利。
仅供学术和教育用途。
## ⚠️ 免责声明
本工具提供用于教育和研究目的的自动化恶意软件分析。结果不应被视为决定性的。对于关键安全决策,请咨询经过认证的网络安全专业人员及您组织的 IT 安全团队。
## 🙏 致谢
- **美国国家安全局 (NSA)** - 项目合作与技术指导
- **Dr. Gregory Stevenson** - NSA 学术联络员与导师
- **Mr. Andrew Hutton** - NSA 软件工程导师
- **Dr. Nourshin Ghaffari** - 指导教师
- **Prairie View A&M University** - 学术支持与资源
- **AWS Educate** - 云基础设施访问
- **Snowflake** - 数据库平台与学术访问
## 📊 项目统计
**时间线:**
- 开始:2026年3月2日
- 结束:2026年4月17日
- 周期:7周(49天)
- 已过天数:1
- 剩余天数:48
- 进度:完成 2%
**代码统计:** *(每周更新)*
- 总代码行数:~150(第1周,第1天)
- Python 文件:3
- JavaScript 文件:0(第4周)
- 总提交数:5
- 贡献者:1(将增至4人)
**最近更新:**
- 日期:2026年3月1日,晚上 9:00 CST
- 更新人:Karrington Hall
- 变更:创建初始后端,开发环境就绪
**由 Team Opulence 用 🛡️ 构建**
*一次分析一份文件,保护用户免受恶意软件侵害。*
**第1周/共7周 | 第1-7天 | 2026年3月2日-8日**
[查看 Issues](https://github.com/Karri53/malicious-file-analyzer/issues) • [项目看板](https://github.com/Karri53/malicious-file-analyzer/projects) • [里程碑](https://github.com/Karri53/malicious-file-analyzer/milestones)
标签:AMSI绕过, AWS, DAST, DNS枚举, DPI, Go语言工具, HTTP/HTTPS抓包, NSA 合作项目, Python, React, Senior Design Project, Snowflake, Syscalls, Ubuntu, URL 分析, Web 安全平台, 云端分析, 威胁检测, 安全运营, 态势感知, 恶意文件分析, 恶意软件分析, 扫描框架, 文件上传扫描, 无后门, 服务器端处理, 沙箱技术, 结构化查询, 网络安全, 网络安全工具, 网络靶场, 自动化安全, 逆向工具, 邮件安全, 钓鱼邮件分析, 隐私保护, 零信任架构, 高危文件检测