MASTG-TEST-0043 メモリ破損バグ (Memory Corruption Bugs)
概要
静的解析
いろいろなアイテムを探してみます。
ネイティブコードの部分はありますか。もしあれば、一般的なメモリ破損のセクションで与えられた問題をチェックします。ネイティブコードは JNI ラッパー、 .CPP/.H/.C ファイル、 NDK や他のネイティブフレームワークがあれば簡単に発見できます。
Java コードや Kotlin コードはありますか。 Android デシリアライゼーション脆弱性の簡単な歴史 で説明されているような、シリアライゼーション/デシリアライゼーション問題を探します。
Java/Kotlin コードでもメモリリークが発生する可能性があることに注意します。未登録ではない BroadcastReceivers 、 Activity
または View
クラスへの静的参照、 Context
への参照をもつシングルトンクラス、内部クラス参照、匿名クラス参照、 AsyncTask 参照、ハンドラ参照、スレッディングの誤り、 TimerTask 参照などさまざまなアイテムを探します。詳細は以下で確認してください。
動的解析
実行にはいろいろな手順があります。
ネイティブコードの場合、 Valgrind または Mempatrol を使用して、コードによるメモリ使用量とメモリ呼び出しを解析します。
Java/Kotlin コードの場合、アプリを再コンパイルして Squares leak canary を使用してみます。
Android Studio の Memory Profiler でリークがないか確認します。
Android Java Deserialization Vulnerability Tester でシリアル化脆弱性がないか確認します。
Last updated
Was this helpful?