bashのCVE-2014-6271、Shellshockの脆弱性が報告されたため、取り急ぎ対応しました。(CentOS6.5の環境)
私が実施した時点(2014年9/29 AM6時)では日本版のマニュアルが最新に更新されていなかったようで診断確認時に少し混乱しました。最新の英語版を読んで対応しました。
Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169) – Red Hat Customer Portal
詳しい内容は置いといてとりあえず対応済みのバージョンにアップデートしました。yum update bashでアップデートするだけなので手順としては簡単ですが、日本語版にある診断手順用のコマンドをコピーして実行すると改善していないかのような出力結果となってしまったので、英語版を読んで対応しました。
(対応手順)
1.bashのバージョン確認
$ rpm -qa | grep bash
bash-4.1.2-15.el6_4.x86_64
2.診断テスト
脆弱性があると下記実行結果になるようです。
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" vulnerable bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)' bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable' bash: error importing function definition for `BASH_FUNC_x' test
※日本語訳の資料だと下記のように記載されていて英語版と異なっています。
$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
3.bashをアップデート
root権限でアップデートします。
# yum update bash
bash-4.1.2-15.el6_5.2にアップデートされました。(2014/9/29 AM 6:00時点)
4.診断テストで確認
一般ユーザーで再度診断テスト。下記出力結果になりました。
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `BASH_FUNC_x' test
※日本語訳のコマンドを使うと修整前と同じ出力結果になってしまいました。
英語版には、もう一つ診断テスト用のコマンドがあったのでそちらも実行しました。下記実行結果であれば問題ないようです。
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo date cat: /tmp/echo: No such file or directory関連記事の目次
-
OpenSSH
- レンタルサーバー(VPS)にSSHでログイン
- VPS(レンタル)サーバー上のssh初期設定確認
- SSH接続の仕組み
- OpenSSHの設定ファイル
- OpenSSHの設定をよりセキュアに
- CentOS Stream9のSSH設定(OpenSSH)
- WinSCPを使ってファイル転送
ネットワーク、ポート番号
rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
auditdでシステム監査
ツール
トラブルシューティング
-
ネットワーク、ポート番号
- iptablesを使ってCentOSのファイアウォール設定
- CentOS6のTCPラッパーの概要と設定方法
- nmapでオープンしているポート番号とバージョンを確認
- yumコマンドで最新のパッケージにアップデート
- 更新可能なRPMパッケージのリストをメールで送信する
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- cronで使用するファイルのパーミッション設定
- CentOSのumaskの設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
yum、rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
ツール
トラブルシューティング