Sachin30102006/Hireshield

GitHub: Sachin30102006/Hireshield

HireShield 是一个基于 AI 和 NLP 技术的招聘威胁情报平台,用于检测虚假录用通知、钓鱼邮件和各类招聘诈骗。

Stars: 0 | Forks: 0

# 🛡️ HireShield - AI 招聘威胁情报平台 **用于检测招聘欺诈的生产级 AI 安全平台** ## 📋 目录 - [项目概述](#project-overview) - [系统架构](#system-architecture) - [功能](#features) - [快速开始](#quick-start) - [API 文档](#api-documentation) - [项目结构](#project-structure) - [安装说明](#installation) - [配置](#configuration) - [开发指南](#development) - [部署说明](#deployment) - [贡献指南](#contributing) ## 🚀 项目概述 HireShield 是一个综合性的 AI 驱动平台,旨在检测和分析与招聘相关的威胁,包括: - **虚假录用通知** - AI 检测冒充和欺诈性职位 - **钓鱼邮件** - 检测凭证窃取企图 - **支付诈骗** - 识别预付款和费用请求 - **社会工程学** - 分析操纵和紧迫感策略 - **身份盗窃** - 识别身份验证请求 - **招聘人员冒充** - 验证招聘人员的合法性 ### 核心技术 - **AI/ML**: scikit-learn, XGBoost, SHAP - **NLP**: spaCy, NLTK, Transformers (DistilBERT) - **后端**: FastAPI, SQLAlchemy - **前端**: Streamlit - **数据库**: SQLite (兼容 PostgreSQL) - **部署**: Docker, Docker Compose ## 🏗️ 系统架构 ### 分层架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ FRONTEND LAYER │ │ (Streamlit Web Application) │ └────────────────────┬────────────────────────────────────────┘ │ HTTP/REST API ┌────────────────────▼────────────────────────────────────────┐ │ API LAYER │ │ (FastAPI - RESTful Endpoints) │ ├─────────┬──────────┬──────────┬──────────┬──────────────────┤ │ Analyze │ Explain │ Logs │ Threat │ Health/Status │ │ /analyze│ /explain │ /logs │ /stats │ /health │ └────────────────────┬────────────────────────────────────────┘ │ Service Injection ┌────────────────────▼────────────────────────────────────────┐ │ SERVICE LAYER │ ├──────────────┬──────────┬──────────┬───────┬─────────────────┤ │ Inference │ Features │ Explain- │ Threat│ Logging │ │ (Models) │ (Eng.) │ ability │(Intel)│ (Persistence) │ └────────────────────┬────────────────────────────────────────┘ │ Dependency Injection ┌────────────────────▼────────────────────────────────────────┐ │ AI/NLP LAYER │ ├──────────────┬──────────────┬───────────────────────────────┤ │ Preprocessing│ Feature Eng. │ ML Inference │ │ (Cleaning) │ (Extraction) │ (XGBoost, Logistic Reg.) │ └────────────────────┬────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────┐ │ DATABASE LAYER │ │ (SQLAlchemy ORM + SQLite/PostgreSQL) │ ├──────────────┬──────────────┬──────────────────────────────┤ │ Scan Logs │ Recruiter │ Threat Intelligence / Models │ │ │ Profiles │ Training Logs │ └──────────────┴──────────────┴──────────────────────────────┘ ``` ### 关键设计决策 1. **关注点分离**: 前端、API、服务和数据层之间明确分离 2. **依赖注入**: 服务之间松耦合,易于测试 3. **异步 API**: FastAPI 实现高性能异步端点 4. **数据库抽象**: SQLAlchemy ORM 允许轻松迁移到 PostgreSQL 5. **模块化服务**: 每个服务处理特定的职责 6. **类型安全**: Pydantic 模型确保请求/响应验证 ## ✨ 功能 ### 分析引擎 - **多模型推理**: XGBoost(主要)+ 逻辑回归(基准) - **实时处理**: 分析在 <500ms 内完成 - **置信度评分**: 校准后的概率估计 - **丰富的特征检测**: 23+ 项行为和语言特征 ### 可解释性 - **SHAP 集成**: 特征重要性和局部解释 - **人类可读的推理**: 逐步的决策解释 - **置信度评估**: 解释模型为何对其预测具有信心 - **主要贡献特征**: 识别关键欺诈信号 ### 威胁情报 - **招聘人员画像**: 信任评分和历史记录追踪 - **威胁分类**: 分为 8+ 种威胁类型 - **模式识别**: 识别反复出现的欺诈模式 - **分析仪表板**: 趋势分析和统计 ### 日志与监控 - **全面的审计跟踪**: 记录带有元数据的所有扫描 - **搜索与过滤**: 具有多种过滤器的高级日志查询 - **分析快照**: 定期的威胁情报摘要 - **模型训练历史**: 追踪模型性能随时间的变化 ### 安全与合规 - **数据持久化**: 安全存储在 SQLite/PostgreSQL 中 - **访问日志**: 完整的系统活动审计跟踪 - **错误处理**: 优雅降级和错误报告 - **健康监控**: 实时系统状态检查 ## 🚀 快速开始 ### 前置条件 - Python 3.11+ - Docker & Docker Compose(用于容器化部署) - 2GB+ RAM ### 安装说明 1. **克隆仓库** git clone https://github.com/yourusername/hireshield.git cd hireshield 2. **创建虚拟环境** python -m venv .venv source .venv/bin/activate # 在 Windows 上: .venv\Scripts\activate 3. **安装依赖** pip install -r requirements.txt python -m spacy download en_core_web_sm 4. **初始化数据库** python -c "from backend.database import init_db; init_db()" 5. **训练模型**(如果需要) python -m models.train_model ### 运行应用 #### 选项 1:本地开发(分离服务) **终端 1 - 后端 API:** ``` uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload ``` **终端 2 - 前端:** ``` streamlit run frontend/app.py ``` 然后访问: - **前端**: http://localhost:8501 - **API 文档**: http://localhost:8000/api/docs - **API ReDoc**: http://localhost:8000/api/redoc #### 选项 2:Docker Compose(推荐) ``` docker-compose up --build ``` 然后访问: - **前端**: http://localhost:8501 - **后端**: http://localhost:8000 - **API 文档**: http://localhost:8000/api/docs ## 📚 API 文档 ### Base URL ``` http://localhost:8000/api ``` ### 身份验证 目前无需身份验证。在生产环境中添加 JWT/OAuth。 ### 端点 #### 分析端点 **POST /analyze** - 基础诈骗分析 ``` Request: { "text": "Your recruitment message here...", "recruiter_email": "recruiter@company.com", "recruiter_name": "John Doe", "job_title": "Senior Engineer", "company_name": "TechCorp" } Response: { "scam_probability": 87.5, "risk_level": "HIGH RISK", "confidence": 0.94, "detected_indicators": [...], "highlighted_phrases": [...], "feature_scores": {...}, "processing_time_ms": 125.5 } ``` **POST /deep-scan** - 结合 SHAP 的高级分析 ``` Request: { "text": "...", "recruiter_email": "...", "include_shap": true, "confidence_threshold": 0.7 } Response: Same as /analyze with enhanced feature importance ``` #### 可解释性端点 **POST /explain** - 获取基于 SHAP 的解释 ``` Request: { "text": "...", "recruiter_email": "..." } Response: { "scam_probability": 87.5, "risk_level": "HIGH RISK", "shap_available": true, "feature_importance": [...], "top_contributing_features": ["urgency_score", "payment_request"], "explanation_text": "The AI detected multiple fraud indicators...", "reasoning": [...] } ``` #### 日志端点 **GET /logs** - 获取扫描历史 ``` Query Parameters: - limit: 50 (max 1000) - offset: 0 - severity_level: CRITICAL|HIGH RISK|SUSPICIOUS|SAFE - status: Blocked|Quarantined|Flagged|Verified - search_query: Search in email/category Response: { "logs": [...], "total_count": 145, "limit": 50, "offset": 0 } ``` **GET /logs/{log_id}** - 获取特定日志详情 **DELETE /logs/{log_id}** - 删除日志条目 #### 威胁情报端点 **GET /threat-stats** - 聚合的威胁统计信息 ``` Query Parameters: - days: 30 (lookback period) Response: { "total_scans": 1250, "critical_count": 145, "high_risk_count": 340, "average_scam_probability": 45.3, "top_threat_categories": [...] } ``` **GET /threat-summary** - 快速威胁摘要 #### 健康与状态端点 **GET /health** - API 健康检查 ``` Response: { "status": "healthy", "api_version": "1.0.0", "models_loaded": true, "database_connected": true, "message": "All systems operational" } ``` **GET /model-info** - 模型信息 **GET /status** - 综合系统状态 ### 错误响应 所有错误均遵循标准格式: ``` { "error": "Error type", "status_code": 400, "timestamp": "2026-05-21T10:30:00Z", "details": {...} } ``` ## 📁 项目结构 ``` HireShield/ │ ├── frontend/ │ ├── app.py # Streamlit main application │ ├── api_client.py # API client for REST communication │ └── views/ │ ├── dashboard.py # Dashboard view │ ├── analysis.py # Scam analysis view │ ├── threat_intel.py # Threat intelligence view │ ├── explainability.py # Explainability view │ ├── logs.py # Detection logs view │ └── settings.py # Settings view │ ├── backend/ │ ├── main.py # FastAPI application entry point │ │ │ ├── routers/ │ │ ├── analyze.py # Analysis endpoints │ │ ├── explain.py # Explainability endpoints │ │ ├── logs.py # Log management endpoints │ │ ├── threat.py # Threat intelligence endpoints │ │ └── health.py # Health & status endpoints │ │ │ ├── services/ │ │ ├── inference_service.py # ML model inference │ │ ├── feature_service.py # Feature extraction │ │ ├── explainability_service.py # SHAP explanations │ │ ├── logging_service.py # Log persistence │ │ └── threat_service.py # Threat intelligence │ │ │ ├── models/ │ │ ├── request_models.py # Pydantic request schemas │ │ └── response_models.py # Pydantic response schemas │ │ │ ├── database/ │ │ ├── db.py # Database connection & config │ │ ├── schemas.py # SQLAlchemy ORM models │ │ └── operations.py # Database CRUD operations │ │ │ └── utils/ │ └── config.py # Configuration utilities │ ├── ai/ │ ├── preprocessing/ │ │ ├── cleaner.py │ │ ├── tokenizer.py │ │ └── lemmatizer.py │ │ │ ├── feature_engineering/ │ │ ├── payment_detector.py │ │ ├── urgency_detector.py │ │ └── ...feature modules... │ │ │ ├── ml/ │ │ ├── train_xgboost.py │ │ ├── train_logistic.py │ │ └── inference.py │ │ │ └── explainability/ │ └── shap_explainer.py │ ├── models/ │ ├── xgboost_model.pkl # Trained XGBoost model │ ├── logistic_model.pkl # Logistic regression model │ ├── vectorizer.pkl # Feature vectorizer │ └── feature_order.pkl # Feature column order │ ├── data/ │ ├── raw/ # Raw data files │ └── sample_scams.csv # Training data │ ├── tests/ │ ├── test_api.py │ ├── test_preprocessing.py │ └── test_models.py │ ├── docker/ │ └── Dockerfile │ ├── docker-compose.yml ├── requirements.txt ├── README.md ├── .gitignore └── hireshield.db # SQLite database (auto-created) ``` ## ⚙️ 安装说明 ### 前置条件 - **Python**: 3.11 或更高版本 - **pip**: Python 包管理器 - **虚拟环境**(推荐): venv 或 conda ### 步骤 1:克隆仓库 ``` git clone https://github.com/yourusername/hireshield.git cd hireshield ``` ### 步骤 2:创建虚拟环境 ``` # 使用 venv python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # 或者使用 conda conda create -n hireshield python=3.11 conda activate hireshield ``` ### 步骤 3:安装依赖 ``` pip install -r requirements.txt ``` ### 步骤 4:下载 NLP 模型 ``` python -m spacy download en_core_web_sm python -m nltk.downloader punkt averaged_perceptron_tagger ``` ### 步骤 5:初始化数据库 ``` python -c "from backend.database import init_db; init_db()" ``` ### 步骤 6:训练模型(可选) 如果 `/models/` 中不存在模型: ``` python -m models.train_model ``` ## 🔧 配置 ### 环境变量 在项目根目录创建一个 `.env` 文件: ``` # Database DATABASE_URL=sqlite:///./hireshield.db # DATABASE_URL=postgresql://user:password@localhost/hireshield # API API_PORT=8000 API_HOST=0.0.0.0 # Frontend STREAMLIT_PORT=8501 # Logging LOG_LEVEL=INFO # ML MODEL_CONFIDENCE_THRESHOLD=0.5 ``` ### 数据库配置 #### SQLite(默认) ``` DATABASE_URL = "sqlite:///./hireshield.db" ``` #### PostgreSQL(生产环境) ``` DATABASE_URL = "postgresql://user:password@localhost:5432/hireshield" ``` ## 👨‍💻 开发指南 ### 运行测试 ``` # 运行所有测试 pytest # 包含覆盖率 pytest --cov=backend --cov=frontend # 特定测试 pytest tests/test_api.py::test_analyze ``` ### 代码质量 ``` # 格式化代码 black . # Lint 代码 flake8 . # 类型检查 mypy backend/ ``` ### 添加新功能 1. 创建功能分支:`git checkout -b feature/my-feature` 2. 先编写测试(TDD) 3. 实现功能 4. 更新文档 5. 提交 Pull Request ## 🚀 部署说明 ### Docker 部署 ``` # 构建并运行 docker-compose up --build # 以 detached 模式运行 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ### 云部署选项 #### Render.com ``` # 创建指向 backend/main.py 的 web service # 设置启动命令: uvicorn backend.main:app --host 0.0.0.0 --port $PORT ``` #### Railway.app ``` # 使用 Railway CLI 部署 railway up ``` #### HuggingFace Spaces ``` # 推送到 HuggingFace Spaces repo # Streamlit 将自动部署 frontend ``` #### AWS EC2 ``` # 安装依赖项,clone repo,使用 Docker Compose 运行 # 为端口 8000 和 8501 配置 security groups ``` ### 生产环境检查清单 - [ ] 使用 PostgreSQL 替代 SQLite - [ ] 针对特定来源启用 CORS - [ ] 添加身份验证(JWT/OAuth) - [ ] 设置 HTTPS/SSL - [ ] 配置日志和监控 - [ ] 设置资源限制 - [ ] 定期备份数据库 - [ ] 负载测试 - [ ] 安全审计 ## 📊 性能指标 - **API 响应时间**: <500ms /请求 - **模型准确率**: 在测试集上达到 97.82% - **F1 分数**: 0.9801 - **吞吐量**: 100+ 请求/秒(单实例) - **数据库查询**: 平均 <50ms ## 🤝 贡献指南 欢迎贡献!请遵循以下步骤: 1. Fork 该仓库 2. 创建功能分支 3. 进行更改 4. 编写测试 5. 提交 Pull Request ## 🙏 致谢 - 怀着 ❤️ 为网络安全而构建 - 受企业级 SaaS 平台启发 - 欢迎社区贡献
标签:Apex, AV绕过, FastAPI, Kubernetes, NLP, Streamlit, 反欺诈, 威胁情报, 开发者工具, 机器学习, 测试用例, 版权保护, 系统调用监控, 访问控制, 请求拦截, 逆向工具