
特殊なSMBサーバーを使用してマルウェア検出を避ける攻撃「Illusion Gap」 33
ストーリー by headless
代理 部門より
代理 部門より
攻撃用に細工したSMBサーバーを用い、Windowsのアンチウイルスプログラムによるマルウェア検出を避けるという攻撃手法「Illusion Gap」について、セキュリティ企業CyberArkが解説している(CyberArkのブログ記事、
Neowinの記事、
Bleeping Computerの記事、
The Registerの記事)。
アンチウイルスプログラムがインストールされたWindows環境でSMBサーバー上の実行ファイルを実行する場合、アンチウイルスプログラムによる安全確認後、Windowsローダーが実行ファイルを起動する。SMBサーバー側ではファイルのリクエストがアンチウイルスプログラムからのものか、Windowsローダーからのものかを識別できるため、前者では安全なファイルを返し、後者で悪意あるファイルを返すことでウイルススキャンをバイパスしてマルウェアを実行させることができるという。
アンチウイルスプログラムがインストールされたWindows環境でSMBサーバー上の実行ファイルを実行する場合、アンチウイルスプログラムによる安全確認後、Windowsローダーが実行ファイルを起動する。SMBサーバー側ではファイルのリクエストがアンチウイルスプログラムからのものか、Windowsローダーからのものかを識別できるため、前者では安全なファイルを返し、後者で悪意あるファイルを返すことでウイルススキャンをバイパスしてマルウェアを実行させることができるという。
CyberArkではWindows Defenderでスキャンのバイパスができることを確認しているが、他のアンチウイルスプログラムでも同様な動作になる可能性が高いとしている。また、Windows Defenderではスキャンするファイルのハンドル取得が失敗するとそのままファイルが実行されるため、故意にリクエストをブロックすることでマルウェアを実行させることも可能とのこと。なお、ブログ記事は「Part 1」となっており、他にもアンチウイルスプログラムをバイパスする手法があるようだ。
CyberArkの報告に対しMicrosoftでは、カスタムSMBサーバーによる信頼できない共有ファイルをユーザーが信頼して実行する必要があることから、(Windows側の修正が必要な)セキュリティの問題ではないと説明。機能のリクエストとしてエンジニアリンググループに転送しておくと回答したそうだ。
派生でしょうか? (スコア:1)
コレ思い出しました(srad のストーリーになかったっけ?)
WikiLeaks、CIAのファイルサーバ潜入ツール「Pandemic」に関する文書を公開 [itmedia.co.jp]
諜報機関から流出した技術がマルウェアに利用されることが最近多い気がします
Re:派生でしょうか? (スコア:2)
フィルタードライバーを使用して状況に応じて異なるファイルを返す点は同じですが、CIAのPandemicは共有フォルダー上に安全なファイルのみを置き、特定のユーザーがアクセスした場合のみマルウェアに置き換えるのに対し、Illusion Gapでは安全なファイルとマルウェアの両方が共有フォルダーに格納され、アンチウイルスプログラムがアクセスした場合にのみ安全なファイルを返す点が異なります。
Re: (スコア:0)
諜報機関のツールもマルウェア。マルウェア作ってる人たちはどこの所属であれ似たようなことをやっているということでしょう。
うーん? (スコア:0, 荒らし)
クライアント側で保存される時点で
クライアント側のアンチウイルスプログラムが
ちゃんと検出するんでねーの?
接続先の信頼とか以前にさ
今どきWindowsでノーガードとか
ハニーポットくらいなもんでしょ
Exploitですり抜けるのはこの問題とは意味が違うし
MSの言う通り
Windows側の修正が必要なセキュリティの問題じゃない
むしろ同一視させることでの穴でも見つけていて
同一視しろって要求してるんじゃないかと邪推したくなる
Re:うーん? (スコア:2)
クライアント側に保存せずにSMB共有フォルダ上の実行ファイルをロードする場合に、
クライアント側のアンチウイルスソフトにはダミーを提供して、
OSのイメージローダーには感染したバイナリを提供するという手法でしょう。
Re: (スコア:0)
は?
まさかネットワーク上の実行ファイルが
直接メモリー上にロードされて実行されるとでも?
一旦キャッシュされてから実行されるのだから
クライアントのテンポラリ領域に保存されます
そこはアンチウイルスのチェック下ですよ
/*
「OSのイメージローダー」をブートローダーと読み替えて
ネットワークブート時にアンチウイルスが効かないっていっているのなら
確かにその通りだが別問題だろう
*/
Re:うーん? (スコア:2)
SMB/CIFSの共有フォルダから、EXEやDLLをロードする時に、
ローカルストレージに一旦キャッシュなんてしてないのでは?
win32apiのcreateProcessやloadLibrary実行中に
ファイル全体がストレージに一旦全部保存されるなんて話は聞いたことがないのですが。
どのパスに保存されるんですか?
processMonitorなどで補足できます?
Re:うーん? (スコア:1)
少なくとも、いにしえのWindowsでは、下記のPE Optionが付いていないと、ローカルにEXEを全部ダウンロードしたりしないみたいなんだよね。
(ま、あったところで、キャッシュはスワップの中だからウイルスチェッカがスワップ調べるの?って気はする。)
Re: (スコア:0)
>まさかネットワーク上の実行ファイルが
>直接メモリー上にロードされて実行されるとでも?
SMB共有ではされるから危ない、とセキュリティ企業が指摘してるんだから、そうなんだろ?
それとも、「自称セキュリティ企業がまた寝ぼけた的外れなこと言ってやがる」と言いたいの?
Re: (スコア:0, 荒らし)
Windowsでのネットワークは
ゾーン管理されています
マイコンピューターゾーン以外のすべてのゾーンは
ローカルイントラネットゾーンや信頼済みサイトも含め
Temporary Internet Filesを経由しての表示・実行となります
そしてそこに出たが書き込まれる際には
アンチウイルスソフトが書き込み時のリアルタイム監視をしています
つまりなんであれネットワークからのファイルは
監視対象となる仕組みです
サーバー側で見分けがつくというのは
参照時や定期スキャンなど能動的なスキャン時のことです
実際に実行する際に差し替えられていたとしても
Temporary Internet Filesを経由し
Re: (スコア:0)
HTTPとSMBを勘違いしていませんか?ゾーン管理はその通りですが、SMBでファイルを開くのにTemporary Internet Files経由って事はないと思うのですが。
大きなファイルとかを開くと、LANの論理上限速度で転送した場合よりも早く開けますし。部分的にファイルを直接メモリに読んでるとしか思えない挙動なのですが。
とは言え、実際にWindowsがどういう仕様なのかは知らないので、MSが公開している資料でTemporary Internet Files経由で開くと言うのが確認できるものってありますか?
Re: (スコア:0)
あと、SMB側で排他制御も掛かるね。
そもそもローカルにコピーを生成してるんならローカルへの書き込み監視で例外指定しない限りの時点で引っかかる筈だし。
キャッシュは生成されるだろうけど、アンチウィルスでのアクセス直後に更新時刻変えた判定を返してキャッシュ破棄させればスキャンと実行で違う内容を返せる、と言われたら納得行く。
DNS Pinningみたいにアンチウィルスでのスキャンと実行ファイルのロードをアトミックにしない限り回避はできない。
…でも、インストーラの如き巨大な実行ファイルをピンニングするとかちょい無理があるだろうし、
ファイルレベル自己書き換えも絶無ってわけじゃないから書き換えを完全にロックするわけにもいかないというかロック自体が鯖の仕事…
改竄機能付きのSMBサーバがイントラネット内に出現してその中のアプリを実行した時点で負けってことにする(MSの回答)か、
ローダーによるアクセスにアンチウィルスがフックを掛けれるようにしてもらうか。後者は安定性への影響が怖いなあ……
Re: (スコア:0)
それだと、いつからか仕様が変わったことになりますが、ほんとですか?
SMBは、ある意味、インターネットより歴史が古いですし。
Re: (スコア:0)
その影響で共有フォルダの hlp ファイルも開けなくなったし、署名なしの exe の実行も出来なくなった。
Re: (スコア:0)
真相は知らんが、Excelマクロの類はネットワーク上のファイルそのものが使われているだろうし、
いずれにしろ同根の問題はあるんでないかな。
つかネットワーク上で一度ウイルスチェックが通ったものにローカルのキャッシュで再度チェックがかかるという状況が考え辛いが。
そんな(通常は)無駄なことするかね。
Re: (スコア:0)
kcgの人がそのまま分かりやすく説明してるのになんでそんな微妙におかしいたとえ話にすり替えるんだ。2行目に至っちゃなにがなんだか。
Re: (スコア:0)
例え話にしないと理解できない奴は馬鹿
Re: (スコア:0)
よく知らんけど、インターネット上でSMBサーバ上げておいて、メールとかWebページとかにfile://....とかいうリンクを貼ってアクセスさせると、やられることがある、ということなのかな?
LAN上じゃないサイトのポート445にアクセス可能なのどうなのとか、fileメソッドでWindowsの共有資源アクセスしちゃうのどうなのとか、あるはずなんだけど…
Re: (スコア:0)
もっと単純に、SMBサーバがやられると危ないとか、DNSスプーフィングでLAN内の偽のSMBサーバへ誘導されると危ないとか、何か別の攻撃と組み合わされたときに被害が大きくなるよ、という指摘なんじゃないかな。
あと、それができるなら、「SMB共有上のファイル書き換えまくり攻撃」みたいなのは成立ないかな。LAN内の間抜けな人のアカウントを乗っ取って、SMB共有上にある実行ファイルを、本物・偽物、と素早く書き換え続けるとか。すると、運悪く本物をウィルスチェックして安全と認識した後、偽物を実行する端末が他にも…。まあバレて無理かな。
Re: (スコア:0)
file://ってクロスドメイン制約でアクセスできなくね?
Re:定期的にSMB上のウイルスチェックしろよ (スコア:0)
すくなくとも定期的にSMB上のウイルスチェックすることで
ある程度は防御できる
Re:定期的にSMB上のウイルスチェックしろよ (スコア:1)
そもそもイントラネット内に悪意のあるSMBサーバが立っているという末期的な状況が前提なので、そういうレベルじゃないと思う。
Re: (スコア:0)
実行時かチェック時か判別出きるので、チェック時には正常なバイナリを返してチェックをすり抜けるって話なんだが。
実行時になりすます事ができるツールがないと検出できないよ。
Re: (スコア:0)
いや、何もSMBサーバ上をリモートで検査しなくても、ローカルでやればよくね?
SMBサーバにもアンチウィルスソフト入れたりするよね?
まぁ、想定としてSMBサーバを外から持ち込んで、既存サーバとすり替えるって手法くらいしか思い付かないので、それをされる状況ってのは、アンチウィルス云々のレベルでは無い事は確かですね。
今回、アンチウィルスソフトなんて役に立たないって言う輩が多い中で、わざわざそれを回避する試みがされている事に驚いた。
やっぱり役に立つんかなぁ。
死後も安全な俺の画像フォルダ (スコア:0)
ファイルシステムを暗号化したサーバーで細工したSambaを立ち上げておいて、
通常時は俺フォルダは無難な画像にすり替え。
俺フォルダを炸裂させたい時にはsshでログインして、スイッチを切り替えてSambaをリロード。
お楽しみ中に死んだときは知らない。
なんで2回アクセスするんだろ? (スコア:0)
アンチウィルスがSMBサーバからファイルをダウンロード。アンチウィルスがチェック後、ローダーに渡すという順序になっているものだとばかり思っていました。ローダーが改めてダウンロードし直すのはダウンロードを2回やってて無駄な動作じゃないでしょうか?
Re: (スコア:0)
通常はファイルがオープンされた後、メモリにマップされて、実行時に随時ロードという形だと思うし、それに加えてカーネル/ユーザ領域とかもあると思うので、ウィルスチェックのフックは別途とした方が実装しやすいんじゃない?
でも、キャッシュしないんだろうかってのはある。
Re: (スコア:0)
フック云々のタイミングをdl後にすればいいだけなのでは?
前半の内容は何の説明にもなってないような。
Re: (スコア:0)
メモリマップだとオープンしたときには特に読み込みが起きず、
該当メモリへのアクセスがあった際にデータがメモリ上に読まれて居なければデータを読み込み、
メモリ管理の都合でページアウトしてたらページフォルトの際に再度読み込みが行われる。
つまり、プログラムの実行中ずっと走りっぱなしで、
通常は実行ファイルが実行中に変化しないにも関わらず読み込みのたびに再スキャンすることになる。
そしてここにフックを仕掛けるとローレベルのストレージアクセスないしはページフォルト管理システムに割り込む必要がある。
前者の時点で結構コアな部分だし後者は完全にカーネルのコアな
Re: (スコア:0)
dl後という実装になってても、悪意あるSMBサーバの方を、先に来るアクセスの方を騙したら済むだけでは?
そんなに難しい話ではなく、ウィルスチェックを付けたのが後付けだったから、ってだけな気がする。
OSの仕様にも関わるようなややこしい所をがっつり大改造するより、ちょっとしたフックを使った簡単な実装で済ませようとした、とか。
このストーリーのような指摘も、MS内で設計レビューの時点で誰かがツッコミを入れて、そうそう攻撃に使われるもんでもないし、
それを避けるために大改造をしなくてもいいだろう、みたいな議論が終わってた、とかじゃないかな。
Re: (スコア:0)
ローカルに置かれているファイルと同様の扱いで、ネット越しだからとてファイルロードのコスパを考慮する発想が無いのでは。
シンプルにアンチウイルスのプロセスがファイルチェックをしてOKしたら、Windowsのプロセスが対象のファイルをロードする、みたいな。