MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[1614]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(1614番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: SQL インジェクション攻撃について、解説しました

Date: Tue, 9 Aug 2005 10:07:20 +0900
From: "Akira Horikawa" <who@example.ne.jp>


堀川です、おはようございます


-----Original Message-----
From: Tadashi Nakamura [mailto:who@example.com]
Sent: Tuesday, August 09, 2005 7:50 AM
To: ML MSDE beg
Subject: [ml-msde-beg:01613] Fw: [ml-msde:01430] Re: SQL インジェクション攻
撃について、解説しました


> 「データベースサービスを一般アカウントで実行」
> 「sysadmin ログインアカウントではSQL文を実行」
> というのは具体的にはどういう環境で
> どういう操作を行うことなのでしょうか。

データベースサービスのアカウントとは、MSDEやSQLServerに
組み込まれている、
   「データベースサービス(サービス名:MSSQLSERVER)」
   「SQLServerAgentサービス(サービス名:SQLSERVERAGENT)」
などのサービスが、どのユーザ権限で動いているのかを定義します。

例えば一般ユーザアカウントで動いていれば、万が一、サービスに
欠陥があって、そのセキュリティホールを利用した攻撃を受けても
WindowsのOSに対しては、一般ユーザの権限で攻撃をしているので
NTFS等のセキュリティ機構で様々な防御が働きます。

ところが、ローカルシステムアカウント(Administratorに似ているが、
外部のネットワークアクセスは禁止されている。Linuxのrootで動いて
いるデーモンのような感じ)や明示的なAdministratorで動かしている
ときは、NTFS等のセキュリティ機構は、すべてパス(合格)するので
OSに対して、大変なダメージを与えます。

Q12,13
http://www.horikawa.ne.jp/msde/support/injection/injection-index.html
の例題はちょっと言葉が足りなかったので修正します。
これは、データベースサービスを「ローカルシステムアカウント」または
「Administrator」で動かしている場合に成功している攻撃です。

データベースサーバーのsysadmin権限でログインした人は、
そのデータベースサービスの実行アカウント者となって、Windowsの
OSに対して、様々な要求を発行できる権利を持っています。

ですから、データベースサービスが「ローカルシステムアカウント」や
「Administrator」で動いているときは、実質的にはそのコンピュータの
管理者として扱われます。

xp_cmdshellストアドプロシージャは、Windowsに対して様々な要求を
発行できる命令ですが、Windowsは、データベースサービスの
実行アカウント者の権限で、その要求に応えます


大多数のMSDEユーザは、サービスのアカウントの意識は欠如していると
思います
「ローカルシステムアカウント」や「Administrator」で動かしています。

またデータベースサーバーのセキュリティ計画を手抜きするため、saなどの
sysadmin権限でログインすることが多いです。

このような状態だと、MSDEの上で動いているデータベースアプリケーションが
攻撃されることによって、そのMSDEを動かしているWindows側に大きな
影響を及ぼすことが可能になります。


sysadmin権限は、データベースサーバー全体の管理者です。
データベースサーバーに格納された個々のデータベースに関するすべての
権限を有しています。
データベースサーバーとは、簡単に言えば、ファイルに格納されたデータに
過ぎません。そのようなファイルのデータを読み書きできる全能権限者です。

ところが、データベースサーバーとは一切の関係のない、windowsの他の
ファイルに関しては、読み書きすることは当然できません。
そこで、bulk insert命令などを実行したり、xp_cmdshell命令を実行したりして、
データベースサーバーのシステムから抜け出して、windowsに対して直接の
要求を依頼します。
そのときwindowsは、「お前は誰?何の権利があるの?」ってセキュリティの
チェックをします。
その基準が、サービスの実行アカウントです。

ですから、一般ユーザ権限でサービスを動かしていれば、Windowsに
対しては何の影響も与えることはありません。

ただsysadmin権限はデータベースサーバー内部の全能権限者ですから
データベースサーバー内部のセキュリティ計画は別途必要です。


------------------------------------
(株)日本技術ソフト開発
        堀川 明  (Akira Horikawa)
    08月09日(火曜日) 10時07分記
        mailto:who@example.ne.jp
        http://www.horikawa.ne.jp/msde/



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。