巧妙化するシェルスクリプトの隠蔽手口-セキュリティブログ
サイバー犯罪者は、攻撃手口や技術を絶えず高度化および最適化させ、巧妙化や難読化など、検出技術や被害軽減対策を回避して利益を最大化させようとします。トレンドマイクロではサイバー犯罪者がどのようにシェルスクリプトを使いこなし、マルウェア開発を行っているのか解説をしており、サイバー犯罪者の世界では何が起きているのか知ることが、セキュリティ対策の参考になるのではないでしょうか。
PCで複数のコマンドを何度も実行する簡単な方法として、シェルスクリプトがあります。多くのユーザは、ファイル操作やプログラム実行、テキスト印刷を定期的に実施する運用環境においてシェルスクリプトを使用します。
WindowsでもLinuxでもシェル(コマンドラインインタープリタ、CLI)が使用できるため、サイバー犯罪者にとっても好都合なツールとなっています。トレンドマイクロではこれまでも、シェルスクリプトを使用して行われた不正活動の事例について報告しています。
特に、誤って構成されたRedisインスタンスや露出したDocker APIを悪用したり、感染PC内に存在する別の暗号資産採掘ツール(コインマイナー)を削除したりするなど、Linux環境での事例が目立っています。
今回は、サイバー犯罪者の手によってシェルスクリプトがどのように変更され、不正活動におけるマルウェアペイロードの開発にどのようにCLIが使用されているかに焦点を当てます。
■コマンドおよびプログラミング技術の変更
CLIを悪用する手口は目新しいものではありません。実際、多くのサイバー攻撃でCLIが現在も不正に利用されています。とはいえ弊社は、シェルスクリプトの変化と品質の高度化に気付き始めました。
これまでのシェルスクリプトは、ペイロードを直接デプロイ可能なURLリンクと単純なコマンドの組み合わせをプレーンテキストに記述した比較的簡潔なものでした。ところが最近確認された攻撃では、脅威の巧妙化に合わせてより高度なコマンドやプログラミング技術が使用されています。
図1:プレーンテキスト(左)からBase64でエンコードされたペイロード(右)へと高度化したシェルスクリプトの一例
プレーンテキストフィールド内に記述されたリンクはBase64でエンコードされたテキストに置き換えられていましたが、一部のコードチャンクはダウンロードまたはエンコードされたペイロードでした。これは、直接ペイロードのリンク先を隠ぺいし、それらを検知する検出ルールを回避し、解析をより困難にするために施された可能性があります。
図2:Base64エンコーディングにより置き換えられたコードチャンク
エンコードされたテキストはBase64を用いてデコードされたのち、シェルスクリプトを実行するためにbashインタープリタに渡されます。
図3:Base64でエンコードされたペイロードがデコードされた際の一例
これまでコマンドは、サーバ上で実行されている攻撃対象のサービスに関係なく実行されていました。現在の高度化したスクリプトではサービスが実行されているかどうかをチェックし、ペイロードが消費するCPU時間の一部を節約することができます。
さらにペイロードはBase64でエンコードされた最新のバージョンとして実行されます。また、特定のリンクの代わりに変数を使用することもできます。
図4:サービスがインストールされているかどうかを確認せずにサービスをアンインストールするコマンド
図5:実行中のサービスを確認し、対象のサービスをアンインストールするコマンド
図6:変数に置き換えられたwgetのURL
さらにトレンドマイクロでは、コインマイナー「XMrig」をドロップする活動の例に見られるように、URLリンクやペイロード、あるいはヘルパーアプリケーション全体など、スクリプトの一部を格納するために「Pastebin」が新しく利用されていることも確認しています。
図7:Base64でエンコードされた環境設定とPastebinへのURL
図8:Base64でエンコードされたXMrig
■結論
サイバー犯罪者は、攻撃手口や技術を絶えず高度化および最適化させています。
検出技術や被害軽減対策を回避して利益を最大化するために、サイバー犯罪者は、過去に概念実証(Proof of Concept、PoC)などで発見された攻撃手法を使用したり、他のOSで試したり、複数の攻撃手法を組み合わせたりします。
ペイロードを難読化して送り込むためにシェルスクリプト機能を利用することはその1つの手法です。
現在の不正シェルスクリプトでは、難読化により解析を困難化させる仕組みが見受けられるようになっています。
マルウェアの作成者は将来、実際のペイロードを隠ぺいするために、さらなる難読化を施すことが予想されます。
しかしながら、これらの技術によりLinuxにおける難読化の手口がさらに巧妙化していると主張するにはまだかなり早い段階と言えるでしょう。
また、シェルスクリプトの高度化については、さらに留意して観察する価値があります。さらにリサーチャにとっては、難読化が常套手段となることにより詳細解析のために複数のレイヤーをデコードする必要があります。
本記事は、トレンドマイクロ様の許諾により「トレンドマイクロ・セキュリティブログ」の内容を元に作成しております。
ソース:https://blog.trendmicro.co.jp/archives/26826
この情報は役に立ちましたか?