[InsecureBankv2] Hardcoded secrets


| Hardcoded secrets

  • ハードコーディング:
  • 特定の情報をソースコードに入力し、プログラム開発者の記憶を容易にする
  • モバイルアプリケーションを実行するときに、ユーザが入力する必要がある情報をソースコードに入力したり、注釈処理変数、アイデンティティ、パスワード、対称鍵などの重要な情報を処理したりします.
  • アンドロイドアプリケーションは復号可能であるため、機密情報をハードコーディングする行為は危険な
  • である.

    |デコード

  • adbを使用してapkファイル
  • を位置決めする
    adb shell
    root@shamu:/ # pm list package -f insecurebankv2
  • adb pull<保存位置>抽出apk
  • adb pull /data/app/com.android.insecurebankv2-1/base.apk C:\Users\JEY\Documents\2021\SISS\Incognito\Insucurebank\
  • apktoolを使用して
  • をコンパイル
    apktool d base.apk
  • diコンパイルファイルを確認
  • build > apk > classes.dexファイルをdex 2 jarに移動しjarファイル
  • に変換する
    d2j-dex2jar *.dex

    生成されたjarファイルjd-guiによる
  • の検証

    |コードチェック


  • CryptoClass.key=“This is the supersecret key123”;
  • 鍵変数暗号化及び復号化のための対称鍵
  • 対称鍵は復号化されず、平紋として記憶され、第三者は対称鍵
  • を盗むことができる.
  • は、鍵で暗号化するデータ
  • を容易に復号することができる.

    |対応策

  • ソースコードは、アイデンティティ、パスワード、AES対称鍵等をコメント又はコメント(ハードコーディング重要情報)
  • として保存する.