ShadowServer 財団は、ここ最近、全世界の外部に露出している MySQL サーバーが約360万ほど存在するというレポートを公開した。MySQL サーバーは MS-SQL サーバーと並ぶ代表的なデータベースサーバーであり、企業やユーザー環境において大量のデータを管理する機能を提供している。一般的に Windows 環境では MS-SQL が主に使われるが、Linux 環境では MySQL がいまだに多く使われている。
https://www.shadowserver.org/news/over-3-6m-exposed-mysql-servers-on-ipv4-and-ipv6/
ASEC 分析チームでは、脆弱なデータベースサーバーをターゲットに拡散するマルウェアを継続的にモニタリングしている。Windows 環境を基準に、大半の攻撃は MS-SQL サーバーとターゲットとして発生しており、実際に当社 ASD ログでもこれを確認できる。以下のような ASEC ブログでも Cobalt Strike、Remcos RAT、CoinMiner 等の様々な攻撃事例を公開してきた。
もちろん、相対的に見れば少数ではあるが、Windows 環境で動作している MySQL サーバーをターゲットとした攻撃も引き続き確認されており、以下の Gh0stCringe マルウェアは MS-SQL サーバーだけでなく MySQL サーバーも攻撃した事例がある。

当社 ASD ログによると、脆弱な MySQL サーバーをターゲットとして拡散しているマルウェアとしては、上記の Gh0stCringe を含む Gh0st RAT の変種のマルウェアが大半を占めている。ここでは脆弱な MySQL サーバーをターゲットとした攻撃方式と、最近の同様の攻撃において確認されている AsyncRAT マルウェアについて分析していく。
まず、攻撃者は攻撃を行うためにターゲットを探すが、この時にスキャニングを行う。スキャナは外部に露出しているシステムのうち MySQL サーバーが使用している 3306/TCP ポートが公開されているシステムを探す。その後、当該システムをターゲットに総当たり攻撃や辞書攻撃を利用し、適切にアカウント情報が管理されていないシステムである場合は root ユーザーアカウント情報を獲得することができる。
一般的に MS-SQL 環境では OS コマンドを実行できる様々な方式が提供されている。代表的なものには xp_cmdshell コマンドがあり、その他にも OLE Stored Procedure、MS-SQL Agent Jobs、Extended Stored Procedure、CLR Stored Procedure 等の方式が存在する。OS コマンド、すなわち cmd や PowerShell を利用して、ユーザーのコマンドを実行できるということは、当該システムに対する操作権を獲得したということを意味する。
言い換えると、データベースサーバーにログインさえできれば、Windows コマンドを実行することができ、さらに当該システムに対する制御権も獲得できるということである。そのためセキュリティポリシー上、上記の機能を使用するためには管理者アカウントでなければならず、その後の追加のセキュリティ設定を修正する作業が必要になってくる。
MySQL は MS-SQL のように xp_cmdshell のような直接的な OS コマンドをサポートしていないが、ユーザー定義関数(UDF : User Defined Function)という機能を利用して、最終的には攻撃者がコマンドを実行することができる。UDF はユーザーが使いたい機能を DLL に具現したものであり、攻撃者は悪意のあるコマンドを含んだ UDF ライブラリ、すなわち DLL を感染システムにアップロードし、MySQL サーバーにロードさせる。その後、定義したコマンドを実行する方式で、感染システムに不正なコマンドを送信することができる。

以下は Metasploit の UDF ライブラリの DLL ファイルが Export する関数であり、コマンド実行(sys_exec)、環境変数への返し(sys_get)のような機能が含まれている。

実際の攻撃対象になったシステムの感染ログを見ると、感染システムには AsyncRAT マルウェア以外にも、以下のような不正な UDF DLL がインストールされているのが確認できる。このマルウェアは、簡単に攻撃者からのコマンドを実行する機能のみを担っている。

このマルウェアは、以前から使用され続けているマルウェアであり、様々なシステムにおいて感染履歴が存在する。以下は感染ログにおいて確認されたパス名であり、基本的に UDF がインストールされている plugin フォルダーに生成された履歴が確認できる。
%SystemDrive%\mysql 5.1\lib\plugin\djxjj.dll %ProgramFiles%\mysql\mysql server 5.1\lib\plugin\gxpem.dll %ProgramFiles%\mysql\mysql server 5.5\lib\plugin\nhhxt.dll %ProgramFiles% (x86)\mysql\mysql server 5.4\lib\plugin\bggrt.dll |
もちろん、当該システムが脆弱な環境であり、その結果として以前から様々な攻撃者によって多くのマルウェアに感染した事例が存在しているが、AsyncRAT を利用した攻撃者が直接これをインストールしたのかについては確認できない。
攻撃に使われた AsyncRAT は .NET によって開発されたオープンソース RAT マルウェアであり、C&C サーバーから攻撃者のコマンドを受け取り、リモートシェル、キーロガー、アカウント情報の窃取のように、様々な不正な振る舞いを行うことができる。

AsyncRAT はオープンソースであるため、そのアクセシビリティの良さから様々な方法で拡散している。最近では商用ソフトウェアのクラックツールに偽装して不正なサイトから配布されたことが確認され、以前はスパムメールによって拡散したこともある。それ以外にも、以前 ASEC ブログで紹介した Discord によって違法なポルノとともに配布された事例もある。

データベースサーバー(MS-SQL、 MySQL サーバー)をターゲットとする攻撃の代表例としては、不適切にアカウント情報を管理しているシステムに対する総当たり攻撃(Brute Forcing)と辞書攻撃(Dictionary Attack)がある。一般的にこれらの方法が攻撃の大半を占めているように見えるが、これ以外にも脆弱性に対するパッチが適用されていないシステムへの脆弱性攻撃が発生する可能性がある。
そのため、管理者はアカウントのパスワードを推測が困難な形式で設定し、定期的にパスワードを変更することで、総当たり攻撃や辞書攻撃からデータベースサーバーを保護しなければならず、セキュリティパッチを最新にして脆弱性攻撃を防止しなければならない。また、外部に開放されていてアクセスが可能なデータベースサーバーに関してはファイアウォールのようなセキュリティ製品を利用し、外部の攻撃者からのアクセスを統制しなければならない。
AhnLab V3 製品では、当該タイプに対して以下の通り検知している。
[ファイル検知]
– Trojan/Win32.RL_Generic.C4239825 (2020.11.26.01)
– Trojan/Win32.Inject.C500093 (2014.08.08.04)
[IOC]
MD5
AsyncRAT
– 46d552cd04ff2b41be06ba1478a97ced
UDF DLL
– f23b2905bf872b4a6495cecde290fd2d
ダウンロードアドレス
AsyncRAT
– hxxp://154.19.203[.]208/Mini.exe
C&C
AsyncRAT
– 154.19.203[.]208:7707
– 154.19.203[.]208:8808
– 154.19.203[.]208:6606
関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム「AhnLab TIP」サブスクリプションサービスを通して確認できる。
Categories:マルウェアの情報
[…] – [ASEC ブログ] 脆弱な MS-SQL サーバーをターゲットに拡散している CobaltStrike– [ASEC ブログ] 脆弱な MS-SQL サーバーをターゲットに拡散している CobaltStrike (2)– [ASEC ブログ] 脆弱な MS-SQL サーバーをターゲットに拡散している CoinMiner– [ASEC ブログ] 脆弱な MySQL サーバーをターゲットに拡散している AsyncRAT マルウェア […]