GHOST についてまとめとくか

めんどうなこった。あとでちゃんとブログ記事にする。

GHOST についてまとめとくか

めんどうなこった。あとでちゃんとブログ記事にする。

バッファオーバーフローが発見された関数は__nss_hostname_digits_dots()だが、ユーザランドのソフトウェアからはgethostbyname()などの関数を呼び出すことでこの関数が実行される。


Qualysの研究者によると、2013年の時点でこの脆弱性を発見して、glibc-2.17とglibc-2.18の間において修正を行っているが、 当時はセキュリティに関わるリスクとしては認識されていなかったため、長期サポートの対象となっているバージョンのLinuxディストリビューションでは この脆弱性が修正されることなく残り続けているという。

Qualys Security Advisory CVE-2015–0235 — GHOST: glibc gethostbyname buffer overflow

この記事にある検証用コードを Gist に貼り付けておいた。

おっと。すでに GitHub に上がってるか

CVSS 基本値が出せないのは glibc を利用するアプリケーションとの組み合わせによって影響範囲が変わるからと思われる。ほとんどのディストリビューションにはアップデートパッチが用意されているので、必ず更新すること。なお再起動を伴うのでアップデートは計画的に。ちなみに Android は glibc は使ってないので影響を受けないらしい。

日本製品の情報はこちら。でもまだ情報が少ないなぁ。ルータやスイッチなど組み込み製品の動向に注意すること。

勇み足(笑)

網羅的。おすすめ。

次に、すべてのアプリケーションが等しく危険にさらされているわけではありません。この脆弱性の攻撃において攻撃者が利用できるのは4バイトもしくは 8バイトのエクスプロイトコードであり、実行できることは非常に限られています。この攻撃に利用できるバイト数は OS が 32ビット版か 64ビット版かで異なります。追加のコードは、変更可能なポインタに参照されるアドレスに攻撃者が脆弱性とは別の方法で書き込んで置かなければなりませ ん。また、apache や postfix、OpenSSH など、多くの有名アプリケーションがこの脆弱性の影響を受けないことも確認されています。これまでのところ、トレンドマイクロでは、Web攻撃に利用される可能性のある感染媒体を確認しておらず、そのため攻撃の可能性はかなり低いものと考えられます。
最後に、この脆弱性が対象とする関数「gethostbyname*()」はすでに古いものとなっています。これらの関数は IPv6アドレスに対応していないため、多くの新しいアプリケーションでは、この脆弱な関数「gethostbyname*()」ではなく、IPv6 をサポートする関数「getaddrinfo()」を使用しているものと考えられます。

IPA からもアナウンスが出たな。