urcuqui/DroidSentinel-AI

GitHub: urcuqui/DroidSentinel-AI

一个基于Streamlit和随机森林算法的Android恶意软件检测工具,通过分析应用权限进行快速分类预测。

Stars: 0 | Forks: 0

# DroidSentinel-AI DroidSentinel-AI 是一个 Streamlit 应用,它使用权限数据训练 Random Forest 分类器来检测 Android 恶意软件。它允许你探索 20 个最重要的权限,并通过切换应用请求的权限来模拟新的应用。 ## 演示 ![DroidSentinel-AI demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/32ea42279b130940.gif) ## 功能 - 在本地对你的 `train.csv` 数据集进行离线训练(RandomForest,带缓存以加快重载速度)。 - 根据训练好的模型显示前 20 个最重要的权限。 - 简单的侧边栏 UI 用于切换请求的权限;如果你选择,所有未选中的权限默认为 0。 - 预测良性 (0) 或恶意软件 (1) 并报告类别概率。 ## 环境要求 - Python 3.9+ - 依赖项:`streamlit`, `pandas`, `numpy`, `scikit-learn` (见 `requirements.txt`)。 ## 安装 1. 克隆此代码库并在其文件夹中打开终端。 2. (可选) 创建并激活虚拟环境。 3. 安装依赖项:`pip install -r requirements.txt`。 ## 数据集格式 (`train.csv`) - 位置:代码库根目录。 - 布局:单个 CSV 列,其标题列出所有权限特征名称加上 `type`,用分号 (`;`) 分隔。 - 每一行:与标题顺序匹配的分号分隔数值。`type` 是标签:`0` = 良性,`1` = 恶意软件。 - 最小示例: - 标题:`perm_A;perm_B;perm_C;type` - 行:`1;0;1;0` ## 运行应用 - 启动:`streamlit run main.py` - Streamlit 将在你的浏览器中打开(默认端口 8501)。 ## 使用方法 - 使用侧边栏选择你的 APK 请求的权限(为方便起见显示前 20 个)。 - 保持启用 “Set all non-selected permissions to 0”(将所有未选中的权限设为 0),以假设其余权限不存在。 - 点击 “Predict app type”(预测应用类型)以获取预测标签和概率。 ## 注意事项与限制 - 模型质量完全取决于 `train.csv` 的质量和平衡性;请使用最新的、具有代表性的样本重新训练。 - 此工具仅检查声明的权限;它不能替代动态分析或对 APK 的全面安全审查。
标签:AMSI绕过, Android恶意软件检测, Apex, APK扫描, Kubernetes, Python, Random Forest, Scikit-learn, Streamlit, 云安全监控, 人工智能, 分类模型, 威胁检测, 安全可视化, 指令注入, 数据科学, 无后门, 机器学习, 权限分析, 用户模式Hook绕过, 目录枚举, 移动安全, 网络安全, 自定义DNS解析器, 访问控制, 资源验证, 逆向工具, 随机森林, 隐私保护, 静态分析