ESET のセキュリティ研究者は、フックと「マジック パスワード」という素晴らしい名前の付いた手段を介して Microsoft の SQL Server に侵入するバックドアの詳細を公開しました。
SQL Server 2012 および 2014 をターゲットとするこのバックドアは、侵入先のサーバーに攻撃者が密かにアクセスできるようにする機能を備えており、「Winnti」と呼ばれるマルウェア グループの武器の一部となっています。
The Registerは、 ESETのマルウェア担当者であるMathieu Tartare氏に、この研究とバックドアがもたらすリスクについて話を聞いた。
管理者の皆様がパニックに陥る前に、サーバー上でバックドアを実際に実行するには管理者レベルの権限が必要であることをご承知おきください。もしこれが組織におけるリスクであるならば、SQL Serverの認証に誰かが穴を開けるよりも、はるかに深刻な事態を心配する必要があると言えるでしょう。
マイクロソフトは目を覚まし、ストレッチをして、思い出した。「そうだ、Windowsもやってるんだ」。そして、SQL Server 2019 Windowsベースのコンテナが登場した。
続きを読む
しかし、悪意のあるコードが何らかの形でSQL Serverのディレクトリに侵入した場合、攻撃者がこっそりと侵入し、データをコピー、変更、または削除するための便利なバックドアが風に揺れる可能性がある。これは、SQL認証が使用されており、攻撃者が十分な権限を持つユーザー名を知っていることを前提としている。
デフォルトの管理者アカウントに関して何か対処することを覚えていますか?
ああ、この技術を使えば、マルウェアに埋め込まれた「マジックパスワード」さえ知っていれば、パスワードフィッシングは不可能になります。当然ながら、ESETはこの重要な情報を削除しました。
「skip-2.0」と呼ばれるこのマルウェアは、実行中のプロセスに挿入されることを利用しており、この場合は、主に認証とイベント ログにリンクされている複数の関数sqlserver.exe
へのハンドルを取得してsqllang.dll
フックする、古いプロセスです。
ハイジャックされた関数の 1 つはCPwdPolicyManager::ValidatePwdForLogin
、特定の SQL ユーザーのパスワードを検証する です。
おそらく、これがどこへ向かうのかはお分かりいただけるでしょう。
ユーザーが「マジックパスワード」を入力すると、元の関数は呼び出されず、ユーザーは接続されます。さらに悪いことに、フックされた他の関数がイベントログと監査を抑止するためにグローバルフラグが設定されます。
これはちょっとひどいことで、SQL アカウントのユーザー名を知っていれば、管理者がパスワードをどれだけ強力だと思っていても接続できることを意味します。
もちろん、この方法は Windows 認証には機能せず、また、無効なアカウントにも機能しないと Tartare 氏は語っています。
良いニュースもあります。この手法に必要なコードをサーバー上で実際に実行するために必要な権限レベルに加えて、検出も非常に簡単です (SQL Server で痕跡を隠すためにこれほど手間をかけるものの場合)。
フックのインストール試行の成功は、 にハードコードされたログファイルにクリアテキストで書き込まれますC:\Windows\Temp\TS_2CE1.tmp\
。
これは攻撃者側のちょっとした見落としのように思えます。タルタール氏もこれに同意し、攻撃者がログファイルを残していたのは「かなり意外」だと述べつつも、「マルウェアにデバッグ情報が含まれているのはよくあることです。結局のところ、彼らは開発者ですから…」と付け加えました。
私たちは、その怠け者たちに、ひとつかふたつの代わりの名前を思いつくことができるだろう。
Tartare氏によると、このエクスプロイトは他のバージョンのSQL Serverでも試されたが、成功しなかったとのことです。また、もし(ログファイルやウイルス対策アプリケーションで)インジェクションコードが検出されたとしても、削除後に再起動すればバックドアが削除されると付け加えました。
最近の SSH バックドア (PDF) とは異なり、skip-2.0 は実行前に .exe を変更する必要がなく、メモリ内にインストールされます。
総じて言えば、これは巧妙でステルス性の高いパスワードバイパスのバックドアです。しかし、実際にインストールするには管理者権限が必要であり、攻撃者は有効なSQLユーザー名を知っている必要があります。そのため、被害者は様々なセキュリティ上の問題に直面することになります。
マイクロソフトにこのバイパスについて見解を尋ねたところ、ある報道官は次のように回答しました。「この手法は、既に侵入を受けたSQLサーバーにのみ有効です。お客様には、システムに最新のセキュリティ更新プログラムがインストールされていることを確認し、強力なパスワードを使用し、必要な場合にのみMSSQLサーバーをインターネットに公開することをお勧めします。」®