Linuxのセキュリティ機能「SELinux」は組み込みからクラウドまで広く浸透し、今や避けては通れません。本連載では、SELinuxの役割と、IoT時代の活用法を実践的に紹介します。初回はまず、SELinuxとは一体どのような時に役立つのか見ていきます。

SELinuxを無効にしていませんか?

 Linuxカーネルのセキュリティ機能であるSELinux(Security Enhanced Linux)が主要なLinuxディストリビューションに含まれるようになって久しいですが、システム構築の現場では、邪魔者として無効にされることが多くなっています。しかし、本当にSELinuxを無効にしてしまってよいのでしょうか?

 SELinuxを有効にすると対策が難しい「ゼロデイ」を含む脆弱性を突かれても多くをブロックできます。図1図2は、2016年9月にMySQL業界を騒がせた脆弱性について、公開された攻撃をSELinux有無を変えて実行した結果の比較です。

図1 MySQLの脆弱性攻撃テスト(SELinuxのない場合)
[画像のクリックで拡大表示]

 SELinuxが無い場合が図1です。図の(1)(2)のように一般ユーザーjoss-sigが攻撃ツールを実行すると、mysqlユーザー権限のシェルを起動でき(3)、mysqlユーザー所有のDBファイルを勝手に見たり破壊したりできてしまいます(4)。

 一方で、SELinuxがある場合が図2です。同様に攻撃ツールを実行すると(1)、攻撃の途中で、エラーで止まりこれ以上何もできません(2)。

図2 MySQLの脆弱性攻撃テスト(SELinuxのある場合)
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら