私にファイルを暗号化することは、非常に長い文字列を処理し、それをハッシュ関数または暗号化関数に送り、別の長い暗号化文字列(またはハッシュの場合はハッシュ)を取得することに似ています。
このプロセスにはかなりの時間がかかります。私は HashTab を使用してインターネットからダウンロードしたファイルの整合性を検証しているので、それを知っています。
CTB-LockerやCrypt0l0ckerなどのランサムウェアはどのようにして被害者のファイルを即座に暗号化できますか?
最近私の友人がこれらのランサムウェアの被害者であり、MSWindowsで感染が発生した場合でも、デュアルOSマシンでUbuntuから自分のファイル/写真を開くことができませんでした。これは、ファイルを開いたときに暗号化がその場で行われないことを示唆しています。
私はOWASPの講演で、スピーカーが目の前でランサムウェア実行ファイル(Windows用)を逆コンパイルして分析しました。ランサムウェアにはさまざまな種類があるので、一般的にランサムウェアと話すことはできませんが、見たものについては確かに話すことができます。一般的な考え方は、ランサムウェアの実行可能ファイルに、RSAなどの非対称アルゴリズムを使用してファイルを暗号化するために必要な暗号化公開鍵が含まれていることです。対応する秘密/復号化キーはハッカーに残りますので、実行可能ファイルのリバースエンジニアリングの量はあなたに復号化キーを与えることができません。
実際にファイルを暗号化するには、次のような処理を行います。
ファイルヘッダーがそのまま残るように、ファイルの最初の512バイトをスキップします。
埋め込まれた暗号化キーを使用して、次の1 MBを暗号化します。
ファイルがこれより長い場合は、残りを暗号化しないでください。
重要なのは、データを完全に隠したり保護したりすることではなく、データを解析不能にするには十分です。
時間に関しては、1 MBのRSAを実行するのはまだ遅く、HDDをクロールするのに数時間かかります。
私が見たこの標本は、Steffen Ullrichが語った完全なRSA-AESランサムウェアの怠惰な模倣だったと思います 彼の答え -これは本当に心配するべきものです。
最初の対称暗号化はかなり高速です。一部のモードのAESは簡単に200MB/sです。ハッシュが遅いというあなたの主張は、赤いニシンです。ハッシュは信じられないほど高速です。最新のプロセッサでは非常に高速であるため、パスワードハッシュの効果的なセキュリティが低下します。これにより、ハッシュを「遅くする」ための複数ラウンドの鍵導出関数が開発されました。
あなたが見ている「遅い」速度は主にあなたの遅いハードドライブの影響です。メモリ内のハッシュは、500MB /秒から2GB /秒以上のオーダーです。
それでも、マルウェアは「インスタント」である必要はありません。ユーザーのシステムは静かに感染します。ファイルのコピーは、ユーザーに警告することなく暗号化でき、準備ができたら元のファイルを削除し、ユーザーに「即座に」通知します。感染からその時点までのプロセス全体が、瞬時に発生しているように見えるにもかかわらず、かなりの時間がかかった可能性があります。
ハッシュ(SHA-1など)と対称暗号化(AESなど)は比較的安価であり、非対称暗号化(RSAなど)ははるかに高価です。そのため、通常、RSAを使用して大きなファイルを暗号化するのではなく、ランダムキーを使用した対称暗号化を使用し、RSAを使用してこの短いキーのみを暗号化します。
私はHashTabを使用してインターネットからダウンロードしたファイルの整合性を検証しているので、それを知っています。
私には非常に科学的な方法のように聞こえます。古くて遅いプロセッサがない限り、ハッシュ(およびデータの検証)の速度は、ディスクからデータを読み取るよりもほとんど高速です(これが明らかでない場合:もちろん、データを読み取ってハッシュする必要があります)ですが、ハッシュの計算よりもディスクからのデータの待機に多くの時間を費やします。
CTB-LockerやCrypt0l0ckerなどのランサムウェアはどのようにして被害者のファイルを即座に暗号化できますか?
現代のオペレーティングシステムは暗号化されたファイルシステムをサポートし、今日のプロセッサ(AESのハードウェアアクセラレーションを含むことが多い)では、暗号化されたファイルシステムを使用してもしなくても、速度の違いに気付くことはありません。ディスク(ベンチマークでは パフォーマンスの低下を確認 ですが、これらはほとんどの人の実際の使用状況を反映していません)。したがって、ランサムウェアがデータを高速に暗号化できなかった理由はありません。もちろん、それらはシステムにフックすることにより、より速く感じるかもしれません。そうすると、開こうとするファイルが最初に暗号化され、残りはバックグラウンドで暗号化されます。
あなたがしている間違いはそれが瞬時であると考えています。むしろ、マルウェアはバックグラウンドで暗号化し、ユーザーが要求するものを復号化します。このフェーズでは何も行われず、すべてが暗号化された後にのみ、身代金を要求します。
ウィキペディアによると:
ペイロードは、最初に実行されると、ユーザープロファイルフォルダーにインストールされ、起動時に実行されるキーをレジストリーに追加します。次に、指定されたいくつかのコマンドおよび制御サーバーの1つに接続しようとします。接続されると、サーバーは2048ビットのRSA鍵ペアを生成し、公開鍵を感染したコンピューターに送り返します。
思ったほど遅くはありません。コンピュータが高速で、感染時にCPU使用率が高くない場合、15ギガバイト未満でギガバイトのデータを失う可能性があります。最近のPCは、ハッシュを計算し、ハードディスク/ SSDディスクが機能するよりも速く暗号化操作を実行できます。だから私はハッシュ/暗号化速度の速度の現代的な制限はディスク自体に基づいていると言うでしょう。 2、5 GBのファイルのSHA-512ハッシュを2分で生成できます。
また、マルウェアは、ユーザーにメッセージを表示する前に、必要なものがすべて暗号化されるまで待つこともできます。
基本的なプロセスは、ファイルの内容を読み取り、何らかの形の非対称暗号化を使用してディスクに書き戻すことです。これにより、データを取り戻すために料金を支払う必要があります。速度を改善するためにデータの小さなセクションのみを暗号化するものもあれば、ハードドライブ全体を書き換えることができるものもあります。多くのファイル形式ではファイルにわずかな変更を加えてもファイル全体が使用できなくなるため、他のいくつかの回答では、一部のマルウェアはファイルの一部をインプレースで暗号化してプロセスを高速化します。
CTB-LockerやCrypt0l0ckerなどのランサムウェアはどのようにして被害者のファイルを即座に暗号化できますか?
彼らはできません。代わりに、プロセスが完了するまでファイルappearをOKにして、アクティビティを隠します。ファイルシステムコールをインターセプトすることにより、ディスク上に実際に存在するものについてのユーザーのビューを変更し、完了するまですべてがまだ問題がないように見せることができます。インターセプトを取り除くと、ユーザーはドライブの実際の状態を確認できます。 。これを行う際の危険性は、ユーザーがファイルを開いたときにその場でファイルを復号化するために、非対称キーペアの両方の部分を持っている必要があることです。これは、原則として、目的の秘密キーを見つけることができることを意味します。後でユーザーを販売します。
CryptoWallのような他のマルウェア(覚えているよりも最近経験したことがある)は隠さなくてもかまいません。できるだけ早くすべてを暗号化することに先駆けています...そしてそれはIO暗号化先のドライブの速度。
CryptoWallが使用を意図している暗号化アルゴリズムであるAESのいくつかのベンチマークを見ると、ささやかな最新のCPUが100MB /秒をはるかに超えるレートでデータを暗号化できます。これは、操作があらゆるものにIOバインドされる可能性が高いことを意味しますSSD以外。異なるフォルダーやドライブをターゲットとする別々のCPUコアで実行される複数のスレッドを追加すると、プロセスはかなり迅速に完了することができます。
最近、ユーザーPCの1つで実行されているCryptoWallによって処理されたファイルサーバーをクリーンアップする必要がありました。ユーザーが何かがおかしいことに気付いたとき、マルウェアは約1.75時間実行されていました。 2時間足らずでネットワークから削除し、クリーンアップ中に約230GBの暗号化ファイルを見つけました。これは平均30MB /秒の暗号化であり、環境内で確実に実行できます。以前のバックアップからファイルを復元するには、約3倍の時間がかかりました。次回はこれを高速化する方法についていくつかのアイデアがありますが、ほとんどのクライアントは、安っぽい低コストのNASまたは(shudder)USBドライブにバックアップを持っています。
残念ながら、これらの問題がすぐになくなるとは考えられません。適切に構成されたきちんと構成されたバックアップソリューションは、これらのいずれかが発生した場合の最良の友です。復元のスクリプトを作成するのに便利なプログラマーがいても害はありません。
ソーシャルエンジニアリングの観点から見ると、マルウェアの作成者は、データの内容をランダムなビットに置き換えるプログラムを作成している可能性があります。被害者は、コンテンツが暗号化されているか、単にゴミ箱に入れられているかを確認する方法がありません。彼らが身代金を支払うことを決定し、「鍵」が機能しない場合、彼らができることはほとんどなく、男たちは結局犯罪者です。
TorrentLockerなどの一部のランサムウェアは、最初のMBのみを暗号化します(末尾を追加します)。ほとんどの形式を認識されなくするのにこれで十分ですが、同時に多数のファイルを暗号化するのがはるかに速くなります(ドキュメント、写真など、一部のファイルタイプのみが暗号化されることも覚えておいてください)。
これはNixuによって SANS blog と( ESET whitepaper )でも報告されていますが、2MBと報告されていました。
そして、ローレンが述べたように、すべてが暗号化された後、ランサムウェアは大きなバナーに身代金を要求するだけを表示します(いくつかのファイルのみが「保持」されている場合に気付かないこともあります)。各フォルダの要求の厳しいファイル/暗号化された各ファイル.