Symbioteはマルウェアです。
このマルウェアはいくつもの強力な検出回避機能を搭載しています。
- 検出回避1:すべてのバイナリファイルによるプロセスに感染する
libcという標準ライブラリに感染します。
libcはすべてのプロセスが読み込んで動作します。
もし感染したことを検出できたとしましょう。
Linux OSが動作するときにはいくつものプロセスが同時に動作した状態になるのですが、そのすべてのバイナリファイルが感染した状態になります。
すべてです。
びっくりです。 - 検出回避2:ファイルの隠蔽
readdirでの隠蔽機能を搭載しています。
readdirはなんでしょう。
名前の示す通り、これはディレクトリを読み取る機能です。
この機能はlibcのなかに実装されています。
ここに感染します。
そしてマルウェアの中には暗号化された隠蔽用リストがあります。
隠蔽用リストにあるファイルがreaddirの読み取る先のディレクトリに存在する場合、そんなファイルがあるような内容は返しません。
ディレクトリの読み取り機能を使用するプログラムは非常に多いです。
ですがlibcが侵されていますのでlibcを使用するすべてのプログラムでは隠されたファイルの存在は確認できません。
libcを使用しないバイナリプログラムはありますか?ありません。 - 検出回避3:ネットワークでの隠蔽
マルウェアはC2と通信します。
しかしその通信を感染機器上で見ることはできません。
/proc/net/tcpのクリーニング機能がありますし、BPFでフックして隠したい通信の存在を見せなくできる機能もあります。
libpcapも感染してしまっていますのでlibpcapを使ったプロセスも隠したい通信の存在をlibpcapを利用するプログラムに渡すことはありません。 - 目的1:資格情報の収集
libcのなかの関数をフックして資格情報を収集します。
収集した資格情報はエンコードしてばらばらに細かくして小さな文字列にします。
その文字列をDNSのリクエストにして外部に持ち出します。
そうです、DNSのリクエストの向かう先は脅威アクターの制御するDNSサーバです。 - 目的2:リモートアクセスの提供
リモートアクセスはPAM機能のフックで実現されます。
PAMはPluggable Authentication Moduleです。
PAMはLinuxで使用される認証機構です。
リモートアクセス接続する際に脅威アクターはシステムの実際のアカウントの認証情報を使用する必要はありません。
脅威アクターのあらかじめ決定した認証情報が侵害したシステムにやってくると侵害済みのPAM機構が脅威アクターのアクセスを許可します。 - 攻撃支援:特権昇格
リモートアクセスで内部で活動する脅威アクターにroot権限で動作するshellを提供する機能を搭載しています。
至れり尽くせりです。
ここまでくるともはや感染機器上で感染した事実を知ることはできそうにありません。
しかし、C2への通信などは感染機器から実際に行われていますから感染機器の通信を感染機器の外部で監視すれば検出できます。
個別の機器としての対策だけでなく、システム全体での対策の必要性を感じます。
参考記事(外部リンク):Symbiote: A New, Nearly-Impossible-to-Detect Linux Threat
blogs.blackberry.com/en/2022/06/symbiote-a-new-nearly-impossible-to-detect-linux-threat参考記事(外部リンク):Symbiote Deep-Dive: Analysis of a New,
Nearly-Impossible-to-Detect Linux Threat
www.intezer.com/blog/research/new-linux-threat-symbiote/
この記事をシェア |
---|