
mobileAudit v3.2.0
Android APK向けのSASTおよびマルウェア解析を実行するDjangoアプリケーション
Mobile Audit

MobileAudit - AndroidモバイルAPK向けSASTおよびマルウェア解析
Django Webアプリケーションで、Android APK内の静的解析と悪意のあるコンテンツの検出を行います。このプロジェクトはアプリのメタデータを抽出し、ソースコードの弱点をスキャンし、結果(SAST所見、ベストプラクティス、証明書情報、文字列、データベース、ファイル、VirusTotalなど)を集約して、ブラウズ可能なダッシュボードとAPIにまとめます。
DeepWikiドキュメント: https://deepwiki.com/mpast/mobileAudit

各スキャンでは以下の情報が提供されます。
- APK情報と解析: アプリケーション情報、セキュリティ情報、コンポーネント、証明書情報、文字列、データベース、ファイル
- CWEおよびMobile Top 10マッピングで分類されたSAST所見
- ルールを切り替え可能なパターンエンジン
- MalwareDBおよびMaltrailに対するマルウェアドメインチェック
- VirusTotal(API v3)ルックアップとオプションのアップロード(デフォルトでは無効)
- DefectDojo連携(API v2)(オプション)による所見のエクスポート
- SwaggerおよびReDocによるAPI、トークンベースの認証
- スキャンレポートのPDFエクスポート
- 誤検知トリアージにより所見を編集可能

簡単にアクセスするために、スキャンページの左側にサイドバーがあります。

コンポーネント

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: Mobile Audit App (Django 3.2.16)
Dockerベースイメージ
イメージはpython busterに基づいています。Docker Hubイメージへのリンク
| イメージ | タグ | ベース |
|---|---|---|
| mpast/mobile_audit | 3.0.0 | python:3.9.16-buster |
| mpast/mobile_audit | 2.2.1 | python:3.9.7-buster |
| mpast/mobile_audit | 1.3.8 | python:3.9.4-buster |
| mpast/mobile_audit | 1.0.0 | python:3.9.0-buster |
主な機能
- Dockerで動作し、簡単で再現可能なデプロイメント
- 詳細なAPK情報を抽出・表示
- CWEおよびMobile Top 10リスクにマッピングされたSASTルール
- マルウェア指標の検出(MalwareDB / Maltrail)
- VirusTotalおよびDefectDojoとの統合ポイント(オプション)
- スキャン結果のPDFエクスポート
- ユーザー認証、管理、トークンベースのAPI
- SwaggerおよびReDocドキュメント
- 本番環境対応のTLS対応Nginx設定
計画中 / 要望リスト
- LDAP統合
- Markdown / CSVへのエクスポート
- 動的ページリロードの改善(作業中)
パターン
- アプリには、APK内の潜在的な脆弱性や悪意のあるスニペットを検出するルール/パターンエンジンが含まれています。
- パターンは設定可能で、
/patternsUIから有効/無効にできます。 - 注: 一部のハードコードされたパターンはapkleaksプロジェクトから派生しています: https://github.com/dwisiswant0/apkleaks

モデル
アプリケーションは、スキャン情報の各エンティティに対してモデルを作成しており、各APKの最良の結論を得るための関係を構築できるようになっています。

モデルスキーマ全体を見るには、modelsへ。
インストール
Docker-composeを使用:
提供されているdocker-compose.ymlファイルを使用すると、開発環境でローカルにアプリを実行できます。
ローカルイメージをビルドするには、ローカルのApplication Dockerfileに変更がある場合、次のコマンドでイメージをビルドできます:
docker-compose build
次に、コンテナを起動するには、次を実行します:
docker-compose up
オプション: デタッチモードで実行(ログを表示しない)
docker-compose up -d
アプリケーションが起動したら、http://localhost:8888/ にアクセスしてダッシュボードを確認できます。

また、docker-compose.prod.yamlを使用したTLSバージョンがポート443で実行されています。
使用するには、次を実行します
docker-compose -f docker-compose.prod.yaml up
その後、https://localhost/ にアクセスしてダッシュボードを確認できます。
詳細はTLSを参照してください。
コンテナを停止して削除するには、次を実行します
docker-compose down
API v1
SwaggerおよびReDocを使用したREST API統合。
使用方法
- 認証とトークン取得のエンドポイント:
/api/v1/auth-token/

- 認証後は、すべてのリクエストにヘッダーを使用:
Authorization: Token <ApiKey>
Swagger

ReDoc

エンドポイント
/swagger.jsonでのAPI仕様のJSONビュー/swagger.yamlでのAPI仕様のYAMLビュー/swagger/でのAPI仕様のSwagger UIビュー/redoc/でのAPI仕様のReDocビュー
TLS
前提条件
- 証明書を
nginx/sslに追加 - 自己署名証明書を生成するには:
openssl req -x509 -nodes -days 1 -newkey rsa:4096 -subj "/C=ES/ST=Madrid/L=Madrid/O=Example/OU=IT/CN=localhost" -keyout nginx/ssl/nginx.key -out nginx/ssl/nginx.crt
Nginx設定
- TLS - ポート443:
nginx/app_tls.conf - 標準 - ポート8888:
nginx/app.conf
Docker設定
デフォルトでは、docker-compose.yml にポート8888を使用する設定のボリュームがあります。
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
本番環境では、ポート443を使用する docker-compose.prod.yaml を使用します
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
環境変数
すべての環境変数は .env ファイルにあります。必要な変数はすべて .env.example にあります。また、app/config/settings.py にまとめられています。
ローカル開発向けの推奨最小 .env 調整
- SECRET_KEY、DB認証情報、管理者ユーザー認証情報を設定します。
- 有効なAPIキーとサービスが利用可能でない限り、VirusTotal / DefectDojoは無効のままにします。
コントリビューション
コントリビューションをご希望の場合は、Contributingをご覧ください。