a blind SQL injection tool
http://sqlmap.sourceforge.net/
via http://kikuz0u.x0.com/td/?date=20070124#p03
メモメモ
Apache のログのアクセス権の分離
http://dsas.blog.klab.org/archives/50190732.html
http://openmya.hacker.jp/hasegawa/public/20061209/momiji.html
いや〜ため息がでるよね (^^;
エスケープだけしてれば、セキュリティ対策が万全になる訳ではないですよ
http://d.hatena.ne.jp/masakiti2005/20061129/1164811913
これからのプログラムの作り方 - 文字エンコーディング検証は必須
http://blog.ohgaki.net/index.php/yohgaki/2006/06/12/a_a_a_a_a_ra_ca_a_oa_pa_fa_ma_sa_sa_raf
via 忘れた…
データベースセキュリティガイドライン 第1.0版
http://www.db-security.org/report.html
via http://kikuz0u.x0.com/td/?date=20061109#p01
DNS逆引きチェックによるスパム対策は百害あって一利無し
http://neta.ywcafe.net/000395.html
まだまだ逆引きは健在らしい。登録することは welcome だけど、それをセキュリティの担保とするのは、まぁ、意味がないですなぁ……
http://kikuz0u.x0.com/td/?date=20060609#p04
BASE じゃなくて、Honeynet Security Console がお勧めらしい。
http://www.postgresql.org/docs/techdocs.50
via http://lwn.net/Articles/184760/rss
via http://traiss.tabesugi.net.nyud.net:8090/lwn.html
今日はこれで半日は潰れた……どうも単純なアップデートだと、アプリケーションによっては痛い目を見る気がします。
取るべき対策は
1. PostgreSQLサーバのアップデート
2. クライアント側のドライバのアップデート
3. いくつかのアプリでは、改修も必要
こんな感じでしょうか?
目を通しておくべきドキュメントは
http://www.postgresql.org/docs/techdocs.52
からリンクのある
FAQ
User's Guide
Technical Information on the Security Hole
の3つ。
このアップデートで、PostgreSQLサーバには
1. UTF-8, SJIS などマルチバイトなエンコードで、不正な文字コードをきちんとチェックするようになった。
2. default で、文字コードが SJIS, BIG5, GBK, GB1803, UHC の場合、エスケープ文字として "\" が使えなくした。
の2つの変更が加えられています。特に後者が曲者で、SJIS を使っており、なおかつエスケープ文字として "\" を利用しているようなアプリを書いてると、該当部分の書き直しが必要になるようです(あってるよね?)
ちなみに、このエスケープ文字の挙動に関しては
* backslash_quote = on : Allow \' always (old behavior; INSECURE
* backslash_quote = off : Reject \' always
* backslash_quote = safe_encoding : Allow \' if client_encoding is safe
こんな感じで、以前の挙動に戻せたりするらしい。ちなみに前記したように、default の挙動は
backslash_quote = safe_encoding
だそうです。
アプリが動かなくなった!とか、クライアント側のドライバのアップデートが抜けてた! とかありそうな話だ……
ちなみになぜマルチバイトエンコードを利用して、SQL Injection が可能となるのか? それについては、上でも挙げた
Technical Information on the Security Hole
に、非常に詳しく書いてあるので、ご一読をお奨めします。そっか表か……
第 4回セキュアOSカンファレンス
http://www.jssm.net/jssm/4secure-os/index.html
行きたいけど、ちょっとスケジュール的にきつそうだ(--;
http://www.cyberpolice.go.jp/server/rd_env/pdf/20060330_SQLInjection.pdf
via http://d.hatena.ne.jp/hanazukin/20060331#1143761163
IPA のドキュメントにも、どういう点に注意して Web アプリを書けば良いかが書いてあったけど、こっちは、もうちょっと具体的な攻撃手法について取り上げてある。あとでじっくり読もう。
Kazu さんが
http://www.mew.org/~kazu/proj/cipher/
で配布されている alpaca.el を使ってみる。gpg.el という名前で配布されていた時に試したことがあったんですが、いまいち使い方がよくわからず(動かず?)使用を断念。ふと思いだして、再度試してみることに。こいつは、".gpg" という拡張子の暗号ファイルを、平文ファイルのように扱えるらしい。使い方は簡単でダウンロードしたファイルを
# cp alpaca.el /usr/local/share/emacs/site-lisp/
以下を ~/.emacs に追加。
(autoload 'alpaca-after-find-file "alpaca" nil t)
(add-hook 'find-file-hooks 'alpaca-after-find-file)
あとは、
$ emacs hoge.gpg
と、普通のファイルのように編集してから、これまた普通のファイルのようにC-x C-s でファイルを保存しようとすると、パスフレーズを聞かれるので、適当なパスフレーズを入力すれば暗号ファイルとして保存されます。戻す時も、1度パスフレーズを聞かれるだけで、emacs を終了するまで、普通の平文ファイルとして扱えます。
これで管理すると、平文ファイルの消し忘れもないし、とっても便利 :-)
ただサイトの説明にもあるように、復号化された平文ファイルは、一時的に暗号ファイルと同じディレクトリに書き込まれます。このため、NFS などのネットワークファイルシステム上に置かれた暗号ファイルを直接編集しちゃだめなので、注意。