ハードコードされた暗号化キーはシステムのセキュリティを弱める可能性があり、セキュリティの問題が発生すると、簡単に修正することはできません。



Hardcoded Encryption Keys May Weaken Security System



画像

概要:

ハードコードされた暗号化キーはシステムのセキュリティを弱める可能性があり、セキュリティの問題が発生すると、簡単に修正することはできません。



説明:

暗号化キーをハードコーディングしないでください。これにより、すべてのプロジェクト開発者が暗号化キーを表示し、問題の解決が大幅に困難になります。コードが使用されると、ソフトウェアにパッチが適用されない限り、暗号化キーを変更できなくなります。暗号化キーで保護されているアカウントが侵害された場合、システム所有者はセキュリティと可用性のどちらかを選択する必要があります。

例1:次のコードは、ハードコードされた暗号化キーを使用しています。



private static final String encryptionKey = 'lakdsljkalkjlksdfkl' byte[] keyBytes = encryptionKey.getBytes() SecretKeySpec key = new SecretKeySpec(keyBytes, 'AES') Cipher encryptCipher = Cipher.getInstance('AES') encryptCipher.init(Cipher.ENCRYPT_MODE, key)

コードにアクセスできる人は誰でも暗号化キーにアクセスできます。アプリケーションがリリースされると、プログラムにパッチが適用されない限り、暗号化キーを変更することはできません。従業員は自分の手にある情報アクセス権を使用してシステムに侵入することができます。さらに悪いことに、攻撃者がアプリケーションの実行可能ファイルにアクセスできる場合、暗号化キーの値を抽出できます。

Instance ID: 8769D69879B813A4804A88C0B1B9F349 Priority Metadata Values: IMPACT: 3.0 LIKELIHOOD: 3.2 Legacy Priority Metadata Values: SEVERITY: 4.0 CONFIDENCE: 5.0 Remediation Effort: 3.0

推奨事項:

暗号化キーをハードコーディングしないでください。暗号化キーを隠して、外部リソースファイルで管理してください。暗号化キーがシステムにプレーンテキストで保存されている場合、十分な権限を持つ人なら誰でも暗号化キーを読み取ることができ、これらのパスワードが悪用される可能性があります。

参照:

[1] MSC03-J。機密情報をハードコードしないでください、CERT、https://www.securecoding.cert.org/confluence/display/java/MSC03-J.+Never+hard+code+sensitive+information



[2]標準マッピング-一般的な弱点の列挙、CWE ID 321

[3]標準マッピング-FIPS200、IA

[4]標準マッピング-NISTSpecial Publication 800-53リビジョン4、SC-12暗号化キーの確立と管理(P1)

[5]標準マッピング-OWASPMobile Top 10 Risks 2014、M6 Broken Cryptography

[6]標準マッピング-OWASPTop 10 2004、A8 Insecure Storage

[7]標準マッピング-OWASPTop 10 2007、A8 Insecure Cryptographic Storage

[8]標準マッピング-OWASPTop 10 2010、A7 Insecure Cryptographic Storage

[9]標準マッピング-OWASPトップ102013、A6機密データの公開

[10]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン1.1、要件6.5.8、要件8.4

[11]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン1.2、要件6.3.1.3、要件6.5.8、要件8.4

[12]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン2.0、要件6.3.1、要件6.5.3、要件8.4

[13]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン3.0、要件6.3.1、要件6.5.3、要件8.2.1

[14]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン3.1、要件6.3.1、要件6.5.3、要件8.2.1

[15]標準マッピング-ペイメントカード業界データセキュリティ標準バージョン3.2、要件6.3.1、要件6.5.3、要件8.2.1

[16]標準マッピング-SANSTop 25 2009、多孔質防御-CWE ID 259

[17]標準マッピング-SANSTop 25 2010、多孔質防御-CWE ID 798

[18]標準マッピング-SANSTop 25 2011、多孔質防御-CWE ID 798

[19]標準マッピング-セキュリティ技術実装ガイドバージョン3.1、APP3210.1 CAT II、APP3350 CAT I

[20]標準マッピング-セキュリティ技術実装ガイドバージョン3.10、APP3210.1 CAT II、APP3350 CAT I

[21]標準マッピング-セキュリティ技術実装ガイドバージョン3.4、APP3210.1 CAT II、APP3350 CAT I

[22]標準マッピング-セキュリティ技術実装ガイドバージョン3.5、APP3210.1 CAT II、APP3350 CAT I

[23]標準マッピング-セキュリティ技術実装ガイドバージョン3.6、APP3210.1 CAT II、APP3350 CAT I

[24]標準マッピング-セキュリティ技術実装ガイドバージョン3.7、APP3210.1 CAT II、APP3350 CAT I

[25]標準マッピング-セキュリティ技術実装ガイドバージョン3.9、APP3210.1 CAT II、APP3350 CAT I

[26]標準マッピング-セキュリティ技術実装ガイドバージョン4.1、APSC-DV-002010 CAT II

[27]標準マッピング-Webアプリケーションセキュリティコンソーシアムバージョン2.00、情報漏えい(WASC-13)