wytruong/CloudHacks26

GitHub: wytruong/CloudHacks26

基于 AWS 的自动化账户接管检测与响应平台,利用 Bedrock 与 Rekognition 实现风险评分、人机协同与实时阻断。

Stars: 0 | Forks: 0

## Vault ### 自主账户接管检测与响应 — UCI CloudHacks 2026 ## 问题 当终端用户发现其账户被入侵时,损害往往已经造成。现有工具虽然能检测到威胁,但仍需人工进行调查和响应,这需要数小时。而攻击者只需要几秒钟。 **数据泄露的平均成本:488万美元。平均检测时间:194天。** Vault 通过以下方式缩小这一差距:使用 Amazon Bedrock 对每次登录进行评分,将状态持久化存储在 DynamoDB,通过 SNS 通知利益相关者,并通过 API Gateway WebSockets 将裁决实时推送到 SOC 战情室。作为安全兜底,对于边界评分的情况使用 Amazon Rekognition 进行人脸比对。 ## Vault 的功能 Vault 是一个**自动登录风险管道**,它通过 HTTP API(API Gateway 上)摄入登录事件,使用 **Amazon Bedrock(Claude Sonnet 4.6)** 进行分析,将结果存储在 **Amazon DynamoDB** 中,通过 **Amazon SNS** 发送**真实邮件**(包括用于人机交互步骤的 OTP 验证码),并通过 **API Gateway WebSockets** 将结构化事件实时推送到 **React SOC 仪表板**。对于 **60–89% 置信度** 的事件,分析流程可以触发 **Amazon Rekognition** 人脸比对,对比 **Amazon S3**(`vault-reference-photos`)中的参考照片,OTP 验证由第二个 Lambda 处理。 ### 置信度阈值系统 | 置信度 | 操作 | 需要人工吗? | |---|---|---| | 90%+ | 自动阻断、通知用户、生成报告 | 否 | | 60–89% | 人脸自拍检查 → 分析师确认 | 一点击 | | 低于 60% | 静默标记,低优先级队列,稍后审查 | 是 | ## 演示场景 **单账户攻击(97% 置信度 —— 完全自主):** 凌晨 2 点,登录罗马尼亚布加勒斯特。上次登录是 6 小时前在加州欧文。相距 5,700 英里。设备未知。MFA 失败。几秒钟内被阻断;SNS 邮件告警;事件及其完整推理出现在 SOC 战情室。 **边界情况(71% 置信度 —— Rekognition 介入):** 从新加坡登录,已知设备但时间异常。Rekognition 请求自拍以对比 S3 参考图库。脸不匹配 → 自动阻断。真实用户 → OTP 验证后标记为安全。 ## 架构 ``` Simulation script (fire-events.py) ↓ API Gateway HTTP → Lambda: vault-receive-event ↓ Amazon Bedrock (Claude Sonnet 4.6) — threat analysis + confidence ↓ Amazon DynamoDB (vault-events, vault-connections, vault-otp) ↓ Amazon SNS — email alerts (BLOCK) + OTP delivery ↓ API Gateway WebSocket — push incident payload → Next.js SOC dashboard Borderline path (60–89%): Frontend camera capture ↓ Amazon Rekognition (+ reference photos in S3: vault-reference-photos) ↓ Lambda: vault-verify-otp — OTP / verification step ``` ## 技术栈 | 层级 | 技术 | |---|---| | 前端 | React、TypeScript、Next.js、Tailwind CSS、shadcn/ui、COBE 地球仪、Framer Motion | | 页面 | 登录(灯效)、SOC 战情室仪表板、事件报告 | | AI 分析 | Amazon Bedrock — Claude Sonnet 4.6 | | 人脸验证 | Amazon Rekognition + Amazon S3(`vault-reference-photos`) | | 计算 | AWS Lambda(`vault-receive-event`、`vault-verify-otp`) | | 数据库 | Amazon DynamoDB(`vault-events`、`vault-connections`、`vault-otp`) | | 通知 | Amazon SNS(阻断告警、OTP 验证码) | | API | API Gateway WebSocket(实时 UI)、API Gateway HTTP(模拟/摄入) | | 区域 | us-west-2 | ## 团队 | 姓名 | 角色 | 负责 | |---|---|---| | My Truong | 前端 + 全栈负责人 | Next.js 应用(3 个页面)、AWS Lambda、Bedrock AI 集成、DynamoDB、API Gateway WebSocket + HTTP、SNS 邮件告警、OTP 验证、Rekognition 人脸验证、Bedrock 防护栏、模拟脚本、端到端演示 | | Jenny | AWS / ML 支持 | Rekognition 参考照片设置、S3 存储桶配置 | ## API 协议 ``` POST /api/login-event { "accountId": "j***@definitelysafe.co", "ip": "185.220.101.47", "location": [44.4268, 26.1025], "city": "Bucharest", "country": "RO", "deviceFingerprint": "unknown", "mfaPassed": false, "timestamp": "2026-04-18T02:01:00Z" } WebSocket Response: { "confidence": 97, "verdict": "BLOCK", "tier": "auto", "reasoning": [ "Last login: Irvine CA, 2:14pm PST", "Current login: Bucharest RO, 2:01am EET", "Distance: 5,700 miles in 6 hours — physically impossible", "Device fingerprint: NO MATCH", "MFA: NOT PASSED", "Verdict: BLOCK SESSION" ], "coordinatedAttack": false, "affectedAccounts": [], "action": "auto-blocked", "reportId": "INC-2047", "agentSteps": [ { "agent": "Triage", "status": "complete", "score": 97 }, { "agent": "CrossAccount", "status": "complete", "found": 0 }, { "agent": "Decision", "status": "complete", "action": "BLOCK" } ] } ``` ## 仓库结构 ``` CloudHacks26/ ├── frontend/ │ ├── src/ │ │ ├── app/ # Next.js routes (/, /dashboard, /report) │ │ ├── components/ │ │ │ ├── sentinel/ # login-screen, soc-war-room │ │ │ └── ui/ # shadcn + lamp, COBE globe, etc. │ │ ├── hooks/ │ │ │ └── useWebSocket.ts # WebSocket URL + incident mapping │ │ └── lib/ │ │ └── soc-data.ts # types + seed copy │ └── package.json ├── simulation/ │ └── fire-events.py # POSTs demo events to API Gateway HTTP └── README.md ``` ## 跟踪目标 - **AWS 赛道** — 主要(Lambda、Bedrock、DynamoDB、API Gateway WebSocket + HTTP、SNS、S3、Rekognition) - **最佳 AI 安全赛道** — 次要(Bedrock 的可解释推理、人机交互 + 60–89% 置信度区间的 Rekognition) UCI CloudHacks 2026 — 72 小时 — 2026 年 4 月 17–20 日 ## 开始使用 **前置条件:** Node.js 20+、npm,以及(可选)Python 3 和 `requests` 用于模拟脚本。 **运行前端(SOC UI):** ``` git clone https://github.com/wytruong/CloudHacks26 cd CloudHacks26/frontend npm install npm run dev ``` 在浏览器中打开 [http://localhost:3000](http://localhost:3000)。使用 `/` 访问灯效登录页,`/dashboard` 进入战情室,`/report` 查看事件报告。 **实时数据:** 仪表板需要配置已部署的 API Gateway WebSocket 端点(在 `frontend/src/hooks/useWebSocket.ts` 中设置)。如果重新部署后端,请更新该常量指向你的阶段。 **触发演示登录事件:** ``` cd CloudHacks26/simulation python3 -m pip install requests # once, if needed python3 fire-events.py ``` 该脚本将一系列模拟登录 POST 到 HTTP API,从而触发 `vault-receive-event`(URL 定义在 `fire-events.py` 顶部 — 如果 API 变更请更新)。 ## 🌐 在线演示 https://vault-cloudhacks.vercel.app
标签:2026, Amazon Bedrock, Amazon DynamoDB, Amazon Rekognition, Amazon SNS, AMSI绕过, API Gateway WebSocket, AWS, DPI, OTP 验证, SOC 仪表盘, UCI CloudHacks, 人脸比对, 威胁检测, 漏洞探索, 登录风险分析, 自主安全, 自动化响应, 自动化攻击, 账户接管检测, 身份安全