bash脆弱性(shellshock)への対応

#Redhat発表
[Shellshock: Bash Code Injection Vulnerability](https://access.redhat.com/announcements/1210053)

見つかった脆弱性のCVE一覧

* CVE-2014-6271
* CVE-2014-7169
* CVE-2014-7186
* CVE-2014-7187
* CVE-2014-6277
* CVE-2014-6278

RedhatのErrataは、CVE-2014-6271向けと、CVE-2014-7169/CVE-2014-7186/CVE-2014-7187向けに公開されています。
CVE-2014-6277/CVE-2014-6278についても、最新のerrata適用後には問題は発生しないとのことです。

#AWSの公式まとめ
[ALAS-2014-419](https://alas.aws.amazon.com/ALAS-2014-419.html)
CVE-2014-6271/CVE-2014-7169/CVE-2014-7186/CVE-2014-7187/CVE-2014-6277/CVE-2014-6278のすべてが修正されています。
使用しているAMIに応じて適切なアップデートを行ってください。

```text
For 2014.09 Amazon Linux AMIs, bash-4.1.2-15.21.amzn1 addresses both CVEs.
Running yum clean all followed by yum update bash will install the fixed package.

For Amazon Linux AMIs "locked" to the 2014.03 repositories, bash-4.1.2-15.21.amzn1 also addresses both CVEs.
Running yum clean all followed by yum update bash will install the fixed package.

For Amazon Linux AMIs "locked" to the 2013.09 or 2013.03 repositories, bash-4.1.2-15.18.22.amzn1 addresses both CVEs. 
Running yum clean all followed by yum update bash will install the fixed package.

For Amazon Linux AMIs "locked" to the 2012.09, 2012.03, or 2011.09 repositories, 
run yum clean all followed by yum --releasever=2013.03 update bash to install only the updated bash package.
```

##Elastic Beanstalkを使っている場合
上記の方法ではパッチが当たらないようです。古い情報としてまとめてある個別パッチをあてれば大丈夫でした。やはり、パッチがあたったかどうかの検証は大切ですね。

2014/10/1追記
公式見解がでました。新しいenvを作ってswapしろとのことです。
https://forums.aws.amazon.com/ann.jspa?annID=2629
いやいやいやいや、それは無茶だろう。。。
単純にmin instanceを一時的に広げてインスタンス数を増やし、minインスタンスを戻した後に古いインスタンスをshutdownするのが良いかと。

##脆弱性の確認方法
[Shellshocker - Repository of "Shellshock" Proof of Concept Code](https://github.com/mubix/shellshocker-pocs)


CVE-2014-7169
修正が適用されていない場合、下記コマンドを実行するとカレントディレクトリにechoというファイルが生成されます。

```
env var='() {(a)=>\' bash -c "echo date"; cat echo  
```

CVE-2014-7187
修正が適用されていない場合、CVE-2014-7187 vulnerable, word_linenoという文字列が表示されます。

```text
(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187 vulnerable, word_lineno"
```


#以下古い情報

##Amazon AMIを使っている場合
##CVE-2014-6271
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2014-6271

Amazonがすでのパッチをリリースしています。
詳しくはこのフォーラム参照
[Update to Amazon AMI for CVE-2014-6271](https://forums.aws.amazon.com/thread.jspa?messageID=571796&tstart=0)

今回のパッチはCriticalレベルなので、インスタンス **初回** 起動時には自動的に適用されます。
すでに起動しているインスタンスについては、手動でのパッチ適用が必要です。

For Amazon Linux 2013.09 (15.18.20)

```
sudo yum install -y http://packages.us-east-1.amazonaws.com/2013.09/updates/556c442ced2f/x86_64/Packages/bash-4.1.2-15.18.20.amzn1.x86_64.rpm
```

For Amazon Linux 2014.03/2014.09 (15.19)

```
sudo yum install -y http://packages.us-east-1.amazonaws.com/2014.03/updates/e10f5b547e18/x86_64/Packages/bash-4.1.2-15.19.amzn1.x86_64.rpm
```

Elastic Beanstalkを使っている場合、sudo yum update bashだけだとダメなようなので要注意です。

##CVE-2014-7169
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2014-7169
CVE-2014-6271では修正が不十分で、CVE-2014-7169として対応が始まっています。

Amazonがすでにパッチをリリースしています。
詳しくはこのフォーラム参照
[CVE-2014-6271 still a threat with CVE-2014-7169?](https://forums.aws.amazon.com/thread.jspa?messageID=572001&#572001)

For Amazon Linux 2013.09 (15.18.22)

```
sudo yum install -y http://packages.us-east-1.amazonaws.com/2013.09/updates/cad3d01bf38e/x86_64/Packages/bash-4.1.2-15.18.22.amzn1.x86_64.rpm
```

For Amazon Linux 2014.03/2014.09 (15.21)

```
sudo yum install -y http://packages.us-east-1.amazonaws.com/2014.09/updates/990a91337efe/x86_64/Packages/bash-4.1.2-15.21.amzn1.x86_64.rpm
```