少し前から、bashの脆弱性の問題が指摘されていると思うのですが、例えばJPCERTは
その対策の一つとして
「GNU bash を代替のシェルに入れ替える」
というものを上げています。
代替のシェルに入れ替える場合の具体的な方法ですが、例えば、(/etc/passwd等の)ログイン情報を見て、bashがログインシェルに設定されているユーザを、zsh等に書き換えて、再起動してしまう、というやり方で、十分なのでしょうか。
今現在問題に直面しているわけではないのですが、「入れ替え」の方法について、教えていただければと思います。
No.2ベストアンサー
- 回答日時:
各ユーザーが使用するログインシェルも問題ですが、それ以上にバッチ処理などプログラムで使用するシェルも問題です。
通常 /bin/sh を実行シェルとして使用する事が多いですが、 /bin/sh を見ると bash にシンボリックリンクが張ってある事が多いです。
これのシンボリックリンクの向け先を別のシェルに変えると言った事も必要になってくるでしょう。
但し、シェルを変えたことでプログラムが動かなくなることも考えられますので、十分な検証が必要です。
また /etc/default/useradd に新規ユーザーを作成するときのテンプレートがありますが、この中身を書き換えてデフォルトのログインシェルを変更する事も必要かもしれませんね。
この回答への補足
ありがとうございました。バリバリbashのスクリプトがありましたので、教えていただいた情報とgooleの情報を総合し、結果的には、ソースからビルドしなおし(ソースに12個のパッチを当て)、make insatllし、/bin/bashをmvし、 ln -s /usr/local/bin/bash /bin/bash
して、アップデートを完了しました。
ご教授いただいた情報を感謝いたします。
回答を頂いた3人の方に同じ質問で恐縮ですが、アップデート前は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が
vulnerable
this is a test
であったのが、アップデート後は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が、
this is a test
になっています。
これで対策が完了したと考えて大丈夫でしょうか。
なお、bash -versoinの結果は、アップデート前後も変りありません。
No.3
- 回答日時:
現状では対策パッチが出ているので、別のシェルに入れ替える必要は無くて、bashを最新版にすれば良いです。
別のシェルにするというのはパッチが出る前の暫定対応の話です。入れ替えるとすると、例えば /bin/zsh に置き換えるとすると、
# rm /bin/sh ; ln -s /bin/zsh /bin/sh
# rm /bin/bash ; ln -s /bin/zsh /bin/bash
のように、/bin/sh と /bin/bash をzshへのシンボリックリンクにします。作業としてはそれだけです。再起動の必要はありません。
もちろん、事前に、すべてのシェルスクリプトがzshで問題なく動くかの確認は必要ですが。
この回答への補足
ありがとうございました。yumもapt-getも使えないものでしたので、教えていただいた情報とgooleの情報を総合し、結果的には、ソースからビルドしなおし(ソースに12個のパッチを当て)、make insatllし、/bin/bashをmvし、 ln -s /usr/local/bin/bash /bin/bash
して、アップデートを完了しました。
ご教授いただいた情報を感謝いたします。
回答を頂いた3人の方に同じ質問で恐縮ですが、アップデート前は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が
vulnerable
this is a test
であったのが、アップデート後は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が、
this is a test
になっています。
これで対策が完了したと考えて大丈夫でしょうか。
なお、bash -versoinの結果は、アップデート前後も変りありません。
No.1
- 回答日時:
>zsh等に書き換えて、再起動してしまう
ここでいう書き換えるというのはpasswdファイルを書き換えるということ?
再起動というのはサーバーを再起動すということ?
chshで書き換える方が現実的では?
またpsでbashでlogin情報があればユーザーに通知したうえで、
killしちゃえば、再起動することもないのでは?
そのうえでbashを絶対につかわないつもりならリネームしてシンボリックリンクで
nologinにリンクしてしておくとか・・・
ユーザーのスクリプトにbashを前提として書いているものがあれば
都度書き換えてもらうしかないとは思いますが・・・
この回答への補足
ありがとうございました。バリバリbashのスクリプトがありましたので、教えていただいた情報とgooleの情報を総合し、結果的には、ソースからビルドしなおし(ソースに12個のパッチを当て)、make insatllし、/bin/bashをmvし、 ln -s /usr/local/bin/bash /bin/bash
して、アップデートを完了しました。
ご教授いただいた情報を感謝いたします。
回答を頂いた3人の方に同じ質問で恐縮ですが、アップデート前は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が
vulnerable
this is a test
であったのが、アップデート後は
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
の結果が、
this is a test
になっています。
これで対策が完了したと考えて大丈夫でしょうか。
なお、bash -versoinの結果は、アップデート前後も変りありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- ガーデニング・家庭菜園 カンパニュラ(オーシャン)植え替え後元気がなくなりました。対応を教えてください! 4 2022/05/18 14:00
- ドライブ・ストレージ HDDの代替処理保留中のセクタ数と回復不能セクタ数について 7 2023/06/06 13:15
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- 簿記検定・漢字検定・秘書検定 日商簿記2級の税効果会計の練習問題について納得行かないものがあります。 練習問題① 決算において、そ 3 2022/03/24 14:18
- UNIX・Linux Thunderbirdで既読にしても、シェルにログインするとYou have mail.と表示される 3 2022/09/10 08:40
- その他(ソフトウェア) MediaWikiに苦戦しています。助けてください... 1 2023/08/09 11:27
- Android(アンドロイド) simカードが2枚入る、 デュアルスタンバイのスマホの場合使えるアプリはひとつしかないですよね? 例 5 2023/01/08 13:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csh (tcsh)での環境変数の長さ...
-
日蓮大聖人はミカエル天使から...
-
Cシェルでのファイルからの入...
-
xtermのファイルの消し方について
-
シェル 会話形式でエンターキ...
-
コマンドプロンプトとかで、net...
-
正規表現とワイルドカードについて
-
『存在するかどうか分からない...
-
.cshrc ファイルについて
-
バックスラッシュの意味がわか...
-
シェルスクリプトで #!/bin/sh ...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
スクリプトのエラー「unexpecte...
-
ファイル名についている「-」と...
-
UNIX コマンドにおける # や円...
-
batである文字列内に特定の文字...
-
net use /d の強制実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cシェル内でBシェルの様な関数...
-
ubuntuの端末の左にカレントデ...
-
シェルスクリプトで #!/bin/sh ...
-
バックスラッシュの意味がわか...
-
.cshrc ファイルについて
-
ターミナルが全く入力できない
-
export と set は違うの?
-
シェル 会話形式でエンターキ...
-
シェルスクリプトに関する問題...
-
BシェルとBashの違い
-
mac os x10.6.4のターミナルでp...
-
posixでshellを起動したとき`da...
-
『存在するかどうか分からない...
-
シェルスクリプトのbashとperl...
-
シェル(ksh)で変数にある文字列...
-
tcshなのにスクリプト構文中のs...
-
コンソールでの上下左右矢印ボ...
-
BシェルとCシェル
-
ps -aのセッションリーダとは
-
Cシェル内で自動ログアウトさせ...
おすすめ情報