このチュートリアルでは、 UCheckerとは何かについて説明します。 LinuxオペレーティングシステムでUCheckerを使用してメモリ内の古い共有ライブラリを検出する方法。
はじめに
フリーでオープンソースのソフトウェア(FOSS)に依存しているIT組織は、パッチが適用されていない共有ライブラリの処理で常に苦労しています。共有ライブラリは広く標的とされている攻撃対象領域であるため、これは重要な問題です。たとえば、調査によると、OpenSSLは世界で最もターゲットを絞ったソフトウェアであり、世界の敵対的活動の19%を占めています。 。
OpenSSLおよびGNUC(glibc)ライブラリを担当している場合、多くの同等のオープンソースコードセットの中で、タイムリーな更新とパッチ管理を実行する義務があります。ライブラリを更新する従来のアプローチでは、サーバー全体を再起動するか、古いライブラリをまだ使用しているプロセスを特定する方法がない場合は、すべてのプロセスを再起動します。ただし、システムの再起動は、それ自体の問題とリスクを引き起こします。 KernelCareに感謝します チームの場合、 UCheckerという名前の簡単なスクリプトでこの問題を簡単に解決できます。 。
UCheckerとは
UChecker、 Userspace Checkerの略 は、無料のオープンソーススキャナーであり、どのプロセスがまだ古いライブラリを使用していて、再起動が必要かを識別します。 共有ライブラリのライブパッチの開発中に作成されました KernelCareによる。 Ucheckerを使用すると、脆弱なFOSSライブラリを特定してパッチを適用できます。影響を受けるプロセスを再起動する必要がありますが(再起動なしのライブラリ更新サービスを使用している場合を除く)、脆弱性をスキャンすることで、注意が必要なプロセスと注意が必要でないプロセスを特定できます。
その結果、再起動をスケジュールできるようになるまでライブラリにパッチが適用されないままになるため、サービスの低下や停止につながる不要なサーバーの再起動や、脆弱性ウィンドウの作成を回避できます。実際、どのサービスがどのライブラリを使用しているかさえわからない場合があるため、サーバー全体を再起動してすべてを更新したり、メインサービスを再起動したりするだけの誘惑に駆られます。この方法も、再起動と同じくらい混乱を招く可能性があります。
UCheckerの仕組み
Ucheckerは、6番目のバージョン以降のすべての最新のLinuxディストリビューションで動作します。これは無料のソフトウェアであり、JSONで構築されており、GNU GeneralPublicLicenseの条件の下で再配布や変更が可能です。 Ucheckerは、古い(パッチが適用されていない)共有ライブラリを使用するプロセスを検出します。実行中のプロセスで使用されている最新ではない共有ライブラリを検出して報告します。その検出機能は、BuildIDの比較に基づいています。その結果、削除または置換されたファイルを認識します。
次の図は、Ucheckerがどのように機能するかを示しています。
Ucheckerツールは、プロセスIDと名前、およびパッチが適用されていない共有ライブラリの名前と、それらのビルドIDを検出できます。 Ucheckerは、KCリソースから最新のBuildIDを取得します。次に、/proc/
を反復処理して、実行中のプロセスを実行します。 /proc/<pid>/maps
からリンクされた共有ライブラリを取得します 。その時点で、Ucheckerは共有ライブラリが置き換えられていないか削除されていないかを尋ねます。答えに応じて、ソフトウェアはファイルシステムからELFを解析するか、マップされたメモリからELFを解析します。次に、Ucheckerは.note.gnu.build-id
からBuildIDを収集します 。
UCheckerを使用してメモリ内の古い共有ライブラリを検出する
インストールは必要ありません! Ucheckerスクリプトを実行するだけで、Linuxサーバーでパッチが適用されていないライブラリを見つけることができます。
# curl -s -L https://kernelcare.com/checker | python
上記のコマンドは、Linuxサーバーシステムをスキャンして、 pythonにリンクされている古い共有ライブラリを探します。 それらを処理し、標準出力にリストします。
その後、システムのデフォルトのパッケージマネージャーを使用して、パッチが適用されていないライブラリを更新できます。
次のビデオで、Ucheckerがどのように機能するかを視覚的に示すデモをご覧ください。
結論
Ucheckerを使用すると、FOSSライブラリにパッチを適用して最新の状態に保つことができます。どのプロセスを再起動する必要があるかわからないため、サーバーを再起動するという一般的な煩わしさを回避できます。これは、特にOpenSSLおよびGNU C(glibc)ライブラリに関連しています。 KernelCare +のようなテクノロジーを使用すると、Linuxカーネルの脆弱性に加えて、重要なユーザースペースライブラリの脆弱性のライブパッチを実行することも可能になります。動作状態に影響を与えることなく、アプリケーションを更新できます。再起動や再起動は必要ありません。