
ネットワークとソフトウェアサプライチェーンにおけるメモリ攻撃を調査したAqua Securityの2023年クラウドネイティブ脅威レポートによると、脅威アクターは、検出を回避し、システム内で気付かれずに残るエクスプロイトに焦点を絞っている。
クラウドネイティブセキュリティ企業の調査部門であるNautilusは、2022年の調査で報告した数値と比較して、メモリ攻撃が1,400%増加したと報告しました。Aqua Securityによると、Nautilusは6ヶ月間の調査期間中に、世界中のハニーポットネットワーク上で70万件の攻撃を分析しました。
Nautilusチームは、攻撃の50%以上が防御回避を狙っており、一時ファイルの保存場所である/tmpからファイルを実行するなどの偽装手法が用いられていると報告しました。また、コードの動的ロードなど、難読化されたファイルや情報も利用されていました。動的ロードは、実行時に悪意のあるライブラリをメモリにロードし、疑わしいデジタル痕跡を残さない仕組みです。
Aqua Nautilusの主任脅威インテリジェンス研究者であるアサフ・モラグ氏は、1,200台以上のサーバーに侵入したRedisベースのマルウェア「HeadCrab」を同グループが発見したことで、エージェントレスソリューション(システムをリモートで監視、パッチ適用、スキャンするソリューション)をメモリ攻撃がいかに回避しているかが明らかになったと述べています。エージェントレスソリューションは、エージェントベースのシステムとは異なり、クライアントマシンにインストールされないためだとモラグ氏は説明します。
「ランタイムセキュリティに関しては、ボリュームベースのスキャン技術を回避するように設計されたこのような攻撃を検出できるのはエージェントベースのスキャンだけであり、回避技術が進化し続ける中で、エージェントベースのスキャンは非常に重要です」と彼は述べた。
ジャンプ先:
- メモリ攻撃とは何ですか?
- クラウドソフトウェアのサプライチェーンの脆弱性が発覚
- ランタイム保護は重要
メモリ攻撃とは何ですか?
メモリ攻撃(別名:living-off-the-land攻撃、ファイルレス攻撃)は、標的のシステム内に存在するソフトウェア、アプリ、プロトコルを悪用して悪意のある活動を実行します。パロアルトネットワークス Unit 42の脅威インテリジェンス担当副ディレクター、ジェン・オズボーン氏によると、メモリ攻撃はデジタルの痕跡を残さないため、追跡が困難です。
- メモリ攻撃では、攻撃者がシステムにコードやスクリプトを配置する必要はありません。
- メモリ攻撃はディスクに書き込まれるのではなく、PowerShell、Windows Management Instrumentation、さらにはパスワード保存ツール Mimikatz などのツールを使用して攻撃します。
「彼らが[メモリエクスプロイトを仕掛ける]のは、多くの場合ログに残らないため、検出も後からの発見も非常に困難だからだ」とオズボーン氏は語った。
参照:パロアルトネットワークスのPrisma Cloud CTO、オリー・シーガル氏がクラウドセキュリティのコードについて語る(TechRepublic)
エンドポイント管理ソフトウェア企業Taniumのプロダクトマーケティングディレクターを務めるジョシュ・フー氏は、2018年のブログで、メモリ攻撃はRAMやROMに命令を送ったり、そこからデータを抽出したりすることを狙っていると説明しました。ディスクファイルディレクトリやレジストリキーを狙う攻撃とは異なり、メモリ攻撃はウイルス対策ソフトウェアでさえ検出が困難です。
Fu 氏は、メモリ攻撃は通常次のように動作すると指摘しました。
- まず、スクリプトまたはファイルがエンドポイントに到達します。これは、典型的なファイルの特徴ではなく、一連の命令のように見えるため、検出を回避します。
- これらの命令はマシンにロードされます。
- 実行されると、攻撃者はシステム独自のツールとリソースを使用して攻撃を実行します。
Fu 氏は、防御側は次のような方法でメモリ攻撃を防止および軽減できると述べています。
- パッチ適用を最新の状態に保ちます。
- Flash、Silverlight、または JavaScript を実行している Web サイトをブロックするか、これらを有効にするように要求しているサイトでこれらの実行をブロックします。
- ドキュメント内のマクロの使用を制限します。
- 攻撃者が Mimikatz を使用してパスワードを抽出する方法に関するこの論文を研究します。
クラウドソフトウェアのサプライチェーンの脆弱性が発覚
Aqua Nautilusのレポートでは、クラウドソフトウェアのサプライチェーンにおけるリスク(設定ミスを含む)も調査し、攻撃者がソフトウェアパッケージを悪用し、攻撃ベクトルとして利用していることを明らかにしました。例えば、攻撃者が悪意のあるパッケージを正規のコードに偽装することを可能にする「パッケージプランニング」と呼ばれる論理的な欠陥を発見しました。
さらに、研究者らは、すべての Node.js バージョンに脆弱性があり、悪意のあるコードをパッケージに埋め込むことで、権限昇格や Windows 環境でのマルウェアの永続化につながる可能性があることを報告しました。
同社は、2022年にグローバルネットワーク全体で確認された上位10の脆弱性(他の脆弱性と比較して圧倒的に多かったLog4Shellを除く)は、主にリモートコード実行機能に関連するものだったと報告した。「これは、攻撃者が最初のアクセスを狙い、リモートシステム上で悪意のあるコードを実行しようとしているという考えを裏付けています」と著者らは述べている(図A)。
図A

ランタイム環境の保護は重要
報告書によると、コードが実行されるランタイムのワークロードを悪用するメモリ攻撃は、データを盗んだり業務を妨害したりしようとする脅威アクターにとってますます人気の高いターゲットになりつつある。
著者らは、ソースコードの脆弱性と誤った構成に対処することが重要な理由として、次の点を挙げています。
- 既知の脆弱性を優先順位付けして修正するには時間がかかり、ランタイム環境が無防備な状態になる可能性があります。
- セキュリティ担当者は、サプライ チェーンの攻撃ベクトルを認識しなかったり見逃したりして、実稼働環境への直接的で制御不能なリンクを作成する可能性があります。
- 高速で複雑なマルチベンダーのクラウド環境では、重要な本番構成が見落とされてしまう可能性があります。
- ゼロデイ脆弱性が発生する可能性が高いため、運用中に悪意のあるイベントを監視するシステムを導入することが不可欠です。
調査の著者らは、既知の悪意のあるファイルやネットワーク通信をスキャンし、それらをブロックしてセキュリティチームに警告するだけでは不十分だと述べています。企業は、機密データへの不正アクセス、権限昇格中にプロセスを隠蔽する試み、未知のIPアドレスへのバックドアの開設など、悪意のある行動の兆候も監視する必要があります。