マルウェア
クラウドの認証情報を窃取する不正なシェルスクリプトの事例を解説
トレンドマイクロは、シェルスクリプトを使用して不正な活動を行う攻撃を再び確認しました。過去の攻撃では、そのような不正なシェルスクリプトの多くはコインマイナーを展開するために使用されていました。しかし、新しいサンプルを利用した最近の事例では、シェルスクリプトがコインマイナーのダウンローダとしてではなく別の目的を果たしており、どのように開発されているかを明確にしています。トレンドマイクロではこの最新の攻撃はハッキング集団「TeamTNT」によるものと推測しています。
トレンドマイクロは、シェルスクリプトを使用して不正な活動を行う攻撃を再び確認しました。これらのシェルスクリプトは、公開されているコンテナリポジトリ上のランダムなイメージとして作成されていました。このようなシェルスクリプトにはバックドアなどの不正要素が含まれている可能性があるため、実行することによるセキュリティ上のリスクがあることを認識する必要があります。過去の攻撃では、そのような不正なシェルスクリプトの多くはコインマイナーを展開するために使用されていました。しかし、新しいサンプルを利用した最近の事例では、シェルスクリプトがコインマイナーのダウンローダとしてではなく別の目的を果たしており、どのように開発されているかを明確にしています。トレンドマイクロでは今回の調査により判明したコマンド&コントロール(C&C)サーバのURL、文字列、暗号鍵、サンプルで使用されている言語などの特徴から、この最新の攻撃はハッキング集団「TeamTNT」によるものと推測しています。
今回確認された不正なシェルスクリプトはBashで開発されています。過去の同種の攻撃と比較すると今回のスクリプトの開発手法は非常に洗練されており、サンプルは長々と続くコードでなく、機能ごとに分類され巧妙に書かれていました。シェルスクリプトが呼び出す最初の機能は、次の段階で必要なリソース、ツール、計算能力などを確保するための環境を準備します。また、セキュリティソリューションが存在するかどうかも確認します。
また、シェルスクリプトは、後で他のターゲットを調査するために使用されるグレーウェアツールをダウンロードします。これらのツールはネットワークのスキャンとマッピングを行い、新しく脆弱なコンテナAPIを検索しマッピングするために使用されます。環境を設定した後、シェルスクリプトは機密情報について検索し、そのコピーを取得してC&Cサーバに全てアップロードします。
興味深い部分として、このシェルスクリプトはDocker APIの認証情報も窃取します。
認証情報を窃取してからコインマイナーを展開するまでの間に、シェルスクリプトは、base64でエンコードされた別のサンプルをドロップします。これは、システムにユーザを作成しsudo権限とSSH-RSA鍵を持たせ、感染コンピュータに接続してアクセスを維持できるようにするためのものです。
これらの段階を経てからコインマイナーがダウンロードされ、ステルス化を目的とした名前とPATHの下に展開され、実行されます。
新しい攻撃に最近追加された最後のステップは、以前のブログ記事で説明されているように、リバースシェルを展開することです。
これまでのところ、確認されている攻撃はコンテナプラットフォームを狙ったものだけです。不正なスクリプトを格納しているコンテナイメージは最近作成されており、ユーザとイメージが削除される直前のダウンロード数は2,000に達していました。
確認された攻撃のサンプルには、これまでのTeamTNTの攻撃では見られなかった2つの新しいルーチンが装備されていることも判明しました。これまでに確認されたサンプルのルーチンは、コンピュータ上の認証情報のファイルをアップロードする前にチェックするだけでした。新しいサンプルに攻撃者が追加した最初のルーチンは、AWSメタデータサービスを要求し、そこから認証情報を取得しようとします。これは、バックドアが設置されているDockerイメージを実行していて攻撃者がインスタンスでスクリプトを実行できるからであり、インスタンスメタデータサービス(IMDS)にアクセスするための特別な技術は使われていません。デフォルトではインスタンスにロールは割り当てられておらず、これらの認証情報にはユーザが付与した権限のみが適用されます。このことから、インスタンスにロールを割り当てて権限を付与する場合は、最小特権の原則に従うべきと言えます。
もう1つの追加されたルーチンは、AWSの認証情報を探すために環境変数をチェックし、存在した場合はC&Cサーバにアップロードするというものです。
攻撃は不正なコンテナイメージから発生していましたが、不正なシェルスクリプトは感染させる場所を選ばず、あらゆるLinuxおよびUnix系のオペレーティングシステム(OS)を感染させ、マルウェアがインスタンススコープで実行するために必要なメタデータ情報を取得します。
■まとめ
本件は、Docker Hubなどのコンテナレジストリサービスから公開されたコンテナイメージをプル(ダウンロード)する場合、そのコンテナイメージには不正なスクリプトが混入している可能性があることを示す良い事例です。すなわち、公開されたコンテナイメージをプルする場合は常に注意を払う必要があります。
また、コインマイナーの亜種の数は急速に増加していますが、不正マイニング攻撃を展開する脅威の目的は不正マイニングだけではない、とも見受けられます。過去にトレンドマイクロで確認した類似の攻撃のいくつかは、当時複数の目的をもっておらず、単に不正マイニングを目的にコインマイナーを展開していました。攻撃者は単純で基本的なダウンローダとして機能する不正スクリプトを利用しており、標的のコンピュータでコインマイナーが実行されれば十分でした。
しかし、その手口は劇的に変化しています。現在では、不正なスクリプトが認証情報などのより機密性の高いデータを窃取するために開発されています。また、マイニングに必要なリソースを確保するために環境を整備したり、できるだけ長くマイニングを継続するためにステルス性を確保したり、ターゲットにリモート接続する必要がある場合に備えてバックドアを残しておくなど、他の機能も備えています。
現在、攻撃者はDockerの認証情報も探し出そうとしているため、API認証を実装するだけでは十分ではありません。システム管理者はAPIを公開せず、必要な人だけがアクセスできるようにするアクセス制限を設けることも必要です。
以下は、システムを保護するためのベストプラクティスです。
- デバイス(特にオフィスネットワークへのアクセスに使用されるデバイス)を継続的に監視・監査する
- 権限を付与する際は、最小特権の原則に従う
- 責任共有モデルに従う
- 定期的にパッチを適用し、システムの防御機能を最新にする
- 既定のパスワードを強力で安全なパスワードに置き換える
■トレンドマイクロの対策
「Trend Micro Hybrid Cloud Security 」として提供されるセキュリティソリューションは、クラウドネイティブシステムとその多様なレイヤーを保護するのに役立ちます。ソリューションとして提供される製品群は継続的インテグレーションおよび継続的デリバリー(CI / CD)パイプラインとアプリケーションの自動保護を提供するクラウドビルダー向けのセキュリティサービスプラットフォーム「 Trend Micro Cloud One™」を利用しています。また、セキュリティの問題をいち早く特定して解決し、DevOpsチームの問題解決速度を改善するのにも役立ちます。Trend Micro Cloud One™には、以下が含まれています。
- 「Trend Micro Cloud One™ File Storage Security」:クラウドファイル/オブジェクトストレージのためのセキュリティ
- 「Trend Micro Cloud One™ Network Security」:マルチクラウド環境のための強力なネットワークレイヤのセキュリティ
- 「Trend Micro Cloud One™ Application Security」:コンテナ、サーバレスなどに構築された最新のアプリケーションおよびAPI向けセキュリティ
- 「Trend Micro Cloud One™ Conformity」:クラウドインフラストラクチャの継続的なセキュリティ、コンプライアンス対応状況の確認および可視化
■侵入の痕跡(Indicators of Compromise 、IoCs)
侵入の痕跡(Indicators of Compromise、IoCs)は、こちらを参照してください。
参考記事:
• 「Malicious Shell Script Steals Cloud Credentials」
By: Alfredo Oliveira
翻訳:室賀 美和(Core Technology Marketing, Trend Micro™ Research)