Hello there, ('ω')ノ
Androidの不安全なファイル保存を。
脆弱性:
不安全なファイルシステム
記事:
https://pallabjyoti218.medium.com/android-insecure-file-storage-e770eed9a3fa
今回は、Androidアプリケーション上の不安全なファイル保存の問題について。
不安全なファイルシステムの懸念は、アプリケーションのデータが
Androidデバイス上で安全に保存されていること、つまり、デバイスから
そのデータにアクセスできないことを意味して。
アプリケーションが脆弱であれば、個人データの盗難や損失が可能で。
どのように脆弱なのか:
開発者がアプリケーションにデータを保存する際にミスをすることがあり。
これにより他のユーザや攻撃者によってデータが侵害される可能性があり。
アプリケーションが脆弱であれば、このファイルは適切な許可なしに
他のアプリケーションからアクセスできて。
データは、内部ストレージ、外部ストレージとして保存されて。
内部ストレージ:
すべてのアプリケーションには、DBや共有設定などのファイルデータが
含まれていて。
内部ストレージ上に作成したファイルは、アプリケーションのみがアクセスでき。
これはAndroidによって実装された保護で。
しかし、開発者はしばしばMODE_WORLD_READABLE & MODE_WORLD_WRITABLEを
使用してミスを犯して。
脆弱なアプリケーションを探すと、そのファイルデータは他の悪意のある
アプリによって読み取り可能であり、機密データが漏洩する可能性があり。
外部ストレージ:
外部ストレージ、たとえばSDカード上にファイルを作成すると、
それは常に読み書き可能で。
外部ストレージはユーザによって取り外されることができ、
また任意のアプリケーションによって変更されるため、
外部に機密ファイルを保存しないように注意する必要があって。
不安全なファイル保存を見つける方法:
このタイプのセキュリティ問題をチェックするためには、
ターゲットとなるアプリケーションと、ターミナル上で実行される
adbシェルが必要で。
特定のアプリケーションパッケージのAndroidアプリケーションを探してみると、
データはdata/data/application-packagesの中にあるはずで。
‘ls’ -l コマンドを使用して、特定のアプリケーションのファイル許可を確認できて。
ナビゲートして確認するには:
→ adb shell
特定のアプリケーションのファイル許可を確認するには、
→ ls -l /data/data/b3nac.injuredandroid/files
lsコマンドを使用してファイルの許可を確認すると、以下の画像のように
pass.xmlファイルがユーザデータを含んでいることがわかり。
これで、不適切なファイル許可のために他のアプリケーションが
このファイルにアクセスできることがわかり。
次に、ターミナルを使用してadb pullを使ってそのデータを取得でき。
→ adb -s 192.168.0.0 pull /data/data/b3nac.injuredandroid/files/pass.xml /root/Desktop
上の画像のように、ローカル環境内のそのファイルを取得して。
これは、アプリケーションのデータが他のアプリケーションによって
盗難される可能性があることを意味して。
上の画像では、他のアプリケーションもユーザの資格情報を表示できることを
意味して。
この脆弱性は、アプリケーションの開発中にファイル許可が弱いこと、
およびデータが安全でないか、暗号化されていないことに起因して。
今回は、データが適切に保存されていない場合、アプリケーションが
不安全なファイル保存のために脆弱である方法を学び。
安全にするために、開発者はアプリの許可を確認する必要があり。
このタイプの問題に対抗するために、いくつかの暗号化アルゴリズムを
使用する必要があって。
Best regards, (^^ゞ