Presentation is loading. Please wait.

Presentation is loading. Please wait.

情報セキュリティ 第11回:2006年6月29日(金)   . 2 本日学ぶこと サーバサイドセキュリティ  Webサーバのセキュリティ ユーザ認証,アクセス制御  不正な入力への対応 SQL インジェクション クロスサイトスクリプティング バッファオーバーラン  ファイアウォール 

Similar presentations


Presentation on theme: "情報セキュリティ 第11回:2006年6月29日(金)   . 2 本日学ぶこと サーバサイドセキュリティ  Webサーバのセキュリティ ユーザ認証,アクセス制御  不正な入力への対応 SQL インジェクション クロスサイトスクリプティング バッファオーバーラン  ファイアウォール "— Presentation transcript:

1 情報セキュリティ 第11回:2006年6月29日(金)   

2 2 本日学ぶこと サーバサイドセキュリティ  Webサーバのセキュリティ ユーザ認証,アクセス制御  不正な入力への対応 SQL インジェクション クロスサイトスクリプティング バッファオーバーラン  ファイアウォール  セキュア OS 暗号通信がセキュリティのすべてではない 不正な入力のパターンを知り,それを防止する 機密性と可用性のバランスをとるには,アクセス制限

3 3 なぜ,サーバサイドのセキュリティを考えるのか サーバが攻撃されると …  ネットワークが機能しなくなる サービス(顧客など,外からのアクセス)に対応できな い! LAN の外にアクセスできない!  知らないうちに加害者になることも 踏み台攻撃, DDoS ( Distributed Denial of Service )攻 撃  報道などにより,社会的信頼を低下する

4 4 典型的なWebサーバ環境 クライアント 入力 We b サー バ 問い合わせ データベー スサーバ PC ( Window s) UN IX Apac he Postg reSQL MyS QL Ora cle SQ L 検索結果 HT TP Ser vle t CGI SS L 出力(HT ML,画像 など)

5 5 SSL利用の留意点 サーバ証明書は自作できるが,その分,信頼性がない  「オレオレ証明書」 サーバ認証とクライアント認証はできても,ユーザ認証 はしていない

6 6 Webアクセスでのアクセス制御・ユーザ認証 アクセス制御やユーザ認証をしていないと …  だれでもコンテンツにアクセス可能  Googlebot (crawler) などがコンテンツを取っていくかも 「リンクを張ってないから」は言い訳にならない crawler

7 7 Webアクセスでのユーザ認証法( Apache ) Basic 認証  ユーザ名とパスワードを指定すればアクセス可能になる  不特定のアクセスを排除する  パスワードは暗号化されない  認証後の通信も暗号化されない Digest 認証  パスワードは暗号化される  認証後の通信は暗号化されない パスワードファイルをサーバに設置する  /etc/passwd と別  Web アクセスで見えないところに置く!

8 8 アクセス制御 どこからのアクセスを許可・拒否するか サーバ内のどの情報へのアクセスを許可・拒否するか 設定ファイル( Apache )  httpd.conf, apache.conf など  編集には一般に root 権限が必要 order deny,allow deny from all allow from.wakayama-u.ac.jp allow from 192.168.0.0/255.255.255.0 アクセス制限の記述例 対象ディレクト リ まず拒否 許可する 接続元ホスト 名 許可する 接続元 IP アドレ ス

9 9 Webアクセスでの不正な入力 ディレクトリトラバーサル SQL インジェクション クロスサイトスクリプティング バッファオーバーラン

10 10 ディレクトリトラバーサル CGIを使って, Web アクセスで通常見ることのできな いファイルが見えてしまう  対策 ファイル名を指定するような入力フォームは作らない 「../ 」といった入力を適切に検出し,エラーとして扱う ファイルを開く前に,開いていいファイルか,そのフル パスから判断する( ×/etc/passwd, ○/var/www/data/file1 )

11 11 SQL インジェクション 期待される入力と SQL 文  SELECT count(*) FROM users WHERE username='takehiko' AND password='abcd'; 悪意のある入力と SQL 文  SELECT count(*) FROM users WHERE username='takehiko' AND password='1' OR 'X'='X'; delete 文を埋め込んで,レ コードをすべて削除してしま うかも

12 12 SQL インジェクションへの対策 入力中の特殊な文字をエスケープする(サニタイジン グ)  「 ' 」 → 「 \' 」など プレースホルダ(準備済み SQL 文)を使用する  $sth = $dbh->prepare(q{ SELECT count(*) FROM users WHERE username=? AND password=? });  $sth->execute($username, $password);  サニタイジングは,安全に処理してくれるライブラリルー チン (先人の知恵)にお任せ Perlの コード例 SELECT count(*) FROM users WHERE username='takehiko' AND password='1\' OR \'X\'=\'X'; 上の例で $username が「 takehiko 」, $password が 「 1' OR 'X'='X 」なら …

13 13 クロスサイトスクリプティング XSS とも書く 問題(悪意)ある URL でアクセスすると, Cookie などブ ラウザの情報が漏洩することがある  アクセス先のホスト(Webサーバ)は,企業などで,悪 意はない ただし現在では,対策をしていないアプリケーションは 脆弱性があると言ってよい  URL に JavaScript のコードが埋め込まれていることが多い

14 14 クロスサイトスクリプティングへの対策 サーバ側  サニタイジング 「 」 → 「 > 」,「 " 」 → 「 " 」 など クライアント側  アクセスしようとする URL をよく確認する HTML メールはできれば使わない URL エンコーディング(「 %3C 」など)に注意

15 15 バッファオーバーラン 「バッファオーバーフロー」ともいう. C や C++ で,スタック上に確保した領域(配列など)の 範囲外に情報を書き込み,実行できてしまうことがある  Webサーバに限らず,クライアント PC などでも起こり得 る  Webサーバのログを見て,やたら長いパスでアクセスし ていれば,この攻撃を疑う 対策:  セキュリティ上問題のないバージョンのアプリケーション を使う  CGIなどを C か C++ で作る場合,範囲外にノーチェック で書き込める危険な関数( strcpy , sprintf など)は使わない

16 16 CGI プログラム作成時の注意点 CGI では,リクエストに応じて HTTP サーバがファイル を実行し,その出力をクライアントに送る.  静的なアクセスでは,ファイルそのものを送る. CGI プログラムの中に,秘密にすべき値(パスワードな ど)を格納してはならない.  サーバ設定ミスにより, CGI プログラムそのものが送られ ることに対処 サーバ内部で使用するファイルは, Web アクセスで見え ない位置(ディレクトリ上)に置く.

17 17 ファイアウォール ファイアウォールとは  組織内のコンピュータネットワークへ外部から侵入(不正 アクセス)されるのを防ぐシステム パケットフィルタリングとは  送られてきたパケットを検査して,通過させるかどうか判 断する,ファイアウォールの一つの機能 パケットヘッダに含まれている情報:プロトコル,送信 元・先の IP アドレス,ポート番号など Linux でパケットフィルタリングをするには …iptables

18 18 iptables Linux でのパケットフィルタリングツール  どこからのアクセスを許可・拒否するか  どのインタフェースのアクセスを許可・拒否するか  どのポート番号のアクセスを許可・拒否するか NAT (Network Address Transformation) の機能もある OK NG

19 19 iptables の利用方法の基本 外からのアクセス (INPUT) は基本的に DROP ,必要に応 じて ACCEPT lo (localhost に関するインタフェース)は ACCEPT  インタフェースは /sbin/ifconfig を実行すればわかる LAN など,信頼できるネットワークからのアクセスはす べて ACCEPT でもよい 外からのアクセスに必要最小限なポートも ACCEPT  ssh (22) , http (80) , https (443), smtp (25) など  一律 ACCEPT ではなく,本当に必要なもののみにする! ACCEPT のルールに当てはまらないものは, LOG をとる のもよい 落とす 通す

20 20 ブロードバンドルータはセキュリティに役立つ? 手っ取り早く,外からのアクセスを遮断するという点で, 役立つ  PC ( Windows でも PC-UNIX でも)をインターネットに直 結するのは,攻撃やウイルス感染のもと!  ブロードバンドルータの LAN 内でウイルスが蔓延したり, 外に発したりするかも 利用すべき機能,利用しないほうがいい機能  外からのアクセスを受け入れたいなら,「バーチャルサー バ」などの機能を使う  DMZ (DeMilitarized Zone) 機能はなるべく使わない.使う ときは,アクセス先計算機のファイアウォールをきちんと 設定してから.

21 21 UNIX の安全性 root は全能の神 ⇒ root 権限を奪われる(権限昇格)と,何でもされてし まう セキュアOS  既存の OS と互換性は保ちつつ,神のような強大な権限を なくす  「強制アクセス制御( Mandatory Access Control, MAC )」と 「最小特権」を持つ Linux におけるセキュアOS  SELinux (Security Enhanced Linux)  LIDS (Linux Intrusion Ditection System)

22 22 まとめ サーバの安全性には最大の注意を払う サーバのセキュリティを知ることで分かる「パソコンの セキュリティ」もある


Download ppt "情報セキュリティ 第11回:2006年6月29日(金)   . 2 本日学ぶこと サーバサイドセキュリティ  Webサーバのセキュリティ ユーザ認証,アクセス制御  不正な入力への対応 SQL インジェクション クロスサイトスクリプティング バッファオーバーラン  ファイアウォール "

Similar presentations


Ads by Google