M10: 不十分な暗号化 (Insufficient Cryptography)

脅威エージェント

アプリケーション依存

モバイルアプリケーションの安全でない暗号を悪用する脅威エージェントは機密情報の機密性、完全性、信頼性を損なう可能性があります。これらの脅威エージェントには、機密データを復号するために暗号アルゴリズムや実装をターゲットにする攻撃者、暗号プロセスを操作したり暗号鍵を漏洩する悪意のある内部関係者、情報目的で暗号解析に従事する国家支援のアクター、脆弱な暗号を悪用して貴重なデータを盗んだり金銭的な詐欺を行うサイバー犯罪者、暗号プロトコルやライブラリの脆弱性を利用する攻撃者を含みます。

攻撃手法

悪用難易度 普通

モバイルアプリケーションの安全でない暗号の攻撃ベクトルには、機密情報を保護するために使用される暗号メカニズムの脆弱性の悪用を含みます。敵対者は、暗号攻撃、ブルートフォース攻撃、サイドチャネル攻撃などのさまざまな技法を使用して、暗号アルゴリズム、鍵管理、実装の欠陥の弱点を悪用する可能性があります。安全でない暗号をターゲットにすることで、攻撃者は暗号化されたデータの復号、暗号プロセスの操作、機密情報への認可されていないアクセスの獲得を狙います。これにより、データ侵害、ユーザーアカウントへの認可されていないアクセス、機密性の侵害、データの偽造や改竄の能力につながる可能性があります。

セキュリティ上の弱点

普及度 普通

検出難易度 普通

モバイルアプリケーションの安全でない暗号は、暗号手段の有効性を低下し、機密データの機密性と完全性を損なうセキュリティ上の弱点をもたらします。これらの弱点には、弱い暗号アルゴリズムや不適切な鍵長の使用、不十分な鍵管理プラクティス、暗号鍵の不適切な処理、安全でない乱数生成、暗号プロトコルの欠陥のある実装、暗号ライブラリやフレームワークの脆弱性を含む可能性があります。攻撃者はこれらの弱点を悪用して、暗号化をバイパスしたり、暗号攻撃を実施したり、データを操作したり、暗号化した情報への認可されていないアクセスを獲得する可能性があります。安全でないハッシュ関数と暗号アルゴリズムはモバイルアプリケーションに重大なセキュリティ上の弱点をもたらします。これらの脆弱性は重大なデータ侵害や機密情報への認可されていないアクセスにつながる可能性があります。時代遅れであったり弱いハッシュ関数が使用される場合、攻撃者はその欠陥を悪用してハッシュ化されたデータをリバースエンジニアし、元のコンテンツを明らかにする可能性があります。これらのセキュリティリスクからモバイルアプリケーションを保護するには、強力で最新のハッシュ関数と暗号アルゴリズムを採用し、暗号と鍵管理のベストプラクティスに従って、データ完全性と機密性を確保することが不可欠です。潜在的な脅威に対して最高レベルの保護を維持するには、定期的なセキュリティ監査とアップデートも重要です。

技術的影響

影響度 深刻

この脆弱性により、モバイルデバイスから機密情報の認可されていない取得につながる可能性があります。

ビジネスへの影響

影響度 深刻

モバイルアプリケーションの不十分な暗号化や安全でないハッシュ関数は重大なビジネスへの影響を及ぼす可能性があります。潜在的な影響のいくつかを以下に示します。

データ侵害: 脆弱であったり不十分な暗号化は敵対者がモバイルアプリケーションによって保存や転送される機密データの機密性を侵害しやすくなります。これによりデータ侵害を引き起こし、個人を識別できる情報 (PII)、財務詳細、知的財産などの機密性の高い顧客情報の開示につながる可能性があります。そのような侵害により、法的責任、規制上の罰則、顧客信頼の喪失、風評被害につながる可能性があります。

知的財産の損失: 不適切な暗号化はモバイルアプリケーション内に組み込まれたプロプライエタリアルゴリズム、企業秘密、その他の知的財産の保護を危険にさらす可能性があります。敵対者がこの貴重な情報を解読して抽出できれば、競合企業が競争上の優位性を得るために悪用したり、闇市場で販売する可能性があります。

経済的損失: 不十分な暗号化はさまざまな面で経済的損失につながる可能性があります。たとえば、支払い取引や財務データが不適切に暗号化されている場合、顧客は詐欺や資金への認可されていないアクセスにさらされる可能性があります。さらに、セキュリティ侵害の調査と修復、影響を受けた顧客への補償、法的影響への対処に関連するコストが多額になる可能性があります。

コンプライアンスと法的影響: 多くの業界には機密情報に対する強力な暗号化の使用を義務付ける特定のデータ保護およびプライバシー規制があります。不適切な暗号化はこれらの規制が非遵守となり、法的措置、罰金、規制当局による制裁が科される可能性があります。

「不十分な暗号化」の脆弱性があるか?

安全でない暗号化と安全でないハッシュ関数がモバイルアプリケーションに現れる可能性がある方法はいくつかあります。

弱い暗号アルゴリズム: モバイルアプリは、弱いことが知られていたり、攻撃に対して脆弱である暗号アルゴリズムを使用している可能性があります。これらのアルゴリズムは既知の弱点があったり、時代遅れであったり、機密データを効果的に保護するために必要なレベルのセキュリティが欠けている可能性があります。

不十分な鍵長: 不適切な鍵長は暗号強度が弱くなる可能性があります。モバイルアプリが短い暗号鍵や簡単に推測できる暗号鍵を使用する場合、攻撃者がブルートフォース攻撃やその他の暗号攻撃を通じて暗号化されたデータを復号することが容易になります。

不適切な鍵管理: 暗号鍵を安全に保管していなかったり、プレーンテキストで転送しているなど、不適切な鍵管理プラクティスは鍵が認可されていないアクセスにさらされる可能性があります。鍵へのアクセスを獲得した攻撃者は難なくデータを復号できます。

欠陥がある暗号実装: 暗号/復号プロセス自体が正しく実装されていないか、プログラミングの欠陥がある可能性があります。これらの実装エラーにより脆弱性が生じ、攻撃者が悪用して、暗号保護をバイパスしたり弱める可能性があります。

安全でないデータ/暗号鍵のストレージ: 暗号鍵がモバイルデバイス上でプレーンテキストや簡単にアクセスできる場所などの安全でない場所に保存されている場合、デバイスに物理的または認可されていないアクセスを持つ攻撃者が鍵を取得して保護されたデータを復号する可能性があります。モバイルアプリケーションは弱い暗号アルゴリズムを利用したり、弱い鍵を使用したり、すべての機密データを適切に暗号化していないなど、暗号を不正確に使用しています。これにより、暗号化が攻撃者に簡単にバイパスされたり復号されると、データが侵害される可能性があります。

安全なトランスポート層の欠如: 暗号化されたデータをネットワーク上で送信する場合、HTTPS などの安全なトランスポート層プロトコルを使用することが重要です。モバイルアプリが安全なトランスポートプロトコルを実装できない場合、暗号化したデータは脆弱になり、送信時に傍受されたり改竄される可能性があります。

不十分なバリデーションと認証: 暗号プロセスに関与するパーティの不適切なバリデーションと認証はセキュリティ全体が弱くなる可能性があります。適切なバリデーションなしでは、攻撃者が正当なエンティティになりすまし、暗号化したデータを傍受し、検出されることなく操作する可能性があります。

ソルティングの欠如: ソルティング (ハッシュ化する前に入力にランダムデータを追加するプロセス) はパスワードのセキュリティを強化するために不可欠です。安全でないハッシュ関数はソルティングをサポートしていなかったり、弱いソルティング手法を使用していることがあり、パスワードハッシュが事前計算されたテーブルやブルートフォース攻撃などの攻撃を受けやすくなります。

「不十分な暗号化」を防ぐには?

モバイルアプリケーションの「不十分な暗号化」の脆弱性を防ぐには、以下のベストプラクティスを検討します。

強力な暗号アルゴリズムの使用: AES (Advanced Encryption Standard), RSA (Rivest-Shamir-Adleman), 楕円曲線暗号 (Elliptic Curve Cryptography, ECC) など、広く受け入れられている安全な暗号アルゴリズムを導入します。現在の暗号標準を最新に保ち、非推奨や弱いアルゴリズムを避けます。

十分な鍵長の確保: 適切な長さの暗号鍵を選択して、強力な暗号強度を確保します。使用する特定の暗号アルゴリズムを考慮して、鍵長に関する業界推奨に従います。

安全な鍵管理プラクティスの準拠: Key Vault やハードウェアセキュリティモジュール (HSM) を使用して安全に暗号鍵を保存するなど、安全な鍵管理技法を採用します。認可される要員へのアクセスの制限、保存時の鍵の暗号化、安全な鍵配布メカニズムの使用など、認可されていないアクセスから鍵を保護します。

正しい暗号実装: 確立された暗号ライブラリやフレームワークに従って、モバイルアプリケーションの暗号化および復号プロセスを慎重に実装します。エラーや脆弱性が発生しやすくなるため、カスタム暗号実装を避けます。

暗号鍵の安全な保存: 暗号鍵がモバイルデバイスに安全に保存されていることを確保します。鍵をプレーンテキストや簡単にアクセスできる場所に保存することは避けます。オペレーティングシステムが提供する安全なストレージメカニズムを使用するか、ハードウェアベースの安全なストレージオプションを利用することを検討します。

安全なトランスポート層の採用: ネットワーク上で暗号化されたデータを送信するには、HTTPS (HTTP Secure) などの安全なトランスポート層プロトコルを使用します。適切な証明書バリデーションを実装し、モバイルアプリとバックエンドシステム間の安全な通信チャネルを確保します。

バリデートと認証: 強力なバリデーションおよび認証メカニズムを実装し、暗号プロセスに関与するパーティの完全性と信頼性を検証します。証明書、デジタル署名、認証に使用されるその他のメカニズムの適切なバリデーションを実行します。

セキュリティ対策の定期的な更新: 暗号ライブラリ、フレームワーク、プラットフォームプロバイダからのセキュリティアップデート、パッチ、推奨事項について最新に保ちます。モバイルアプリケーションと基盤となる暗号コンポーネントを最新に保ち、特定された脆弱性や弱点に対処します。

セキュリティテストの実施: 暗号の脆弱性評価、ペネトレーションテスト、コードレビューなど、徹底的なセキュリティテストを実行します。テストプロセス中に発見された弱点や脆弱性を特定し修正します。

業界標準とベストプラクティスの準拠: 暗号に関する業界標準とベストプラクティスを最新に保ちます。NIST (National Institute of Standards and Technology) や IETF (Internet Engineering Task Force) などの組織が安全な暗号プラクティスのためのガイドラインと推奨事項を提供しています。

強力なハッシュ関数の使用: SHA-256 や bcrypt などの広く認識され暗号的に安全なハッシュ関数を選択します。これらのアルゴリズムは攻撃に対抗し、高レベルのセキュリティを提供するように設計されています。

ソルティングの実装: パスワードをハッシュ化する際、常に強力なランダムソルトを使用します。ソルティングはセキュリティ層を追加し、攻撃者が事前計算されたテーブルやレインボーテーブルを使用してパスワードをクラックすることを困難にします。

鍵導出関数 (Key Derivation Functions, KDFs) の使用: パスワードハッシュには、PBKDF2, bcrypt, scrypt などの鍵導出関数を使用します。これらの関数はパスワードから暗号鍵を安全に導出するために特別に設計されており、ブルートフォース攻撃を遅らせる反復回数などの追加のセキュリティ機能を提供します。

攻撃シナリオの例

シナリオ #1: 中間者 (MitM) 攻撃 - 攻撃者はモバイルアプリケーションとサーバー間の通信を傍受します。弱い暗号化は攻撃者が傍受したデータを復号し、改変し、目的とした受信者に転送する前に再暗号化する可能性があります。これにより、認可されていないアクセス、データ操作、悪意のあるコンテンツの注入につながる可能性があります。

シナリオ #2: ブルートフォース攻撃 - 攻撃者はデータを復号するための正しい鍵が見つかるまで、体系的に鍵のさまざまな組み合わせを試みます。弱い暗号化はそのような攻撃に必要な時間が短縮され、機密情報を開示する可能性があります。

シナリオ #3: 暗号ダウングレード攻撃 - モバイルアプリケーションは安全な接続を確立するために複数の暗号プロトコルやアルゴリズムをサポートすることがあります。フォールバックオプションとして弱い暗号化が許可されていると、攻撃者はこの弱点を悪用して、アプリケーションに弱い暗号を使用するように強制する可能性があります。結果として、傍受したデータをより簡単に復号し、その後の攻撃を開始できます。

シナリオ #4: 鍵管理の脆弱性 - 弱い鍵管理プラクティスはモバイルアプリケーションで使用される暗号システムのセキュリティを損なう可能性があります。たとえば、暗号鍵が安全でなく保存されたり、簡単に推測できる場合、攻撃者は鍵への認可されていないアクセスを獲得し、暗号化されたデータを復号する可能性があります。これにより、データ侵害やプライバシー侵害につながる可能性があります。

シナリオ #5: 暗号実装の欠陥 - 弱い暗号はモバイルアプリケーション自体の実装の欠陥からも発生する可能性があります。これらの欠陥には、暗号ライブラリの不正確な使用、安全でない鍵生成、不適切な乱数生成、暗号関連機能の安全でない処理が含まれる可能性があります。攻撃者はこれらの欠陥を悪用して、暗号保護をバイパスしたり弱めたりする可能性があります。

参考資料

Last updated