Systemdに新しい脆弱性が発見されました

systemd

すでに説明されているsystemdに脆弱性が見つかりました (CVE-2019-6454)、より 制御初期化プロセス(PID1)をブロックさせることができます 特別に細工されたメッセージをD-Busを介して非特権ユーザーに送信する場合。

たくさん Red Hat開発者は、この脆弱性を使用してroot権限でコード実行を整理する可能性も排除していません。、しかし、そのような攻撃の最終的な可能性はまだ決定されていません。

systemdについて

Systemdを知らない人のために 私はあなたにそれを言うことができます これはLinux初期化システムおよびサービスマネージャーです これには、オンデマンドデーモンの起動、自動マウントとマウントポイントのメンテナンス、スナップショットのサポート、Linuxコントロールグループを使用したプロセス追跡などの機能が含まれます。

Systemd 一般的なシステム管理タスクを支援するレジストリデーモンおよびその他のツールとユーティリティを提供します。 LennartPoetteringとKaySieversは、最新の動的システムを作成することを目的として、macOSの起動とUpstartに触発されたSystemDを作成しました。

特に、systemdは積極的な並列化機能と依存関係ベースのサービス制御ロジックを提供し、サービスを並行して開始できるようにし、起動時間を短縮します。 これらのXNUMXつの側面は、Upstartに存在していましたが、systemdによって強化されました。

Systemdは、主要なLinuxディストリビューションのデフォルトのブートシステムです。、ただし、SysV起動スクリプトとの下位互換性があります。

SysVinitは、systemdに先行する初期化システムであり、単純化されたアプローチを使用してサービスを開始します。 Systemdは、システムの初期化を管理するだけでなく、cronやsyslogなどの他のよく知られたユーティリティの代替手段も提供します。

新しいsystemdの脆弱性について

D-Busを介して送信されるメッセージのサイズを操作することにより、 攻撃者は、スタックに割り当てられたメモリの制限を超えてポインタを移動できます、例外(ページフォールト)を呼び出すエッジでのメモリページの置換に基づく「スタックガードページ」の保護をバイパスします。

攻撃の成功は、systemd18.10を搭載したUbuntu239およびsystemd7.6を搭載したCentOS219で実証されています。

回避策として、コンパイルは「-fstack-clash-protection」オプションを使用してGCCで使用できます。これは、Fedora28および29でデフォルトで使用されます。

2014年に、MUSLシステムライブラリの作成者は、システムの過度のインフレPID1ハンドラーの主要なアーキテクチャ上の問題の中で指摘し、バスへのリンクにPID1レベルのコントローラーAPIを実装する可能性について疑問を呈しました。攻撃し、システム全体の信頼性に悪影響を与える可能性があります

セキュリティ研究者によると 脆弱性が明らかになり、スタックポインタの変更は未使用のメモリページでのみ可能です (未割り当て)、これはPID1プロセスのコンテキストでコード実行を整理することを許可しませんが、攻撃者がPID1ロックを開始し、その後LinuxカーネルがPIDコントローラー1の障害の「パニック」状態に移行することを許可します。システム全体がハングします)。

systemdには、PID1プロセスの障害(セグメンテーション違反)をトラップし、回復のためにシェルを開始するシグナルハンドラーがインストールされています。

ただし、攻撃中に、複製されていない(割り当てられていない)メモリページが呼び出されるため、カーネルはこのシグナルハンドラを呼び出すことができず、PID 1でプロセスを終了するだけです。これにより、作業を続行してに入ることができなくなります。 「パニック」状態であるため、システムの再起動が必要です。

問題の解決策はすでにあります

すでに説明および報告されている他のセキュリティ問題と同様に、問題が解決されて SUSE / openSUSE、Fedoraの脆弱性パッチアップデートはすでにリリースされており、Ubuntuおよび一部はDebian用です。 (Debian Stretchのみ)。
問題はRHELでは未修正のままですが。