ブログ

ディープダイブMOVEitのゼロデイ脆弱性に迫る

ローラ・ベルヘイデ
2023年9月30日発行

ソフトウェア・サプライチェーンのサイバー攻撃はますます一般的になりつつあり、米国政府レベルでは法改正が相次ぐ一方、企業は拡大するリスクプロファイルを軽減し、ソフトウェア品質を迅速に向上させようと躍起になっている。ファイル共有サービスに関連するゼロデイ脆弱性は、今年だけでも3件発生しており、中でも最大かつ最も破壊的なものは、MOVEitの大量エクスプロイトである。

CL0Pランサムウェア・グループによって先導されたMOVEit事件は、しばらくの間サイバーセキュリティ・ニュースを席巻し、1,000以上の組織が影響を受けた。この数は増え続けており、2021年のSolarwinds以来、最も強力なソフトウェア・サプライチェーン攻撃の1つとなっている。

この広範な侵害のきっかけとなったのは、SQLインジェクションの脆弱性群で、最終的にMITREの深刻度スコアは10点満点中9.8点となった。SQLインジェクションは、90年代後半からセキュリティ専門家の悩みの種であり、かなり簡単な修正にもかかわらず、最新のソフトウェアに入り込み、脅威行為者に機密データへのレッドカーペットを提供し続けている。 



MOVEitのシナリオは、多くの開発者やAppSecの専門家が以前に経験したものとは少し異なっており、ライブシミュレーションでSQLi退治のスキルを試すことができます。

脆弱性SQLインジェクション

SQLインジェクションは、Progress SoftwareのMOVEitファイル転送アプリケーションを悪用するために、具体的にどのように使われたのか?

CL0Pランサムウェアグループは、SQLインジェクションの脆弱性CVE-2023-34362を悪用し、MOVEitのデータベースに無制限かつ不正にアクセスすることができました。そこから、彼らはLEMURLOOTをインストールすることができました。LEMURLOOTは、最終的に、システム設定の検索、SQLデータベースの列挙、MOVEit Transferシステムからのファイル検索、完全な管理権限を持つ新しいアカウントの作成など、いくつかの高リスクで重要なプロセスを実行できるようにするWebシェルです。

言うまでもないが、この攻撃ベクトルは比較的単純なエラーの結果であり、お粗末なコーディング・パターンを使い続けた結果とも言えるが、企業レベルで継続的な問題を引き起こす可能性は計り知れない。 

MOVEitエクスプロイトと同様に、悪意のあるSQLを注入して実行する方法をシミュレートしたSQLiの説明を見てみよう:
‍。

このクエリー文字列と変数:
↪CF_200D↩。

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'";
㊤Cf_200D

... そして、悪意のある細工を施した入力の場合:
‍。

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文も同様に簡単に追加できます。


‍ このプレイアブル・ミッションで実際に試してみてください。

>> PLAY THE MOVEit MISSION
↪Cf_200D

SQLiは比較的簡単ではあるが、依然として強力な攻撃ベクトルであり、あまりにも一般的なものである。MOVEitの場合、この悪用によって有害なバックドアがインストールされ、さらに同じような深刻度の攻撃グループが発生した。

SQLインジェクションのリスクを軽減するには?

MOVEit を業務の一部として利用している企業は、Progress Software が推奨する修復アドバイスに従うことが不可欠です。これには、緊急レベルの優先事項としてセキュリティパッチを適用することが含まれますが、これに限定されません。

SQL インジェクション全般については、包括的なガイドをご覧ください。

安全なコードを書いてリスクを軽減する方法についてもっと知りたいですか?当社のSQLインジェクション・チャレンジを無料でお試しください。

さらに無料のコーディング・ガイドラインにご興味があれば、セキュアコーディングのベストプラクティスを常に把握するのに役立つSecure Code Coachをご覧ください。

リソースを見る
リソースを見る

MOVEitのシナリオは、多くの開発者やAppSecの専門家が以前に経験したものとは少し異なっており、ライブ・シミュレーションでSQLi退治のスキルを試すことができます。

ご興味がおありですか?

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。

デモを予約する
シェアする
著者
ローラ・ベルヘイデ
2023年9月30日発行

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

シェアする

ソフトウェア・サプライチェーンのサイバー攻撃はますます一般的になりつつあり、米国政府レベルでは法改正が相次ぐ一方、企業は拡大するリスクプロファイルを軽減し、ソフトウェア品質を迅速に向上させようと躍起になっている。ファイル共有サービスに関連するゼロデイ脆弱性は、今年だけでも3件発生しており、中でも最大かつ最も破壊的なものは、MOVEitの大量エクスプロイトである。

CL0Pランサムウェア・グループによって先導されたMOVEit事件は、しばらくの間サイバーセキュリティ・ニュースを席巻し、1,000以上の組織が影響を受けた。この数は増え続けており、2021年のSolarwinds以来、最も強力なソフトウェア・サプライチェーン攻撃の1つとなっている。

この広範な侵害のきっかけとなったのは、SQLインジェクションの脆弱性群で、最終的にMITREの深刻度スコアは10点満点中9.8点となった。SQLインジェクションは、90年代後半からセキュリティ専門家の悩みの種であり、かなり簡単な修正にもかかわらず、最新のソフトウェアに入り込み、脅威行為者に機密データへのレッドカーペットを提供し続けている。 



MOVEitのシナリオは、多くの開発者やAppSecの専門家が以前に経験したものとは少し異なっており、ライブシミュレーションでSQLi退治のスキルを試すことができます。

脆弱性SQLインジェクション

SQLインジェクションは、Progress SoftwareのMOVEitファイル転送アプリケーションを悪用するために、具体的にどのように使われたのか?

CL0Pランサムウェアグループは、SQLインジェクションの脆弱性CVE-2023-34362を悪用し、MOVEitのデータベースに無制限かつ不正にアクセスすることができました。そこから、彼らはLEMURLOOTをインストールすることができました。LEMURLOOTは、最終的に、システム設定の検索、SQLデータベースの列挙、MOVEit Transferシステムからのファイル検索、完全な管理権限を持つ新しいアカウントの作成など、いくつかの高リスクで重要なプロセスを実行できるようにするWebシェルです。

言うまでもないが、この攻撃ベクトルは比較的単純なエラーの結果であり、お粗末なコーディング・パターンを使い続けた結果とも言えるが、企業レベルで継続的な問題を引き起こす可能性は計り知れない。 

MOVEitエクスプロイトと同様に、悪意のあるSQLを注入して実行する方法をシミュレートしたSQLiの説明を見てみよう:
‍。

このクエリー文字列と変数:
↪CF_200D↩。

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'";
㊤Cf_200D

... そして、悪意のある細工を施した入力の場合:
‍。

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文も同様に簡単に追加できます。


‍ このプレイアブル・ミッションで実際に試してみてください。

>> PLAY THE MOVEit MISSION
↪Cf_200D

SQLiは比較的簡単ではあるが、依然として強力な攻撃ベクトルであり、あまりにも一般的なものである。MOVEitの場合、この悪用によって有害なバックドアがインストールされ、さらに同じような深刻度の攻撃グループが発生した。

SQLインジェクションのリスクを軽減するには?

MOVEit を業務の一部として利用している企業は、Progress Software が推奨する修復アドバイスに従うことが不可欠です。これには、緊急レベルの優先事項としてセキュリティパッチを適用することが含まれますが、これに限定されません。

SQL インジェクション全般については、包括的なガイドをご覧ください。

安全なコードを書いてリスクを軽減する方法についてもっと知りたいですか?当社のSQLインジェクション・チャレンジを無料でお試しください。

さらに無料のコーディング・ガイドラインにご興味があれば、セキュアコーディングのベストプラクティスを常に把握するのに役立つSecure Code Coachをご覧ください。

リソースを見る
リソースを見る

以下のフォームに記入し、レポートをダウンロードしてください。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。

ソフトウェア・サプライチェーンのサイバー攻撃はますます一般的になりつつあり、米国政府レベルでは法改正が相次ぐ一方、企業は拡大するリスクプロファイルを軽減し、ソフトウェア品質を迅速に向上させようと躍起になっている。ファイル共有サービスに関連するゼロデイ脆弱性は、今年だけでも3件発生しており、中でも最大かつ最も破壊的なものは、MOVEitの大量エクスプロイトである。

CL0Pランサムウェア・グループによって先導されたMOVEit事件は、しばらくの間サイバーセキュリティ・ニュースを席巻し、1,000以上の組織が影響を受けた。この数は増え続けており、2021年のSolarwinds以来、最も強力なソフトウェア・サプライチェーン攻撃の1つとなっている。

この広範な侵害のきっかけとなったのは、SQLインジェクションの脆弱性群で、最終的にMITREの深刻度スコアは10点満点中9.8点となった。SQLインジェクションは、90年代後半からセキュリティ専門家の悩みの種であり、かなり簡単な修正にもかかわらず、最新のソフトウェアに入り込み、脅威行為者に機密データへのレッドカーペットを提供し続けている。 



MOVEitのシナリオは、多くの開発者やAppSecの専門家が以前に経験したものとは少し異なっており、ライブシミュレーションでSQLi退治のスキルを試すことができます。

脆弱性SQLインジェクション

SQLインジェクションは、Progress SoftwareのMOVEitファイル転送アプリケーションを悪用するために、具体的にどのように使われたのか?

CL0Pランサムウェアグループは、SQLインジェクションの脆弱性CVE-2023-34362を悪用し、MOVEitのデータベースに無制限かつ不正にアクセスすることができました。そこから、彼らはLEMURLOOTをインストールすることができました。LEMURLOOTは、最終的に、システム設定の検索、SQLデータベースの列挙、MOVEit Transferシステムからのファイル検索、完全な管理権限を持つ新しいアカウントの作成など、いくつかの高リスクで重要なプロセスを実行できるようにするWebシェルです。

言うまでもないが、この攻撃ベクトルは比較的単純なエラーの結果であり、お粗末なコーディング・パターンを使い続けた結果とも言えるが、企業レベルで継続的な問題を引き起こす可能性は計り知れない。 

MOVEitエクスプロイトと同様に、悪意のあるSQLを注入して実行する方法をシミュレートしたSQLiの説明を見てみよう:
‍。

このクエリー文字列と変数:
↪CF_200D↩。

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'";
㊤Cf_200D

... そして、悪意のある細工を施した入力の場合:
‍。

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文も同様に簡単に追加できます。


‍ このプレイアブル・ミッションで実際に試してみてください。

>> PLAY THE MOVEit MISSION
↪Cf_200D

SQLiは比較的簡単ではあるが、依然として強力な攻撃ベクトルであり、あまりにも一般的なものである。MOVEitの場合、この悪用によって有害なバックドアがインストールされ、さらに同じような深刻度の攻撃グループが発生した。

SQLインジェクションのリスクを軽減するには?

MOVEit を業務の一部として利用している企業は、Progress Software が推奨する修復アドバイスに従うことが不可欠です。これには、緊急レベルの優先事項としてセキュリティパッチを適用することが含まれますが、これに限定されません。

SQL インジェクション全般については、包括的なガイドをご覧ください。

安全なコードを書いてリスクを軽減する方法についてもっと知りたいですか?当社のSQLインジェクション・チャレンジを無料でお試しください。

さらに無料のコーディング・ガイドラインにご興味があれば、セキュアコーディングのベストプラクティスを常に把握するのに役立つSecure Code Coachをご覧ください。

リソースにアクセス

以下のリンクをクリックし、この資料のPDFをダウンロードしてください。

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。

レポートを見るデモを予約する
PDFをダウンロード
リソースを見る
シェアする
ご興味がおありですか?

シェアする
著者
ローラ・ベルヘイデ
2023年9月30日発行

Laura Verheyde はSecure Code Warrior のソフトウェア開発者で、脆弱性のリサーチとMissions および Coding labs のコンテンツ作成に注力している。

シェアする

ソフトウェア・サプライチェーンのサイバー攻撃はますます一般的になりつつあり、米国政府レベルでは法改正が相次ぐ一方、企業は拡大するリスクプロファイルを軽減し、ソフトウェア品質を迅速に向上させようと躍起になっている。ファイル共有サービスに関連するゼロデイ脆弱性は、今年だけでも3件発生しており、中でも最大かつ最も破壊的なものは、MOVEitの大量エクスプロイトである。

CL0Pランサムウェア・グループによって先導されたMOVEit事件は、しばらくの間サイバーセキュリティ・ニュースを席巻し、1,000以上の組織が影響を受けた。この数は増え続けており、2021年のSolarwinds以来、最も強力なソフトウェア・サプライチェーン攻撃の1つとなっている。

この広範な侵害のきっかけとなったのは、SQLインジェクションの脆弱性群で、最終的にMITREの深刻度スコアは10点満点中9.8点となった。SQLインジェクションは、90年代後半からセキュリティ専門家の悩みの種であり、かなり簡単な修正にもかかわらず、最新のソフトウェアに入り込み、脅威行為者に機密データへのレッドカーペットを提供し続けている。 



MOVEitのシナリオは、多くの開発者やAppSecの専門家が以前に経験したものとは少し異なっており、ライブシミュレーションでSQLi退治のスキルを試すことができます。

脆弱性SQLインジェクション

SQLインジェクションは、Progress SoftwareのMOVEitファイル転送アプリケーションを悪用するために、具体的にどのように使われたのか?

CL0Pランサムウェアグループは、SQLインジェクションの脆弱性CVE-2023-34362を悪用し、MOVEitのデータベースに無制限かつ不正にアクセスすることができました。そこから、彼らはLEMURLOOTをインストールすることができました。LEMURLOOTは、最終的に、システム設定の検索、SQLデータベースの列挙、MOVEit Transferシステムからのファイル検索、完全な管理権限を持つ新しいアカウントの作成など、いくつかの高リスクで重要なプロセスを実行できるようにするWebシェルです。

言うまでもないが、この攻撃ベクトルは比較的単純なエラーの結果であり、お粗末なコーディング・パターンを使い続けた結果とも言えるが、企業レベルで継続的な問題を引き起こす可能性は計り知れない。 

MOVEitエクスプロイトと同様に、悪意のあるSQLを注入して実行する方法をシミュレートしたSQLiの説明を見てみよう:
‍。

このクエリー文字列と変数:
↪CF_200D↩。

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'";
㊤Cf_200D

... そして、悪意のある細工を施した入力の場合:
‍。

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文も同様に簡単に追加できます。


‍ このプレイアブル・ミッションで実際に試してみてください。

>> PLAY THE MOVEit MISSION
↪Cf_200D

SQLiは比較的簡単ではあるが、依然として強力な攻撃ベクトルであり、あまりにも一般的なものである。MOVEitの場合、この悪用によって有害なバックドアがインストールされ、さらに同じような深刻度の攻撃グループが発生した。

SQLインジェクションのリスクを軽減するには?

MOVEit を業務の一部として利用している企業は、Progress Software が推奨する修復アドバイスに従うことが不可欠です。これには、緊急レベルの優先事項としてセキュリティパッチを適用することが含まれますが、これに限定されません。

SQL インジェクション全般については、包括的なガイドをご覧ください。

安全なコードを書いてリスクを軽減する方法についてもっと知りたいですか?当社のSQLインジェクション・チャレンジを無料でお試しください。

さらに無料のコーディング・ガイドラインにご興味があれば、セキュアコーディングのベストプラクティスを常に把握するのに役立つSecure Code Coachをご覧ください。

目次

PDFをダウンロード
リソースを見る
ご興味がおありですか?

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。

デモを予約するダウンロード
シェアする
リソース・ハブ

始めるためのリソース

その他の記事
リソース・ハブ

始めるためのリソース

その他の記事