マルウェア
Huawei Cloud上のサービスを狙う新規Linuxマルウェアの攻撃手口を解説
最近、比較的新しいクラウドサービスプロバイダ(CSP)をターゲットにして暗号資産のマイニングやクリプトジャッキング攻撃を行うLinuxマルウェアの脅威の新たな手口が確認されました。この記事では、Huawei Cloud向けアプリケーションやサービスを削除する不正コードを利用するLinux向けマルウェアの新たな手口について説明します。
最近、比較的新しいクラウドサービスプロバイダ(CSP)をターゲットにして暗号資産のマイニングやクリプトジャッキング攻撃を行うLinuxマルウェアの脅威の新たな手口が確認されました。この記事では、Huawei Cloud向けアプリケーションやサービスを削除する不正コードを利用するLinux向けマルウェアの新たな手口について説明します。この不正コードは、セキュリティ問題の検出、システムの保護、エージェントの監視を行うHuawei Cloud Linuxのエージェントプロセスである「hostguard」のサービスを無効化します。さらに不正コードには、パブリックイメージにデフォルトでインストールされているElastic Cloud Service(ECS)インスタンスのパスワードをリセットさせる「CloudResetPwdUpdateAgent」というオープンソースのプラグインエージェントも含まれています。今回確認された不正コードのシェルスクリプトがこれら2つのサービスを含んでいることから、攻撃者はHuawei Cloudの脆弱なECSインスタンスを標的にしていることが推測されます。
図1:Host-guardを無効化し、CloudResetPwdUpdateAgentプラグインエージェントを使用してECSインスタンスのパスワードをリセットする不正コード
■ 攻撃キャンペーンの進化
今回確認された攻撃キャンペーンを調査していたところ、2020年のTencentブログで取り上げられた攻撃キャンペーンの古い検体との関連性が明らかになりました。この検体は、コンテナ環境を標的としており、次の2つの動作から今回の攻撃キャンペーンとの関連性が指摘できます。1つは、ペイロードの1つがネットワークスキャナを作成し、これによりコンテナAPIとして使われるポートを備えた他のホストをマッピングする動作でした。もう1つは、これらのコンテナAPIのポートを開くためのファイアウォールルール作成という動作でした。今回確認された検体の場合、ファイアウォールのルール作成のコードが存在していたものの、コメントアウトされているため、ルール自体は作成されていませんでしたが、クラウド環境のみを標的としていたことは確認されました。
また、新たに確認された興味深い機能としては、今回確認された攻撃キャンペーンの場合、攻撃者が、感染端末上で競合の攻撃者の活動痕跡を削除した上で、自分たちの鍵に更新可能な公開鍵を探索するという動作が挙げられます。この点で、これまでに確認されてきたどの検体や攻撃キャンペーンよりも、感染端末のオペレーションシステムへの徹底したサニタイズが実行されて、過去の感染に関する兆候や不正活動を停止・削除させるセキュリティツール等を探索します。さらに感染活動後にシンプルかつ効果的にクリーンアップのコマンドを使用しています。
図2:SSH鍵のサニタイズ処理を示すコード
このタイプの検体では、多くの場合、複数の関数を順不同に宣言するという動作が確認されています。そして関数を呼び出すファイルの最後では、特定の順序に従い、初期接続のチェック、発信接続の許可、DNSサーバ公開有無のチェック(8.8.8.8および1.1.1.1)などが行われています。こうした一連の動作は、不正なURLのリクエスト時に検出を回避したり、ドメインネームシステム(DNS)セキュリティに拒否されたドメイン変換を実行させたりする際に実行されます。
そして最初の接続確認に続き、次のような各機能が呼び出され、感染端末上での活動準備が実施されます。第一の準備としては、競合の攻撃者が残した感染の痕跡をすべて削除することで、彼らによる計算資源の共有を回避します。このような動作は以前から確認されていましたが、今回の攻撃キャンペーンの場合、感染端末へのアクセス維持に際して、より徹底されていたことが確認されました。
図3:攻撃キャンペーンが検出を回避するために行う動作の具体的な順序
つまり、この攻撃キャンペーンへのさらなる解析から、今回の攻撃者は、他の競合相手のこことも熟知していた事実が明らかとなりました。競合の攻撃者たちがアクセス維持に使用していたユーザアカウントを把握していたようです。そのため、自分たちのユーザアカウントを作成する前に、まずそれら競合のユーザアカウントを削除していました。
図4:攻撃者は、感染端末内の競合するユーザアカウントをチェックして削除する
このような、不要なユーザアカウントを感染端末から削除した上で自身のユーザアカウントを複数作成するという動作は、クラウド環境を対象とした他の検体でも確認されている事象ではあります。ただし、今回の攻撃キャンペーンでの相違点は、ユーザアカウントに"system "や "logger "などの一般的で目立たない名称を使用して、自分たち用により多くのアカウントを作成していた点です。このようなユーザ名を使用することで、経験の浅いLinux管理者に対して正規ユーザと誤解させることが可能となります。
もう1つの特徴的な動作は、自分たちのユーザアカウント作成時に、特定のスクリプトによってそのユーザアカウントをsudoersリストに追加し、感染端末へ管理権限を付与するという点です。
図5:攻撃者は、検知を回避するため一般的な名称のユーザアカウントを作成してsudoersリストに追加する
また、感染端末に繰り返しログインできるようにするため、独自のssh-rsaキーも追加されます。そして、感染端末上での活動準備が完了後、同端末上のファイルへのさらなる変更を禁止するための特別権限も追加されます。これにより、不正に作成された複数のユーザアカウントの削除や変更ができなくなります。
図6:攻撃者は、感染端末上で繰り返しログインするため、自身をssh-rsaキーを追加する
この攻撃キャンペーンについてもう1つ興味深い動作は、The Onion Router(Tor)プロキシサービスをインストールする点です。これにより、マルウェアによる不正な接続が匿名化されます。
図7:この攻撃キャンペーンでは、不正な接続を匿名化するため、Torプロキシサービスをインストールして使用する
■ 攻撃キャンペーンペイロードおよびアップグレードされた機能
今回確認された攻撃キャンペーンでは、用意された特定のスクリプトを使用して、「linux64_shell」および「xlinux」というそれぞれ2つの実行形式およびリンク可能形式(ELF)のバイナリが配備されます。
図8:不正なスクリプトにより、linux64_shellおよびxlinuxという2つのELFバイナリが配備される
linux64_shell
このバイナリ自体は、パック化と難読化が施されており、このためにUltimate Packer for Executables (UPX) パッカーが使用されています。これにより、自動ツールセットのいくつかが偽装され、解析が困難となっています。
図9:バイナリ上に存在するUPXヘッダ
さらに確認すると、下図のとおり、余分なデータを含む別のバイナリがファイルに付加されていることが分かります。
図10:ファイルに追加された別のバイナリ
追加されたバイナリは、CobaltStrikeのモジュールおよび以下の機能で直接対話が可能となるようにコンパイルされたCrossC2通信ライブラリです。
- cc2_rebind_http_get_recv
- cc2_rebind_http_post_send
- cc2_rebind_post_protocol
- cc2_rebind_http_get_send
このバイナリは、正常に解凍された後、実行ファイルとして使用されますが、条件付きジャンプが多数含まれた制御フローなどによって、容易に解析できない設計となっています。
図11:難読化された(条件付き)ジャンプだらけの制御フロー
この際、このバイナリはマルウェアとして40443番ポートを介してIPアドレス「45[.]76[.]220[.]46」のC&Cサーバへ接続を試みます。そしてこの接続を通して、攻撃者にはシェルアクセスが提供されます。
xlinux
2つ目のバイナリは、kunpengフレームワークのいくつかのモジュールを実装したGoコンパイル済みのマルウェアです。このマルウェアは、脆弱性スキャナとして動作し、対象となる端末の弱点を突いて最初の不正スクリプトを展開します。
1.このバイナリは、以下の URL「103[.]209[.]103[.]16:26800/api/postip」に HTTP POST リクエストを送信することで、攻撃者へ感染端末があることを通知します。
2.そして自身を「/tmp/iptablesupdate」にコピーし、感染端末上で活動を持続させるためのスクリプトを作成します。
図12:感染端末に作成されたスクリプトによりGo バイナリを持続させる
3.そしてこのバイナリは、まず感染端末上の脆弱性や弱点を突き止めるための「セキュリティ」スキャンを実行します。脆弱性が見つかると、それを突いてペイロードを展開します。
図13: バイナリによるエクスプロイト(脆弱性利用)の一例
この場合、感染端末に対しては、以下のような脆弱性や弱点がないかのスキャンが実行されます。
- SSHの脆弱なパスワード
- Oracle Fusion Middleware の Oracle WebLogic Server 製品における脆弱性 (CVE-2020-14882)
- Redisの不正アクセスもしくは脆弱なパスワード
- PostgreSQL の不正アクセスもしくは脆弱なパスワード
- SQLServerの脆弱なパスワード
- MongoDBへの不正アクセスもしくは脆弱なパスワード
- ファイル転送プロトコル(FTP)の脆弱なパスワード
■ 結論
暗号資産のマイニングツールは、Linuxのシステムを狙う脅威の中で最も多く展開されているペイロードの1つです。近年、TeamTNTやKinsingなどの攻撃者グループが、クリプトジャッキングの攻撃キャンペーンや、感染端末のリソースの計算能力を奪う暗号資産マイニングマルウェアを展開していることも確認されています。
2020年と2021年には、これらのサイバー犯罪グループが一貫してクラウド環境を狙い、クレデンシャル情報を収集したり、Alibaba CloudやTencent Cloudに関連するクラウドセキュリティサービスを削除したりするなど、攻撃キャンペーンの中でクラウドを狙う攻撃の機能を追加する状況も確認されています。
また、クラウドサービスの設定ミスにより、暗号資産マイニングやクリプトジャッキングの攻撃を許してしまうことがあります。実際、トレンドマイクロで確認した攻撃のほとんどは、クラウド上のサービスで弱い認証情報によるAPIやSSHが使用されていたり、セキュリティが不十分な設定になっていたりしていた際に、攻撃者がこれらを悪用して、あえて脆弱性を突く手法を駆使しなくても、対象のシステムに侵入できる手口から発生していたものでした。この点からも、クラウド上のサービスのユーザは、脆弱性やマルウェアと同じように、設定ミスの対策にも十分な注意を払う必要があります。
トレンドマイクロでは、攻撃者が特定のCSPをどのように狙ったかを示すいくつかのブログや研究論文を発表しています。そして本稿では、サイバー犯罪者がHuawei Cloudのような比較的新しい他のCSPをターゲットにしている証拠について解説しました。このように、攻撃者の活動範囲がクラウドに移行してきている中、攻撃活動としてクリプトジャッキングのマルウェアを展開しているものが含まれ、セキュリティ対策としては、攻撃対象からのリソースの可用性や拡張性の確保が重視されてきています。なお、このブログ記事の公開に先立ち、「Huawei Media Team」の「Contact Us」ページに記載されているメールアドレスへ、今回の調査結果をすでに連絡しています。
■クラウドのセキュリティ対策における推奨事項
攻撃者やサイバー犯罪グループは、攻撃の効果を最大化するため、マルウェアの機能を進化させ続けています。そうした中、クラウド環境でのセキュリティを確保するためには、マルウェアスキャンや脆弱性チェックツールだけでは不十分といえます。それに加えて、本稿のようにCSPの責任モデルへの調査・研究しておくことで、クラウドサービスを公開する際に導入すべき最適なポリシーを定義する際に有用な知見を得ることができるでしょう。
■MITRE ATT&CK Tactics and Techniques
参考記事:
- 「Actors Target Huawei Cloud Using Upgraded Linux Malware」
by Alfredo Oliveira, David Fiser
翻訳:与那城 務(Core Technology Marketing, Trend Micro™ Research)