OstorlabのInsecure Flutter Apps:モバイルセキュリティを学び、テストするための実践の場
Ostorlabは、テストと教育を目的として意図的に脆弱に作られた2つのFlutterアプリをオープンソースとして公開しました。iOSネイティブのアプリとJava/C++/Flutterアプリの2つで、モバイルアプリによくあるさまざまな脆弱性を取り上げています。Apache-2.0ライセンスで提供され、Flutterのセキュリティを理解するための実践的なリソースとなります。
テストと教育を目的とした、安全でない2つのFlutterアプリをオープンソースとして公開したことをお知らせします。
1つ目のアプリは、iOSの脆弱性に焦点を当てたFlutterネイティブのアプリです。
2つ目のアプリは、Java/C++/Flutterのアプリです。
どちらのリポジトリもGitHubでホストされており、Apache-2.0ライセンスで提供されています。
リポジトリについて
Ostorlab Insecure Flutter Appは、セキュリティテストと教育のために意図的に脆弱に作られたFlutterアプリです。 このアプリは、モバイルアプリによく見られるさまざまなセキュリティ脆弱性を示すように設計されています。そのため、Flutterのさまざまなセキュリティ脆弱性をテストし、学ぶための最適な実践の場となります。
取り上げている脆弱性
このアプリでは、以下を含む(ただしこれらに限定されない)多種多様な脆弱性を取り上げています。
- Biometric None
CryptObject:生体認証において、暗号による保護の実装が誤っている、または欠如していることに関連する脆弱性を示します。 - ECB暗号モード:暗号の動作モードとしてECB(Electronic CodeBook)モードを使用することの弱点を示します。
- 安全でないコマンド:安全でないコマンドやシステムコマンドがアプリから実行される場合の脆弱性を示します。
- リフレクションAPI:リフレクションAPIの安全でない使用例を示します。
- TLSトラフィック:暗号化されていない、または不適切に暗号化されたTransport Layer Security(TLS)トラフィックを使用する際の潜在的なセキュリティ脅威を説明します。
- 平文トラフィック:機密データを平文のトラフィックで送信することに伴うリスクを取り上げます。
- URL内のハードコードされた認証情報:URL内に機密性の高い認証情報をハードコードすることのリスクを示します。
- 安全でない乱数:機密性の高い処理に安全でない乱数生成器を使用することの問題を示します。
- オラクルパディング:オラクルパディング脆弱性の潜在的な危険性を示します。
- SQLiteデータベース呼び出し:SQLiteデータベースの呼び出しに関する安全でない実装を示します。
- WebViewの安全でない設定:安全でないWebView設定による潜在的な脆弱性を示します。
- コマンド実行:システムコマンドを実行する際の潜在的な問題を示します。
- ハッシュ呼び出し:ハッシュ関数の不適切な使用を示します。
- 安全でないShared Preferences:Shared Preferencesの安全でない取り扱いに関するリスクを示します。
- パストラバーサル:パストラバーサル脆弱性の潜在的な危険性を示します。
- 静的IV:暗号化に静的な初期化ベクトルを使用することに伴うセキュリティリスクを示します。
貢献する方法
Ostorlab Insecure iOS Appへの貢献はいつでも歓迎しており、大変ありがたく思っています。貢献にはいくつかの方法があります。
- バグ報告:バグや何かおかしいと思われる点に遭遇した場合は、GitHubリポジトリでissueを作成して報告してください。
- 改善提案:アプリを改善するアイデアがあれば、提案の詳細を記載したissueをお気軽に作成してください。
- コードによる貢献:プルリクエストを作成してアプリを改善してください。バグの修正、UIの改善、新たに取り上げる脆弱性の追加、ドキュメントの充実など、どのようなものでも構いません。
- 皆さんの貢献は、アプリの改善に役立つだけでなく、モバイルアプリケーションセキュリティに対するコミュニティ全体の理解の向上にもつながります。