モバイルアプリケーションは、さまざまな業界の組織にとって不可欠なものとなり、業務の強化、顧客とのエンゲージメント、プロセスの合理化、全体的な生産性の向上に貢献しています。また、利便性、可用性、コミュニケーション、エンターテイメント、教育を促進することで、エンドユーザーの日常生活において重要な役割を果たしています。この急速な進化に伴い、Androidアプリのセキュリティを確保することは最も重要です。これを達成するための最も効果的な方法の1つが、脆弱性評価および侵入テスト(VAPT)であり、セキュリティ脆弱性の特定と軽減に役立ちます。
このブログでは、VAPTと、当社のVAPT活動の一環としてSourceFuseセキュリティチームが開発した社内ツールDivyaAstraを使用したAndroidアプリケーションの静的解析の実施プロセスについて探ります。
VAPTとは?
VAPTは、システムまたはネットワークにおける潜在的なサイバーセキュリティ脆弱性を特定し、対処することを目的とした包括的なセキュリティテストアプローチです。脆弱性評価とは、攻撃者によって悪用される可能性のある弱点や欠陥を特定するために、システムをスキャンおよび分析することを含みます。これには、古いソフトウェア、誤った構成、既知の脆弱性が含まれる場合があります。侵入テストは、さらに一歩進んで、実際の攻撃をシミュレートしてシステムの回復力を評価します。これには、特定された脆弱性を悪用して不正アクセスや制御を獲得しようとすることが含まれます。
AndroidおよびiOSを含むモバイルアプリケーションのVAPTには4つのフェーズがあります。
- 静的解析
- 動的解析
- 悪用
- レポート作成
静的解析テストは、モバイルアプリケーションがバグがなく、適切に動作し、セキュリティ基準を満たしていることを保証する上で重要な役割を果たします。これは、コードを実行せずに検査するデバッグ方法であり、極めて重要なフェーズです。セキュリティ基準に従って適切に構成およびテストされていない安全でないアプリケーションは、データ漏洩、セキュリティ設定の誤り、認証/認可の問題など、数多くのセキュリティ問題を引き起こす可能性があるため、今日のモバイルアプリケーションのセキュリティ確保はますます重要になっています。
暗号化やセキュアコンテナなどのデータ保存方法の実装の失敗により、実際に多くのセキュリティ問題が発生しています。最近の例では、PayPalのモバイルアプリで脆弱性が発見されました。このアプリは、ユーザーの認証情報をデバイスのローカルストレージに平文または不適切に暗号化された形式で保存していました。これは、複数のAndroidバンキングアプリが、機密データ(ユーザー名、パスワード、セッショントークン、内部IPアドレス、URL、インフラ構成など)を保存するためにOpen Worldwide Application Security Project (OWASP) が推奨する安全なデータ保存ガイドラインを遵守していなかったことを意味します。
DivyaAstraによって発見された静的解析の脆弱性
SourceFuseの社内ツールであるDivyaAstraは、ハードコードされたデータ、ID、APIキー、パスワード、トークン、IPアドレス、秘密鍵、シークレットキー、バケットの詳細などの機密性の高い文字列を含む重要な情報を収集するオープンソースツールの集合体です。機密データの収集に加えて、このツールはReactやFlutterなどの人気のあるフレームワークを含むアプリケーションエコシステムを徹底的に評価します。
アプリケーションの動作に関する洞察を得るためにリバースエンジニアリングを実行し、エンドポイント、Firebaseデータ、URLなどの重要な情報を抽出します。このスクリプトは、エクスポートされたアクティビティ、サービス、レシーバー、権限に関する詳細を提供するAndroid XMLファイルも分析し、アプリケーションの構造を包括的に評価します。さらに、このツールはNucleiテンプレートベースのスキャンを活用して、証明書検証、バックアップおよびデバッグ構成、生体認証検出などの重要なチェックを実行します。サードパーティライブラリの脆弱性を特定し、古いソフトウェアバージョンにフラグを立てることで、アプリケーションのセキュリティ体制を強化します。
このツールは、VAPTプロセスを強化するだけでなく、モバイルアプリケーションセキュリティへのプロアクティブなアプローチを促進し、開発者とセキュリティ専門家の両方にとって貴重な資産となります。整理された結果を提供することで、チームメンバーは調査結果に簡単にアクセスし、迅速に理解することができます。また、組み込みの自動化機能によりプロセス全体が合理化され、VAPT活動の有効性と効率が向上します。全体として、このツールはセキュリティ評価におけるチームワークと生産性の両方を向上させます。
DivyaAstraの主要要素

包括的な分析
このツールは、モバイルアプリケーション、特にAndroidの静的解析フェーズをナビゲートし、アプリケーション内のAndroid APKファイル全体を検査して脆弱性を特定します。
脆弱性検出のためのオープンソースツール
このツールは、機密性の高い文字列(ハードコードされたデータ、ID、APIキー、パスワード、トークン、IPアドレス、秘密鍵、シークレットキー、バケット情報)、Androidのコード難読化(リバースエンジニアリング)、Android XMLファイル情報、およびエクスポートされたアクティビティ、サービス、レシーバーなどの権限を特定します。
DivyaAstraをCI/CDに統合
このツールをJenkins CI/CDパイプラインに統合することは、ソフトウェア開発ライフサイクルにおけるセキュリティ課題に対処し、セキュリティプラクティスを最新のソフトウェアデリバリープロセスと連携させる上で極めて重要でした。これにより、サイバーセキュリティへのプロアクティブなアプローチが促進され、現在の懸念に対処し、進化する脅威に対するアプリケーションの回復力を高める先進的なセキュリティ戦略を確立することができます。
改善と近代化
定期的に、スクリプトに統合されているすべての静的解析ツールは、業界市場で最新バージョンが利用可能になり次第アップグレードされます。
自動化されたプロセス
静的解析のためにスクリプトに統合されたツールは、スキャンプロセスを自動化し、効率的かつ一貫性のあるものにすることができます。

非侵入型テスト
静的解析はコードの実行を必要としないため、非侵入型であり、実行中のアプリケーションに干渉しません。これにより、コードの実行が実現不可能またはリスクを伴う可能性のある環境でも安全に使用できます。
オープンソースツール vs DivyaAstra


ローカルホストでDivyaAstraツールを実行する手順:
- Kali Linux/Ubuntuターミナルを開き、bashスクリプトが保存されているディレクトリを開いて、APKファイルの完全なパスを指定してツールを実行します。
例:./DivyaAstra.sh /users/carlos/test.apk - スクリプトが実行され、スクリプトに統合されたツールが順次実行されます。これはターミナルで確認できます。
- スクリプトが正常に実行され、APKのzipファイルが生成されたら、それを解凍すると整理されたフォルダにファイルが出力されます。
例:Android – Bugs, Recon, Reverse, Urls - スクリプトによって特定された脆弱性については、すべてのテキストファイルをさらにレビューする必要があります。
- DivyaAstraをJenkinsに統合するには、まずAWSインスタンス(Ubuntu)にすべての依存関係をインストールし、Jenkinsを適切に構成する必要があります。その後、ビルドを実行し、ビルドが成功すると出力添付ファイルがメールで送信されます。


DivyaAstraのカバー範囲:

DivyaAstraの利点
- コード品質の向上:
DivyaAstraはコーディング標準とベストプラクティスを強制し、モバイルアプリケーションのために作成されたコードと構成が効率的であり、OWASPがモバイル向けに定めたガイドラインに従っていることを保証します。
- 開発者の生産性向上:
このツールを使用して一般的な問題の検出を自動化することで、開発者はより複雑で重要なタスクに集中できるようになり、生産性が向上し、デバッグに費やす時間が短縮され、ソフトウェア開発と展開に関連するリスクの軽減に役立ちます。
- 早期の脆弱性検出:
DivyaAstraは潜在的な脆弱性を早期に特定し、ランタイムエラーを減らし、より安定したソフトウェアを実現します。
- 時間と労力の節約:
CI/CDによる自動スキャンは、手動レビュープロセスと比較して、時間と労力を大幅に節約します。
- ドキュメント化とメンテナンス:
DivyaAstraからの出力は文書化され、継続的に監視および追跡され、参照のためにセキュリティチームによって維持されます。
結論
モバイルセキュリティテストにおける静的解析は、VAPTプロセスの重要な要素です。このツールを開発プロセスに統合することで、DivyaAstraは開発フェーズの早期にセキュリティ脆弱性を特定し、軽減することができ、手動VAPTの時間と労力を削減し、アプリが堅牢で安全であることを保証します。適切なツールを活用し、ベストプラクティスに従うことで、プロセスを合理化し、より良いセキュリティ結果を達成することができます。
DivyaAstraを使用することで、SourceFuseにおけるモバイルアプリケーションセキュリティテストのレベルを向上させました。セキュリティテスト、DivyaAstra、またはその他の関連トピックについてさらに詳しく知りたい場合は、SourceFuseの知識豊富な専門家にお気軽にお問い合わせください。当社のチームは、お客様のニーズに合わせた洞察とサポートを提供する準備ができています。