私はランサムウェアについて読んでいて、ドライブに特定の「トラップ」ファイルを置くことでそれを防御できるかどうか疑問に思っていました。時々、私は Code Golf を調べ、徹底的に投稿されたいくつかのソリューションに感銘を受けていますが、その一部は私には思いません可能です。
だから私は疑問に思いました:ランサムウェアの暗号化プロセスを特別に作成されたファイル(非常に大きなファイルだけでなく)によってハングアップさせる方法はありますか?
暗号化が試みられたときに、暗号化プロセスを無限ループに送信するファイル、または少なくとも完了に長い時間がかかる可能性があるファイルが作成される可能性がありますか?おそらく、ダミーファイルの作成を開始しながら、暗号化されたダミーファイルが暗号化されているときにそれらを削除して、暗号化プロセスが無限のパスに導かれる監視プログラムでしょうか。
もちろん、ここでの考え方は、暗号化プロセスを途中で停止させることです。または、特別なファイルにアクセスすると、コンピュータが現在のプロセスを停止する何らかの「セーフモード」に入る可能性がありますか?
(注:これは明らかに最終防衛戦略であり、確かにセキュリティのために頼りにしたくないものではありませんが、より適切な対策がすべて失敗した場合の追加の対策です)
あなたの提案は興味深いです。残念ながら、暗号化アルゴリズムを「ストール」させるビットの組み合わせがないため、一般的なソリューションは不可能です。結局のところ、暗号化は単なる数学です。おそらく、ルートキットを使用すると、ランサムウェアが偽のヨタバイト長のダミーファイルハンドルを暗号化していると信じ込ませることができます。または、ファイルからバイトを非常にゆっくりと出力する遅延が組み込まれている可能性がありますが、これらの種類のアプローチは影響を与える可能性がありますコンピュータの通常の使用。
これを実現するために何らかの方法で悪用できる実装のバグがあるランサムウェアの特定のバージョンがあるかもしれませんが、そのアプローチには多くの問題があります。マルウェアの作者とスクリプトキディは常にランサムウェアプログラムを進化させ、変更しているため、今日のバージョンのバグによっては、同じバージョンのランサムウェアに感染する可能性があります。そして今日、数百または数千の異なるランサムウェアプログラムが存在しています。それらすべてに悪用可能な欠陥が存在することはありません。
@HameJamesアプローチは、実行中のランサムウェアを検出しようとする1つの方法ですが、彼のトラップファイルがマルウェアによって暗号化された最初のファイルであり、間に合うようにシャットダウンするか、または最後のファイルであり、シャットダウンが単にそれはさらに悪い。
この時点での最善の防御策は、依然として運用上のセキュリティです。重要なファイルの定期的なバックアップを作成し、それらをオフラインに保ちます。予期しないメールの添付ファイルを開いたり、フィッシングリンクをクリックしたりしないでください。セキュリティソフトウェアを最新の状態に保ち、システムにパッチを適用します。通常のアドバイスはすべて適用されます。
偽のファイルC:/ Aを作成し、その変更を探すウォッチドッグを作成できます。変更が検出されたらすぐに、コンピューターをシャットダウンします。それはおそらく最も安全です。
特定の状況では暗号化を停止できます。ランサムウェアがCryptoAPIなどの一般的なライブラリを使用していて、コア関数をフックして呼び出し元を確認できる場合。ただし、これはランサムウェアと戦うための安全なアプローチではありません。たとえば、多くのランサムウェアの亜種は暗号化アルゴリズムをコードに埋め込んだり、暗号化をまったく使用しなかったりするためです。
特別なファイルやトラップファイルを使用することも安全な方法ではありません。トラップが何かをキャッチした場合、手遅れになる可能性があるか、正当なアプリ(バックアップソリューション、アーカイブ、同期、さらには正当な暗号化ソリューションなど)が存在する場合は誤検知である可能性があるためです。 )ボリュームまたは複数のフォルダー内のすべてのファイルを操作します。すべてのファイルを暗号化しない、またはすべてのフォルダーを処理しないランサムウェアについて考えると、事態はさらに複雑になる可能性があります。
解決策は、プロセス、ファイルアクティビティ、その他の変更を含むいくつかの項目を追跡して相互に関連付ける動作分析を使用することです。このアプローチに従う製品は、ランサムウェアを高い精度で検出およびブロックできますが、通常、いくつかのファイル(通常は少なくとも数十)がすでに暗号化されている場合にのみアラートをトリガーします。最善の解決策は、それらのファイルを取り戻すことさえできます。
これを行う1つの方法は、 スパースファイル を作成することです。スパースファイルは、ゼロの大きなセクションを含むファイルであり、ゼロセクションの大きさを説明するメタデータとしてファイルシステムに格納されます。スパースファイルを使用すると、非常に大きなファイルのように見えますが、実際にはディスク上のスペースはほとんどありません。
暗号化プログラムがこのファイルを暗号化しようとすると、すべてのゼロを暗号化して、ファイルを最初から最後まで読み取ろうとする可能性があります。ある時点で、システムがメモリ不足になるか、ディスク容量が不足し、ランサムウェアがその時点までに暗号化していなかったものは、ランサムウェアがその時点でクラッシュし、実行されなかった場合、回収される可能性がありますトラップファイルを削除して、次のファイルから再開してください。もちろん、弱点は、ディスクとメモリのスペースが不足する可能性が高く、他のプロセスもクラッシュする可能性があることです。コンピュータにバグのあるデータベースシステムがあると、ファイルが破損する可能性があります。ランサムウェアがこのファイルに遭遇した後でのみこのメカニズムが作動するため、すべてのファイルが実行されるわけではありません。
ファイルシステムのソースコードを読み取り、トラップファイルをreaddir()によって最初に返される可能性が高くなるようにするために何が必要かを調査することにより、トラップファイルが最初のファイルである可能性を高めることができます。たとえば、ファイルシステムがファイルの作成順にreaddir()を返す場合、それを最初に作成するファイルにする必要があります。ファイルがアルファベット順に返される場合は、ファイル名に多くの「A」を追加する必要があります。ファイル名がハッシュされている場合は、ハッシュされたファイル名に多くのゼロが含まれていることを確認する必要があります。
特定の「カナリア」ファイルを監視する監視プロセスや、ファイル全体のアクティビティを監視してランサムウェアを検出することもできます。しかし、問題は、ランサムウェアが暗号化する内容と順序を制御できないことです。ランサムウェアがカナリアの1つを食べたときには、とにかく深いところにいる可能性があります。