悪質なLinux netfilterファイアウォールのセキュリティホールが発見されました
なんて恥ずかしい!Linuxのネットフィルターファイアウォールプログラムにセキュリティホールが潜んでいたようです。
ほとんどすべてのLinuxファイアウォールツール(iptables、より新しいバージョンのnftables、firewalld、ufwなど)の背後には、Linuxのネットワークスタックへのアクセスを制御するnetfilterがあります。これは必須のLinuxセキュリティプログラムであり、そこにセキュリティホールが見つかると、大きな問題となります。
ソフォスの脅威研究者ニック・グレゴリーは、最近ネットフィルターのセキュリティ上の問題をチェックしている際にこの脆弱性を発見しました。グレゴリーは彼のバグ探しについて詳細に説明しており、Cエラーの発見に興味のある方にお勧めします。しかし、要点だけ知りたい方のために、ここに話の要約があります。
これは深刻なバグです。具体的には、カーネルのネットフィルタにおけるヒープの境界外書き込みの問題です。グレゴリーは「カーネルコード実行を達成するために悪用可能(ROP(リターン志向プログラミング)を介して)、完全なローカル特権昇格、コンテナ脱出、好きなものを与える」と言っています。いやだ!
この問題は、netfilterがそのハードウェアオフロード機能を正しく処理しないために存在します。ローカルの特権のない攻撃者はこれを利用して、サービス拒否(DoS)攻撃を引き起こしたり、任意のコードを実行したり、一般的な混乱を引き起こしたりすることができます。さらに悪いことに、攻撃されるハードウェアがオフロード機能を持っていなくても、これが機能するのです!これは、グレゴリーがセキュリティリストに書いたように「ハードウェアオフロードに関連するコードにあるにもかかわらず、オフロード機能を持たないネットワークデバイス(例:lo)をターゲットにした場合、バグがルールの作成が失敗する前にトリガーされるため、アクセス可能です。」という理由によります。
この脆弱性はLinuxカーネルのバージョン5.4から5.6.10に存在します。これは一般的な脆弱性および露出(CVE-2022-25636)としてリストされており、一般的な脆弱性スコアリングシステム(CVSS)のスコアは7.8であり、これは本当に悪いものです。
どれほどひどいのでしょうか?Red Hatはその告知で「この脆弱性により、システム上のユーザーアカウントを持つローカル攻撃者がバウンダリ外のメモリにアクセスできるため、システムのクラッシュや特権昇格の脅威につながる可能性があります。」と述べました。つまり、これはひどいということです。
さらに悪いことに、これはRed Hat Enterprise Linux (RHEL) 8.x、Debian Bullseye、Ubuntu Linux、SUSE Linux Enterprise 15.3などの最近の主要なディストリビューションリリースにも影響を与えます。Linuxカーネルのnetfilterパッチは適用されましたが、そのパッチはまだすべてのディストリビューションリリースで利用可能ではありません。
まだパッチがない場合は、次のコマンドを使ってRHELファミリーで問題を軽減できます。
# echo 0 > /proc/sys/user/max_user_namespaces
# sudo sysctl --system
そして、Debian/Ubuntuファミリーでは次のコマンドを使います:
$sudo sysctl kernel.unprivileged_userns_clone=0
さて、再びここにいます。これに関して良いエクスプロイトを見たことはありませんが、機能するものは見たことがあります。それは約半分の確率です。もしあなたが自分のLinuxサーバーが奪われるのを見たくない、あるいはネットから外されるのを見たくないのであれば、システムを修正するか、問題を避けるためにロックダウンする時が来ました。
他にも見る
- Google Project Zeroによれば、Linux開発者は誰よりも早くセキュリティホールを修正している。
- LinuxユーザーからNetfilterコードの使用に対して金銭を要求する試みが解決しました。
- 重大なLinux PolicyKitのセキュリティ脆弱性が発見されました:Pwnkit