以下是ai审计报告:
针对开源项目 Yohann0617/oci-helper
,已对其完整的后端 Java 源码、所有外部网络请求、凭据存储方式、依赖库以及配套的 Docker 容器机制进行了逐行代码级审计。
一、 核心审计结论
审计结论:安全,不存在盗号行为、后门木马或偷传私钥的代码。
该项目完全开源透明,所有 OCI 操作均通过 Oracle 官方 Java SDK 直连甲骨文云端服务器。你的 API 私钥(.pem)与租户敏感信息仅保存在你自己的本地 VPS 上,不会被上传到作者服务器或任何第三方机构。
二、 敏感凭据与数据流向审计
敏感数据 本地存储位置 网络流向与使用方式 审计结果
API 私钥 (.pem) /app/oci-helper/keys/ 仅在本地被 Oracle 官方 SDK (SimpleAuthenticationDetailsProvider) 读取,用于计算 RSA 请求签名,绝不通过网络发送。 安全(仅本地使用)
租户/用户 OCID、Fingerprint 本地 SQLite 数据库 (/app/oci-helper/oci-helper.db) 仅作为 OCI SDK 初始化参数,直连甲骨文官方 API 节点。 安全(仅本地使用)
实例 root 密码 本地 SQLite 数据库 (oci_create_task 表) 仅在创建机器时通过 cloud-init (CommonUtils.getPwdShell) 注入新实例。 安全
面板 Web 登录凭证 环境变量 / 数据库 本地 JWT HS256 加密鉴权,密钥为你配置的密码。 安全
三、 完整外联网络请求审计(All Outbound HTTP/HTTPS)
对项目中全部网络请求类(HttpUtil、HttpRequest、OkHttpClient、RestClient、OCI SDK 等)的完整排查结果如下:
Oracle 官方云端 API(com.oracle.bmc.*)
端点:https://identity.<region>.oraclecloud.com、https://iaas.<region>.oraclecloud.com 等。
用途:正常的开机、查询配额、改 IP、放行安全组规则、管理 VCN 等操作。
放货广播提醒(唯一与作者服务器通信的接口)
端点:https://backend.oci-helper.de5.net/api/boot 和 /api/notify。
传输内容:当开机成功时,发送匿名统计信息(如:Region: ap-singapore-1、架构: ARM、4核/24G、耗时、是否升级号)。
安全性:绝不包含任何用户 IP、租户 OCID、密钥、密码或个人标识,仅用于在 Telegram @oci_helper 公共频道发布匿名放货提醒。
(注:在创建开机任务时,可自由取消勾选「频道放货广播」)。
版本更新检查
端点:https://api.github.com/repos/Yohann0617/oci-helper/releases/latest。
用途:拉取 GitHub Release 最新 tag,若有新版本在控制台提醒。
地理位置与地图渲染
端点:http://ip-api.com/json/...。
用途:获取当前 VPS 的公网 IP 经纬度与城市,在首页仪表盘渲染世界地图分布。
用户自定义通知(可选)
端点:https://api.telegram.org、https://oapi.dingtalk.com。
用途:使用你自己在面板后台填写的 Telegram Bot Token / 钉钉 Webhook 发送开机与告警通知。
Cloudflare DDNS(可选)
端点:https://api.cloudflare.com。
用途:使用你填写的 Cloudflare Token 在 IP 变动时同步更新 DNS 记录。
AI 助手(可选)
端点:https://api.siliconflow.cn。
用途:硅基流动 AI 对话功能(需用户自己填写 API Key)。
四、 容器与自动更新机制(oci-helper-watcher)审计
oci-helper-watcher 镜像内部仅运行一段极简的 shell 脚本(/watcher.sh)。
逻辑:每 2 秒检测本地共享文件 update_version_trigger.flag。当你在面板点击“一键更新”时,后台往该文件写入 trigger,watcher 检测到后执行本地 docker-compose pull 和 docker-compose up -d 重启容器。
安全性:不包含任意远程代码执行(RCE)通道或反弹 Shell。
五、 安全使用建议(防范外部风险与防封)
虽然代码本身安全无恶意,但为了保障甲骨文账号的安全与长久稳定,建议遵循以下安全规范:
修改默认弱口令并开启 MFA
初次登录后务必在后台修改默认账号密码(不要使用 yohann1)。
在「系统设置」中开启 Google Authenticator MFA 二次验证。
保持本地端口绑定(我们此前已完成配置)
确保 docker-compose.yml 中的 8818 端口绑定为 127.0.0.1:8818,只允许走 Nginx HTTPS 访问,避免公网明文传输被抓包嗅探。
甲骨文 API 权限最小化(可选进阶防护)
如果你想做到极致防范,可以在 Oracle IAM 中新建一个专门的子用户(如 api-runner),并在策略组中仅赋予其开机所需的最低权限(例如仅允许管理指定 Compartment 内的 instance-family 和 virtual-network-family),避免直接使用全权超级管理员(Administrators)的 API Key。
避免过短的抢机轮询间隔
建议抢机任务间隔设置在 30 秒 - 60 秒 以上,过于频繁(如低于 10 秒)容易触发甲骨文 API 429 限流或引发风控。