Webセキュリティ 情報工学専攻 1年 赤木里騎 P226~241.

Slides:



Advertisements
Similar presentations
Integrated Personal Page C05823 森本万里子 C05829 西山礼恵 C05899 高木華子.
Advertisements

Copyright © Ariel Networks, Inc. AJAX 勉強会 アリエル・ネットワーク株式会社.
Nov Yosuke HASEGAWA #owaspjapan. OWASP Japan Local Chapter Meeting #8 #owaspjapan 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー 技術顧問  Microsoft.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
情報セキュリティ 第11回:2005年6月24日(金)   . 2 本日学ぶこと サーバサイドセキュリティ  Webサーバのセキュリティ 暗号化通信(SSL/TLS),ユーザ認証,アクセス 制御  不正な入力への対応 SQL インジェクション クロスサイトスクリプティング バッファオーバーラン.
OWL-Sを用いたWebアプリケーションの検査と生成
RailsによるAjaxの利用 回生 小野 実.
IIS 4.0で開発をするコツ Webアプリケーション構築.
WWW のおはなし 神戸大学理学部地球惑星科学科 4 回生 佐伯 拓郎 (地球および惑星大気科学研究室) 藤田 哲也 (宇宙物理学研究室)
情報基礎A 情報科学研究科 徳山 豪.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
HG/PscanServシリーズ Acrobatとなにが違うのか?
情報理工学部 情報システム工学科 3年 H 井奈波 和也
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
SQLの条件節が動的に構成されることを考慮した データベース接続APIの設計
下藤 弘丞 SecureWeblogの構築.
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
JPAを利用した RESTful Webサービスの開発
WEBから確認できる 駐車場管理システムについて
受動的攻撃について Eiji James Yoshida penetration technique research site
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
第14回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
ネット時代のセキュリティ2(脅威の例) 2SK 情報機器工学.
CGI Programming and Web Security
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
情報理工学部 情報システム工学科 4年 H 亀窪祐太 H 纐纈琢真
Phenixサーバ クラックまとめ.
「コンピュータと情報システム」 07章 インターネットとセキュリティ
第4回 個人の動画配信補足のためのWeb構築
Vulnerability of Cross-Site Scripting
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
Web App Semi 2008 #1 Web App Semi 2008 #1.
セキュリティ・チェックリスト解説 【5~10分】
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
第13回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
HTTPプロトコルとJSP (1) データベース論 第3回.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
HTTPプロトコル J2EE I 第7回 /
ネストした仮想化を用いた VMの安全な帯域外リモート管理
Day3 Day4 Day3 Day4.
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
情報セキュリティ読本 四訂版 - IT時代の危機管理入門 -
岡村耕二 サイバーセキュリティ Web セキュリティ 岡村耕二 情報ネットワーク.
データベース設計 第9回 Webインタフェースの作成(1)
第8章 Web技術とセキュリティ   岡本 好未.
2003年度 データベース論 安藤 友晴.
第2回 SQL インジェクション その攻撃と対処 NECラーニング 山崎 明子.
セキュリティ(6) 05A2013 大川内 斉.
対応可否 スキル一覧 株式会社エージェント 2015年10月7日 Ver.1.0.
インターネットにおける真に プライベートなネットワークの構築
セキュリティ 05A2013 大川内 斉.
PKI 情報工学専攻 1年 赤木里騎 P91~102.
日本郵便 「Web-EDI」利用ガイド (JP EDIシステム)
JavaScript プログラミング演習 - じゃんけんゲーム - 「ホームページを動的に制御したい…」
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 金子拓磨
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
データの改竄を防ぐ仕組み 2002/9/12 牧之内研究室「インターネット実習」Webページ
強制パススルー機構を用いた VMの安全な帯域外リモート管理
ユーザ認証の盗聴 2002/9/10 峯 肇史 牧之内研究室「インターネット実習」Webページ
Presentation transcript:

Webセキュリティ 情報工学専攻 1年 赤木里騎 P226~241

Webサーバー(Apacheやnginx) 8.4 SQLインジェクションとその対策 8.4.1 SQLインジェクションとは ②RDBMSとやりとり [SQL] select * from tableName; DBからデータを取得する DB PHP実行モジュール PHPプログラム ①検索を入力する 検索 Webサーバー(Apacheやnginx) OS

Webサーバー(Apacheやnginx) 8.4 SQLインジェクションとその対策 8.4.1 SQLインジェクションとは Formから送られて来るデータについてセキュリティ対策を行わないとすると, SQLを直接操作する文字列を入力することでデータを取得できる →SQLインジェクション ②RDBMSとやりとり [SQL] select * from tableName; DBからデータを取得する DB PHP実行モジュール PHPプログラム ①検索を入力する 検索 Webサーバー(Apacheやnginx) OS

8.4.1 SQLインジェクションとは SQLインジェクション3つの脅威 8.4 SQLインジェクションとその対策 機密情報の漏洩 DBのデータ全て抜き取られる危険性 重要情報の改竄 Webページを攻撃者の意図通りに書き換えることができる 認証処理のバイパス(不正な迂回) DBのIDとパスワードによる認証を回避することができる

8.4.2 SQLインジェクションの仕組み 8.4 SQLインジェクションとその対策 RDBMS taro 検索 Webサーバー ユーザー名 ①https://任意のサイト/search.php?username=taro taro 検索 ユーザー名

8.4.2 SQLインジェクションの仕組み 8.4 SQLインジェクションとその対策 RDBMS taro 検索 Webサーバー ユーザー名 Webサーバーは「taro」を取り出し,SQL文を発行し,RDBMSへ RDBMS ①https://任意のサイト/search.php?username=taro taro 検索 ②SELECT * FROM users WHERE id=‘taro’; ユーザー名

8.4.2 SQLインジェクションの仕組み 8.4 SQLインジェクションとその対策 RDBMS taro 検索 Webサーバー ユーザー名 Webサーバーは「taro」を取り出し,SQL文を発行し,RDBMSへ RDBMSは受け取ったSQL文を実行して,結果をWebサーバーに返す RDBMS ①https://任意のサイト/search.php?username=taro taro 検索 ②SELECT * FROM users WHERE id=‘taro’; ユーザー名 ③

8.4.2 SQLインジェクションの仕組み 8.4 SQLインジェクションとその対策 RDBMS taro 検索 Webサーバー ユーザー名 Webサーバーは「taro」を取り出し,SQL文を発行し,RDBMSへ RDBMSは受け取ったSQL文を実行して,結果をWebサーバーに返す 受け取った結果からWebサーバーはHTMLページを構成し,Webブラウザで表示する RDBMS ①https://任意のサイト/search.php?username=taro taro 検索 ②SELECT * FROM users WHERE id=‘taro’; ユーザー名 ③ ④

8.4.2 SQLインジェクションの仕組み 8.4 SQLインジェクションとその対策 RDBMS SQLインジェクション攻撃の場合 検索 Webサーバー SQLインジェクション攻撃の場合 利用者はユーザー名(taro’ or ‘A’ = ‘A’)を入力すると,Webサーバーへと送信される Webサーバーは「taro‘ or ‘A’ = ‘A’」を取り出し,SQL文を発行し,RDBMSへ RDBMSは受け取ったSQL文を実行して,結果をWebサーバーに返す 受け取った結果からWebサーバーはHTMLページを構成し,Webブラウザで表示する ※ただし,SQL文の実行結果は,「or ‘A’ = ‘A’」があるため,usersテーブから全てのデータを取得することができる. →結果的に全ユーザー情報がブラウザに表示されてしまう. RDBMS ①https://任意のサイト/search.php?username=taro’ or ‘A’ = ‘A’ ②SELECT * FROM users WHERE id=‘taro’ or ‘A’ = ‘A’; 検索 ユーザー名 ③ Taro ‘ or ‘A’ = ’A’ ④

8.4.3 SQLインジェクションの対策 SQLインジェクション脆弱性の原因 SQLインジェクション脆弱性の対策 Webサーバー作成者の意図せぬ値であること SQLインジェクション脆弱性の対策 プレースホルダによるSQL文を組み立てる方法(バインドメカニズム の利用) Webサーバー側でSQL文を組み立てる際にエスケープ処理を実施する

8.4.3 SQLインジェクションの対策 バインドメカニズムの利用 8.4 SQLインジェクションとその対策 文字列として認識される. 検索 ユーザー名 taro ‘ or ‘A’ = ’A’ 対策なし: SELECT * FROM users WHERE id=‘taro’ or ‘A’ = ‘A’; バインドメカニズム利用: SELECT * FROM users WHERE id=‘taro’ or ‘A’ = ‘A’’; 文字列として認識される. プリアドステートメント(SQL文の雛形)に バインド(割り当て)することからバインド メカニズムと呼ばれている.

8.4.3 SQLインジェクションの対策 エスケープ処理の実施 8.4 SQLインジェクションとその対策 検索 ユーザー名 taro ‘ or ‘A’ = ’A’ 対策なし: SELECT * FROM users WHERE id=‘taro’ or ‘A’ = ‘A’; エスケープ処理: SELECT * FROM users WHERE id=‘taro’’ or ‘’A’’ = ‘’A’’; 変数中の特殊文字を普通の文字列として認識させる. WebサーバーからDBにSQL文を作成する直前に言語レベルで エスケープさせられる. 例:PHPの場合はhtmlspecialchar関数などがある →「”」は「"」となる.

8.5.1 CSRF攻撃とは Cross Site Request Forgeries攻撃とは 8.5 CSRF攻撃とその対策 攻撃者が用意したサイトの閲覧中に利用者の意図関係なく,別のサイ ト上で何らかの操作を行わせる攻撃のこと [例] 会員制サイトの退会処理 会員制サイトへの意図しない書き込み Webインターフェースを持つ機器の設定変更 ※XSSやSQLインジェクションのように直接的に機密情報を盗み出す訳 ではないことに注意.意図せぬ処理がなされることが問題.

8.5.2 CSRF攻撃の仕組み 正常な動作 8.5 CSRF攻撃とその対策 https://会員制サイト/ 検索 ID: Pass: ①会員制サイトへのログイン ②Webページのデータ送信 ③会員制サイトからのログアウト

8.5.2 CSRF攻撃の仕組み CSRF攻撃 8.5 CSRF攻撃とその対策 罠サイト https://会員制サイト/ 検索 ID: Pass: ①会員制サイトへのログイン ②クッキーの送信 ③罠サイトへの誘導 ④悪意あるアクションを伴うWebページ ④で会員制サイトへの退会処理のFormを作成し,ユーザーのそのサイトのクッキーのセッションIDを保持したまま罠サイトで入力を行うと退会処理が実行されてしまう. ⑤クッキー付きで意図せぬ操作が伴うアクセス

8.5.3 CSRFの対策 対策1 8.5 CSRF攻撃とその対策 罠サイト https://会員制サイト/ 検索 ※秘密情報がないので ID: Pass: ①会員制サイトへのログイン ②各ページに埋め込むための秘密情報を渡す ③罠サイトへの誘導 ※秘密情報がないので 正規の入力としない ※通信はSSL/TLSによ る暗号化が施されてい るとする ④悪意あるアクションを伴うWebページ ⑤悪意あるアクション(秘密情報なし)

8.5.3 CSRFの対策 対策2 8.5 CSRF攻撃とその対策 罠サイト https://会員制サイト/ 検索 ※意図せぬ処理が ID: Pass: ①会員制サイトへのログイン ②クッキーの送信 ③罠サイトへの誘導 ④悪意あるアクションを伴うWebページ ⑤悪意あるアクション ※意図せぬ処理が なされることを防ぐ. ⑥操作の確認とパスワードの入力を求めるページ

8.5.3 CSRFの対策 対策3 8.5 CSRF攻撃とその対策 罠サイト https://会員制サイト/ 検索 ID: Pass: ①会員制サイトへのログイン ②クッキーの送信 ③罠サイトへの誘導 退会処理には同会員制サイトからしかたどり着かないはずなので,直前にどのサイトにいたのかをチェックすれば良い. ※Refererヘッダを送り出さないWebブラウザを利用していたり,Refererヘッダを取り除くプロキシを利用していることがあるため注意 ④悪意あるアクションを伴うWebページ ⑤悪意あるアクション ※Refererヘッダを用いて,直前のページを確認

8.6.1 Web2.0のセキュリティ Web2.0はAjaxに代表されるような行動な技術の集合体 オライリーが提唱 [従来] [Web2.0] Webページは静的で単純だったため, セキュリティへの対処はWebサーバや そのOSなどの,限定的な範囲だった. サーバ側だけの開発から,クライアント側のWebブラウザ上のコードと合わせた開発が当たり前になっている. 結果的には,サーバ側だけでなく,Webブラウザ側にも脆弱性が入り込みやすくなっている.

8.6.2 DOM Based XSS DOMを通じたHTML操作の結果として,意図せぬスクリプトの 実行やそれを許す脆弱性を指す [原因] 8.6 Web2.0技術のセキュリティ 8.6.2 DOM Based XSS DOMを通じたHTML操作の結果として,意図せぬスクリプトの 実行やそれを許す脆弱性を指す [原因] JavaScriptによるWebページへの出力処理に不備 →意図しないスクリプトの埋め込みやHTMLタグの挿入を防ぐ JavaScriptライブラリに起因するケース →JavaScriptライブラリの更新

8.6.2 DOM Based XSS DOMによる動的なブラウザの表示情報更新 8.6 Web2.0技術のセキュリティ 8.6.2 DOM Based XSS DOMによる動的なブラウザの表示情報更新 document.write(data)はwebページにリロードなしで動的 に追加 攻撃のためのスクリプトを含むデータが悪意あるwebサイト からdataに格納 DOMを用いた攻撃が成立する可能性 [例] data=“<script>alert(document.cookie);</script>” ※ユーザのクッキーをアラートにより表示させる

8.6.2 DOM Based XSS eval()を用いた動的なスクリプトの実行 [例] 8.6 Web2.0技術のセキュリティ 8.6.2 DOM Based XSS eval()を用いた動的なスクリプトの実行 [例] http.onreadystatechange = function () { if (http.readyState == 4){ var response = http.responseText; eval(data); } ※data=delete_files()で,data変数に対してエスケープ処理を行なってい ない場合,文字列を実行し,重要なファイルが削除される可能性がある.

8.6.3 同一生成元ポリシー 8.6 Web2.0技術のセキュリティ http://a.example.com/ ケースA ①メインコンテンツのロード ②XHRリクエスト ③レスポンス ②’XHRリクエスト ③’レスポンス ケースB http://b.example.jp/

8.6.3 同一生成元ポリシー http://www.example.com/dir/page.htmlと同一オリジンと みなすかどうか 8.6 Web2.0技術のセキュリティ 8.6.3 同一生成元ポリシー http://www.example.com/dir/page.htmlと同一オリジンと みなすかどうか 対象となるドメイン 説明 理由 判定 http://www.example.com/dir/page.html 全く同じ 同じプロトコル・ホスト ◯ http://www.example.com/dir2/other.html ディレクトリが違う http://www.example.com:81/dir/other.html ポートが違う × https://www.example.com/dir/other.html SSL通信 プロトコルが違う http://en.example.com/dir/other.html URIが違う ドメインが違う http://example.com/dir/other.html http://v2.www.example.com/dir/other.html

8.6.3 同一生成元ポリシー 8.6 Web2.0技術のセキュリティ http://a.example.com/ クロスオリジンでも一定の条件で通信を可能とするXHR2という技術が利用されている ①メインコンテンツのロード ②XHRリクエスト ③レスポンス レスポンスに含まれるヘッダ Access-Control-Allow-Origin: http://a.example.com/ http://b.example.jp/

セキュリティーニュース Google Chromeの不正な拡張機能、大手組織を含む50万 ユーザーが利用 http://www.itmedia.co.jp/news/articles/1801/18/news060.html https://support.google.com/chrome/answer/2765944?co=GENIE.Platform%3DDesktop&hl=ja