Nakaya / ハードコードされた暗号鍵の使用の脆弱性

Created Sat, 28 Dec 2024 08:23:00 +0900 Modified Fri, 10 Jan 2025 14:49:03 +0000

背景

Androidアプリの脆弱性を見つけてCVEをゲットしたいため,まずは情報収集から

CVE事例

概要

『株式会社EPARKが提供するAndroidアプリ「くら寿司 公式アプリ Produced by EPARK」には、ハードコードされた暗号鍵の使用(CWE-321)の脆弱性が存在します。』

想定される影響

  • 当該製品のログイン用IDとパスワードを取得される可能性がある
  • CVSSv3 4.0

脆弱性について

ハードコートされた暗号キーを使用することによって,暗号化されたデータが復元される可能性が高まる

攻撃手法

  • ソースコードの解析

脆弱性の実装例

【参考: The MITRE Corporation, “CWE-321: Use of Hard-coded Cryptographic Key”, CWE List, https://cwe.mitre.org/data/definitions/321.html, (2024/12/28アクセス)】 Java

public boolean VerifyAdmin(String password) {
if (password.equals("68af404b513073584c4b6f22b6c63e6b")) {
System.out.println("Entering Diagnostic Mode...");
return true;
}
System.out.println("Incorrect Password!");
return false;

C言語

int VerifyAdmin(char *password) {
if (strcmp(password,"68af404b513073584c4b6f22b6c63e6b")) {

printf("Incorrect Password!\n");
return(0);
}
printf("Entering Diagnostic Mode...\n");
return(1);
}

C#

int VerifyAdmin(String password) {
if (password.Equals("68af404b513073584c4b6f22b6c63e6b")) {
Console.WriteLine("Entering Diagnostic Mode...");
return(1);
}
Console.WriteLine("Incorrect Password!");
return(0);
}

キーが直接コード内に記述されている.

対策

  • ハードコーディングしない