私は2台のコンピュータでFedora 20を使用しています。
2014 年 9 月 26 日、1100 UTC 頃に英国の Shellshock の脆弱性について読んだ直後にこれを防ぐために、yum update bash
次の推奨テスト パターンを試しました。
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
そして、ユーザーモードとsuモードでは、あるコンピュータで次のような結果が得られました。
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
this is a test
一方、私が得るものは次のとおりです。
this is a test
質問:両方のコンピュータで成功しましたか、心配する必要がありますか?
@terdonのコメントに応じて、次のような結果が出ました。
[Harry@localhost]~% env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
echo vuln
cat: echo: No such file or directory
[Harry@localhost]~%
それでも、どういう意味なのかはよくわかりません。
明確にするために、2 つのシステム間の警告と違いが混乱しています。私は警告メッセージをもう一度注意深く見ました。おそらく、エラーメッセージのないコンピュータでは、「コピーして貼り付ける」コマンドを入力しました。他のコンピュータではこのコマンドを入力しましたが、警告が表示されました。最後の「x」を「x」として引用する警告が表示されます。 「バックティック」)。そのマシンにはアメリカのキーボードがあり、英国のレイアウトに変更することはできませんが、まったく異なる問題があります。
これをオンラインで追うLinuxQuestions.org スレッド少し議論の終わりに、両方の人が安全だったようだった。
答え1
あなたは正しいことをしました。
あなたのシステムはこの脆弱性から安全です。
システムが安全でない場合、このコマンドの出力は次のようになります。
壊れやすく、
これはテストです。
しかし、あなたの出力は
bash:警告:x:関数定義は無視されました。
bash 試行中: 'x' の関数定義の取得中にエラーが発生しました。
テストです。
あなたは安全です。
昨日これを実行した場合は、yum update bash
今日も実行することを検討してください。昨日の修正は、今日発表された修正ほど良くないからです。
編集(OPが追加情報を要求したため)
私も新しい脆弱性であなたを平和にすることができます。システムに新しい修正がインストールされました。
出力がある場合
エコ脆弱性は
まだ脆弱です:(
あなたはまだ脆弱です。
今私このエクスプロイトが正確にどのように機能するかはわかりません。つまり、正確に何が起こり、最初のエクスプロイトと2番目のエクスプロイトの違いが何であるかを言うことはできません。しかし、エキスポがどのように機能するかについては、簡単な答えを提供できます。
env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("
いくつかの実行コードをファイルに保存する以外に、「何もしません」環境変数このコマンドは、bash-shellが起動されるたびに実行されます。
そしてbash-shellは起動しやすく、頻繁に起動します。あなただけでなく、多くのプログラムで作業を行うにはbashが必要です。たとえば、CGI。
この脆弱性の詳細については、次の Red Hat セキュリティ ブログのリンクをご覧ください。https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
答え2
vulnerable
問題が解決しない場合は、2回試してからお読みください。
答え3
最初の出力は固定bash出力です。 2番目はパッチ修正で追加された警告を表示しませんが、正しい動作を示します(脆弱ではありません)。おそらく、2番目のマシンが実際にbashを使用していない場合、またはディストリビューションがわずかに異なるパッチ(エクスポート機能を無効にするパッチなど)を使用することもできます。両方のシステムにbash --versionの出力を提供できますか?