web-dev-qa-db-ja.com

Windowsマシンでパッチされていない脆弱性「AtomBombing」コードインジェクションをどのように軽減しますか?

Atombombing と呼ばれるパッチが適用されていない脆弱性は、malicious.exeプログラムを実行してセキュリティシステムのonlyを回避できるか、または悪意のあるコードを挿入する複数の方法があるか?

Windowsマシンでパッチが適用されていない脆弱性を軽減するためのベストプラクティスは何ですか?

Securityweek によると、コードインジェクションの脆弱性にパッチを適用することはできません。

ユーザーにとっての問題は、AtomBombingを修正できないことです。これがWindowsの動作方法です。パッチの可能性がないため、解決策は他の緩和策です。

7
GAD3R

私が推測できる限り(完全にはわかりません):

Atombombingと呼ばれるパッチが適用されていない脆弱性は、malicious.exeプログラムを実行することによってのみセキュリティシステムを回避できますか、それとも悪意のあるコードを挿入する複数の方法がありますか?

まず、Atom爆撃の仕組みを検討する必要があります。

これは、Windowsに悪意のあるコードを挿入することで機能しますAtom Tables。Atom=テーブルは、プログラムが使用するデータ文字列を「保存」できる一種のテーブルです後で、または他のアプリケーションと共有します。

そのため、潜在的な攻撃者はこの方法をハイジャックまたは特権エスカレーションの手段として使用できますが、直接的な攻撃や侵入には使用できません。

どうして?さて、別の脆弱性/バグが使用されない限り、Atomテーブルはローカルでのみ変更できます。つまり、すでに入っている場合のみ、atom悪意のあるコードを挿入するためのテーブル。

したがって、すでに脆弱性を悪用している場合、この脆弱性を悪用する方法は複数あります(malicious.exeを使用し、別の脆弱性を悪用してシステムに侵入し、Atombombingを使用して特権を昇格させるなど)。 。

Windowsマシンでパッチが適用されていない脆弱性を緩和するためのベストプラクティスは何ですか?

Microsoftチームがこれにパッチを適用する唯一の方法は、Atomテーブルを削除するか、多くのセキュリティ対策を追加することです。

この種の脅威を防ぐ最も簡単な方法は、atomデータを使用する前に保存されたデータ(プログラム上)や、セキュリティシステム/プログラム/モジュールを常に確認することです。 Atomエントリ。

これを修正する方法は、定期的にAtomテーブルエントリをチェックし、悪意のあるコードを探すソフトウェアを使用することです。これは、いくつかのマルウェア対策(またはウイルス対策)によって追加される可能性があります。企業。

詳細については、これらの記事を確認してください。

4
KanekiDev

他のコメントは何かを忘れています。攻撃者は、実際には管理者のアカウントで実行されると、非特権コンテキスト(管理者権限なし)から特権コンテキスト(管理者権限)に昇格できます。これはUACバイパスと呼ばれます。

攻撃

ご想像のとおり、この攻撃には、AtomBombombingなどのコードインジェクション技術が含まれます(ただし、実際には他の方法でも、単純なCreateRemoteThreadでも機能します)。

これは2つのステップで行われます。まず最初に、ユーザーモードで実行される特定のプロセスにコードを挿入します。いくつかの脆弱なプロセスがありますが、Explorer.exeについても説明します。これも最も安定しています。このプロセスは他のプロセスとは異なり、多くの用途があるため特別です。そのため、特別な特権がいくつかあります。たとえば、COM IFileOperationインターフェイスは昇格できます。これは、ある種の管理者のような特権で実行されることを意味します。管理者権限を持つファイルのみを書き込むことができるため、これは役に立たないように見えます。しかし、そうではありません!これを使用して別の攻撃を実行できるため、 DLLハイジャック。これはステップ2です。基本的に、evil.dllevil.exeに埋め込むことができます)を、自動昇格プロセスと同じ場所に配置します。プログラムまたはプロセスは、いったん実行されると自動的に管理者権限を取得するプログラムです。まもなく、これらのプログラムは、正しく実行し、自動化されたタスクなどを実行するための特権を持っている必要があるため、Microsoftによって行われます。最後に、そのプログラムを実行して、 evil.dllに続いて自動昇格し、攻撃者のコードに管理者権限を付与します。

緩和策

マイクロソフトは、.dllファイルと同様の手法をホワイトリストに登録することにより、過去の2番目のステップにパッチを適用しようとしましたが、場合によっては既存の.dllファイルを置き換えるだけで簡単にバイパスできるため、失敗しました。

最初のステップはまったくパッチを当てられません。マイクロソフトはCreateRemoteThreadなどの他のインジェクションメソッドにパッチを適用していませんが、なぜAtombombingにパッチを適用するのですか?それには、OSの多大な労力と大幅な変更が必要になりますが、これはおそらく起こりません。それを防ぐ唯一の方法は、エクスプローラなどのプログラムからこれらの特別な権利を削除することですが、それもどちらも起こらないようです。したがって、悪意のあるプログラムが何らかの方法を使用してコードを挿入しようとするかどうかを検出するかどうかは、基本的にAVに依存しています。

上記のエクスプロイトのPOCを確認できます here

編集:私は質問のいくつかのポイントを忘れました。したがって、これは原子爆弾の成功を防ぐための技術的な方法です。-APIフッキング:ウイルス対策ソリューションは、atomテーブルを変更するすべての試みを傍受してスキャンする可能性があります。関数GlobalAddAtom()およびGlobalGetAtomName( )は、この攻撃を実行するために使用されるものです。これらは、呼び出しを傍受し、Atomテーブルに追加されるデータをスキャンし、キーワードを検索するか、より可能性が高い、分析しようとする可能性があります。データ(シェルコードの場合)。

この攻撃の簡単なレビューは私の頭の中のこれらのポイントをクリックしました:

最初の点

被害者haveを実行してevil.exeを実行し、悪用されます。攻撃者が何らかの形で被害者にevil.exeの実行を説得しても、この攻撃の性質上、evil.exeevil.exeが実行されているのと同じセキュリティコンテキストで実行されているプロセスにのみコードを挿入できます。したがって、この攻撃を使用するだけでは、特権の昇格はありません。 (おそらく、被害者にevil.exeを管理者として実行するように説得しますか?被害者が既に実行するように説得している場合は、それほど難しくありません)

2番目の点

evil.exeは、疑わしいアクティビティが原因でアンチウイルスによってブロックされる可能性があるため、コードインジェクションが必要です。したがって、コードは正当なプロセスに挿入されます。ただし、ブラウザやその他のアプリケーションもアンチウイルスのホワイトリストには含まれていません。悪意のある活動の第1の発生源がWebであるのに、なぜAVはブラウザを信頼するのですか?私が見たホワイトリストプロセスはsvchost.exeおよびその他のシステムプロセスのみです。現在、攻撃にはコードを挿入するために変更可能なスレッドが必要です。しかし、(ユーザーセキュリティコンテキストで実行される)システムプロセスで変更可能なスレッドを取得することは困難です。しかし、やはり不可能ではありません。また、通常のプロセスにシェルコードを挿入することもできます。したがって、この攻撃は依然として可能です。

番目の点

この攻撃の中心はROPチェーンです。 ROPチェーンの実装方法の詳細は確認しませんでしたが、現在、ほとんどのプロセスでASLRが有効になっています。

緩和

軽減策として考えられるのは、EMETのインストールです。 EMETは、低レベルVirtualAlloc関数でさえ、可能なROPを監視します。自分で確認したことはありませんが、EMETがこの攻撃のROPチェーンを停止すると確信しています。

0
PrashantKumar96