PyLoose

ほぼこもセキュリティニュース By Terilogy Worx

PyLooseはファイルレスマルウェアの名前です。
これまでいろいろなファイルレス攻撃が確認されていますが、このマルウェアはPythonをベースとしたものになっています。
Pythonを使ったファイルレスマルウェアが観測されたのは、これが最初かもしれません。

どんな流れで攻撃が進むのでしょうか。

  • 被害者はクラウド上で活動している
    これは今となっては普通のことです。何も特別なことはありません。

     

  • 被害者はPythonを使う
    これも普通のことに思えます。クラウド上に用意した環境でPythonを使って仕事したり勉強したり、そんな取り組みは多くあると思います。

     

  • 被害者はJupyter Notebookを使う
    これも普通のことになってきているのではないでしょうか。
    Jupyter Notebookはブラウザ上で動作するプログラムの対話型実行環境です。
    クラウトサービスで提供されているものを使うこともできますし、自分で用意した環境にインストールして利用することもできます。
    接続先さえ確保すれば、あとは手元のWebブラウザから操作し、利用することができます。

     

  • 攻撃者が被害者のJupyter Notebookを使う
    Jupyter Notebookはアプリケーションというか、サービスです。
    設置者が使うことができますが、アクセス制限が許す範囲内で誰でも使うことができます。
    適切にアクセス制御されていない場合、設置者でなく攻撃者が利用することもできてしまいます。
    そんな環境が標的となります。

     

  • Pythonスクリプトでドロップ
    Jupyter Notebookの中のコードで、外部からバイナリをダウンロードします。
    使うプロトコルはhttpsです。
    Pythonのコードの中でダウンロードしていますので、ダウンロードしたものはメモリの中に保持した状態に保つことができます。
    ファイルとして保存する必要はありません。

     

  • Pythonスクリプトでファイルレス実行
    ダウンロードしたら、次は実行です。
    持ってきたバイナリの圧縮を解除し、でてきたペイロードをmemfdを使って利用できる状態に配置します。
    memfdはメモリの一部のロードしたコードをファイルのようにして操作できるようにすることのできる機構です。
    そしてmemfdでファイルのようにしたものを実行します。

     

  • マイナーの実行
    この攻撃で持ってこられたペイロードは、XMRigでした。
    XMRigはクリプトマイナーです。暗号資産をマイニングします。

ちなみに、このPyLooseのPythonの攻撃コードはたったの9行のスクリプトです。
内容も複雑なことは含まれていません。
こういうことがしたい、というアイデアさえあれば、作れる内容になっています。
Pythonなどの新しいコンピュータ言語の力を感じます。

この攻撃ではファイルでの痕跡は残りません。
被害者の意図しない内容でメモリを消費し、CPU処理能力を消費します。
プロセスを適切に監視することができている場合は活動を検出できる場合もありそうですが、その前にもっとできることはありそうです。
クラウドに限った話ではありませんが、認証という意味でも、ネットワーク的な意味でも、アクセス制御はしっかりと実施したいです。
便利なサービスを手元で動作させることはよいのですが、それを利用できるのは予定された人だけとなるようにしたいところです。

参考記事(外部リンク):PyLoose: Python-based fileless malware targets cloud
workloads to deliver cryptominer

www.wiz.io/blog/pyloose-first-python-based-fileless-attack-on-cloud-workloads