徹底解説:MOVEitゼロデイ脆弱性の詳細分析

ソフトウェアサプライチェーンを標的としたサイバー攻撃が急増しており、米国政府レベルで法改正の動きが活発化しています。企業は、拡大するリスクプロファイルを軽減し、ソフトウェア品質を迅速に向上させるために奔走しています。ファイル共有サービスに関連するゼロデイ脆弱性は今年だけで3件確認されており、その中でも最大かつ最も破壊的なものが、MOVEitの大規模なエクスプロイトです。
ランサムウェアグループ「CL0P」が主導したMOVEitのインシデントは、長らくサイバーセキュリティニュースの話題を独占しており、1,000以上の組織が影響を受けました。この数は今後も増加すると見られており、2021年のSolarWinds事件以来、最も深刻なソフトウェアサプライチェーン攻撃の一つとなっています。
この広範囲にわたる侵害の引き金となったのは、一連のSQLインジェクション脆弱性であり、MITREからは10点満点中9.8点という深刻度スコアが付けられました。SQLインジェクションは90年代後半からセキュリティ専門家を悩ませてきた問題であり、修正自体は比較的単純であるにもかかわらず、現代のソフトウェアにも依然として混入し、攻撃者に機密データへの「レッドカーペット」を提供し続けています。
MOVEitのシナリオは、多くの開発者やアプリケーションセキュリティの専門家がこれまで経験してきたものとは少し異なります。ここでは、ライブシミュレーションを通じてSQLインジェクション対策のスキルを試すことができます:
>>> MOVEitミッションをプレイする
脆弱性:SQLインジェクション
Progress Softwareのファイル転送アプリケーション「MOVEit」を悪用するために、SQLインジェクションは具体的にどのように使われたのでしょうか?
ランサムウェアグループ「CL0P」は、SQLインジェクションの脆弱性「CVE-2023-34362」を悪用し、MOVEitのデータベースへの無制限かつ不正なアクセス権を獲得しました。そこから彼らは、Webシェル「LEMURLOOT」をインストールしました。これにより、システム設定の取得、SQLデータベースの列挙、MOVEit Transferシステムからのファイル取得、さらには完全な管理者権限を持つ新規アカウントの作成など、リスクの高い重要なプロセスをいくつも実行できるようになりました。
言うまでもなく、この攻撃ベクトルは比較的単純なエラーの結果である可能性があります。不適切なコーディングパターンを使い続けていることが原因と言えますが、企業レベルで継続的な問題を引き起こす潜在的なリスクは計り知れません。
MOVEitのエクスプロイトと同様に、悪意のあるSQLを注入・実行する手法をシミュレートした、こちらのSQLインジェクション解説をご覧ください:
このクエリ文字列と変数:
string emailAddress = "contact@scw.com";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";
は、以下のクエリになります:
var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'";
…そして、悪意を持って作成された入力値を使用すると:
string emailAddress = "contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";
結果は以下のようになります:
var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--'";
これが実行されるとどうなるでしょうか?


文字列連結によって、入力内容がSQL構文として解釈されている点に注目してください。まず、シングルクォートが追加されることで、SELECT文が有効なSQL構文として成立します。次に、セミコロンが追加され、最初のステートメントが終了します。
これが挿入されると、有効なDELETE文が追加され、その後に続く文字(シングルクォート)をコメントアウトするためにハイフン2つが置かれます。悪意のあるSQLによってユーザーの権限やパスワードが更新される場合など、UPDATE文も同様に簡単に追加できてしまいます。
こちらのプレイ可能なミッションで、実際に試してみてください:
SQLインジェクションは比較的単純な攻撃ですが、依然として強力な攻撃ベクトルであり、非常に頻繁に発生しています。MOVEitのケースでは、この脆弱性が悪用されてバックドアが設置され、その後も同様に深刻な攻撃が繰り返される事態となりました。
SQLインジェクションのリスクを軽減するには?
MOVEitを業務で利用している企業は、Progress Softwareが推奨する修正アドバイスに従うことが不可欠です。これには、緊急レベルの優先度でセキュリティパッチを適用することなどが含まれます。
SQLインジェクション全般については、当社の包括的ガイドをご覧ください。
セキュアなコードの書き方やリスク軽減についてさらに学びたい方は、無料のSQLインジェクション・チャレンジをお試しください。
コーディングに関する無料のガイドラインをさらに知りたい場合は、Secure Code Coachをチェックして、セキュアコーディングのベストプラクティスを習得しましょう。
AI主導の開発をリリース前にガバナンスする
AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。
他のブログ記事を見る
セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
AIを活用した開発をリリース前にセキュアに
開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。



.avif)