コンテンツ パブリック
このコンテンツについて:
実践AlmaLinux、第一回目は「AlmaLinux インストール手順」として、AlmaLinux Installation Guide をベースにわかりやすくご説明いたします。
ある一定以上の複雑さを持つソフトウェアは既知であるか未知であるかに関わらず、セキュリティ上の脆弱性を懸念する必要があります。脆弱性はソフトウェアのリリース時に攻撃可能であるとは限らず、時代の変化により過去には脆弱性とされていなかった挙動が脆弱性として認識されるようになることもあります。そのためソフトウェアは運用が続く限り、さまざまな攻撃経路を警戒して外部の攻撃からシステムを守る必要があります。
オペレーティングシステム (OS) は多種多様なソフトウェアコンポーネントを含むため、セキュリティ研究者はしばしばそういったソフトウェアの脆弱性を研究しており、新しく見つかった脆弱性が広範で深刻な影響を持っていることがあります。当記事では過去に発見された脆弱性、特に長年そのソフトウェアに内在されていながら、近年になって発見された脆弱性を実例として挙げ、OS の継続的なアップデートが必要であること、コアコンポーネントの脆弱性が深刻となりうることを解説します。
CVE-2014-0160(Heartbleed)
CVE-2014-0160 は 2014 年に OpenSSL という SSL/TLS ライブラリに発見された脆弱性です。OpenSSL の他にも GnuTLS、wolfSSL などの SSL/TLS ライブラリの実装が存在しますが、OpenSSL は他のライブラリよりも広く使われおり脆弱性が発見されると、非常に多くのアプリケーションに影響を及ぼします。
CVE-2014-0160 は Heartbleed という名称でも知られています、 これは TLS プロトコルの Heartbeat という拡張機能の実装にバグがあったため、細工されたパケットを送ることによって、リモートからメモリ上の情報の漏洩が起こってしまうという脆弱性です。このバグがより一層深刻な脆弱性として認識されたのは、OpenSSL が暗号技術に関するライブラリであったためです、攻撃者から脆弱性を攻撃された場合、秘密鍵などのセキュリティ・プライバシー保護に関わる機密性の高い情報が漏洩する可能性がありました。またこの脆弱性が世間で問題となったことをきっかけとして、OpenBSD プロジェクトは LibreSSL というフォークプロジェクトを、Google は BoringSSL というフォークプロジェクトを開始しました、 これらのプロジェクトはコードのリファクタリングや Google のニーズに合わせてコードをメンテナンスすることを目標としています。
CVE-2021-4034(Pwnkit)
CVE-2021-4034 は polkit というソフトウェアに発見された脆弱性です、polkit は権限を持たないアプリケーションに対して、ポリシー定義に従って別のユーザーとしてコマンド実行を許可するツールです。仕組み上、polkit は root 権限で動作し、CVE-2021-4034 は polkit の中の pkgexec というコンポーネントで容易に悪用可能な権限昇格が可能でした。言い換えればこの脆弱性が修正されていないシステムでは pkgexec を起動できるプロセスは任意のコマンドを root 権限で実行可能な状態にあったということです。この脆弱性単体ではリモートから攻撃することはできませんが、他の脆弱性と組み合わせれば深刻な攻撃が可能です。
CVE-2016-5195 (Dirty COW)
CVE-2016-5195 は 2016 年に Linux カーネルに発見された、メモリの COW(Copy-On-Write) 実装のレースコンディションのバグを利用して、メモリ破壊を行うことにより特権昇格が可能となる脆弱性です。この脆弱性は 2007 年にリリースされた Linux カーネル 2.6.22 から存在したことで特に注目を集めました、9 年間修正されていなかったということは、多くのシステムがこの脆弱性から攻撃可能であることを意味します、その中には EoL を迎えている OS を利用しているシステムも含まれます。当然 EoL を迎えている OS にはセキュリティ修正が提供されません。
OS のセキュリティ脆弱性が深刻になりうる理由
これらの脆弱性に共通する点は、それぞれ発見されたソフトウェアがオペレーティングシステムの中核に位置するコンポーネントであり、発見された脆弱性の影響が広範囲に及ぶことです。OS にはリングプロテクションという階層構造を持った情報の保護機能があります、通常のアプリケーションは CPU モードの中で最も低い権限である Ring 3、カーネルのような低レイヤーで動作するソフトウェアは最も高い権限である Ring 0 で動作し、容易に悪意あるコードがセキュリティ侵害を起こせないように設計されています。









