urcuqui/DroidSentinel-AI
GitHub: urcuqui/DroidSentinel-AI
一个基于Streamlit和随机森林算法的Android恶意软件检测工具,通过分析应用权限进行快速分类预测。
Stars: 0 | Forks: 0
# DroidSentinel-AI
DroidSentinel-AI 是一个 Streamlit 应用,它使用权限数据训练 Random Forest 分类器来检测 Android 恶意软件。它允许你探索 20 个最重要的权限,并通过切换应用请求的权限来模拟新的应用。
## 演示

## 功能
- 在本地对你的 `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解析器, 访问控制, 资源验证, 逆向工具, 随机森林, 隐私保护, 静态分析