パスワードを忘れた? アカウント作成
13421200 story
Windows

特殊なSMBサーバーを使用してマルウェア検出を避ける攻撃「Illusion Gap」 33

ストーリー by headless
代理 部門より
攻撃用に細工したSMBサーバーを用い、Windowsのアンチウイルスプログラムによるマルウェア検出を避けるという攻撃手法「Illusion Gap」について、セキュリティ企業CyberArkが解説している(CyberArkのブログ記事Neowinの記事Bleeping Computerの記事The Registerの記事)。

アンチウイルスプログラムがインストールされたWindows環境でSMBサーバー上の実行ファイルを実行する場合、アンチウイルスプログラムによる安全確認後、Windowsローダーが実行ファイルを起動する。SMBサーバー側ではファイルのリクエストがアンチウイルスプログラムからのものか、Windowsローダーからのものかを識別できるため、前者では安全なファイルを返し、後者で悪意あるファイルを返すことでウイルススキャンをバイパスしてマルウェアを実行させることができるという。

CyberArkではWindows Defenderでスキャンのバイパスができることを確認しているが、他のアンチウイルスプログラムでも同様な動作になる可能性が高いとしている。また、Windows Defenderではスキャンするファイルのハンドル取得が失敗するとそのままファイルが実行されるため、故意にリクエストをブロックすることでマルウェアを実行させることも可能とのこと。なお、ブログ記事は「Part 1」となっており、他にもアンチウイルスプログラムをバイパスする手法があるようだ。

CyberArkの報告に対しMicrosoftでは、カスタムSMBサーバーによる信頼できない共有ファイルをユーザーが信頼して実行する必要があることから、(Windows側の修正が必要な)セキュリティの問題ではないと説明。機能のリクエストとしてエンジニアリンググループに転送しておくと回答したそうだ。
  • by Anonymous Coward on 2017年10月01日 18時10分 (#3288888)

    コレ思い出しました(srad のストーリーになかったっけ?)
    WikiLeaks、CIAのファイルサーバ潜入ツール「Pandemic」に関する文書を公開 [itmedia.co.jp]

    リモートユーザーがSMB経由でファイルにアクセスすると、そのファイルを攻撃コード込みの別ファイルに入れ替えてしまうという。

    諜報機関から流出した技術がマルウェアに利用されることが最近多い気がします

    ここに返信
    • by headless (41064) on 2017年10月01日 23時13分 (#3289026)
      ストーリー [security.srad.jp]になっていますね。忘れていました。
      フィルタードライバーを使用して状況に応じて異なるファイルを返す点は同じですが、CIAのPandemicは共有フォルダー上に安全なファイルのみを置き、特定のユーザーがアクセスした場合のみマルウェアに置き換えるのに対し、Illusion Gapでは安全なファイルとマルウェアの両方が共有フォルダーに格納され、アンチウイルスプログラムがアクセスした場合にのみ安全なファイルを返す点が異なります。
    • by Anonymous Coward

      諜報機関のツールもマルウェア。マルウェア作ってる人たちはどこの所属であれ似たようなことをやっているということでしょう。

  • うーん? (スコア:0, 荒らし)

    by Anonymous Coward on 2017年10月01日 17時56分 (#3288881)

    クライアント側で保存される時点で
    クライアント側のアンチウイルスプログラムが
    ちゃんと検出するんでねーの?
    接続先の信頼とか以前にさ

    今どきWindowsでノーガードとか
    ハニーポットくらいなもんでしょ

    Exploitですり抜けるのはこの問題とは意味が違うし
    MSの言う通り
    Windows側の修正が必要なセキュリティの問題じゃない

    むしろ同一視させることでの穴でも見つけていて
    同一視しろって要求してるんじゃないかと邪推したくなる

    ここに返信
    • by kcg (26566) on 2017年10月01日 18時03分 (#3288886) ホームページ 日記

      クライアント側に保存せずにSMB共有フォルダ上の実行ファイルをロードする場合に、
      クライアント側のアンチウイルスソフトにはダミーを提供して、
      OSのイメージローダーには感染したバイナリを提供するという手法でしょう。

      • by Anonymous Coward

        は?
        まさかネットワーク上の実行ファイルが
        直接メモリー上にロードされて実行されるとでも?

        一旦キャッシュされてから実行されるのだから
        クライアントのテンポラリ領域に保存されます
        そこはアンチウイルスのチェック下ですよ

        /*
        「OSのイメージローダー」をブートローダーと読み替えて
        ネットワークブート時にアンチウイルスが効かないっていっているのなら
        確かにその通りだが別問題だろう
        */

        • by kcg (26566) on 2017年10月02日 23時51分 (#3289644) ホームページ 日記

          SMB/CIFSの共有フォルダから、EXEやDLLをロードする時に、
          ローカルストレージに一旦キャッシュなんてしてないのでは?

          win32apiのcreateProcessやloadLibrary実行中に
          ファイル全体がストレージに一旦全部保存されるなんて話は聞いたことがないのですが。

          どのパスに保存されるんですか?
          processMonitorなどで補足できます?

        • by jzkey (47353) on 2017年10月02日 2時29分 (#3289069)

          少なくとも、いにしえのWindowsでは、下記のPE Optionが付いていないと、ローカルにEXEを全部ダウンロードしたりしないみたいなんだよね。
          (ま、あったところで、キャッシュはスワップの中だからウイルスチェッカがスワップ調べるの?って気はする。)

          IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800
          If the image is on the network, copy it to and run it from the swap file.

        • by Anonymous Coward

          >まさかネットワーク上の実行ファイルが
          >直接メモリー上にロードされて実行されるとでも?

          SMB共有ではされるから危ない、とセキュリティ企業が指摘してるんだから、そうなんだろ?

          それとも、「自称セキュリティ企業がまた寝ぼけた的外れなこと言ってやがる」と言いたいの?

          • Re: (スコア:0, 荒らし)

            by Anonymous Coward

            Windowsでのネットワークは
            ゾーン管理されています

            マイコンピューターゾーン以外のすべてのゾーンは
            ローカルイントラネットゾーンや信頼済みサイトも含め
            Temporary Internet Filesを経由しての表示・実行となります

            そしてそこに出たが書き込まれる際には
            アンチウイルスソフトが書き込み時のリアルタイム監視をしています

            つまりなんであれネットワークからのファイルは
            監視対象となる仕組みです

            サーバー側で見分けがつくというのは
            参照時や定期スキャンなど能動的なスキャン時のことです

            実際に実行する際に差し替えられていたとしても
            Temporary Internet Filesを経由し

            • by Anonymous Coward

              HTTPとSMBを勘違いしていませんか?ゾーン管理はその通りですが、SMBでファイルを開くのにTemporary Internet Files経由って事はないと思うのですが。
              大きなファイルとかを開くと、LANの論理上限速度で転送した場合よりも早く開けますし。部分的にファイルを直接メモリに読んでるとしか思えない挙動なのですが。
              とは言え、実際にWindowsがどういう仕様なのかは知らないので、MSが公開している資料でTemporary Internet Files経由で開くと言うのが確認できるものってありますか?

              • by Anonymous Coward

                あと、SMB側で排他制御も掛かるね。
                そもそもローカルにコピーを生成してるんならローカルへの書き込み監視で例外指定しない限りの時点で引っかかる筈だし。

                キャッシュは生成されるだろうけど、アンチウィルスでのアクセス直後に更新時刻変えた判定を返してキャッシュ破棄させればスキャンと実行で違う内容を返せる、と言われたら納得行く。
                DNS Pinningみたいにアンチウィルスでのスキャンと実行ファイルのロードをアトミックにしない限り回避はできない。
                …でも、インストーラの如き巨大な実行ファイルをピンニングするとかちょい無理があるだろうし、
                ファイルレベル自己書き換えも絶無ってわけじゃないから書き換えを完全にロックするわけにもいかないというかロック自体が鯖の仕事…

                改竄機能付きのSMBサーバがイントラネット内に出現してその中のアプリを実行した時点で負けってことにする(MSの回答)か、
                ローダーによるアクセスにアンチウィルスがフックを掛けれるようにしてもらうか。後者は安定性への影響が怖いなあ……

            • by Anonymous Coward

              それだと、いつからか仕様が変わったことになりますが、ほんとですか?
              SMBは、ある意味、インターネットより歴史が古いですし。

              • by Anonymous Coward
                正確に覚えてないけど、ME か XP あたりで共有フォルダもゾーンセキュリティの対象になったんじゃなかったっけ?
                その影響で共有フォルダの hlp ファイルも開けなくなったし、署名なしの exe の実行も出来なくなった。
        • by Anonymous Coward

          真相は知らんが、Excelマクロの類はネットワーク上のファイルそのものが使われているだろうし、
          いずれにしろ同根の問題はあるんでないかな。

          つかネットワーク上で一度ウイルスチェックが通ったものにローカルのキャッシュで再度チェックがかかるという状況が考え辛いが。
          そんな(通常は)無駄なことするかね。

    • by Anonymous Coward

      よく知らんけど、インターネット上でSMBサーバ上げておいて、メールとかWebページとかにfile://....とかいうリンクを貼ってアクセスさせると、やられることがある、ということなのかな?
      LAN上じゃないサイトのポート445にアクセス可能なのどうなのとか、fileメソッドでWindowsの共有資源アクセスしちゃうのどうなのとか、あるはずなんだけど…

      • by Anonymous Coward

        もっと単純に、SMBサーバがやられると危ないとか、DNSスプーフィングでLAN内の偽のSMBサーバへ誘導されると危ないとか、何か別の攻撃と組み合わされたときに被害が大きくなるよ、という指摘なんじゃないかな。

        あと、それができるなら、「SMB共有上のファイル書き換えまくり攻撃」みたいなのは成立ないかな。LAN内の間抜けな人のアカウントを乗っ取って、SMB共有上にある実行ファイルを、本物・偽物、と素早く書き換え続けるとか。すると、運悪く本物をウィルスチェックして安全と認識した後、偽物を実行する端末が他にも…。まあバレて無理かな。

      • by Anonymous Coward

        file://ってクロスドメイン制約でアクセスできなくね?

  • by Anonymous Coward on 2017年10月01日 19時34分 (#3288936)

    すくなくとも定期的にSMB上のウイルスチェックすることで
    ある程度は防御できる

    ここに返信
    • by Anonymous Coward on 2017年10月01日 23時39分 (#3289031)

      そもそもイントラネット内に悪意のあるSMBサーバが立っているという末期的な状況が前提なので、そういうレベルじゃないと思う。

    • by Anonymous Coward

      実行時かチェック時か判別出きるので、チェック時には正常なバイナリを返してチェックをすり抜けるって話なんだが。
      実行時になりすます事ができるツールがないと検出できないよ。

      • by Anonymous Coward

        いや、何もSMBサーバ上をリモートで検査しなくても、ローカルでやればよくね?
        SMBサーバにもアンチウィルスソフト入れたりするよね?
        まぁ、想定としてSMBサーバを外から持ち込んで、既存サーバとすり替えるって手法くらいしか思い付かないので、それをされる状況ってのは、アンチウィルス云々のレベルでは無い事は確かですね。

        今回、アンチウィルスソフトなんて役に立たないって言う輩が多い中で、わざわざそれを回避する試みがされている事に驚いた。
        やっぱり役に立つんかなぁ。

  • by Anonymous Coward on 2017年10月01日 21時32分 (#3288996)

    ファイルシステムを暗号化したサーバーで細工したSambaを立ち上げておいて、
    通常時は俺フォルダは無難な画像にすり替え。
    俺フォルダを炸裂させたい時にはsshでログインして、スイッチを切り替えてSambaをリロード。

    お楽しみ中に死んだときは知らない。

    ここに返信
  • by Anonymous Coward on 2017年10月01日 21時39分 (#3289003)

    アンチウィルスがSMBサーバからファイルをダウンロード。アンチウィルスがチェック後、ローダーに渡すという順序になっているものだとばかり思っていました。ローダーが改めてダウンロードし直すのはダウンロードを2回やってて無駄な動作じゃないでしょうか?

    ここに返信
    • by Anonymous Coward

      通常はファイルがオープンされた後、メモリにマップされて、実行時に随時ロードという形だと思うし、それに加えてカーネル/ユーザ領域とかもあると思うので、ウィルスチェックのフックは別途とした方が実装しやすいんじゃない?
      でも、キャッシュしないんだろうかってのはある。

      • by Anonymous Coward

        フック云々のタイミングをdl後にすればいいだけなのでは?
        前半の内容は何の説明にもなってないような。

        • by Anonymous Coward

          メモリマップだとオープンしたときには特に読み込みが起きず、
          該当メモリへのアクセスがあった際にデータがメモリ上に読まれて居なければデータを読み込み、
          メモリ管理の都合でページアウトしてたらページフォルトの際に再度読み込みが行われる。
          つまり、プログラムの実行中ずっと走りっぱなしで、
          通常は実行ファイルが実行中に変化しないにも関わらず読み込みのたびに再スキャンすることになる。

          そしてここにフックを仕掛けるとローレベルのストレージアクセスないしはページフォルト管理システムに割り込む必要がある。
          前者の時点で結構コアな部分だし後者は完全にカーネルのコアな

        • by Anonymous Coward

          dl後という実装になってても、悪意あるSMBサーバの方を、先に来るアクセスの方を騙したら済むだけでは?

          そんなに難しい話ではなく、ウィルスチェックを付けたのが後付けだったから、ってだけな気がする。
          OSの仕様にも関わるようなややこしい所をがっつり大改造するより、ちょっとしたフックを使った簡単な実装で済ませようとした、とか。

          このストーリーのような指摘も、MS内で設計レビューの時点で誰かがツッコミを入れて、そうそう攻撃に使われるもんでもないし、
          それを避けるために大改造をしなくてもいいだろう、みたいな議論が終わってた、とかじゃないかな。

    • by Anonymous Coward

      ローカルに置かれているファイルと同様の扱いで、ネット越しだからとてファイルロードのコスパを考慮する発想が無いのでは。
      シンプルにアンチウイルスのプロセスがファイルチェックをしてOKしたら、Windowsのプロセスが対象のファイルをロードする、みたいな。

typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...