SlideShare a Scribd company logo
1 of 43
OWASP Top 10 超初級編
akimalu
自己紹介
akimalu
Twitter:@aki_malu_sec(セキュリティ専門アカウント)
愛知県生まれ タイ育ち
最近の参加場所 :サイバーセキュリティシンポジウム道後 2019
情報処理学会 第81回全国大会 発表(学生奨励賞)
など
開発興味:目覚まし + スマホ, 自動UIブラウザ,など
OWASP Top 10
• OWASP(The Open Web Application Security Project)が
4年毎のペースで公開されているドキュメント
• 悪用のしやすさ,検知のしやすさ,影響の3つの指標から算出
されたスコアが高い順に順位付けされたもの
→ Webアプリケーションにおいて、特に気を付けなければ
ならないリスクTop 10のようなもの
https://www.owasp.org/images/2/23/OWASP_Top_10-2017%28ja%29.pdf
OWASP Top 10 - 2013 OWASP Top 10 - 2017
A1. インジェクション A1. インジェクション
A2. 認証の不備とセッション管理 A2. 認証の不備
A3. XSS A3. 機微な情報の露出
A4. 安全でないオブジェクトへの直接参照 A4. XXE
A5. 不適切なセキュリティ設定 A5. アクセス制御の不備
A6. 機微な情報の露出 A6. 不適切なセキュリティ設定
A7. 機能レベルのアクセス制御の不足 A7. XSS
A8. CSRF A8. 安全でないデシリアライゼーション
A9. 既知の脆弱性のあるコンポーネントの使用 A9. 既知の脆弱性のあるコンポーネントの使用
A10. 未検証のリダイレクトと転送 A10. 不十分なロギングとモニタリング
A1. インジェクション
OS Command Injection
https://www.ipa.go.jp/security/vuln/vuln_contents/oscmd.html
何が起きているのか
ping 11 & ls
(ping 11と同時にlsをする)
対策後(簡単なエスケープ処理後)
‘ping 11 & ls’としてshell_exec関数に渡している
A2. 認証の不備
最悪なパスワードTop100
77.ranger
78.1991
79.trustno1
80.merlin
81.cookie
82.ashley
83.bandit
84.killer
85.aaaaaa
86.1q2w3e
87.zaq1zaq1
88.test
89.hockey
90.dallas
91.whatever
92.admin123
93.pussy
94.liverpool
95.querty
96.william
97.soccer
98.london
99.1992
100.biteme
69.nicole
70.hunter
71.1989
72.amanda
73.1990
74.jennifer
75.banana
76.chelsea
https://www.teamsid.com/100-worst-passwords/
最悪なパスワードTop100
37.summer
38.george
39.harley
40.222222
41.jessica
42.ginger
43.letmein
44.abcdef
45.solo
46.jordan
47.55555
48.tigger
49.joshua
50.pepper
51.sophie
52.1234
53.rebert
54.matthew
55.12341234
56.Andrew
57.lakers
58.andrea
59.1qaz2wsx
60.starwars
61.ferrari
62.cheese
63.computer
64.corvette
65.mercedes
66.blahblah
67.maverick
68.hello
https://www.teamsid.com/100-worst-passwords/
最悪なパスワードTop100
5. 12345
6. 111111
7. 1234567
8. sunshine
9. qwerty
10.iloveyou
11.princess
12.admin
13.welcome
14.666666
15.abc123
16.football
17.123123
18.monkey
19.654321
20.!@#$%^&*
21.charlie
22.aa123456
23.donald
24.password1
25.qwerty123
26.zxcvbnm
27.121212
28.bailey
29.freedom
30.shadow
31.passw0rd
32.baseball
33.buster
34.daniel
35.hannah
36.thomas
https://www.teamsid.com/100-worst-passwords/
最悪なパスワードTop100
1.123456
2.password
https://www.teamsid.com/100-worst-passwords/
3.123456789
4.12345678
辞書攻撃
辞書にある語を順に試す
SP800-63
• NIST(米国国立標準技術研究所)が発行
• SP800-63B(電子的認証に関するガイドライン)がニュースの対象
→ パスワードが特に注目された
SP800-63Bにおけるパスワード
• 複雑さ要件(大文字,記号などを複数使用させるなど)を課さない
• 辞書攻撃対策は必須
• パスワードが危篤化した場合以外は変更の必要なし
SP800-63Bにおけるパスワード
• 秘密の質問は実施すべきではない
• アカウントリカバリーでE-mailを要素に入れても良い
→ これはイレギュラー(攻撃者が知らない要素を入れるべき)
→ 理想的には要素に入れない方が良いが, 現実的に入れるしかない
A3. 機微な情報の露出
• 平文送信
→ 暗号化をして送信(必要最低限の送信)
• 保存時に平文で保存
→ ソルト付与や暗号化をして保存(必要最低限の保存)
• 暗号鍵の不十分な管理
→ 暗号鍵の適切な管理
A4. XML 外部エンティティ参照(XXE)
XMLとはマークアップ言語
(HTMLもマークアップ言語)
悪意あるコードとその対策
• パスワード情報を取り出そうとする
<!ENTITY xxe SYSTEM “file:///etc/passwd”>
• 悪意あるコードを受け入れないために
→ JSONを使用
→ ホワイトリスト方式
→ Webアプリケーションファイアウォール
など
A5. アクセス制御の不備
例
http://example.com/guest
↓
http://example.com/admin
http://example.com/account?userid=1000
↓
http://example.com/account?userid=2000
例
http://example.com/guest
↓
http://example.com/admin
http://example.com/account?userid=1000
↓
http://example.com/account?userid=2000
適切なアクセス制御
必要最低限の権限付与
A6. 不適切なセキュリティ設定
• 古いバージョンのセキュリティホールをついた攻撃
→ 最新のバージョンを使用
• テストアカウント(デフォルトアカウント)を使用した攻撃
→ デフォルトアカウントの削除
• 脆弱性をついた攻撃を受ける可能性の上昇
→ 必要最低限の機能付与
よくあるミス
① ID,パスワードを適当に入力
② IDとパスワードが間違っています
③ パスワードクラック試行
④ パスワードが間違っています
よくあるミス
① ID,パスワードを適当に入力
② IDとパスワードが間違っています
③ パスワードクラック試行
④ パスワードが間違っています
IDは合っているのか
A7. XSS(クロスサイトスクリプティング)
Webページを見るとき
① XXXというWebページのHTMLちょうだい!!
② XXXのHTML
Webページが動的に生成されるとき
① 検索
② 検索結果
反射型XSS(Cross Site Scripting)
① 悪意のあるコード
② 機密情報
データベースへデータを登録
① データの登録をして!!
② データを登録
③ 登録成功
④ 登録したよ!!
データベースを使用するとき
① XXXというWebページのHTMLちょうだい!!
② HTMLを作成するために必要な
データを要求
③ 必要なデータ
④ XXXのHTML
格納型XSS
① 悪意のあるデータの登録を要求!!
格納型XSS
① 悪意のあるデータの登録を要求!!
② 悪意のあるデータを登録
悪意のある
データ
格納型XSS
① 悪意のあるデータの登録を要求!!
② 悪意のあるデータを登録
③ 登録成功
④ 登録完了!!
悪意のある
データ
格納型XSS
① XXXというWebページのHTMLちょうだい!!
悪意のある
データ
格納型XSS
① XXXというWebページのHTMLちょうだい!!
② HTMLを作成するために必要な
データを要求
③ 必要なデータ
(悪意のあるデータも混ざる)
④ (悪意のあるデータで作られた)XXXのHTML
悪意のある
データ
A8. 安全ではないデシリアライゼーション
デシリアライゼーション
ユーザID、パスワード、Cookieをまとめて送りたい
↓
a:3:{s:5:”akira”;s:6:”soccer”;s:32:”28729a29f9e7a328aa
28394827ffea38”}
↓
ユーザID:akira
パスワード:soccer
Cookie: 28729a29f9e7a328aa28394827ffea38
デシリアライゼーション
安全ではないデシリアライゼーション
a:3:{s:5:”akira”;s:6:”soccer”;s:32:”28729a29f9e7a328aa
28394827ffea38”}
↓
a:3:{s:4:”root”;s:5:”admin”;s:32:”28729a29f9e7a328aa
28394827ffea38”}
A9. 既知の脆弱性のあるコンポーネントの使用
• バージョン管理しきれていないことによる脅威
→ 必要最低限の機能付与
• セキュリティパッチが適用されていないことによる脅威
→ パッチの適用
• 古いバージョンの使用による脅威
→ 最新のバージョンへの更新
A10. 不十分なロギングとモニタリング
• ログ不足によりインシデントレスポンスが困難になる
→ 十分な期間の十分な内容のログを残す
• ログ閲覧の権限に関する不適切な設定による情報漏洩
→ ログ閲覧に関する設定は必要最低限で適切な設定にする
XVWA(https://github.com/s4n7h0/xvwa)
Webアプリケーションにおけるセキュリティをハンズオンで
学べるOSS
• SQLインジェクション
• OSコマンドインジェクション
• XSS
• PHPオブジェクトインジェクション
• XPATHインジェクション
など

More Related Content

What's hot

モバイルアプリケーションセキュリティ101
モバイルアプリケーションセキュリティ101モバイルアプリケーションセキュリティ101
モバイルアプリケーションセキュリティ101
TokujiAkamine
 
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
Sen Ueno
 

What's hot (20)

4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 20164 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016
 
企業のデジタル変革とサイバーリスク
企業のデジタル変革とサイバーリスク企業のデジタル変革とサイバーリスク
企業のデジタル変革とサイバーリスク
 
OWASP Top 10 - 2013 を起点にして
OWASP Top 10 - 2013 を起点にしてOWASP Top 10 - 2013 を起点にして
OWASP Top 10 - 2013 を起点にして
 
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
20180426 不正指令電磁的記録に関する罪とオンプレおよびクラウドにおけるWebネット型インシデントレスポンスについて
 
20210716 Security Audit of Salesforce & Other Measures
20210716 Security Audit of Salesforce & Other Measures20210716 Security Audit of Salesforce & Other Measures
20210716 Security Audit of Salesforce & Other Measures
 
OWASP ASVS Project review 2.0 and 3.0
OWASP ASVS Project review 2.0 and 3.0OWASP ASVS Project review 2.0 and 3.0
OWASP ASVS Project review 2.0 and 3.0
 
20190418 About the concept of intra-organization release approval flow in wat...
20190418 About the concept of intra-organization release approval flow in wat...20190418 About the concept of intra-organization release approval flow in wat...
20190418 About the concept of intra-organization release approval flow in wat...
 
OWASP Cheatsheetを参考にやられアプリ作ってみた
OWASP Cheatsheetを参考にやられアプリ作ってみた	OWASP Cheatsheetを参考にやられアプリ作ってみた
OWASP Cheatsheetを参考にやられアプリ作ってみた
 
20191013_Wolf and Seven Little Goats -Serverless Fairy Tales-
20191013_Wolf and Seven Little Goats  -Serverless Fairy Tales-20191013_Wolf and Seven Little Goats  -Serverless Fairy Tales-
20191013_Wolf and Seven Little Goats -Serverless Fairy Tales-
 
OWASP_Top_10_2017_A3機微な情報の露出
OWASP_Top_10_2017_A3機微な情報の露出OWASP_Top_10_2017_A3機微な情報の露出
OWASP_Top_10_2017_A3機微な情報の露出
 
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
天職の就き方 〜 ぼくらが旅に出る理由 Part 2 #ssmjp 1501
 
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
 
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
 
モバイルアプリケーションセキュリティ101
モバイルアプリケーションセキュリティ101モバイルアプリケーションセキュリティ101
モバイルアプリケーションセキュリティ101
 
20210404_SECURITY_MELT
20210404_SECURITY_MELT20210404_SECURITY_MELT
20210404_SECURITY_MELT
 
脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)脆弱性診断って何をどうすればいいの?(おかわり)
脆弱性診断って何をどうすればいいの?(おかわり)
 
osc2016do ひげで学ぶWebアプリケーションに潜むリスク
osc2016do ひげで学ぶWebアプリケーションに潜むリスクosc2016do ひげで学ぶWebアプリケーションに潜むリスク
osc2016do ひげで学ぶWebアプリケーションに潜むリスク
 
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
 
OWASP meets KOBE - コピペで作るシステムの終焉とシフトレフト -
OWASP meets KOBE - コピペで作るシステムの終焉とシフトレフト -   OWASP meets KOBE - コピペで作るシステムの終焉とシフトレフト -
OWASP meets KOBE - コピペで作るシステムの終焉とシフトレフト -
 
シフトレフト戦略と沖縄県
シフトレフト戦略と沖縄県シフトレフト戦略と沖縄県
シフトレフト戦略と沖縄県
 

Similar to OWASP Top 10 超初級編

Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テストAppiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
yumi_chappy
 
副業推奨とオープンソース @ 俺聞け4
副業推奨とオープンソース @ 俺聞け4副業推奨とオープンソース @ 俺聞け4
副業推奨とオープンソース @ 俺聞け4
Oishi Yuichi
 

Similar to OWASP Top 10 超初級編 (20)

OWASP Top 10 超初級編 (2021 Ver.)
OWASP Top 10 超初級編 (2021 Ver.)OWASP Top 10 超初級編 (2021 Ver.)
OWASP Top 10 超初級編 (2021 Ver.)
 
オワスプナイト20150115 dependency check
オワスプナイト20150115 dependency checkオワスプナイト20150115 dependency check
オワスプナイト20150115 dependency check
 
超高速開発を実現するチームに必要なセキュリティとは
超高速開発を実現するチームに必要なセキュリティとは超高速開発を実現するチームに必要なセキュリティとは
超高速開発を実現するチームに必要なセキュリティとは
 
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injectionowasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
 
20180601 OWASP Top 10 2017の読み方
20180601 OWASP Top 10 2017の読み方20180601 OWASP Top 10 2017の読み方
20180601 OWASP Top 10 2017の読み方
 
Privacy by Design with OWASP
Privacy by Design with OWASPPrivacy by Design with OWASP
Privacy by Design with OWASP
 
2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』
2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』
2016年9月6日 IoTとセキュリティ『IoT開発におけるセキュリティ設計の手引き』
 
2019 1009 f-secure_ali_eater_tokyo13_slideshare
2019 1009 f-secure_ali_eater_tokyo13_slideshare2019 1009 f-secure_ali_eater_tokyo13_slideshare
2019 1009 f-secure_ali_eater_tokyo13_slideshare
 
Appiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テストAppiumを用いたwebブラウザ自動テスト
Appiumを用いたwebブラウザ自動テスト
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
DVWAで爆上げWebAppセキュリティスキル@shunaroo
DVWAで爆上げWebAppセキュリティスキル@shunarooDVWAで爆上げWebAppセキュリティスキル@shunaroo
DVWAで爆上げWebAppセキュリティスキル@shunaroo
 
Jaws festa 2015 &lt;40歳の開発のpmが未経験でインフラエンジニアになってみて>
Jaws festa 2015 &lt;40歳の開発のpmが未経験でインフラエンジニアになってみて>Jaws festa 2015 &lt;40歳の開発のpmが未経験でインフラエンジニアになってみて>
Jaws festa 2015 &lt;40歳の開発のpmが未経験でインフラエンジニアになってみて>
 
Webアプリケーション脆弱性診断について
Webアプリケーション脆弱性診断についてWebアプリケーション脆弱性診断について
Webアプリケーション脆弱性診断について
 
Jasst15 webjasst
Jasst15 webjasstJasst15 webjasst
Jasst15 webjasst
 
副業推奨とオープンソース @ 俺聞け4
副業推奨とオープンソース @ 俺聞け4副業推奨とオープンソース @ 俺聞け4
副業推奨とオープンソース @ 俺聞け4
 
正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ正しく恐れるクラウドのセキュリティ
正しく恐れるクラウドのセキュリティ
 
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
16.02.08_Hadoop Conferece Japan 2016_データサイエンスにおける一次可視化からのSpark on Elasticsear...
 
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
 
CISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるにはCISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるには
 
20160208 power cms_cloud_public
20160208 power cms_cloud_public20160208 power cms_cloud_public
20160208 power cms_cloud_public
 

More from AkitadaOmagari

More from AkitadaOmagari (10)

IoTのセキュリティを考える(IoT機器内部の通信)
IoTのセキュリティを考える(IoT機器内部の通信)IoTのセキュリティを考える(IoT機器内部の通信)
IoTのセキュリティを考える(IoT機器内部の通信)
 
2020年のセキュリティを振り返る
2020年のセキュリティを振り返る2020年のセキュリティを振り返る
2020年のセキュリティを振り返る
 
フィッシングメールの見破り方
フィッシングメールの見破り方フィッシングメールの見破り方
フィッシングメールの見破り方
 
資格取得に意味はあるのか?
資格取得に意味はあるのか?資格取得に意味はあるのか?
資格取得に意味はあるのか?
 
テレワーク特有のセキュリティについて考えてみた
テレワーク特有のセキュリティについて考えてみたテレワーク特有のセキュリティについて考えてみた
テレワーク特有のセキュリティについて考えてみた
 
2019年のセキュリティを振り返る
2019年のセキュリティを振り返る2019年のセキュリティを振り返る
2019年のセキュリティを振り返る
 
非接触型決済 vs QRコード決済(セキュリティ編)
非接触型決済 vs QRコード決済(セキュリティ編)非接触型決済 vs QRコード決済(セキュリティ編)
非接触型決済 vs QRコード決済(セキュリティ編)
 
OWASP IoT Top10 超初級編
OWASP IoT Top10 超初級編OWASP IoT Top10 超初級編
OWASP IoT Top10 超初級編
 
Adversarial ExampleからDeep Learningのセキュリティを考える
Adversarial ExampleからDeep Learningのセキュリティを考えるAdversarial ExampleからDeep Learningのセキュリティを考える
Adversarial ExampleからDeep Learningのセキュリティを考える
 
2018年のセキュリティを振り返る
2018年のセキュリティを振り返る2018年のセキュリティを振り返る
2018年のセキュリティを振り返る
 

OWASP Top 10 超初級編