- Linux
- 2016-05-27
2014年9月24日にBashの脆弱性が公表されました。
これはかなり危険度の高い脆弱性ですので、対処していない場合は早急に対処する必要があります。
原因は環境変数に関数が定義されてしまい、シェルを起動するだけで有効になってしまうことです。
脆弱性があるかどうかチェックするには以下のコマンドを実行してみてください。
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
以下のように出力されたらアウトです。
vulnerable this is a test
「echo vulnerable
」の部分に任意のコマンドを入れることができます。
早急にbashをアップデートすることをお勧めします。
bashのバージョンを確認するには
rpm -qa | grep bash
yumコマンドでアップデート
rootでログインし、以下のコマンドを実行します。
yum update bash
yumが実行できればこれだけです。
OSが古い等の理由でアップデートできない場合はどこかからソースを探してこないといけません。
「shellshock」で検索すると色々と情報が出てきますので探してみてください。
RedHat系でしたら、以下のような対応状況になっています。
・RedHat Enterprise Linux 6 / CentOS 6
bash-4.1.2-15.el6以前のものが該当
bash-4.1.2-15.el6_5.2で修正
・RedHat Enterprise Linux 5 / CentOS 5
bash-3.2-32.el5_9.1以前のものが該当
bash-3.2-33.el5_10.4で修正
・RedHat Enterprise Linux 4 / CentOS 4
bash-3.0-21.el4以前のものが該当
bash-3.0-27.el4.4で修正
RPMコマンドでアップデート
RPMパッケージが見つかればrpmコマンドにてアップデートします。
rpm -Uvh bash-.....
既に攻撃を受けている
もし既に攻撃を受け、何らかのコマンドが実行されているとしたら、
悪さをしているプロセスを探し対処しなくてはなりません。
lsof -i | more
または、perl等のプログラムが実行されている場合が多いので
lsof -i | grep perl
等のコマンドで外部と通信を行っているプロセスを特定します。
表示された内容で怪しい内容のプロセスIDをチェックします。
該当プロセスのカレントディレクトリを調べます。
lsof -p プロセスID | grep cwd
プロセスの挙動を見る
strace -p プロセスID
発見した怪しいプログラムは即刻削除しましょう。
他に、/tmpディレクトリで一定時間アクセスが無いファイルを削除するというコマンドもあります。
例)/tmp以下で240時間アクセスが無いファイルを削除する
tmpwatch 240 /tmp