2011年2月24日木曜日

CentOS5.5にmod-chxj_0.12.37

結構ハマったわりにはネット上に情報がないので、書いておく。

前提は、openssl, apacheはソースからコンパイルしたものを使い、それぞれopenssl0.9.8oが/home/opensslに、apache2.2.16が/home/httpdにインストールされている。
あちこちで書かれている前提パッケージはすでにインストール済みとする。

まず引っかかったのは、make。

$ ./configure \
> --with-apache-header=/home/httpd/include \
> --with-apxs=/home/httpd/bin/apxs \
> --with-apr-config=/home/httpd/bin/apr-1-config \
> --with-apu-config=/home/httpd/bin/apu-1-config \
> --with-openssl=/home/openssl


でconfigureするとmakeで、

(cd serf; CFLAGS=-fPIC CXXFLAGS=-fPIC ./configure --enable-shared --with-apr=`dirname /home/httpd/bin/apr-1-config` --with-apr-util=`dirname /home/httpd/bin/apu-1-config` --with-openssl /home/openssl; make)
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: /home/openssl
checking for chosen layout... Serf
checking for working mkdir -p... yes
checking build system type... Invalid configuration `/home/openssl': machine `/home/openssl' not recognized
configure: error: /bin/sh build/config.sub /home/openssl failed

なんで/home/opensslでinavlid host typeとか言われるんだ?と思ってよく見てみると、src/serfの下でconfigureやってて、--with-opensslと/home/opensslの間に=がない。
直接src/Makefileの該当個所を変更して、コンパイルは通った。

インストールしてapacheを再起動すると今度は、
# ./apachectl restart
httpd: Syntax error on line 427 of /home/httpd/conf/httpd.conf: Cannot load /home/httpd/modules/mod_chxj.so into server: /home/httpd/modules/mod_chxj.so: undefined symbol: libiconv

0.8.5のインストール手順を参考にしてlibiconvをソースから入れたのがいけなかったらしく、最新はlibiconvは必要ないとのこと。

/usr/local/libの下のlibiconv関係のライブラリ(3つ)削除、/usr/local/includeの下のiconv関係のヘッダ(3つ)削除して、configureからやり直して、起動できた。

2011年2月1日火曜日

グーグル脆弱性報奨プログラム(まとめ) - グーグルからお金をもらう

今回は「ですます」調で。

日本語のセキュリティのページに書かれていないので、日本では気付いている人が少ないのかもしれません。
Googleでは昨年の11月から脆弱性報奨プログラム(Vulnerability Reward Program)というのをやっていて、同社のサービスに脆弱性を見つけて報告すると、報奨として$500から$3,133.7もらえます。

今後続く方のために、私がXSSを見つけた時の経緯を書いておきます。

最初、ショッピングにXSSを見つけて、すぐにSecurity Team(security@google.com)にメールしました。最初に見つけたものは、ページ表示後ユーザの操作によってスクリプトが動くものでしたが、その後同じサービス内の別のページで、ページ表示時点ですぐにスクリプトが動くものを見つけました。
この時点ではまだ、バグの管理番号が割り振られていませんでしたが、その後他のサービスで同じバグを見つけ、そのとき初めてちゃんとしたリストを作成し、管理番号の入ったサブジェクトのメールに返信しました。
これがちょっとしたトラブルの元になったようです。どうやら共通のバグであっても、サービス毎に管理しているようで、ショッピング以外のバグが見落とされそうになったそうです。

現に私の見つけたXSSは複数のサービスに共通にありましたが、報奨については別のバグとしてカウントされました。
しかも、共通で使われているフレームワークに元々の問題がありそうなので、すべてのサービスで共通に対応するだろうと思っていましたが、直し方はサービス毎にばらばらでした。

ですので、共通に存在するバグを見つけても、サービス毎に別のバグとして報告したほうがよさそうです。また一度報告してしまえば開発者は同じサービス内のその他の部分に気付くでしょうから、同じサービスをひと通り調べてから報告したほうが、とりっぱくれを少なくできると思います。彼らとしてもちまちま報告されるよりは、ある程度まとめてからの方が助かるでしょう。

報奨を受け取るには、
1.USDを受け取れる銀行に口座を持つ。
2.Googleのページでサプライヤ登録する。
3.W8-BEN form(米国源泉税を免除してもらうための書類)を作成、提出する。
ことが必要になります。これらはすべてメールで指示してもらえます。

1.については私の場合、もともとソニー銀行に口座を持っていたので、ここに振りこんでもらいました。
振りこんでもらうにあたり、銀行から被仕向送金手数料を取られます。ソニー銀行の場合$25なので、もし最低額の$500だと5%を取られることになります。私の場合2回に分けて振り込まれましたが、初回は被仕向手数料無料キャンペーン中だったので、1%で済みました。

2.は書くべき項目をメールで教えてもらえますが、受け取り口座は自分で調べて書く必要があります。私の場合不備があったようで、メールで足りない情報を確認されました。
受け取り銀行のSWIFTコード、中継銀行がある場合は中継銀行のSWIFTコードも必須のようです。ソニー銀行の場合、必要な情報はこのページに書いてあります。


3.は、ぐぐればフォーマットのPDFや書き込み例が出てきますので、特に問題ないと思います。


そして、バグが修正されて振込み手続きがひと通り完了したら、バグ情報をBlogに書いたりつぶやいていいそうです。
また、Google Security Hall of Fameページ(セキュリティの殿堂ページ?)に名前が載ります。どう書くか、どこにリンクさせるかは指定した通りにやってもらえました。

報奨を受け取られた他の方のご意見おまちしております。