TL

ランサムウェアの暗号設計と防御の原理

なぜ身代金を払わないと復号できないのか。攻撃者が使うハイブリッド暗号と鍵配送の仕組みを分解し、シャドーコピー削除対策・不変バックアップ・早期検知という防御の勘所までまとめて掴める。

応用ランサムウェアハイブリッド暗号鍵管理バックアップEDR最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.ランサムウェアは速度のため対称鍵(AES など)でファイルを暗号化し、その対称鍵を攻撃者の公開鍵(RSA/楕円曲線)で包む。これがハイブリッド暗号で、対称鍵は端末上に平文で残らず、対応する秘密鍵は攻撃者だけが持つため復号できない。
  • 2.復号が困難なのは暗号の弱さではなく鍵配送の設計による。鍵生成を C2 で行う実装、各ファイルごとに鍵を変える設計、メモリ上の鍵を即座に消す実装などが、解析や鍵回収による復旧を封じる。RNG やプロトコルの実装ミスがあった検体だけが復号ツールで救われてきた。
  • 3.暗号化は事後対処が効かないため、防御は予防・耐性・検知の三層になる。シャドーコピー削除や暗号化前の窃取(二重恐喝)を前提に、改変・削除できない不変バックアップを別管理で持ち、大量改名や暗号化の兆候を挙動で早期に止めることが復旧可能性を決める。

なぜ「払わないと戻らない」のか

ランサムウェアの本質は、可逆な操作(暗号化)を、被害者にとってだけ不可逆にする設計です。ファイルは確かに元に戻せる――ただし攻撃者だけが持つ鍵があれば。この非対称性をどう作るかが暗号設計の核心であり、そこを理解すると「なぜ総当たりで復号できないのか」「どんな防御が効き、どんな防御が無力か」が原理から見えてきます。ここでは暗号の仕組み、鍵配送と C2、復号が困難な理由、そして予防・耐性・検知という防御の三層を辿ります。

この記事の射程

扱うのは攻撃の暗号アーキテクチャと、それに対する防御原理です。実際のマルウェアの作成・配布・実行方法は扱いません。検証は許可された隔離環境でのみ行ってください。

ハイブリッド暗号:速度と非対称性を両立する

大量のファイルを高速に暗号化するには対称鍵暗号が必要です。AES のような対称暗号は数百 MB/s で動きますが、RSA のような公開鍵暗号は桁違いに遅く、ファイル本体を直接暗号化する用途には向きません。一方、被害者に鍵を渡さず攻撃者だけが復号できる非対称性は、公開鍵暗号でしか作れません。

そこで両者を組み合わせるのがハイブリッド暗号です。各ファイルは高速な対称鍵で暗号化し、その対称鍵そのものを攻撃者の公開鍵で暗号化(封入)します。これは正規の暗号通信で使う ハイブリッド暗号と KEM-DEM の原理 とまったく同じ構造を、攻撃者が悪用しているにすぎません。典型的な流れは次の通りです。

ファイルごとの暗号化(DEM 相当):
  file_key   = ランダム生成(例: AES-256 の 256 bit 鍵)
  nonce      = ランダム生成
  ciphertext = AES-GCM(file_key, nonce, plaintext)

鍵の封入(KEM 相当):
  wrapped    = RSA-OAEP_encrypt(attacker_pubkey, file_key)
  各ファイルに [wrapped, nonce, ciphertext] を書き戻し、file_key は破棄

ここで決定的なのは、file_key が暗号化のあと端末上に平文で残らない点です。メモリ上の鍵は使用後すぐ上書きされ、ディスクに残るのは攻撃者の公開鍵で包まれた wrapped だけ。復号に必要な秘密鍵は攻撃者の手元(または C2)にしかありません。被害者が手元にあるすべてを解析しても、対称鍵を取り戻す手段がない――これがランサムウェアの暗号設計です。

ファイル単位の鍵が復旧をさらに困難にする

洗練された実装はファイルごとに別の file_key を使います。仮に一つの鍵が運良く回収できても、他のファイルには使えません。逆に全ファイルを単一鍵で暗号化する素朴な実装は、その一鍵さえ取れれば全復号できる弱点を残します。攻撃側は鍵の粒度を細かくするほど、復旧の足掛かりを潰せます。

鍵配送と C2:秘密鍵をどこに置くか

非対称性の鍵(攻撃者の鍵ペア)をどう生成・配送するかには複数の設計があり、復旧可能性に直結します。

鍵をどこで生成し、どの鍵を端末に残すか。攻撃者の関心は「被害者の手元に復号材料を残さない」点に集約される。
鍵生成方式公開鍵の入手元オフライン暗号化復旧の足掛かり
攻撃者鍵を埋め込み検体に静的に同梱可能(C2 不要)全被害者で同一秘密鍵。流出・押収で一括復号され得る
端末ごとに C2 から取得感染時に C2 がペアを生成し公開鍵を配布不可(接続必須)C2 を遮断できれば暗号化を止められる場合がある
端末で局所ペアを生成端末上で被害者鍵ペアを作り公開鍵だけ使用可能被害者秘密鍵を攻撃者公開鍵で包んで送付。設計次第で堅牢

実務でよく見るのは、感染端末ごとにその場でセッション鍵ペアを生成し、被害者側の秘密鍵を攻撃者のマスタ公開鍵で暗号化してから端末に残す多段構造です。こうすると、被害者秘密鍵を取り戻すには攻撃者のマスタ秘密鍵が要り、攻撃者は被害者ごとの鍵を保管せずに済みます。C2(Command and Control)サーバは鍵の配布・登録・身代金交渉の窓口として機能し、攻撃の各段階は 攻撃キルチェーンと MITRE ATTACK の体系 の技術にきれいに対応づきます。

C2 依存は攻撃者にとって諸刃です。鍵取得に通信が必須なら、ネットワーク遮断やドメインのシンクホール化で暗号化自体を止められる余地が生まれます。だからこそ堅牢な設計は、C2 不通でも端末ローカルの公開鍵だけで暗号化を完遂できるよう作られます。

なぜ復号が困難なのか――そして救われた例外

復号が困難な理由は、AES や RSA が破れないからではありません。鍵管理の設計上、被害者の手元に復号材料が一切残らないからです。対称鍵は包まれた状態でしか存在せず、それを開く秘密鍵は攻撃者しか持たない。総当たりは 256 bit 鍵空間ゆえ非現実的で、暗号文だけから平文を導く近道もない。これは暗号が正しく使われている限り、設計通りの帰結です。

逆に言えば、復号ツールが配布できたケースは、暗号そのものではなく実装が壊れていたものに限られます。代表的な失敗は次の通りです。

  • 弱い乱数:鍵や nonce の生成に予測可能な PRNG やプロセス時刻を使い、鍵を再現できてしまう。
  • 鍵がローカルに残る:使用後の file_key をメモリやレジストリ、一時ファイルに消し忘れ、フォレンジックで回収できる。
  • 暗号の誤用:AES-CTR/GCM で同一 nonce を使い回し、既知平文との XOR から鍵ストリームが露呈する。これは正規実装でも致命的な、AEAD(認証付き暗号)の設計原理と nonce 再利用の破壊力 で論じる失敗そのものです。
  • オンライン鍵管理の不備:C2 の押収で被害者鍵が回収される、あるいはマスタ鍵が流出する。

つまり「復号できるかどうか」は暗号強度の問題ではなく、攻撃者の鍵管理と RNG の実装品質の問題です。これを前提に防御を組み立てる必要があります。

身代金を払っても戻る保証はない

鍵が攻撃者にしかない以上、復号の可否は攻撃者の善意と復号ツールの品質に依存します。実際、支払い後に鍵が渡されない、復号器が壊れていてファイルを破損させる、再攻撃の標的にされる、といった事例が報告されています。支払いは復旧戦略ではなく、最後の不確実な賭けにすぎません。

防御の三層:予防・耐性・検知

暗号化が完了したファイルは事後対処が効きません。よって防御は「暗号化させない・暗号化されても復旧できる・暗号化の途中で止める」という三層で設計します。

予防:実行と横展開を断つ

入口対策(メール・公開サービスの脆弱性・認証情報窃取)で初期侵入を減らし、最小権限と分割で横展開を抑えます。侵入を前提に内部を信頼しない発想は ゼロトラスト の考え方そのもので、特権の濫用やネットワーク内の自由な横移動を狭めることが、被害範囲を一台に封じ込める鍵になります。

耐性:壊せないバックアップを持つ

予防は必ず破られる前提で、復旧可能性を担保するのがバックアップです。ただし攻撃者は復旧を妨げるため、バックアップとシャドーコピーを真っ先に潰しにきます

攻撃者が復旧を妨げるためによく狙う対象:
  - Windows のボリュームシャドーコピー(vssadmin 等で削除)
  - バックアップソフトのサービスと定義ファイル
  - 同一資格情報で到達できるバックアップ共有・スナップショット
  - クラウドの世代管理(同じ認証情報で消せるなら標的になる)

ここで効くのが 3-2-1 と不変性(immutability)です。コピーを 3 つ、媒体を 2 種、1 つはオフサイト――に加え、改変・削除を一定期間禁じる不変ストレージ(WORM、オブジェクトロック)やオフラインのエアギャップを持つこと。重要なのは、本番と別の認証情報・別の管理面でバックアップを守る点です。同じ管理者権限で消せるバックアップは、攻撃者にとって本番ファイルと同じくらい脆弱です。復旧演習(実際にリストアして時間を測る)まで含めて初めて耐性と呼べます。

二重恐喝が前提を変える

近年の主流は、暗号化の前に機密データを窃取し「払わなければ公開する」と脅す二重恐喝(double extortion)です。この場合、完璧なバックアップで復旧できても情報漏えいは取り消せません。だから耐性だけでは不十分で、暗号化以前の大量データ持ち出し(外向き通信の急増)を検知・遮断する出口対策が併せて要ります。

検知:暗号化の兆候を挙動で捕まえる

最後の砦は、暗号化が始まったその瞬間に止めることです。ランサムウェアの暗号化フェーズは、ファイルの見た目(マルウェア検体)に依存しない強い挙動シグネチャを残します。

良性プロセスでは稀/ランサムウェアで頻出する振る舞い:
  - 短時間に大量ファイルを「読み込み→上書き→改名(拡張子変更)」する
  - 書き込み後のファイルエントロピーが急上昇する(暗号化の痕跡)
  - ボリュームシャドーコピーの削除やバックアップサービスの停止を試みる
  - 既知の身代金要求文(README)を各フォルダへ一斉に書き出す

これらは個々のファイル操作としては正規アプリでも起こり得ますが、速度・規模・系譜(どのプロセスが連鎖で実行したか)の相関を見ると悪性が浮かびます。EDR はこの相関で短時間に判定し、該当プロセスを強制終了・隔離します。検知の内部原理は マルウェアの動作原理と検知技術(静的・動的・挙動) と地続きで、姿ではなく「実行中に何をしたか」で捕まえる点が共通します。早期に止められた分だけ暗号化されたファイルが減る――検知の価値はこの差分に直結します。

まとめ:暗号は完璧、ゆえに鍵と運用が勝負

試験・面接で問われる要点

(1) ランサムウェアはハイブリッド暗号――対称鍵でファイルを高速暗号化し、その鍵を攻撃者の公開鍵で封入する。(2) 復号困難の理由は暗号強度ではなく鍵配送の設計で、対称鍵は端末に平文で残らず秘密鍵は攻撃者しか持たない。(3) 復号ツールが作れたのは弱い RNG・nonce 再利用・鍵の消し忘れ・C2 押収といった実装ミスがあった場合に限られる。(4) 防御は予防・耐性・検知の三層。(5) 攻撃者はシャドーコピー削除で復旧を妨げ、二重恐喝で漏えいを盾にするため、別管理の不変・エアギャップバックアップと、大量改名・高エントロピー書き込みの挙動検知が復旧可能性を決める。

ランサムウェアが突きつけるのは、強い暗号は守る側だけのものではないという事実です。AES と RSA は破れないからこそ、攻撃者は被害者の手元に復号材料を残さないだけで脅迫を成立させます。したがって防御の主戦場は暗号の解読ではなく、侵入を断つ予防、壊せないバックアップという耐性、そして暗号化の瞬間を捉える検知――鍵と運用の設計に移ります。事後の復号に期待を置かず、暗号化される前提で復旧と検知を組むこと。これがランサムウェア対策の原理です。

セキュリティ Article

ランサムウェアの暗号設計と防御の原理を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ランサムウェア

比較で見る軸

難易度: advanced / カテゴリ: セキュリティ / タグ数: 5

導入後に効く点

復号が困難なのは暗号の弱さではなく鍵配送の設計による。鍵生成を C2 で行う実装、各ファイルごとに鍵を変える設計、メモリ上の鍵を即座に消す実装などが、解析や鍵回収による復旧を封じる。RNG やプロトコルの実装ミスがあった検体だけが復号ツールで救われてきた。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
セキュリティ
タグ数
5

判断チェックリスト

  • 自社の用途が「ランサムウェア / ハイブリッド暗号」に近いか確認する。
  • 強みである「ランサムウェアは速度のため対称鍵(AES など)でファイルを暗号化し、その対称鍵を攻撃者の公開鍵(RSA/楕円曲線)で包む。これがハイブリッド暗号で、対称鍵は端末上に平文で残らず、対応する秘密鍵は攻撃者だけが持つため復号できない。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ランサムウェアハイブリッド暗号鍵管理バックアップEDRランサムウェアハイブリッド暗号鍵管理