TamaraSkinner/serverless-malware-scanner

GitHub: TamaraSkinner/serverless-malware-scanner

这是一个基于 AWS 的无服务器恶意软件扫描系统,通过事件驱动架构自动检测、隔离并保护云存储中的上传文件。

Stars: 0 | Forks: 0

# serverless-malware-scanner ## 🛡️ 项目概述 本项目是一个基于 AWS 构建的自动化、事件驱动的安全流水线,旨在保护云存储环境免受恶意上传的侵害。通过利用无服务器架构,该系统提供实时扫描、威胁识别和遏制,而无需管理专用服务器的开销。 该项目展示了纵深防御姿态,集成了自动化事件响应、细粒度的 Identity and Access Management (IAM) 以及全面的审计日志记录。 ## 🏗️ 架构 - **AWS S3 (Landing Zone)**:所有不受信任数据的入口点。 - **AWS S3 (Clean Repository)**:已验证安全文件的永久存储。 - **AWS S3 (Malware Vault)**:用于隔离可疑文件的隔离的、受限的存储桶。 - **AWS Lambda**:由 S3 事件触发的基于 Python 的逻辑。 - **IAM**:具有缩减权限范围的自定义执行角色。 - **Amazon SNS**:用于即时安全警报的自动通知系统。 - **CloudWatch**:用于审计踪迹的日志记录和监控。 ## 🚀 工作原理 1. 用户将文件上传到 `quarantine-landing-zone`。 2. S3 通过 `ObjectCreated` 事件触发 Lambda 函数。 3. Lambda 计算文件的 SHA-256 哈希值。 4. Lambda 根据数据库/逻辑检查哈希值,并将其移动到相应的存储桶。 ## 🔒 安全设计 - **最小权限**:Lambda 函数关联了权限范围缩减的 IAM 执行角色。权限严格限制为在 Landing Zone 上的 s3:GetObject 和 s3:DeleteObject,以及在目标存储桶上的 s3:PutObject,从而确保函数受损不会导致 AWS 账户内的横向移动。 - **数据隔离**:“脏”文件会被物理移动到一个单独的隔离库存储桶,以防止意外执行或访问。 - **加密**:所有存储桶均使用 SSE-S3 服务器端加密。 - **日志记录**:每一次移动和扫描结果都会记录到 CloudWatch,以便进行合规性和取证分析。 - **失效安全**:在开发过程中,识别出了一种“失效开放”风险,即逻辑错误(例如通知失败)可能导致恶意文件遗留在 Landing Zone 中。系统已重构为“失效安全”姿态:如果移动或通知过程的任何部分失败,函数默认立即删除源文件,以消除潜在威胁。 - **加密完整性检查**:系统通过计算每个上传对象的 SHA-256 哈希值来使用基于特征的检测。**H(m) = h** 通过将文件的哈希值 与已知入侵指标 进行比对,系统能够在毫秒级内做出确定性的遏制决策。 ## 🛠️ 技术挑战与取证见解 - **本地与云端防御交互**:在测试期间,本地基于主机的防病毒软件 拦截了测试字符串,阻止其传输到云端,从而展示了多层的纵深防御方法。 - **隐形字节**:最初,扫描器无法识别测试文件,因为 PowerShell 追加了 CRLF 换行符,导致文件大小从 68B 变为 70B,并改变了 SHA-256 哈希值。我通过扩展特征数据库以包含常见的文件编码变体解决了这一问题,从而提高了检测引擎的鲁棒性。 ## 📈 未来路线图 - **动态智能**:将硬编码的特征列表迁移至 AWS DynamoDB 表,以实现 IOC 的实时更新。 - **基于标签的访问控制 (TBAC)**:实施 S3 存储桶策略,拒绝所有 s3:GetObject 请求,除非对象已被 Lambda 函数标记为 ScanStatus: CLEAN。 - **外部 API 集成**:集成 VirusTotal API 以进行多引擎启发式分析。
标签:AMSI绕过, AWS, CloudWatch, DevSecOps, DPI, IAM, Lambda, S3, Serverless, SHA-256, SNS, 上游代理, 事件驱动, 威胁检测, 恶意软件扫描, 数据隔离, 文件上传, 无服务器, 最小权限, 漏洞利用检测, 漏洞探索, 病毒扫描, 秘密管理, 纵深防御, 逆向工具