arijitkroy/DeXray

GitHub: arijitkroy/DeXray

DeXray 是一个结合静态启发式分析与 GenAI 语义解释的 Android APK 恶意软件检测与威胁狩猎仪表板。

Stars: 0 | Forks: 1

# DeXray // 基于 GenAI 的 APK 恶意软件分析平台 DeXray 是一个专为下一代移动安全团队设计的统一安全情报与威胁狩猎仪表板。它将底层的 **静态启发式分析** 与 **GenAI 语义解释** 相结合,用于分析 Android 二进制文件(`.apk` 文件),以检测凭据收集覆盖层、后台短信拦截以及隐蔽的命令与控制 (C2) 行为。 ## 核心功能 * **高弹性的 APK 反汇编与反编译**: * 使用 `Androguard` 干净地解包二进制结构、包、intent 和服务。 * 如果 APK 被混淆或加壳,则动态回退到原始 zip 级别的字节提取和 `classes.dex` 扫描。 * **GenAI 语义核心**: * 集成了现代 `google-genai` SDK,使用 `gemini-2.5-flash` 对可疑的 Smali 字节码块执行语义代码分析。 * 将发现映射到活跃的威胁场景,并识别关键战术。 * 健壮的异常处理,结合离线、高保真的本地启发式 AI 引擎,确保 100% 的稳定性。 * **行为分析引擎**: * 复用提取的权限、可疑的 Smali 代码片段以及 DEX/原始字符串信号,推断攻击者行为,如短信拦截、覆盖层滥用、无障碍服务滥用、开机持久化、反射使用和动态加载。 * 生成统一的 `behavior_analysis` 对象和 `behavior_score`,以支持语义风险评估。 * **数学风险引擎**: * 根据严密的数学公式计算威胁严重程度评分,综合考虑基础权限值、结构化代码指标、行为信号强度以及 GenAI 乘数的确定性。 * **高级 SOC 控制面板**: * 可视化交互式 **风险仪表盘**,随威胁严重程度动态缩放。 * 基于标签页的导航,详细展示高管风险报告、Android 权限配置、服务 intent 以及原始 Smali 代码片段。 * 实时自动化 SOC SIEM/SOAR 事件响应 webhook 模拟。 ## 数学风险评分公式 DeXray 使用以下确定性公式来确定风险评分: $$ \text{Risk Score} = \min(100.0, (\text{Permission Base Score} + \text{Structural Anomalies Score} + \text{Behavior Score}) \times \mu_{\text{AI}}) $$ 其中: * **权限基础分**: * 每个短信拦截权限加 `+15` 分(`RECEIVE_SMS`、`READ_SMS`)。 * 绑定无障碍服务加 `+25` 分(`BIND_ACCESSIBILITY_SERVICE`)。 * **结构异常分**: * 每个匹配的二进制特征加 `+10` 分(例如,明文 HTTP C2 IP 配置、WindowManager 覆盖层、Telegram 机器人或无障碍键盘记录器钩子)。 * **AI 置信度乘数 ($\mu_{\text{AI}}$)**: * 由 Gemini 动态计算的浮点乘数,介于 `1.0` 和 `1.5` 之间,基于语义代码与恶意软件模板的匹配程度。 ## 项目结构 ``` DeXray/ ├── app.py # Streamlit Frontend, Custom CSS Themes & Gauge SVG ├── analyzer.py # Core decompilation, signature sieve, scoring & Gemini Client ├── requirements.txt # Project library configuration ├── .env # Environment secrets for the Gemini API Key └── README.md # Project documentation ``` ## 快速开始 ### 1. 前置条件 确保您已安装 Python 3.10+。 ### 2. 安装依赖 从 requirements 文件安装所有必需的库: ``` pip install -r requirements.txt ``` ### 3. 配置 Gemini API Key 您可以使用标准环境文件或 Streamlit 的密钥管理器来管理您的凭据: * **选项 A:Streamlit Secrets(推荐用于 Streamlit Cloud 部署)** 在根目录下创建一个 `.streamlit/secrets.toml` 文件,并添加以下内容: ``` GEMINI_API_KEY = "your_api_key_here" ``` *(注意:此文件会被 git 忽略,不应提交到您的代码库中)。* * **选项 B:环境配置** 在根目录下创建一个 `.env` 文件: ``` GEMINI_API_KEY=your_api_key_here ``` * **选项 C:将 .env.example 复制为 .env 并配置您的服务商:** ``` cp .env.example .env ``` *(如果未配置任何密钥,DeXray 将回退到离线模拟分析器)。* ### 4. 运行平台 启动本地 Streamlit 仪表板: ``` streamlit run app.py ``` 在浏览器中打开 `http://localhost:8501`。 ## 交互式演示沙箱 为了进行实时演示和模拟展示,DeXray 包含一个沙箱,其中预设了著名银行木马变种的配置: * **TeaBot (Anatsa)**:演示短信拦截、无障碍键盘记录事件以及 Telegram API C2 通信通道。 * **Anubis V2**:突出展示动态登录覆盖层、开机持久化循环以及明文 socket 调用。
标签:Android逆向, DAST, Kubernetes, Python, 人工智能, 安全可视化, 恶意软件分析, 无后门, 用户模式Hook绕过, 目录枚举, 移动安全, 逆向工具