見出し画像

バッファオーバーフローの脆弱性

こちらのnoteは、セキュリティ専門家松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」2月12日の放送内容を一部抜粋しご紹介します

今回のトピック!
・ニュース解説「sudoにヒープベースのバッファオーバーフローの脆弱性 」
・「バッファオーバーフローの脆弱性」とは
・脆弱性の発生を未然に防ぐプログラムチェック観点

ニュース解説

別のユーザ権限でコマンドを実行するためのsudoコマンドに脆弱性があり、管理者権限でコマンドが実行されてしまう可能性があるということです。バッファオーバーフローが発生する原因や対策について説明します。
脆弱性が悪用されるシナリオについて、記事には

「ローカルの第三者によって権限昇格され管理者権限でコマンドを実行される可能性がある。」

とあります。つまり、ログインする権限を持っているすべてのユーザが、sudoコマンドの脆弱性を悪用した場合、管理者権限で任意のコマンドが実行できるということです。また、影響があるシステムについて、記事には

「本脆弱性の影響が確認されていない OS やディストリビューションにおいても影響を受ける可能性があるという。」

とありますので、今回、脆弱性が報告されているsudoのバージョン 1.8.2 から 1.8.31p2と、バージョン 1.9.0 から 1.9.5p1が利用されていないか、念のため、すべてのシステムで速やかに確認することが求められます。

バッファオーバーフローの脆弱性とは

技術的にはとても難しい内容になりますが、できるだけ簡単に説明してみたいと思います。
「バッファ」とはデータが入る器のことです。「オーバーフロー」とはデータがあふれている状態です。つまり、器からデータがあふれている状態を、バッファオーバーフローと言います。誤解を恐れずに言えば、お風呂にお湯を入れたことを忘れて、浴槽からお湯があふれて床が水浸しになっている状態を、バッファオーバーフローと思ってもらえたらイメージしやすいかもしれません。通常はデータがあふれないように、入力できるデータの量が制限されているべきですが、プログラムミスが原因でその制限がなされていない場合に、バッファオーバーフローの脆弱性は発生します。お風呂も一定の水量になったら自動で給湯が止まったり、浴槽が溢れないように壁に排水溝が付いていると思います。これがない状態を、バッファオーバーフローの脆弱性がある状態だと思ってください。
ここから少し技術的な話をしますと、バッファからあふれたデータは、別のバッファのデータを書き換えます。別のバッファにあるデータの中には、次に実行するコードの場所が含まれます。次に実行するコードの場所が書き換えられるということは、任意のコードが実行できるということです。もちろん、任意のコードには攻撃者が作成した悪意のあるコードも含まれます。

その他のトピックはこちら

脆弱性の発生を未然に防ぐには、どのような観点でプログラムをチェックしておく必要があったのでしょうか?

すべて聞かれるかたはこちら

記 にしもと