nginxプロセスに偽装した新たなマルウェアが登場

Nginxサーバがリモートアクセスマルウェアに狙われていることがわかりました。

https://sansec.io/research/nginrat

この攻撃は、標的とするアプリケーションと提供するリモートアクセス機能を組み合わせて「NginRAT」と名付けられ、オンラインストアから支払いカードのデータを盗むためのサーバーサイド攻撃に利用されています。

NginRATは、カレンダーの無効な日に実行されるようスケジュールされたタスクにペイロードを隠すリモートアクセストロイの木馬(RAT)であるCronRATに感染していた北米およびヨーロッパのEコマースサーバーで発見されました。

NginRATは、米国、ドイツ、フランスのサーバーに感染しており、正規のプロセスと見分けがつかないNginxプロセスに注入することで、検知されないように仕組みがされています。

RATはサーバーサイドでコードを改変することが可能

セキュリティ企業であるSansec社は、この新しいマルウェアはCronRATとして配信されていると説明していますが、どちらも侵害されたシステムへのリモートアクセスを提供するという点では同じ機能を果たしています。

ステルス性を維持するために非常に異なる技術を使用しているものの、この2つのRATはリモートアクセスを維持するためのバックアップとして機能するという同じ役割を持っているようです。

Sansec社は、カスタムのCronRATを作成し、中国に設置されたコマンド&コントロールサーバ(C2)とのやり取りを観察することで、NginRATを研究することができたと語っています。

このC2サーバを騙して通常の悪意のあるやり取りの一部として、不正な共有ライブラリのペイロードを送信・実行させ、NginRATの “より高度なマルウェア “を偽装しました。

NginRATは基本的に、検出されないようにホストのNginxアプリケーションをハイジャックします。そのために、NginRATはLinuxホストシステムのコア機能を改変します。正規のNginxウェブサーバーがそのような機能(dlopenなど)を使用すると、NginRATはそれを傍受して自分自身を注入します – Sansec

Nginxプロセスは、プロセスの最後に正規のプロセスと見分けがつかないような形でリモートアクセスマルウェアを埋め込みます。

NginRATは正規のNginxプロセスと見分けがつかない

Sansec社が発表したテクニカルレポートによると、NginRATはCronRATの助けを借りて、カスタムの「dwn」コマンドを使って悪意のあるLinuxシステムライブラリを「/dev/shm/php-shared」にダウンロードすることで、感染したシステムに着弾します。

このライブラリは、システムライブラリのテストに一般的に使用されるLinuxのLD_PRELOADデバッグ機能を使用して起動します。

また、実行内容を隠すために、最後に「help」というオプションを複数回追加しています。このコマンドを実行すると、ホストのNginxアプリにNginRATが注入されます。

NginRATは通常のNginxプロセスとして隠れ、コードはサーバーのメモリ内にのみ存在するため、検出するのは難しい可能性があります。

このマルウェアはLD_PRELOADとLD_L1BRARY_PATHという2つの変数を使って起動します。管理者は「typo」を含むプロセスを以下のコマンドを利用して発見することで、アクティブな悪意のあるプロセスを明らかにすることができます。

$ sudo grep -al LD_L1BRARY_PATH /proc/*/environ | grep -v self/
/proc/17199/environ
/proc/25074/environ

Sansec社では、サーバーにNginRATが発見された場合、管理者はcronタスクもチェックすべきだと指摘しています。なぜなら、そこにもCronRATによって追加されたマルウェアが潜んでいる可能性が高いからです。

コメントを残す

メールアドレスが公開されることはありません。