ウェブセキュリティ
-
Upload
florent-batard -
Category
Software
-
view
70 -
download
2
Transcript of ウェブセキュリティ
![Page 1: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/1.jpg)
Real Life Hacking
Hacking 101
1
![Page 2: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/2.jpg)
2
アジェンダ● 序論● 情報収集
● 間接 アクセス● 直接 アクセス
● システムのセキュリティ● 設定エラー● パスワードポリシー● パッチ
● Webセキュリティ
![Page 3: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/3.jpg)
3
ハッキングとは ?
開発者の予期せぬ方法でアプリケーションやシステムにアクセスすることである。
![Page 4: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/4.jpg)
4
攻撃手順情報収集
● 攻撃対象のシステムの情報を取得– 直接・間接 アクセス– フィンガープリント
● 攻撃手法● 脆弱性を発見する● 攻撃をするツールの選定● 攻撃の開始● 被害の拡散
![Page 5: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/5.jpg)
5
情報収集情報収集
• 間接 アクセス
• 直接 アクセス
• フィンガープリント
![Page 6: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/6.jpg)
6
情報収集● ハッキングの最初の段階は、情報収集を行うことある。
● 攻撃に使用できる情報をピックアップ– 誕生日、電話番号、勤務先、電話番号、メールアドレス
● 攻撃対象のサーバへ侵入するための情報を探す(例:ルータ、ゲートウェイ)
● サーバに進入するための情報を取得– (例:空きポート、ログインパスワード、使用ミドルウェアなど)
● 最も効果的な方法はソーシャル・エンジニアリング。– 対象者 (セキュリティ担当者など )にコンタクトを取り、機密情報を問い合わせる。(例:付箋に書かれたパスワード、電話による聞き出し)
![Page 7: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/7.jpg)
7
間接 アクセス● « Whois » DB
● 登録処理の際に用いられた管理者情報など、すべての情報にアクセスを行う
● 名前 , 住所 , 電話番号– ネットワークの情報
● DNS サーバ● ソーシャル・エンジニアリングをするためのメールアドレス
● 対象者の IP レンジ● これらの情報はすべて公開されているものである
![Page 8: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/8.jpg)
8
WHOIS (ツール)● « whois »のツール
● whois ドメイン名 か whois IP アドレス
Domain Information: [ ドメイン情報 ][Domain Name] COOKBIZ.JP
[ 登録者名 ] 藪ノ 賢次
[Registrant] kenji yabuno
[Name Server] ns-1253.awsdns-28.org[Name Server] ns-1824.awsdns-36.co.uk[Name Server] ns-412.awsdns-51.com[Name Server] ns-608.awsdns-12.net[Signing Key]
[ 登録年月日 ] 2007/12/11[ 有効期限 ] 2015/12/31[ 状態 ] Active[ 最終更新 ] 2015/01/01 01:05:11 (JST)
Contact Information: [ 公開連絡窓口][名前 ] 藪ノ 賢次[Name] kenji yabuno[Email] [email protected][Web Page] [郵便番号 ] 530-0012[住所 ] 大阪府大阪市北区芝田 2-7-18 恵比寿 AMビル7F[Postal Address] Ebisu AM Bldg7F 2-7-18 Shiba-ta Kita-ku Osaka-shi 5300012,Japan[電話番号 ] 06-6374-9912[FAX番号 ] 06-6131-6470
![Page 9: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/9.jpg)
9
直接 アクセス● セキュリティホールを探す方法
● ポートスキャン– 開いているポートの発見– いくつかのアクセス方法
● フィンガープリント– サービスに使用しているツール名 (apacheなど )– サービスツールのバージョン– OS
![Page 10: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/10.jpg)
10
Nmap scanning
● Nmapで表示されるフィンガープリント● Nmap -A IP (コマンド )
![Page 11: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/11.jpg)
11
その他の方法● SNMP(ネットワーク監視用のプロトコル)
● SNMP通信の発見– 対象マシンの情報を取得
● Netbios● Windows用の通信プロトコル
– ゲスト・ nobodyアカウントが有効になる場合がある● 共有フォルダの列挙● ユーザ /グループ /administratorの列挙
![Page 12: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/12.jpg)
12
ソーシャル・エンジニアリング● 機密情報を公開させる技術
● なりすまし電話をかける● 電話を受け取った人は、危険性を認識できていないことが多い .e.g 電話でwindowsを使っていると伝えてしまうが、それが危険だとは気づいていない。
● ほとんどの場合、有益な情報へアクセスする最も有効な手段となる。
● 会社の情報を守ることは難しい(全員、 ITリテラシーが高いわけではない)
![Page 13: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/13.jpg)
13
System vulnerabilities (セキュリティ・ホール )
• 設定ミス
• パスワード
• パッチ
![Page 14: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/14.jpg)
14
セキュリティ・ホールとは
– 設定ミス– デフォルト設定が残ったままの状態– 権限の低いタスクを実行するために、管理者権限を使用している
● 悪いパスワード例– デフォルト パスワード– 弱いパスワード eg abc, 123など
● 悪いパッチ例– 新しい脆弱性が存在するが、OSが対応していない。– サポートが切れたOSを使用している
● そのため簡単にハッキングができてしまう
![Page 15: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/15.jpg)
15
設定ミス● 開発用設定が、本番用成果物でも使われている
● 機器– アクセス制限の無い SNMP通信– 初回から設定されているパスワード
● アプリケーション– デフォルトパスワード– デバッグモードが有効のまま– アプリケーションの、サンプルソースから変更のないもの( e.g. ログインパスが test / test)
![Page 16: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/16.jpg)
16
パスワード● セキュリティシステムの大半は、パスワードがシンプルになるほど弱くなる
● システムが簡単なパスワードを受け入れる作りになっていれば , 簡単なパスワードを入力してしまいがちになってしまう .e.g) システムがパスワードの長さを指定しなければ、abcなど短いパスワードが使われてしまいがち. 記号を含めるとパスワードは強くなる .
● パスワードはアプリケーション内で暗号化されるべきである– ハッカーがDBに侵入した場合、暗号化されていなければ簡単にパスワードを抜き取られてしまう
– 暗号化しても、簡単なパスワードだとハッシュの逆引きで解析される。ソルトつきハッシュを使用するのがよい
– デモ● https://crackstation.net/● 711761afb4d338578b0de251c1a39b4d
![Page 17: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/17.jpg)
17
パスワード攻撃● 暗号化パスワードを平文に変換● Online
– Medusa(ツール名)– Hydra(ツール名)– ブルートフォース
● Offline– John The Ripper(ツール名)– Cain(ツール名)– L0phtcrack(ツール名)
● 早くて気づかれにくいが 常に可能ではない
![Page 18: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/18.jpg)
18
デモ 1
● 対象 : http://192.168.1.3
● 目的● ログイン後の画面へのアクセス権を得る● Medusa と 辞書 の組み合わせの実践
![Page 19: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/19.jpg)
19
パッチ● アップデートサービス
● 会社にセキュリティルールが必要である● 最新版のパッチはすべてのマシンに適応されているべきである
● 脆弱なマシンが一つでもあれば、社内ネットワーク全体の侵入口となりえてしまう
● 脆弱なマシンはハッキングするのに最適なため、最初の対象となってしまう
![Page 20: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/20.jpg)
20
問題● 脆弱性情報は公開されていることが多い
● 誰でもアクセスすることができる● 脆弱性情報を使って、アクセス先の情報を取得する自動スクリプトが使える
● ゼロデイ攻撃● 脆弱性の利用
● 脆弱性を通してセキュリティホールを見つけることができる
● Metasploitを使って脆弱性を利用できる。● 結果的に、対象をコントロールできるようになる
![Page 21: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/21.jpg)
21
デモ 2
● 対象 : 192.168.1.4
– 目的– Discover information about the target– Compromise entirely the target– Windows 2003 Server SP1– CVE : MS08_67 vulnerability
![Page 22: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/22.jpg)
22
アプリケーションの脆弱性
• Cross-Site Scripting
• SQL Injection
![Page 23: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/23.jpg)
23
アプリケーションの脆弱性● 対象となるアプリケーションの特徴
● システム管理者の管理不足● 開発時の不具合、セキュリティテスト不足
● ハッカーがアプリケーションの動作を変更できる
● 開発者の予期せぬアプリケーションの使用方法を行う
● WEBアプリケーションでは頻繁に起こっている
![Page 24: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/24.jpg)
24
パラメータ
● アプリケーションメソッド :● GET : URLにパラメータを付加
– search.php?query=toto● POST : メッセージの bodyにパラメータを付加
– Usually for forms submission● パラメータを使って攻撃ができてしまう →
BurpSuite
![Page 25: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/25.jpg)
25
XSS
● ブラウザ上で任意の JavaScriptコードが実行される
● ユーザの入力に応じて、クライアントサイドのソースコードが実行される際に問題が発生する
● ハッカーがwebページ内にHTML/Javascriptを埋め込むことができる
– Webページの画面をコントロール● 画像表示● JavaScriptの実行
![Page 26: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/26.jpg)
26
デモ 3
● 対象 : http://192.168.1.2/7/
– 目的– Display Cookbiz in a popup message
<form action="index.php?p=search" method="GET"><input type="text" name="query" style="width: 250px;"/><input type="submit" value="Search"/>
</form><?php
if(isset($_GET['query']))echo "0 Results for <b>" .$_GET['query']. "</b>!";
?>
![Page 27: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/27.jpg)
27
XSS -例
● 脆弱なソースコード
● 正常動作 異常動作
![Page 28: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/28.jpg)
28
SQL インジェクション● SQLクエリ
● SELECT文 :– SELECT column_name FROM table WHERE condition
● 例– SELECT contenu FROM news WHERE id=1
● データベースの情報を取得するために、Webサイトの脆弱性を利用する
![Page 29: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/29.jpg)
29
SQL Injection examples
● 正常動作 : ● http://site/news.php?id=1
– SELECT * FROM news WHERE id = 1– id=1のデータだけが取得される
● 異常動作 :● http://site/news.php?id=1 OR 1=1
– SELECT * FROM news WHERE id = 1 OR 1=1 // > TRUE– 全部のデータが取得される!
![Page 30: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/30.jpg)
30
デモ 4
● 対象 : http://192.168.1.2/11/
● 目的● 管理者権限のエリアにアクセス
require_once("config.php");mysql_connect($dbhost,$dblogin,$dbpass);mysql_select_db($dbname);$login = $_POST['login'];$pass = $_POST['pass'];$query = "SELECT pass FROM users WHERE login = '$login' AND pass = md5('$pass')";
$result = mysql_query($query) or die("Error SQL : " . mysql_error());f(mysql_num_rows($result) > 0) {
echo "Connected.";}else {
echo "Wrong user/ password";}
![Page 31: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/31.jpg)
31
SQL Injection example
● 脆弱なソースコード
● 正常動作 異常動作
![Page 32: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/32.jpg)
32
ハッカーの目的● 権限プロセスのハイジャック● データベースの検索
● 機密情報の取得– ユーザ、アドミンのパスワードなど– 個人情報
● DBを通してシステムの操作● ファイルの読み取り● ファイルの書き込み● コマンドの実行
![Page 33: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/33.jpg)
33
MSSQL Server
● MSSQLサーバでは、DBから xp_cmdshellを使ってコマンドを実行できる
● MSSQLサーバは管理者権限で動いていることが多いので、コマンドが実行されやすい
● DBを通してシステム全体が破壊される● ネットワークの検索に使用される
![Page 34: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/34.jpg)
34
デモ 5
● 対象 : http://192.168.1.2/12/
● 目的● 管理者のログインパスワード取得
require_once("config.php");mysql_connect($dbhost,$dblogin,$dbpass);mysql_select_db($dbname);$id = addslashes($_GET['id']);$query = "SELECT * FROM news WHERE id=$id";
$result = mysql_query($query) or die('Error Sql : ' . mysql_error());$row = mysql_fetch_array($result,MYSQL_BOTH);
![Page 35: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/35.jpg)
35
便利な HackingのツールWeb Scanner : ● Nikto● SkipFish● W3af● OWASP WebScarab
XSS Scanner :● Xsser● BurpSuite● OWASP ZAP
Vulnerability scanner :● Metasploit● OpenVAS● Nessus● NMAP
SQL Injection Scanner :● Sqlmap● Sqlninja● Sqlsus
セキュリティテストに特化した Linux
Kali Linux
![Page 36: ウェブセキュリティ](https://reader033.fdocuments.net/reader033/viewer/2022042819/55cae48bbb61eb39788b46d6/html5/thumbnails/36.jpg)
36
質疑応答
• 質問がありますか ?