bashの脆弱性(CVE-2014-6271:ShellShock)の対応 Debian Squeeze [デジもの]
■概要
最近見つかったShellShockと呼ばれている
bashのセキュリティ問題(CVE-2014-6271)対応を
やったメモ。
CVE-2014-6271:ShellShock
( https://www.ipa.go.jp/security/ciadr/vul/20140926-bash.html )
とは、
環境変数の"値"として指定された文字列の中に
ちょっと小細工してbashコマンドを埋め込むと、
"値"だったはずのコマンド文字列が実行されてしまう
というなかなか厄介なやつらしい。
たとえば、Webサーバーが上がっているところに
User-Agentに小細工されてアクセスされると、
Firewallとかは無意味で、
・システム破壊
・情報抜き出し
・ウィルス/ワーム/バックドアの仕込み
などができてしまう。
■経緯
no-mi家の環境では、未だにDebian Squeezeが
ホームサーバーで稼働していたりするので、
ShellShockは対応した方がよさそうであった。
■手順
【STEP 1】
自分の環境がこの問題に該当するのかチェックする。
次のようなコマンドを実行してみる。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
------------------------------------------------------------
実行結果。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
------------------------------------------------------------
「vulnerable」が表示されてしまったら、アウト。
変数に渡された"値"だったはずの
echo vulnerable が実行されてしまっている。
この環境は問題に該当している。
【STEP 2】
問題に対応するパッチを適用する。
apt-getを使うのが簡単と思ったのでそうした。
ただ、パッチがあるところにapt-getがモジュールの
Updateを探しに行ってくれるかが問題。
http://unix.stackexchange.com/questions/157414/how-to-only-install-security-updates-on-debian
あたりを参考にして、
rootユーザーで以下の操作を実行する。
/etc/apt/sources.list に
次の行を追加。
------------------------------------------------------------
deb http://http.debian.net/debian squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
------------------------------------------------------------
「non-free」とか書くと、どこかから後で請求が来るのでは
ないかと、ちょっとドキドキするが、実際はそんなことはないので、
やってしまうのだ。
※Windoewsでいうところの「フリーソフト」「有料ソフト」
とは定義が違っていて、ソースコード改変可能、再配布可能とか
そのレベルまで「フリー」ではないものが「non-free」と
言われている。
apt-getを実行する。
------------------------------------------------------------
$ apt-get update
$ apt-get install -t squeeze-lts --only-upgrade bash
------------------------------------------------------------
このUpdateの後のrebootは不要である。
Update完了後Callされるbashはこの問題を引き起こさない。
【STEP 3】
自分の環境がこの問題の対応完了できているかチェックする。
STEP1と同じコマンドを実行してみる。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
------------------------------------------------------------
実行結果。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
------------------------------------------------------------
今度は、「vulnerable」が表示されず、
問題は解消されていることが確認できた。
最近見つかったShellShockと呼ばれている
bashのセキュリティ問題(CVE-2014-6271)対応を
やったメモ。
CVE-2014-6271:ShellShock
( https://www.ipa.go.jp/security/ciadr/vul/20140926-bash.html )
とは、
環境変数の"値"として指定された文字列の中に
ちょっと小細工してbashコマンドを埋め込むと、
"値"だったはずのコマンド文字列が実行されてしまう
というなかなか厄介なやつらしい。
たとえば、Webサーバーが上がっているところに
User-Agentに小細工されてアクセスされると、
Firewallとかは無意味で、
・システム破壊
・情報抜き出し
・ウィルス/ワーム/バックドアの仕込み
などができてしまう。
■経緯
no-mi家の環境では、未だにDebian Squeezeが
ホームサーバーで稼働していたりするので、
ShellShockは対応した方がよさそうであった。
■手順
【STEP 1】
自分の環境がこの問題に該当するのかチェックする。
次のようなコマンドを実行してみる。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
------------------------------------------------------------
実行結果。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
------------------------------------------------------------
「vulnerable」が表示されてしまったら、アウト。
変数に渡された"値"だったはずの
echo vulnerable が実行されてしまっている。
この環境は問題に該当している。
【STEP 2】
問題に対応するパッチを適用する。
apt-getを使うのが簡単と思ったのでそうした。
ただ、パッチがあるところにapt-getがモジュールの
Updateを探しに行ってくれるかが問題。
http://unix.stackexchange.com/questions/157414/how-to-only-install-security-updates-on-debian
あたりを参考にして、
rootユーザーで以下の操作を実行する。
/etc/apt/sources.list に
次の行を追加。
------------------------------------------------------------
deb http://http.debian.net/debian squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
------------------------------------------------------------
「non-free」とか書くと、どこかから後で請求が来るのでは
ないかと、ちょっとドキドキするが、実際はそんなことはないので、
やってしまうのだ。
※Windoewsでいうところの「フリーソフト」「有料ソフト」
とは定義が違っていて、ソースコード改変可能、再配布可能とか
そのレベルまで「フリー」ではないものが「non-free」と
言われている。
apt-getを実行する。
------------------------------------------------------------
$ apt-get update
$ apt-get install -t squeeze-lts --only-upgrade bash
------------------------------------------------------------
このUpdateの後のrebootは不要である。
Update完了後Callされるbashはこの問題を引き起こさない。
【STEP 3】
自分の環境がこの問題の対応完了できているかチェックする。
STEP1と同じコマンドを実行してみる。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
------------------------------------------------------------
実行結果。
------------------------------------------------------------
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
------------------------------------------------------------
今度は、「vulnerable」が表示されず、
問題は解消されていることが確認できた。
コメント 0