namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Security Considerations (Re: Enkai at Hamamatsu)



>> 昨日は京都の Linux Conference に参加しました。印象に残った点をいく
>> つか。
>
>某 Real な実況中継で見てました ;-)

その中継を担当されていた一人があらきさんです。ひさしぶりにお会いし
ました。以前に会ったときにはとてもお世話になったものです :-)。


>>   * セキュリティ関連の文書化をあらき@NAISTさんから提案された
>
>聞いていて「ソースがあるんだから気になるなら自分で調べて contribute
>すればいいのに」とか思ってました。

いやまあ提案してもらうだけでも充分ありがたいです。そのうち文書にま
とめます。mknmz はいいとして namazu.cgi は、ぱっと思いつくかぎり

  * バッファが溢れる可能性は否定できない[1]
  * root で動かすのはやめましょう (当然だけど)
  * setuid するのもやめましょう
  * system(3) は使っていない
  * v1.2.0.2以降の namazu.cgi は外部コマンド (kakasi/chasen) を呼
    び出さなくなった (fork, execも行なわない)
  * NMZ.slog への出力はロックを行なっていない
    (flock(2) でやればいいんだけど、 Win32 などでも動くのかな?)
  * CGIでは検索結果の同時出力数に制限をかけている (100件)
  * 同時に検索できるインデックスの数に制限をかけている (64個)
  * 検索は遅くても数秒程度で終わる (正規表現が一番遅い)
  * 無限ループは起こらないはず (100%とは言えません)
  * 検索中に接続を切られるとどうなるの?
    -> Apache ではその瞬間に kill されるようです
  * まずい点をみつけたら私までこっそり教えてください
  * できるだけ新しいものを使ってください

といったあたりを明確にする必要がありそうです。幸いにして今のところ
セキュリティの問題を指摘されたことはないのでそれなりに安全だとは思っ
てはいます。確実に安全だとは言えませんが。

1.のバッファが溢れる可能性については受け取るクエリーの長さを 512
byte くらいに制限すればほぼゼロに近づくことに (現状でも考慮はして
いますが) いま気づきました 。 v1.3.0.1 ではそうします。来週中には
リリースします (18日までの予定だったのだが)。

ところで、 CGI が nobody などの (root でない) 権限で動いているとき、
バッファを溢れさすことでどの程度の悪さができるのかな?


P.S. 

他にはソフトウェア特許についての質問があったけど、それは私などでは
なく別の建物にいた RMS に訊くべきでしょう ;-)。

# ちなみに私は GAWK の本を買ってサインを貰いました

-- Satoru Takabayashi