Order of Six AnglesБыстрый АПК парсер, интегрирую себе в пайплайн https://github.com/delvinru/apk-info
Мой пайплайн по анализу андроид приложений:
Stage 0 — APK Metadata (apk-info):
Мгновенный парсинг (~2мс) манифеста без декомпиляции: пакет, SDK-версии, все permissions, exported-компоненты, подписи (v1/v2/v3), security profile. Уже на этом этапе детектит: debuggable-флаг, v1-only подпись (уязвимость Janus, CVE-2017-13156), привилегированные системные permissions, exported ContentProvider'ы без защиты.
• 184 regex-правила — быстрый pattern matching по декомпилированным исходникам • 331 semgrep-правило — AST-анализ (taint tracking, data flow) • Анализ Blutter pp.txt (Dart-символы для Flutter-приложений) • dexfinder call chain tracing — трассировка цепочек вызовов от exported-компонентов к уязвимым методам
Stage 3 — Merge + фильтрация + обогащение:
• Дедупликация по (rule_id, file, line) • SDK-фильтр (732 паттерна) — убирает 98% шума от Google, Firebase, OkHttp, Retrofit и ещё 150+ SDK • Классификация severity через RoBERTa модель • Аннотация exported-статуса: кросс-проверка finding → AndroidManifest → dexfinder reachability • RAG-обогащение каждого finding контекстом из базы знаний
Stage 4 — LLM-анализ (6 агентов параллельно):
Каждый агент — специалист в своей области, получает только релевантные findings + RAG-контекст: • Agent 1: Manifest + Attack Surface • Agent 2: Network + TLS • Agent 3: Auth + Cryptography • Agent 4: WebView + JS Bridge • Agent 5: Business Logic • Agent 6: Native Libraries • Agent 7 (Judge): валидирует CRITICAL/HIGH от всех агентов, отсекает false positives
Order of Six Anglesвайбкодю pipeline по анализу малвари для себя. Вдобавок скачал много сэмплов (с vxunderground) (сотни тысяч), архивы inthewild, прогоняю их круглосуточно через клод. Генерю yara правила, binlex базу собираю, richpe, и другую аналитику - тем самым формирую…
ДоОбучил небольшую qwen модель для локального использования в pipeline (анализ Android приложений). В распоряжении имею mac mini m4 24Gb 512Gb.
Датасет:
105,074 сэмпла (95,796 train / 9,278 valid). Сэмплы представляют собой куски кода, в основном декомпилированного, так как анализируется JADX/apktool аутпут. Куски реального кода, но есть немного синтетически сгенерированных клодом. Источники: 275 реальных Android-приложений, пропущенных через pipeline статического анализа (JADX + Semgrep + Regex + Trueseeing + Mariana Trench + dexfinder + кастомное_дерьмо) 20+ типов CWE, 35% clean-сэмплов (код без уязвимостей, чтобы модель не галлюцинировала)
Обучение:
Модель: Qwen2.5-Coder-14B-Instruct Метод: QLoRA (4-bit base + LoRA r=32) GPU: Арендованная RTX 5090 32GB в сервисе RunPod. Аренда стоит 1$ в час Framework: Unsloth 2 эпохи, 11,976 шагов, ~27 часов
Динамика обучения:
Train loss: 1.54 → 0.53 → 0.33 → 0.28 Eval loss: 0.533 → 0.493 → 0.395 → 0.358 → 0.339 Eval loss падал стабильно до самого конца. ни одного скачка вверх. Overfitting не случился.
Стоимость:
~$27 за GPU (RTX 5090 ~$1/час × 27 часов). Плюс $2-3 за хранение. Итого ~$30 за полный fine-tune 14B модели.
О результатах реального использования отпишусь позже. В планах использовать подобный подход в моем ios pipeline. Да, кажется что модель маленькая и особо ничего не сможет, но конкретно в android pipeline 80% работы делают статические тулзы, ИИ лишь реорганизует и следит за мелкими косяками, так что маленькая модель подходит.
вайбкодю pipeline по анализу малвари для себя. Вдобавок скачал много сэмплов (с vxunderground) (сотни тысяч), архивы inthewild, прогоняю их круглосуточно через клод. Генерю yara правила, binlex базу собираю, richpe, и другую аналитику - тем самым формирую knowledge base. RAG база тоже на подходе. Пока так