[hackers-jp: 224] COPYの権限

Yasuo Ohgaki yohgaki @ ohgaki.net
2007年 4月 5日 (木) 13:49:58 JST


大垣です。

GRANT/REVOKEでCOPY文の利用に制限を付けることが可能か、本家hackersに
聞いてみようと思っています。その前に皆さんのご意見と聞いてみたいと
思ってメールしています。

COPY文はSTDINからの入力も可能であるためWeb環境などで実行すると永遠
に待ち続けることになります。Webサーバを共有している環境では簡単に
DoSを行うことができます。
# わざとSQLインジェクションに脆弱にしておくなど。
# わざとでなくてもSQLインジェクションに脆弱であれば
# 攻撃可能ですが...

GRANT/REVOKEでCOPY文へのアクセス制限ができればこのような単純なDoSを
防ぐ事が可能になります。

問題は次の2つだと考えています。

1) COPY文へのアクセス制限はDBオブジェクトでなくDBステートメント
への制限でTABLE,FUNCTIONなどの制限と異なる
2)PostgreSQLは、MySQLと異なり、使えるだけのリソースをユーザに開放
するようになっている(MySQLはCPU、ディスク利用量などを細かく制限可)

1)は技術的な問題です。DBオブジェクトでなくステートメントに制限を
つけるのはどうか?と言う点が議論になるのではと思っています。制限を
することは可能ですがあまり奇麗な形で実装できないのではないかと推測
しています。

2)はポリシーの問題です。COPY FROM STDINのようなDoSに使えるSQL文を
このケースだけ制限するのはどうか?といった部分が議論になると思います。
別にCOPYを使わなくてもSQL文が使えればいくらでもDoSが行えるSQL文を
作れる、と言う指摘もあると思います。


COPY文の利用制限に関して、技術的な実現性、ポリシー的な問題などに
ついて皆さんのコメントを頂ければ助かります。

-- 
Yasuo Ohgaki : yohgaki @ ohgaki.net : http://www.ohgaki.net/




hackers-jp メーリングリストの案内