NAPLISTENER

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

NAPLISTENERは名前の示す通りリスナーです。
HTTPをlistenします。
要はWebサーバのような動きをするものということになります。
どんな動きをするのでしょう。

  • 実装はC#
    マルウェアの本体はC#で実装された実行ファイルです。
    つまり配布時のファイル拡張子はexeとなります。
  • なりすまし
    感染するとWindows機器のサービスとして展開された状態になります。
    見た目としてはMicrosoft分散トランザクションコーディネーターサービスになりすましています。
    本来このサービスはいくつものサーバ機器にまたがってトランザクション処理を実施できる機能となっていますので、いわゆるクライアント機器においては利用されることのない機能です。
    しかし感染対象機器がサーバの場合動いていても不思議はありません。
    そういうサービスの実行ファイルと同じ名前で動作します。
  • Webサーバの前処理
    通常はWebサーバ向けにやってくる通信はWebサーバのプロセスが受け取って処理します。
    しかしこのHTTPリスナーが一緒に動作している場合、この流れに割り込みます。
    クライアントから送られてくる通信の内容を確認し、それが通常のHTTPサーバ向けの内容の場合何も実行することなく透過させます。
    しかしその送られてくる内容がマルウェアのコマンドである場合にはこれを抜き取り後続処理となる本来のWebサーバの方でエラーが発生することがないようにします。
    そして抜き取ったマルウェアコマンドはファイル化されることなくインメモリで実行されます。

WebサーバのようでWebサーバでない、といえそうです。
Webサーバを使って何かの活動を行うと通常はその行為はログに記録されます。
しかしこの方法の場合、通常のWebサーバの機能が通信を処理する前にマルウェアに関連する部分は抜き取られてしまっていますので、通常のWebサーバのログにはマルウェア関連の活動は何ら記録されません。

記録されたログを解釈して問題の発見を行うタイプのセキュリティ機構での検出は難しいように思われます。
またマルウェアコマンドの内容はBase64で符号化されていますので通信内容を読み取って検査するタイプのセキュリティ機構での検出も簡単ではなさそうです。

このマルウェアはGitHubで公開されているコードを基に作成されたと考えられます。
概念実証コードの公開の是非はしばしば議論のポイントとなるものですが、この例はコード公開の危険増加側の影響のひとつの事例といえそうです。

参考記事(外部リンク):NAPLISTENER: more bad dreams from developers of
SIESTAGRAPH

www.elastic.co/jp/security-labs/naplistener-more-bad-dreams-from-the-developers-of-siestagraph