- 締切済み
データベースのログインユーザー名とパスワードが分からない状態でSQLイ
データベースのログインユーザー名とパスワードが分からない状態でSQLインジェクション攻撃は可能でしょうか サーバーの構成は以下の通りです ウィンドウズ2008サーバーR2のIIS7.0+SQLサーバ2008EXPRESS 以前win2000サーバーでウェブサイトを運営中コンテンツをごっそり抜かれてしまったことがあるので, 攻撃者はソース上からテーブル構造の知っていると考えられます。 現在テーブルに対してinsert処理もしくはUPDATE処理しているファイルは中国方面あるいはアジア圏のIPアドレスからは アクセスできないようにしており、403エラーが出るように設定していますので、ファイルに対してポストできないように なっているはずです。 この状態でテーブルへのスクリプトの書き込みは可能なのでしょうか 現在この状態でもスクリプトが書き込まれてしまいます。 仕方ないので、データベースのすべてのログインユーザーに対して書き込み・上書き権限を除外しました。 こうしたところ書き込みはなくなりました こうしてしまうと、商品情報などを登録するたびに、ユーザーに対して書き込み・上書き権限を与える必要があり、非常に生産性が悪い状態になってしまっています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ann_dv
- ベストアンサー率43% (528/1223)
IP指定でのアクセス拒否は、プロキシを経由すれば簡単に回避可能です。 また、BASIC認証はBASE64でユーザ名やパスワードがエンコードされます。 BASE64方式での認証は認証される時点でのパケットを傍受されれば、参考URLのようなアプリケーションで簡単にその中身を確認可能です。 SQLインジェクションを仕掛けるような技術力を持った攻撃者にとっては、それらのセキュリティ対策はザルと同然です。
- ann_dv
- ベストアンサー率43% (528/1223)
ご質問の内容を拝見すると、SQLインジェクションとは具体的にどのような手段で実施されるのかをご存知無いように見受けられます。 SQLインジェクションは、外部からの攻撃者が直接SQLを実行している訳ではありません。 実際に攻撃者が仕組んだスクリプトを実行しているのはWebアプリケーションを起動しているプロセスであり、攻撃者はWeb入力フォームの入力規則ルール等の穴を見つけ出してWebアプリケーション経由で任意のスクリプトを実行させるよう、入力フォームへ巧みにスクリプトを埋め込みます。 Webアプリケーションのプロセスは常にデータベースにログインしている状態ですから、当然ながら攻撃者はデータベースのユーザアカウントやパスワード等を事前に知っておく必要は全くありません。 改善すべきは権限の設定では無く、Webフォームからの入力をエスケープ文字に変換するとか、特殊文字を一切受け付けなくすると言った入力規則の厳密化が最優先の課題です。
お礼
ありがりがとうございます。大変勉強になりました。 データベースへの入力フォームは、フロントエンドには一切ないWEBサイトで ハックエンド管理画面しか存在ないのですが、 ここにもエスケープ処理しないといけないのですね。 。。
補足
ご回答ありがとうございます。 入力フォームファイル自体に対する攻撃者IPからのアクセス拒否(エラー403が出るようにするかもしくはベーシック認証をかける)してもダメなのでしょうか?