環境をスキャンして Curl の脆弱なバージョンを検出する方法

環境をスキャンして Curl の脆弱なバージョンを検出する方法

Curl PlatoBlockchain Data Intelligence の脆弱なバージョンについて環境をスキャンする方法。垂直検索。あい。

セキュリティ チームは、問題に対処するために危機モードに陥る必要はありません。 コマンドライン ツールのcurlとlibcurlライブラリの脆弱性が最近修正されました, しかし、影響を受けたシステムの特定と修復について心配する必要がないという意味ではありません。 システムがすぐに悪用可能でない場合でも、セキュリティ チームにはそれらの更新を行う時間があります。

この技術ヒントでは、セキュリティ チームがリスクにさらされないようにするために何をする必要があるかについてのガイダンスをまとめています。

Unix および Linux システムの基本的なネットワーク ツールである cURL は、データを転送するためにコマンド ラインとスクリプトで使用されます。 その普及の理由は、スタンドアロン ユーティリティ (curl) と、さまざまな種類のアプリケーションに含まれるライブラリ (libcurl) の両方として使用されるという事実によるものです。 libcurl ライブラリは、開発者が独自のコードから Curl API にアクセスできるようにするもので、コードに直接導入したり、依存関係として使用したり、オペレーティング システム バンドルの一部として使用したり、Docker コンテナの一部として含めたり、 Kubernetes クラスター ノード。

CVE-2023-38545 とは何ですか?

重大度の高い脆弱性 curl と libcurl に影響します バージョン 7.69.0 ~ 8.3.0 に影響し、重大度の低い脆弱性は libcurl バージョン 7.9.1 ~ 8.3.0 に影響します。 ただし、デフォルトの状態ではこの脆弱性を悪用することはできません。 この脆弱性を引き起こそうとする攻撃者は、curl を攻撃者の制御下にある悪意のあるサーバーに向け、curl がプロキシ リゾルバー モードを使用して SOCKS5 プロキシを使用していることを確認し、自動的にリダイレクトに従うようにcurl を設定し、バッファ サイズをより小さい値に設定する必要があります。サイズ。

による ヤイル・ミズラヒJFrog の上級セキュリティ研究者、libcurl ライブラリには脆弱性がある 次の環境変数が設定されている場合: CURLOPT_PROXYTYPE  タイプに設定 CURLPROXY_SOCKS5_HOSTNAME、または CURLOPT_PROXY or CURLOPT_PRE_PROXY  スキームに設定 靴下5h://。 プロキシ環境変数の XNUMX つが 靴下5h:// スキーム。 コマンドライン ツールは、次のコマンドを使用して実行された場合にのみ脆弱です。 -socks5-ホスト名 フラグ、または -プロキシ (-x) または –プレプロキシ スキームを使用するように設定する 靴下5h://。 影響を受ける環境変数を使用してcurlが実行された場合にも脆弱です。

「マシンが脆弱になるために必要な一連の前提条件 (前のセクションを参照) は、当初考えられていたよりも制限的です。 したがって、curl ユーザーの大部分はこの脆弱性の影響を受けないと考えています」と Mizrahi 氏は分析の中で述べています。

環境をスキャンして脆弱なシステムを探す

組織が最初に行う必要があるのは、curl と libcurl を使用して環境をスコープし、すべてのシステムを特定し、それらの前提条件が存在するかどうかを評価することです。 組織はシステムのインベントリを作成し、コードのソフトウェア構成分析ツール、コンテナのスキャン、アプリケーションのセキュリティ体制管理ユーティリティを使用してソフトウェア配信プロセスを評価する必要があると、Cycode のセキュリティ研究責任者である Alex Ilgayev 氏は述べています。 この脆弱性は、curl のすべての実装に影響を与えるわけではありませんが、チームが調査対象となる可能性のある場所のリストから始めると、影響を受けるシステムを特定しやすくなります。

次のコマンドは、インストールされているカールのバージョンを識別します。

Linux/MacOS:

find / -namecurl 2>/dev/null -exec echo "見つかった: {}" ; -exec {} --バージョン ;

Windows:

Get-ChildItem -Path C: -Recurse -ErrorAction SilentlyContinue -Filtercurl.exe | ForEach-Object { Write-Host "見つかりました: $($_.FullName)"; & $_.FullName --version }

GitHub には、 Defender for Endpoint で実行するクエリ 環境内で、curl がインストールされているか、curl を使用しているすべてのデバイスを識別します。 Qualys がルールを公開しました そのプラットフォームを使用するため。

Docker コンテナまたはその他のコンテナ テクノロジを使用している組織は、イメージをスキャンして脆弱なバージョンがないか確認する必要もあります。 特に liburl コピーを組み込んだ Docker イメージや同様のエンティティでは、かなりの数の再構築が予想されます。 Docker が結集しました 指示のリスト すべての画像の評価について。

既存のリポジトリを見つけるには:

docker スカウト リポジトリを有効にする --org /スカウトデモ

ローカルコンテナイメージを分析するには:

docker スカウト ポリシー [イメージ] --org [ORG]

Endor Labs のセキュリティ研究者である Henrik Plate 氏によると、この問題は、組織内で使用されているすべてのオープンソース ソフトウェアを注意深く追跡することの重要性を浮き彫りにしています。

「curl と libcurl のすべての使用法を知っていることは、実際のリスクを評価し、curl へのパッチ適用、信頼できないネットワークから影響を受けるシステムへのアクセスの制限、その他の対策の実装などの修復措置を講じるための前提条件です」と Plate 氏は述べています。

Viakoo Labs の副社長である John Gallagher 氏は、アプリケーションにソフトウェア部品表が付属している場合は、そこからカールのインスタンスを探すのが良いと付け加えます。

欠陥が悪用できないからといって、アップデートが必要ないというわけではありません。 パッチが利用可能です Curl と libcurl に直接、多くのオペレーティング システム (Debian、Ubuntu、Red Hat など) も修正バージョンをプッシュしました。 libcurl は多くのオペレーティング システムやアプリケーションで使用されるライブラリであるため、他のアプリケーションからのセキュリティ更新プログラムに注意してください。

JFrogのMizrahi氏によると、アップデートが展開できるようになるまでの回避策の5つは、SOCKS5プロキシに接続するときにcurlにローカルのホスト名解決を強制的に使用させることだという。 この構文は、socks5h ではなく、socksXNUMX スキームを使用します。 カール -x 靴下5://someproxy.com。 ライブラリで環境変数を置き換えます CURLPROXY_SOCKS5_HOSTNAME   CURLPROXY_SOCKS5.

のセキュリティエンジニアであるベンジャミン・マー氏によると、 侵入者セキュリティ チームは、過度に大きな文字列がないかどうかをカール フラグで監視する必要があります。これは、システムが侵害されたことを示すためです。 フラグは –socks5-ホスト名または -プロキシ or –プレプロキシ スキームを使用するように設定する 靴下5h://.

タイムスタンプ:

より多くの 暗い読書