Mr-AkshatBhatnagar/Malware-Scanner

GitHub: Mr-AkshatBhatnagar/Malware-Scanner

基于 Azure Defender for Storage 和可选 OpenAI 分析的 Web 恶意软件扫描应用,解决文件上传场景下的自动化威胁检测问题。

Stars: 0 | Forks: 0

# Defender 恶意软件扫描器 这是一个使用 **Microsoft Defender for Storage** 扫描上传文件以检测恶意软件的 Web 应用,并支持通过 Azure OpenAI 进行可选的 **AI 驱动的威胁分析**。 ## 功能 * 上传文件并使用 Microsoft Defender for Storage 进行扫描 * 带有多阶段指示器的实时扫描进度 * 针对恶意检测结果提供 AI 生成的威胁分析 * 存储在 Azure Blob Storage 中的持久化扫描历史记录 * 简洁的深色主题 UI,带有严重程度颜色编码 * 唯一的 blob 命名方式防止重复上传时发生覆盖 ## 前置条件 * 启用了 [Defender for Storage](https://learn.microsoft.com/en-us/azure/defender-for-cloud/defender-for-storage-introduction) 的 **Azure Storage Account** * **两个 blob 容器:** * 一个用于文件上传(配置生命周期策略以进行自动清理) * 一个用于扫描历史记录(无生命周期策略) * 对 Security Alerts 具有读取权限的 **Azure AD Service Principal** * **(可选)** 用于 AI 威胁分析的 **Azure OpenAI** 部署 ## 设置 1. 克隆此仓库 2. 安装依赖项: ``` pip install -r requirements.txt ``` 3. 将 `.env.example` 复制到 `.env` 并填写您的凭据: ``` cp .env.example .env ``` 4. 运行应用: ``` streamlit run scanner.py ``` ## Azure 配置 ### 存储帐户 1. 创建一个启用 Defender for Storage 的 Storage Account 2. 创建两个容器: * `unscannedcontent`(或任意名称)- 用于文件上传 * `scanhistory` - 用于持久化扫描历史记录 3. 生成 SAS token: ``` # Upload SAS (read, write, create, list, tag) az storage container generate-sas --account-name --name --permissions rwclt --expiry --output tsv # Read SAS (read, list, tag) az storage container generate-sas --account-name --name --permissions rlt --expiry --output tsv # History container SAS tokens (same permissions) az storage container generate-sas --account-name --name scanhistory --permissions rwclt --expiry --output tsv az storage container generate-sas --account-name --name scanhistory --permissions rlt --expiry --output tsv ``` ### 生命周期策略(可选) 在 12 小时后自动删除已扫描的文件: ``` az storage account management-policy create \\ --account-name --resource-group \\ --policy '{"rules":\[{"name":"auto-delete-12h","enabled":true,"type":"Lifecycle","definition":{"filters":{"blobTypes":\["blockBlob"],"prefixMatch":\["/"]},"actions":{"baseBlob":{"delete":{"daysAfterModificationGreaterThan":0.5}}}}}]}' ``` ### Service Principal 在您的订阅中创建一个具有 `Security Reader` 角色的 Service Principal: ``` az ad sp create-for-rbac --name "defender-scanner" --role "Security Reader" --scopes /subscriptions/ ``` ### Azure OpenAI(可选) 在 Azure OpenAI 中部署一个 GPT 模型,并在 `.env` 中提供 endpoint、密钥和部署名称。 ## 工作原理 1. **上传** - 文件以带有唯一时间戳的名称上传到扫描容器中 2. **轮询标签** - 应用轮询 blob 标签以获取 Defender 的扫描结果 3. **检查警报** - 如果检测到恶意内容,则从 Defender 获取详细的警报信息 4. **AI 分析** - (可选)生成人类可读的威胁摘要 5. **历史记录** - 结果将保存到持久化的历史记录容器中 ## 许可证 MIT
标签:Azure, Kubernetes, Streamlit, 威胁分析, 恶意软件扫描, 自动化侦查工具, 访问控制, 逆向工具