- PR -

Web・DBの同居について

投稿者投稿内容
うに
会議室デビュー日: 2007/03/02
投稿数: 4
投稿日時: 2007-03-03 21:29
すみません、返答・お礼が遅れました。

>> かつのりさん
やはりDB/Webでサーバを分けても、Webが乗っ取られる前提ならば
DBだって安全では無くなりますよね。
ソース・設定ファイル等を見てDB操作されたりとか。
ただそれ以外に実は深い理由があったりするのかな…?と、不安でして。

>> ちゃっぴさん
一応不正入力対策や必要十分の権限の付与等は行っては居る…のですが
バッファオーバーフローについて、きちんと考えていませんでした。
本件のWebアプリはPHPで書き直ししているのですが、真面目に調べてみると
結構ありますね…脆弱性。
これまで軽く考えてましたので、これを機に色々と再検討する事にします。

> kaz
処理性能と…拡張性、ですね。
確かに分かれていると色々と都合良いですね。
前の会社ではやはり主に負荷の面・管理の面から分けていました。
いざ構成変更等をする際に困らない為に、色々考え直してみます。


> All
いろいろな意見ありがとうございます。
自前でサーバ構成の設計からするのは初めてで、金の無さも相まって
悩んでいましたが、だいぶスッキリしました。
もしまたスレ立てした時には、よろしくお願いします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-03-03 23:58
引用:

かつのりさんの書き込み (2007-03-03 19:48) より:
私が言いたかったのは、
WEBサーバが乗っ取られれば、WEBサーバの権限で、
分離しているDBを読み出せるのでは。
ということです。



それは、Web server 側で DB への access 制御を管理している場合ですよね?
そういう構成をとらなければいいだけでは?
うに
会議室デビュー日: 2007/03/02
投稿数: 4
投稿日時: 2007-03-04 00:42
引用:

ちゃっぴさんの書き込み (2007-03-03 23:58) より:
引用:

かつのりさんの書き込み (2007-03-03 19:48) より:
私が言いたかったのは、
WEBサーバが乗っ取られれば、WEBサーバの権限で、
分離しているDBを読み出せるのでは。
ということです。



それは、Web server 側で DB への access 制御を管理している場合ですよね?
そういう構成をとらなければいいだけでは?



横槍ですみませんが、では逆にWeb側からのDBへのアクセスが
得られない構成とはどの様なものでしょうか?
アプリ側がDBに対して読み取り専用の権限のみを持つのなら別ですけれども。
どちらにしろ「本来の利用者の権限」を越えるDBデータの読み取りは可能になってしまいます。

DBへの接続情報はWeb側のソースから探索可能ですし、Web側からの探索が不可能な
接続情報の保持って出来るのでしょうか?(それはそれでかなり興味があります)
……と、こういうことでは無いでしょうか。


また、本件の場合はDB/Web共に1アプリケーションが占有していますので
1DBMS内の他DBへのアクセスは考慮しなくて良いと思います。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-03-04 00:45
例えば、WEBサーバ上にDBアクセスするようなスクリプトを書き込まれたら、
いくら分離したってWEBサーバ経由でDBを読めるじゃないですか?
そもそもWEBアプリ向けにDBの口を開いているわけですから。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-03-04 01:05
DB に接続する場合、普通は接続するための資格情報(通常は、account と password になるわけですが)を必要とされますね。

で、その資格情報をどこで管理するか?で分かれるわけですが、

一つ目の方法としては、Web server 側で管理するというのがあります。
この状態ですと、Web server 側にその資格情報が保存されるわけですから、Web server を乗っ取られると DB への攻撃は成功するでしょう。

もう一つの方法として、Web server 側で資格情報を全く管理せずに、user の入力で行うという方法があるでしょう。
この場合には、Web server 上に資格情報が保存されていないのですから、たとえ Web server が乗っ取られたとしても、DB への攻撃は成功しないでしょう。
うに
会議室デビュー日: 2007/03/02
投稿数: 4
投稿日時: 2007-03-04 01:25
引用:

もう一つの方法として、Web server 側で資格情報を全く管理せずに、user の入力で行うという方法があるでしょう。
この場合には、Web server 上に資格情報が保存されていないのですから、たとえ Web server が乗っ取られたとしても、DB への攻撃は成功しないでしょう。



すみません、ここの所理解出来ないのですが
上構成の場合、ID/Pwd入力のタイミングはどうなるのでしょう?
・Apache等のWebサービスを起動するときに、入力する
・Webサービス起動後にアプリ内等で入力 ...等

また、DBへの接続自体は…
・入力された資格情報をメモリ等に保持し、connectする度にそれを使用
・視覚情報を入力されたタイミングで、初めてDBとの接続を確立、以後その接続を使い続ける ...等

こんな感じになるのでしょうか?
こう言う事って、どう言った形で実現するのでしょうか。
また、運用上、例えば使用リソース・処理性能等の面で問題等無いのでしょうか。
// 本件の場合、リソースとしては余っているわけですが。


現時点での疑問はこれらに加え、以下の事柄もあります。
・例えばWebサーバ配下に、使用DB内の全てのレコードを取得しそれを表示するスクリプトを設置、
 それをHTTP経由で見れば情報が不正に取得できる、或いは全て削除するスクリプトを
 設置し同じくHTTP経由で閲覧・実行すれば攻撃可能では無いか
どちらにせよ、侵入から不正操作までの時間は大幅に減少させられる事は間違い無さそうですね。


質問ばかりになってしまいましたが、非常に興味がありまして…ご容赦下さい。
スレが長くなってしまいましたが、もう少々お付き合いお願いします。
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2007-03-04 03:34
引用:
ちゃっぴさんの書き込み (2007-03-04 01:05) より:

もう一つの方法として、Web server 側で資格情報を全く管理せずに、user の入力で行うという方法があるでしょう。
この場合には、Web server 上に資格情報が保存されていないのですから、たとえ Web server が乗っ取られたとしても、DB への攻撃は成功しないでしょう。



Web server が乗っ取られれば、DB にアクセスするルーチンを見たり
それを利用するファイルを置いたり出来てしまいますから、このことで
DB への攻撃が出来なくなるとは言い切れないと思います。

ですがこの方法も、被害が DB まで及ぶ時間を遅らせる事が
できるのでセキュリティ的に有効ではあると思います。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2007-03-04 04:13
引用:

ちゃっぴさんの書き込み (2007-03-04 01:05) より:
もう一つの方法として、Web server 側で資格情報を全く管理せずに、user の入力で行うという方法があるでしょう。
この場合には、Web server 上に資格情報が保存されていないのですから、たとえ Web server が乗っ取られたとしても、DB への攻撃は成功しないでしょう。



DBへの接続情報をユーザー入力に任せる場合、何らかの制御をかけておかないと、
大変な事がおきそうですね。管理者ユーザーで接続されたりとか。

提供しているサービスによって採用できる場合とできない場合があるかと思います。
今回の場合、第三者に対して提供するサービス、とのことですので上記のような対応は
むずかしいかもしれませんね。

スキルアップ/キャリアアップ(JOB@IT)