ykus4/shingan
GitHub: ykus4/shingan
一款同时支持 iOS 和 Android 的移动应用静态+动态安全分析工具,将逆向暴露风险映射至 OWASP MASVS,帮助团队在发布前把控安全质量。
Stars: 0 | Forks: 0
**针对 iOS 和 Android 应用的静态 + 动态安全分析**
在发布之前,直观展示您的应用暴露出哪些可被逆向工程的风险。
[](https://www.python.org/)
[](LICENSE)
[](https://mas.owasp.org/MASVS/)
[](https://github.com/ykus4/shingan/actions/workflows/ci.yml)
iOS — 静态 (IPA / .app / .xcarchive)
| 规则 ID | 类别 | 检测内容 | |---|---|---| | `IOS-SYM-001` | 符号 | 调试符号,ObjC 类/方法元数据,Swift 混淆名 | | `IOS-SEC-002` | 机密信息 | 硬编码的 API 密钥、token、HTTP URL(正则表达式 + Shannon 熵) | | `IOS-ATS-003` | 传输 | `NSAllowsArbitraryLoads`、按域名例外、弱 TLS、文件共享 | | `IOS-DBG-004` | 调试 | `get-task-allow` 授权,`NSLog`/`print` 字符串,`NSAssertionsEnabled` | | `IOS-RASP-005` | 保护 | 越狱检测、Frida/LLDB 防篡改、SSL pinning — 存在或缺失 | | `IOS-RASP-006` | 二进制 | PIE (Position Independent Executable) | | `IOS-RASP-007` | 二进制 | Stack canary | | `IOS-RASP-008` | 二进制 | ARC (Automatic Reference Counting) | | `IOS-SEC-009` | Keychain | 弱 `kSecAttrAccessible*` 访问级别 | | `IOS-SEC-010` | 加密 | MD5、SHA-1、DES/3DES、RC4、ECB 模式 | | `IOS-DEP-011` | SBOM | 第三方 SDK 指纹识别 (Firebase、Stripe、OpenSSL、…) | | `IOS-META-012` | 元数据 | 权限过高的后台模式、敏感权限、缺少 ATS |iOS — 动态 (需要 shingan[dynamic] + 已连接的设备)
| 规则 ID | 测试内容 |
|---|---|
| `IOS-DYN-001` | 通过 Frida 绕过 SSL pinning — pinning 是否真正阻止了 MITM? |
| `IOS-DYN-002` | 通过 Frida 绕过越狱检测 — 检测机制能否被绕过? |
| `IOS-DYN-003` | `PT_DENY_ATTACH` 有效性 — LLDB 能否成功附加? |
Android — 静态 (APK)
| 规则 ID | 类别 | 检测内容 | |---|---|---| | `AND-SEC-002` | 机密信息 | DEX 和原生库中硬编码的凭据(正则表达式 + 熵) | | `AND-NET-003` | 传输 | `cleartextTrafficPermitted`、用户 CA 信任、`network_security_config.xml` 中缺少 pinning | | `AND-DBG-004` | 调试 | `android:debuggable=true`、DEX 中的 `Log.d`/`Log.v` 调用 | | `AND-RASP-005` | 保护 | Root 检测、Frida/Xposed、调试器检测、SSL pinning — 存在或缺失 | | `AND-RASP-006` | 二进制 | 捆绑的 `.so` 库上的 PIE | | `AND-RASP-007` | 二进制 | 捆绑的 `.so` 库上的 NX bit、stack canary、RELRO | | `AND-SEC-010` | 加密 | 弱 JCA/JCE:MD5、SHA-1、DES、ECB 模式、RSA/PKCS1 | | `AND-META-012` | 权限 | 危险权限:SEND_SMS、READ_CALL_LOG、ACCESS_FINE_LOCATION、… | | `AND-META-013` | Manifest | `android:allowBackup=true`、未受权限保护而暴露的组件 | | `AND-DEP-011` | SBOM | SDK 指纹识别 (Firebase、OkHttp、Sentry、Unity、Flutter、…) | | `AND-SDK-015` | Manifest | `minSdkVersion` 低于 API 23 | | `AND-SIGN-014` | 签名 | 仅 v1 (JAR) 签名 — 未检测到 v2/v3 方案 |Android — 动态 (需要 shingan[dynamic] + 已连接的设备)
| 规则 ID | 测试内容 |
|---|---|
| `AND-DYN-001` | 通过 Frida 绕过 SSL unpinning — hooks OkHttp3、TrustManager、HostnameVerifier |
| `AND-DYN-002` | 通过 Frida 绕过 Root 检测 — hooks File.exists、Runtime.exec、Build.TAGS |
手动工作流
``` - name: Scan run: uv run shingan scan build/MyApp.ipa --format sarif --out shingan.sarif --fail-on high - name: Upload to GitHub Code Scanning uses: github/codeql-action/upload-sarif@v3 with: sarif_file: shingan.sarif ```
MIT License © [ykus4](https://github.com/ykus4)
标签:Android安全, APK分析, DAST, Debug检测, iOS安全, IPA分析, OWASP MASVS, Python, SARIF, SAST, 云资产清单, 合规性检查, 安全助手, 安全合规, 密钥硬编码, 应用安全测试, 恶意软件分析, 无后门, 源码泄露检测, 目录枚举, 盲注攻击, 移动安全, 网络代理, 聊天机器人, 请求拦截, 越狱检测, 逆向工具, 逆向工程, 错误基检测, 静态代码分析