2015/10/03に開催されたPHPカンファレンスにおける発表資料です。PHPプログラマがウェブセキュリティの勉強をはじめるきっかけとして、OWASPの成果物をご活用してみては?と提案しつつ、その中から特にプログラマにご活用いただきたいOWASPの主要成果物(Top10、Cheat Sheet、ASVS、ZAP)の内容について簡単に紹介しています。 Speaker:@shonantoka
よりPHPプログラマに贈る セキュリティ実装⻁虎の巻OWASP Japan Promotion Team 仲⽥田 翔⼀一
View Slide
本題に⼊入る前に其の壱 わたしはだれか? 其の弐 OWASPとはなにか? 其の参 なぜここにいるのか?
本業 〜~2014.3 セキュリティエンジニア 2014.4〜~ コンサルタント(IT、セキュリティ) OWASP 2013.3 OWASP Japan勉強会 初参加 2014.2 OWASP Japan勉強会 スピーカー 2014.3 国際カンファレンス 運営メンバー 2014.3〜~ OWASP Japan 運営メンバー 2014.7〜~ OWASP Japan PRチームリーダー PHPとの関わり 出会いは新卒エンジニア研修のウェブアプリ開発 WordPressサイトの構築〜~運⽤用・保守を3つ経験 ⾃自分を⼀一⾔言で表すと 3度度の飯より読書好き、そんなことよりお酒好き わたしはだれか?仲⽥田 翔⼀一( @shonantoka)
ウェブを取り巻く問題を解決するためのプロジェクト群 からなる国際的な⾮非営利利コミュニティで誰もが参加可能0 8 " 4 1QFO FC QQMJDBUJPO FDVSJUZ SPKFDU OWASPとはなにか?
OWASP Kyushu 2015.3〜~OWASP Kansai 2014.3〜~OWASP Japan 2012.3〜~OWASP Sendai New国内には⾸首都圏をはじめ、4つのチャプターが存在 OWASPとはなにか?
各地で3ヶ⽉月に1度度程度度の勉強会(オワスプナイト)の開催ウェブを確かなものに⾃自分たちの直⾯面するウェブセキュリティの問題を⾃自分たちの⼿手で解決したい! OWASPとはなにか?
プロジェクトを組成し、⽇日本独⾃自の成果物を作成 OWASPとはなにか?100 99 98 97 96 95 94 93 92 919089888786858483828180 79 787776 75 74 7372717069686766656463626160 59 58 57 5655 5453 52 51504948474645444342414039 38 373635 34 33 3231302928272625242322212019 18 17 16 15 141312 1110987654321Dpf❉P✭ελʔτΰʔϧ08"41$ϞόΠϧσόΠεʹ͓͚Δػີσʔλͷಛఆͱอޢ08"41$σόΠεʹ͓͚Δύεϫʔυͷ҆શͳऔΓѻ͍08"41$ػີσʔλͷૹͷอޢΛ֬อ08"41$ϢʔβʔೝূɺೝՄ͓Αͼηογϣϯཧͷਖ਼͍࣮͠08"41$όοΫΤϯυͷ"1*ʢαʔϏεʣͱϓϥοτϑΥʔϜʢαʔόʣͷ҆શੑͷҡ࣋08"41$αʔυύʔςΟͷαʔϏεΞϓϦέʔγϣϯͱͷσʔλ౷߹Λ҆શʹ08"41$Ϣʔβʔσʔλͷར༻ͱऩूͷͨΊͷঝͷऩूͱอʹಛผͳҙΛ͏08"41$༗ྉͷϦιʔεͷෆਖ਼ΞΫηεΛ͙ͨΊͷ੍ޚͷ࣮08"41$ϞόΠϧΞϓϦͷఏڙͷ҆શੑͷ֬อ08"41$ίʔυ࣮ߦ࣌ʹΤϥʔ͕ൃੜͨ͠߹ͷ࣮Λ৻ॏʹ֬ೝ08"41.ශऑͳαʔόଆͷ੍ޚ08"41.҆શͰͳ͍σʔλͷอ08"41.ෆेͳτϥϯεϙʔτอޢ08"41.ҙਤ͠ͳ͍σʔλ࿙͍͑08"41.ශऑͳೝূͱೝՄ08"41.յΕͨ҉߸Խॲཧ08"41.ΫϥΠΞϯταΠυΠϯδΣΫγϣϯ08"41.৴པͰ͖ͳ͍ೖྗʹΑΔηΩϡϦςΟஅ08"41.ෆదͳηογϣϯॲཧ08"41.όΠφϦอޢͷܽCreated by Colin Watson Version MobApp-1.02-JA (Farringdon)08"41τοϓϞόΠϧίϯτϩʔϧ 08"41τοϓϞόΠϧίϯτϩʔϧɺ੬ऑੑͷ߈ܸʹΑΔඃɺ͋Δ͍ͦͷՄೳੑΛݮগͤ͞ΔͨΊͷ։ൃ੍ޚͷҰཡͰ͢ɻ$ ϞόΠϧσόΠεͷػີσʔλͷಛఆͱอޢ$ σόΠεͷύεϫʔυͷ҆શͳऔΓѻ͍$ ػີσʔλͷૹͷอޢΛ֬อ$ ϢʔβʔೝূɺೝՄ͓Αͼηογϣϯཧͷਖ਼͍࣮͠$ όοΫΤϯυͷ"1*ʢαʔϏεʣͱϓϥοτϑΥʔϜʢαʔόʣͷ҆શੑͷ ҡ࣋$ αʔυύʔςΟͷαʔϏεΞϓϦέʔγϣϯͱͷσʔλ౷߹Λ҆શʹ$ Ϣʔβʔσʔλͷར༻ͱऩूͷͨΊͷঝͷऩूͱอʹಛผͳҙ Λ͏$ ༗ྉͷϦιʔεʢࡒɺ4.4ɺిʣͷෆਖ਼ΞΫηεΛ͙ͨΊͷ ੍ޚͷ࣮$ ϞόΠϧΞϓϦͷఏڙͷ҆શੑͷ֬อ$ίʔυ࣮ߦ࣌ʹΤϥʔ͕ൃੜͨ͠߹ͷ࣮Λ৻ॏʹ֬ೝ08"41τοϓϞόΠϧϦεΫ 5IF08"41τοϓϞόΠϧϦεΫɺΞϓϦέʔγϣϯͰͷ࠷ॏཁͳϞόΠϧΞϓϦͷϦεΫʹ͍ͭͯͷڞ௨ೝࣝΛࣔ͢ͷͰ͢ɻ. ශऑͳαʔόʔଆͷ੍ޚ.҆શͰͳ͍σʔλͷอ. ෆेͳτϥϯεϙʔτอޢ. ҙਤ͠ͳ͍σʔλ࿙͍͑. ශऑͳೝূͱೝՄ. յΕͨ҉߸Խॲཧ. ΫϥΠΞϯταΠυͷΠϯδΣΫγϣϯ. ৴པͰ͖ͳ͍ೖྗʹΑΔηΩϡϦςΟஅ. ෆదͳηογϣϯॲཧ.όΠφϦอޢͷܽίϯτϩʔϧͱϦεΫͷ྆ํͱɺͪ͜Βͷ08"41ϓϩδΣΫτͷαΠτʹৄड़͞Ε͍ͯ·͢ɻIUUQTXXXPXBTQPSHJOEFYQIQ08"[email protected]@[email protected]ϓϩδΣΫτϦʔμʔColin Watson༁ऀͦͷଞͷߩݙऀManuel Lopez Arredondo, Fabio Cerullo, Tobias Gondrom,Martin Haslinger, Yongliang He, Cédric Messeguer, TakanoriNakanowatari, Riotaro Okada, Ferdinand Vroom, Ivy Zhangऄͱ͠͝ɺΞϓϦέʔγϣϯɾηΩϡϦςΟೝ্ͷͨΊͷڭҭతͳήʔϜͰ͢ɻ͜ͷ൛ϞόΠϧΞϓϦέʔγϣϯʹॏΛஔ͍͓ͯΓɺʮ08"41τοϓϞόΠϧίϯτϩʔϧʯΛʮ͠͝ʯɺ·ͨ༗໊ͳʮ08"41τοϓϞόΠϧϦεΫʯΛʮऄʯͱ͠·ͨ͠ɻ͜ΕΒͷϓϩδΣΫτͷϦʔμʔͳΒͼʹߩݙ͞Εͨํʑʹײँ͍ͨ͠·͢ɻαΠίϩίϚ͕ͳ͍ʁԼͷਤܗΛΓऔ͍ͬͯͬͯͩ͘͞ɻ৭ͷؙ͍͍ͭͨͷΛίϚͱͯ͑͠ΔͰ͠ΐ͏ɻ͋Δ͍ɺ̒໘ͷαΠίϩγϛϡϨʔλΛϓϩάϥϜ͢Δͱ͔ɺεϚϗ͔ύιίϯͰ͔Β·ͰͷͷཚΞϓϦΛ͍͍͑ɻͨͩ͠ɺग़Δ͕ϥϯμϜ͔Ͳ͏͔ͪΌΜͱνΣοΫ͢Δ͜ͱʂ͜ͷγʔτͷιʔεϑΝΠϧɺଞͷΞϓϦέʔγϣϯηΩϡϦςΟτϐοΫͷγʔτɺଞͷ༷ʑͳݴޠ൛ɺ·ͨʮ08"41ऄͱ͠͝ϓϩδΣΫτʯʹؔ͢ΔใɺҎԼͷ08"41ͷΣϒαΠτʹ͋Γ·͢ɻhttps://www.owasp.org/index.php/OWASP_Snakes_and_Laddersഎܠʮऄͱ͠͝ʯΞδΞൃͷϘʔυήʔϜͰɺϏΫτϦΞே࣌ʹӳࠃʹ༌ೖ͞ΕͨਓؾͷϘʔυήʔϜͰ͢ɻͱͱɺ͜ͷήʔϜળͱѱɺඒಙͱѱಙͷͦΕͧΕͷޮՌΛࣔͨ͠ͷͰͨ͠ɻ͜ͷήʔϜɺΞϝϦΧͷҰ෦ͷॴͰɺʮӍͲ͍ͱ͠͝ʯͱͯ͠ΒΕ͍ͯ·͢ɻ͜ͷ08"41൛ͰɺηΩϡΞͳίʔσΟϯάʢϓϩΞΫςΟϒίϯτϩʔϧʣΛߴܿͳߦಈͱ͠ɺΞϓϦέʔγϣϯϦεΫΛѱಙͱ͍ͯ͠·͢ɻܯࠂ08"41ऄͱ͠͝ɺنͷେখΛΘͣɺιϑτΣΞϓϩάϥϚʔʹ͍ͬͯͨͩ͘͜ͱΛҙਤ͍ͯ͠·͢ɻ͜ͷࢴͷήʔϜγʔτͦͷͷ༗Ͱ͋Γ·ͤΜ͕ɺར༻ऀ͕ɺࣗͰॴ༗͍ͯ͠ΔϓϥενοΫ͋Δ͍ͷαΠίϩΧϯλʔίϚΛ͏͜ͱʹ͢Δ߹ɺࡀҎԼͷࢠڙͨͪʹʹ٧·Βͤͯଉ͢ΔϦεΫ͕͋Δ͔͠Ε·ͤΜɻϧʔϧ͜ͷήʔϜਓ͔ΒਓͰ༡ͼ·͢ɻͦΕͧΕͷϓϨΠϠʔʹ৭ͷ͍ͭͨίϚΛ͍ͬͯͩ͘͞ɻ࠷ॳʹɺͦΕͧΕͷϓϨΠϠʔαΠίϩΛৼͬͯ୭͕࠷ॳʹϓϨΠ͢Δ͔ܾΊ·͢ɻҰ൪େ͖ͳͷΛग़ͨ͠ਓ͕࠷ॳͰ͢ɻશϓϨΠϠʔͷίϚΛʮελʔτʯͱ͋Δ࠷ॳͷϚεʹஔ͖·͢ɻॱʹɺ֤ϓϨΠϠʔαΠίϩΛৼΓɺͦͷʹ͕ͨͬͯ͠ίϚΛҠಈ͠·͢ɻҠಈͨ࣌͠ʹɺ͠ίϚ͕͠͝ͷԼʹདྷͨͳΒɺίϚΛ͠͝ͷ࠷্ஈͷͱ͜Ζʹ͋ΔϚεʹ্͛ͳ͚ΕͳΓ·ͤΜɻίϚ͕ऄͷޱͷͱ͜ΖʹདྷͨͳΒɺͦͷίϚΛऄͷ৲ඌͷͱ͜Ζʹ߱Ζ͞ͳ͚ΕͳΓ·ͤΜɻࠨ্ͷͷͱ͜Ζʹ࠷ॳʹདྷͨϓϨΠϠʔ͕উऀͱͳΓ·͢ɻ͜ͷγʔτ͔ΒΓऔͬͨͷͰαΠίϩΛ࡞ΔʹɺઢʹԊͬͯંΓۂ͛ɺͷΓ͠Ζͷͱ͜ΖʹணࡎΛ͚ͭɺ࢛֯͘ͳΔΑ͏ʹ৻ॏʹܗ͍ͯͩ͘͠͞ɻҰඖͷऄ͕࣍ͷॱ൪ͷΩϛͷαΠίϩͷΛݴ͓͏͔ͬͯɺΟϯΫͯ͠ΔΑɻݟ͔ͭͬͨʁ08"41ऄͱ͠͝ɺແྉͰࣗ༝ʹ͓͍͍͚ͨͩ·͢ɻΫϦΤΠςΟϒίϞϯζදࣔܧঝϥΠηϯεʹج͖ͮɺ͜ͷՌΛෳࣸɺɺૹ৴ɺվมɺۀతར༻͕ՄೳͰ͕͢ɺ͜ͷ࡞ʹج͍͔ͮ͘ͳΔͷʹ͍ͭͯɺ·ͨ࠶ར༻ɺసૹɺೋ࣍తஶ࡞ʹ͍ͭͯɺ͜ͷϥΠηϯεͱಉ͡༻ڐ݅Ͱͳ͚ΕͳΓ·ͤΜɻ© OWASP Foundation 2014.OWASP Snakes and Ladders– ऄͱ͠͝ϞόΠϧΞϓϦ൛ –OWASP Top10 ⽇日本語版OWASP 蛇とはしごOWASP ZAP運⽤用マニュアルOWASP Top10 ⽇日本語版OWASPセキュリティ要件書
昨年年のPHPカンファレンス での会話✕前職で訴え続けた ことの延⻑⾧長プログラマとセキュリティに携わる者の間の壁を埋めたい! なぜここにいるのか?
今⽇日話すこと其の壱 プログラマがセキュリティを意識識すべき2つの理理由! 其の弐 OWASPの成果物をどう使うか? 其の参 ウェブ10⼤大脅威を共通⾔言語に! 其の肆 設計・開発時のリファレンスに! 其の伍 ウェブセキュリティの要件設定に! 其の陸陸 ⼀一歩進んでウェブ脆弱性テストに!
プログラマがセキュリティを意識識すべき2つの理理由! ◯◯◯◯でセキュリティ対策するのが最も効果が⾼高いから 1 ◯◯◯◯でセキュリティ対策するのが最もコストが安いから 2セキュリティ対策が重要なのは分かるが、なぜプログラマか?
プログラマがセキュリティを意識識すべき2つの理理由!その前にQuestion! どっちの鞄から狙いますか?チャックが全開 チャックが全閉
プログラマがセキュリティを意識識すべき2つの理理由!効率率率性を考えたらチャックが全開の鞄ですよね?チャックが全開 チャックが全閉
プログラマがセキュリティを意識識すべき2つの理理由!攻撃者は効率率率性を重視し、楽なシステムすなわち セキュリティ対策が⽢甘いシステムを狙う!!システムも現実と同様、攻撃にかかる負担やコストを⾼高めるちょっとしたセキュリティ対策が有効!!
プログラマがセキュリティを意識識すべき2つの理理由!
プログラマがセキュリティを意識識すべき2つの理理由!開発 テスト・導⼊入 運⽤用・保守脆弱性の発⽣生原因となる バグ
開発 テスト・導⼊入 運⽤用・保守約80%が開発⼯工程で発⽣生! プログラマがセキュリティを意識識すべき2つの理理由!開発⼯工程でセキュリティ対策するのが最も効果が⾼高い!脆弱性の発⽣生原因となる バグ
セキュリティ対策にかかるコスト プログラマがセキュリティを意識識すべき2つの理理由!開発 テスト・導⼊入 運⽤用・保守
約93%のコスト抑制効果! プログラマがセキュリティを意識識すべき2つの理理由!開発 テスト・導⼊入 運⽤用・保守開発⼯工程でセキュリティ対策するのが最もコストが安い!セキュリティ対策にかかるコストKevin Soo Hoo, “Tangible ROI through Secure Software Engineering.”Security Business Quarterly,. Vol.1, No.2, Fourth Quarter, 2001.参考
攻撃にかかる負担やコストを⾼高めるちょっとしたセキュリティ対策が重要!開発⼯工程の主役であるプログラマこそがセキュリティを意識識すべき! プログラマがセキュリティを意識識すべき2つの理理由! 開発⼯工程でセキュリティ対策するのが最も効果が⾼高い 1 開発⼯工程でセキュリティ対策するのが最もコストが安い 2
意識識すべきなのは理理解した。けど、どう始めたらいいのか、、、
無料料でグローバル基準で誰もが⾃自由に使える OWASPの成果物から始めてみよう!!
OWASPの成果物をどう使うか?テスト・導⼊入 運⽤用・保守設計・開発要件定義 ① 要件定義OWASP ASVS(Application Security Verification Standard )Web システム/Web アプリケーションセキュリティ要件書② 設計・開発OWASP Cheat Sheet SeriesOWASP Proactive Controls③ テスト・導⼊入OWASP ZAP(Zed Attack Proxy)OWASP Testing Guide④ 運⽤用・保守OWASP AppSensorOWASP Dependency Check⑨ 知識識OWASP Top10 / Mobile Top10 / IoT Top 10OWASP Snakes and Laddersシステムライフサイクルの各段階に活⽤用可能な100以上の成果物!
OWASPの成果物をどう使うか?① 要件定義OWASP ASVS(Application Security Verification Standard )Web システム/Web アプリケーションセキュリティ要件書② 設計・開発OWASP Cheat Sheet SeriesOWASP Proactive Controls③ テスト・導⼊入OWASP ZAP(Zed Attack Proxy)OWASP Testing Guide④ 運⽤用・保守OWASP AppSensorOWASP Dependency Check⑨ 知識識OWASP Top10 / Mobile Top10 / IoT Top 10OWASP Snakes and Laddersシステムライフサイクルの各段階に活⽤用可能な100以上の成果物!テスト・導⼊入 運⽤用・保守設計・開発要件定義
OWASPの成果物をどう使うか?設計・開発時のリファレンスに!⼀一歩進んでウェブ脆弱性テストに!ウェブ10⼤大脅威を共通⾔言語に!ウェブセキュリティの要件設定に!OWASP Top 10OWASP Cheat Sheet SeriesOWASP ASVSOWASP ZAP本発表では主に以下の4つの成果物を紹介!
OWASPの成果物をどう使うか?ウェブ10⼤大脅威を共通⾔言語に!OWASP Top 10
OWASPが誇る最⾼高の成果物! OWASP Top 10概要 ウェブアプリにおいて最も注意すべき脆弱性(≒悪⽤用可能なバグ)とその対処法を理理解するための資料料として、3年年に1度度発表 特徴 公的な機関においても本書に掲載されている脆弱性への対策が講じられていることをセキュリティ要件にすることも ウェブ10⼤大脅威を共通⾔言語に!
ウェブ10⼤大脅威を共通⾔言語に!No ウェブアプリにおける脆弱性A1 インジェクションA2 セッション管理理の不不備A3 クロスサイトスクリプティングA4 安全でないオブジェクト直接参照A5 セキュリティ設定のミスA6 機密データの露露出A7 機能レベルアクセス制御の⽋欠落落A8 クロスサイトリクエストフォージェリA9 既知の脆弱性を持つコンポーネントの使⽤用A10 未検討のリダイレクトとフォーワードウェブアプリにおける脆弱性、攻撃シナリオ、防⽌止⽅方法などを紹介
ウェブ10⼤大脅威を共通⾔言語に!No ウェブアプリにおける脆弱性A1 インジェクションA2 セッション管理理の不不備A3 クロスサイトスクリプティングA4 安全でないオブジェクト直接参照A5 セキュリティ設定のミスA6 機密データの露露出A7 機能レベルアクセス制御の⽋欠落落A8 クロスサイトリクエストフォージェリA9 既知の脆弱性を持つコンポーネントの使⽤用A10 未検討のリダイレクトとフォーワードCMSやフレームワークへの依存度度が⾼高いPHPではA9に注意!No 防⽌止⽅方法1 使⽤用しているCMSやフレームワークとそのバージョン、またプラグインなどの依存関係を確認すること2 公開データベース、CMSやフレームワークの公式アナウンス、セキュリティに関連するメーリングリストなどを⽤用いて、最新の脆弱性情報を把握すること3 開発⼿手法、脆弱性テストによる検証、運⽤用ルールの策定などCMSやフレームワークを管理理するためのポリシーを確⽴立立すること4 不不必要なプラグインなどを無効化すること
OWASPの成果物をどう使うか?設計・開発時のリファレンスに!OWASP Cheat Sheet Series
設計・開発時のリファレンスに!OWASPの成果物で最も規模が⼤大きい!!Cheat Sheet Series概要 Builder(開発)、Breaker(テスト)、Defender(運⽤用・保守)を対象にセキュリティを⾼高めるための知識識/機能を実装するための⽅方法論論を紹介 特徴 本発表時点でドラフト版を含めて48ものチートシートが公開され、いずれも頻繁に更更新されている
設計・開発時のリファレンスに!設計・開発時に活⽤用したいチートシートが多数存在No チートシート1 Webアプリの認証に関するチートシート2ユーザーがパスワードを忘れた場合の措置に関するチートシート3Webアプリにおけるログの取得などに関するチートシート4 パスワードなどの保持に関するチートシート5PHPにおけるセキュリティ対策に関するチートシート6 セキュアコーディングに関するチートシート7SQLインジェクション対策に関するチートシート8 XSS対策に関するチートシート9 ・・・・
No チートシート1 Webアプリの認証に関するチートシート2ユーザーがパスワードを忘れた場合の措置に関するチートシート3Webアプリにおけるログの取得などに関するチートシート4 パスワードなどの保持に関するチートシート5PHPにおけるセキュリティ対策に関するチートシート6 セキュアコーディングに関するチートシート7SQLインジェクション対策に関するチートシート8 XSS対策に関するチートシート9 ・・・・ 設計・開発時のリファレンスに!PHP独⾃自のチートシートも存在
設計・開発時のリファレンスに!機能の安全な実装⼿手法や脆弱性への対策などを紹介No チートシート1 Webアプリの認証に関するチートシート2ユーザーがパスワードを忘れた場合の措置に関するチートシート3Webアプリにおけるログの取得などに関するチートシート4 パスワードなどの保持に関するチートシート5PHPにおけるセキュリティ対策に関するチートシート6 セキュアコーディングに関するチートシート7SQLインジェクション対策に関するチートシート8 XSS対策に関するチートシート9 ・・・・No 主要な節1 ⾔言語独⾃自の問題2 フレームワークの問題3 ファイルアップロードの実装⽅方法4 SQLインジェクション対策5 XSS対策6 CSRF対策7 セッション管理理8 認証9 サーバの設定
設計・開発時のリファレンスに!本⽇日、チートシートシリーズ概要⽇日本語版を公開しました!
OWASPの成果物をどう使うか?ウェブセキュリティの要件設定に!OWASP ASVS
ウェブセキュリティの要件設定に!OWASPの成果物のうち最も実⽤用的! OWASP ASVS概要 セキュアなウェブ開発のためのウェブセキュリティ要件を設定する際に活⽤用可能なガイドライン 特徴 OWASPグローバルで最近最も評価されているプロジェクトであり、1.0版は⽇日本語化済み、3.0版が近⽇日リリースされる予定
ウェブセキュリティの要件設定に!Level0 テストする価値なしLevel1 簡単に脆弱性が⾒見見つかるLevel2 標準的Level3 より進んだ脆弱性に対応まずはどのレベルにありたいかを設定
ウェブセキュリティの要件設定に!No 要件設定V1 セキュリティアーキテクチャ、設計、脅威モデルに関する要件V2 認証に関する要件V3 セッション管理理に関する要件V4 アクセスコントロールに関する要件V5 ⼊入⼒力力のバリデーションに関する要件V7 暗号化に関する要件V8 エラー処理理及びログの記録に関する要件V9 データの保護に関する要件V10 通信のセキュリティに関する要件V11 HTTPのセキュリティに関する要件V13 悪意のあるコードに関する要件 V15 ビジネスロジックに関する要件V16 ファイル及びリソースに関する要件V17 モバイルに関する要件V18 ウェブサービスに関する要件V19 構成管理理に関する要件V20 クライアントサイドセキュリティに関する要件No 認証に関する要件設定 1 2 3V2.1 ⾃自由なアクセスを意図していない全てのページ及びリソースに認証がかかっている ✓ ✓ ✓V2.2 パスワードフォームのオートコンプリートが無効である✓ ✓ ✓V2.4 全ての認証管理理がサーバ側で⾏行行われる ✓ ✓ ✓V2.5 外部認証サービスを利利⽤用しているライブラリを含む全ての認証制御が集中実装されている ✓V2.6 認証失敗の場合の安全対策を施していることを保証する✓ ✓ ✓V2.7 実働環境における典型的な脅威に対して、認証の証明が⼗十分な対策を施している ✓ ✓V2.8 全てのアカウント管理理機能は、基礎的な認証メカニズムとしての機能を備えており攻撃に耐えうる ✓ ✓・・・ ・・・・・・・・・・・・・・・・ ・ ・ ・設定レベルに応じてどの程度度の要件を充⾜足すればよいかを把握
ウェブセキュリティの要件設定に!No 要件設定V1 セキュリティアーキテクチャ、設計、脅威モデルに関する要件V2 認証に関する要件V3 セッション管理理に関する要件V4 アクセスコントロールに関する要件V5 ⼊入⼒力力のバリデーションに関する要件V7 暗号化に関する要件V8 エラー処理理及びログの記録に関する要件V9 データの保護に関する要件V10 通信のセキュリティに関する要件V11 HTTPのセキュリティに関する要件V13 悪意のあるコードに関する要件 V15 ビジネスロジックに関する要件V16 ファイル及びリソースに関する要件V17 モバイルに関する要件V18 ウェブサービスに関する要件V19 構成管理理に関する要件V20 クライアントサイドセキュリティに関する要件No PHPにおいて重要な要件設定 1 2 3V1.1 すべてのCMSやフレームワークを個別に確認していること ✓ ✓ ✓V1.5 すべてのCMSやフレームワークが業務上の機能⼜又はセキュリティ上の機能によって定義づけられていること✓ ✓V1.8 CMSやフレームワークのセキュリティはネットワークセグメントやファイアウォールなどによるセキュリティ対策とは別の独⽴立立した対策を施していること✓ ✓V19.1 CMSやフレームワークのバージョンは最新であること、また不不要なサービスは削除されていること✓ ✓ ✓CMSやフレームワークへの依存度度が⾼高いPHPではV1とV19に注意!
OWASPの成果物をどう使うか?⼀一歩進んでウェブ脆弱性テストに!OWASP ZAP
⼀一歩進んでウェブ脆弱性テストに!OWASP史上最も活発に更更新されているツール! ZAP概要 実⾏行行ボタン1つでも簡易易なウェブ脆弱性テストを実施可能なツール 特徴 IPAテクニカルウォッチ「ウェブサイトにおける脆弱性検査⼿手法の紹介」において、セキュリティ初学者でも使いやすく、検知精度度が⾼高く、⾮非常に効率率率的と評価 参考:https://www.ipa.go.jp/about/technicalwatch/20131212.html
⼀一歩進んでウェブ脆弱性テストに!ウェブ閲覧の際はブラウザを利利⽤用してサーバにアクセステスター ブラウザ ウェブサーバPOST /confirm.php HTTP/1.1 (中略略) Cookie: PHPSESSID=xxxxxx name=shonantoka&mail=shonantoka%40example.org&gender=1⽒氏名:shonantoka メール:[email protected] 性別:男 ⽒氏名:shonantoka メール:[email protected] 性別:男 登録⽒氏名:shonantoka メール:[email protected] 性別:男 ⼥女女確認リクエストレスポンス
⼀一歩進んでウェブ脆弱性テストに!ZAPがサーバにアクセス、脆弱性有無を⾃自動判断テスター ウェブサーバPOST /confirm.php HTTP/1.1 (中略略) Cookie: PHPSESSID=xxxxxx name=shonantoka”>xss&mail=shonantoka%40example.org&gender=1リクエストレスポンス ⽒氏名:shonantoka”>xss メール:[email protected] 性別:男 ZAPエスケープされてないから脆弱だ!!
⼀一歩進んでウェブ脆弱性テストに!ZAPでは様々な⾃自動診断や、脆弱性の検査が可能!主要機能 オートクローリング 動的スキャン ローカルプロキシ ディレクトリ探査 簡易易レポート作成 診断可能な脆弱性例例 XSS SQLi パストラバーサル オープンリダイレクタ ヘッダインジェクション
まとめ
本⽇日ご紹介した成果物を是⾮非ご活⽤用ください!設計・開発時のリファレンスに!⼀一歩進んでウェブ脆弱性テストに!ウェブ10⼤大脅威を共通⾔言語に!ウェブセキュリティの要件設定に!脆弱性と その対処法を 理理解セキュアな 設計・開発を 実現レベルに応じた セキュリティ 要件の設定開発⼯工程で 脆弱性を発⾒見見 即改修 SDLCにセキュリティをビルトイン
はじめようOWASPのある⽣生活成果物を活⽤用プロジェクトに貢献勉強会に参加OWASPは誰もが⾃自由に参加可能!
はじめようOWASPのある⽣生活まずは⑳アスタリスク・リサーチのブースにお越しください!
参考URLOWASP Project URLWeb システム/Web アプリケーションセキュリティ要件書 https://www.owasp.org/images/8/88/Web_̲application_̲security_̲requirements.pdfOWASP Proactive Controls https://www.owasp.org/index.php/OWASP_̲Proactive_̲ControlsOWASP ASVS(Application Security Verification Standard )Projecthttps://www.owasp.org/index.php/Category:OWASP_̲Application_̲Security_̲Verification_̲Standard_̲ProjectOWASP Cheat Sheet Series https://www.owasp.org/index.php/OWASP_̲Cheat_̲Sheet_̲SeriesOWASP Zed Attack Proxy https://www.owasp.org/index.php/OWASP_̲Zed_̲Attack_̲Proxy_̲Projecthttps://docs.google.com/file/d/0B1e1Cma1GUllazNUNVp6OWdGYzg/editOWASP Testing Guide https://www.owasp.org/index.php/OWASP_̲Testing_̲ProjectOWASP OWTF(Offensive Web Testing Framework) https://www.owasp.org/index.php/OWASP_̲OWTFOWASP ModSecurity Core Rule Set Project https://www.owasp.org/index.php/Category:OWASP_̲ModSecurity_̲Core_̲Rule_̲Set_̲ProjectOWASP AppSensor https://www.owasp.org/index.php/OWASP_̲AppSensor_̲ProjectOWASP Dependency Check https://www.owasp.org/index.php/OWASP_̲Dependency_̲Check
参考URLOWASP Project URLOWASP Top10 https://www.owasp.org/index.php/Category:OWASP_̲Top_̲Ten_̲Projecthttps://www.owasp.org/images/7/79/OWASP_̲Top_̲10_̲2013_̲JPN.pdfOWASP Mobile Top10 https://www.owasp.org/index.php/OWASP_̲Mobile_̲Security_̲Projecthttps://docs.google.com/document/d/1QOWOrsAo-‐‑‒33bHLdAZksKa4F_̲8_̲A_̲6XndoDF6ri4na_̲k/editOWASP IoT Top 10 https://www.owasp.org/index.php/OWASP_̲Internet_̲of_̲Things_̲Top_̲Ten_̲ProjectOWASP Snakes and Ladders https://www.owasp.org/index.php/OWASP_̲Snakes_̲and_̲Laddershttps://www.owasp.org/index.php/OWASP_̲Snakes_̲and_̲Laddershttps://www.owasp.org/images/c/c1/OWASP-‐‑‒SnakesAndLadders-‐‑‒MobileApps-‐‑‒JA.pdfhttps://twitter.com/OWASPSnakesWebhttps://twitter.com/OWASPSnakesMobOpenSAMM(Software Assurance Maturity Model) https://www.owasp.org/index.php/Category:Software_̲Assurance_̲Maturity_̲Modelhttp://www.opensamm.org/downloads/SAMM-‐‑‒1.0-‐‑‒ja_̲JP.pdf
ϓϩάϥϚΠϯϑϥΤϯδχΞηΩϡϦςΟΤϯδχΞhttps://www.owasp.org/index.php/japanhttps://twitter.com/owaspjapanhttps://www.facebook.com/owaspjapanhttp://blog.owaspjapan.orgαʔϏεར༻ऀ ウェブに携わるすべての⼈人にご静聴ありがとうございました!!
時間の関係上割愛したコンテンツ
OWASP Cornucopia(カードゲーム)をやってみよう! 遊んでセキュリティリスクを理理解
OWASP蛇とはしご(ボードゲーム)をやってみよう! 遊んでTop10を理理解100 99 98 97 96 95 94 93 92 919089888786858483828180 79 787776 75 74 7372717069686766656463626160 59 58 57 5655 5453 52 51504948474645444342414039 38 373635 34 33 3231302928272625242322212019 18 17 16 15 141312 1110987654321Dpf❉P✭ελʔτΰʔϧ08"41$ϞόΠϧσόΠεʹ͓͚Δػີσʔλͷಛఆͱอޢ08"41$σόΠεʹ͓͚Δύεϫʔυͷ҆શͳऔΓѻ͍08"41$ػີσʔλͷૹͷอޢΛ֬อ08"41$ϢʔβʔೝূɺೝՄ͓Αͼηογϣϯཧͷਖ਼͍࣮͠08"41$όοΫΤϯυͷ"1*ʢαʔϏεʣͱϓϥοτϑΥʔϜʢαʔόʣͷ҆શੑͷҡ࣋08"41$αʔυύʔςΟͷαʔϏεΞϓϦέʔγϣϯͱͷσʔλ౷߹Λ҆શʹ08"41$Ϣʔβʔσʔλͷར༻ͱऩूͷͨΊͷঝͷऩूͱอʹಛผͳҙΛ͏08"41$༗ྉͷϦιʔεͷෆਖ਼ΞΫηεΛ͙ͨΊͷ੍ޚͷ࣮08"41$ϞόΠϧΞϓϦͷఏڙͷ҆શੑͷ֬อ08"41$ίʔυ࣮ߦ࣌ʹΤϥʔ͕ൃੜͨ͠߹ͷ࣮Λ৻ॏʹ֬ೝ08"41.ශऑͳαʔόଆͷ੍ޚ08"41.҆શͰͳ͍σʔλͷอ08"41.ෆेͳτϥϯεϙʔτอޢ08"41.ҙਤ͠ͳ͍σʔλ࿙͍͑08"41.ශऑͳೝূͱೝՄ08"41.յΕͨ҉߸Խॲཧ08"41.ΫϥΠΞϯταΠυΠϯδΣΫγϣϯ08"41.৴པͰ͖ͳ͍ೖྗʹΑΔηΩϡϦςΟஅ08"41.ෆదͳηογϣϯॲཧ08"41.όΠφϦอޢͷܽCreated by Colin Watson Version MobApp-1.02-JA (Farringdon)08"41τοϓϞόΠϧίϯτϩʔϧ 08"41τοϓϞόΠϧίϯτϩʔϧɺ੬ऑੑͷ߈ܸʹΑΔඃɺ͋Δ͍ͦͷՄೳੑΛݮগͤ͞ΔͨΊͷ։ൃ੍ޚͷҰཡͰ͢ɻ$ ϞόΠϧσόΠεͷػີσʔλͷಛఆͱอޢ$ σόΠεͷύεϫʔυͷ҆શͳऔΓѻ͍$ ػີσʔλͷૹͷอޢΛ֬อ$ ϢʔβʔೝূɺೝՄ͓Αͼηογϣϯཧͷਖ਼͍࣮͠$ όοΫΤϯυͷ"1*ʢαʔϏεʣͱϓϥοτϑΥʔϜʢαʔόʣͷ҆શੑͷ ҡ࣋$ αʔυύʔςΟͷαʔϏεΞϓϦέʔγϣϯͱͷσʔλ౷߹Λ҆શʹ$ Ϣʔβʔσʔλͷར༻ͱऩूͷͨΊͷঝͷऩूͱอʹಛผͳҙ Λ͏$ ༗ྉͷϦιʔεʢࡒɺ4.4ɺిʣͷෆਖ਼ΞΫηεΛ͙ͨΊͷ ੍ޚͷ࣮$ ϞόΠϧΞϓϦͷఏڙͷ҆શੑͷ֬อ$ίʔυ࣮ߦ࣌ʹΤϥʔ͕ൃੜͨ͠߹ͷ࣮Λ৻ॏʹ֬ೝ08"41τοϓϞόΠϧϦεΫ 5IF08"41τοϓϞόΠϧϦεΫɺΞϓϦέʔγϣϯͰͷ࠷ॏཁͳϞόΠϧΞϓϦͷϦεΫʹ͍ͭͯͷڞ௨ೝࣝΛࣔ͢ͷͰ͢ɻ. ශऑͳαʔόʔଆͷ੍ޚ.҆શͰͳ͍σʔλͷอ. ෆेͳτϥϯεϙʔτอޢ. ҙਤ͠ͳ͍σʔλ࿙͍͑. ශऑͳೝূͱೝՄ. յΕͨ҉߸Խॲཧ. ΫϥΠΞϯταΠυͷΠϯδΣΫγϣϯ. ৴པͰ͖ͳ͍ೖྗʹΑΔηΩϡϦςΟஅ. ෆదͳηογϣϯॲཧ.όΠφϦอޢͷܽίϯτϩʔϧͱϦεΫͷ྆ํͱɺͪ͜Βͷ08"41ϓϩδΣΫτͷαΠτʹৄड़͞Ε͍ͯ·͢ɻIUUQTXXXPXBTQPSHJOEFYQIQ08"[email protected]@[email protected]ϓϩδΣΫτϦʔμʔColin Watson༁ऀͦͷଞͷߩݙऀManuel Lopez Arredondo, Fabio Cerullo, Tobias Gondrom,Martin Haslinger, Yongliang He, Cédric Messeguer, TakanoriNakanowatari, Riotaro Okada, Ferdinand Vroom, Ivy Zhangऄͱ͠͝ɺΞϓϦέʔγϣϯɾηΩϡϦςΟೝ্ͷͨΊͷڭҭతͳήʔϜͰ͢ɻ͜ͷ൛ϞόΠϧΞϓϦέʔγϣϯʹॏΛஔ͍͓ͯΓɺʮ08"41τοϓϞόΠϧίϯτϩʔϧʯΛʮ͠͝ʯɺ·ͨ༗໊ͳʮ08"41τοϓϞόΠϧϦεΫʯΛʮऄʯͱ͠·ͨ͠ɻ͜ΕΒͷϓϩδΣΫτͷϦʔμʔͳΒͼʹߩݙ͞Εͨํʑʹײँ͍ͨ͠·͢ɻαΠίϩίϚ͕ͳ͍ʁԼͷਤܗΛΓऔ͍ͬͯͬͯͩ͘͞ɻ৭ͷؙ͍͍ͭͨͷΛίϚͱͯ͑͠ΔͰ͠ΐ͏ɻ͋Δ͍ɺ̒໘ͷαΠίϩγϛϡϨʔλΛϓϩάϥϜ͢Δͱ͔ɺεϚϗ͔ύιίϯͰ͔Β·ͰͷͷཚΞϓϦΛ͍͍͑ɻͨͩ͠ɺग़Δ͕ϥϯμϜ͔Ͳ͏͔ͪΌΜͱνΣοΫ͢Δ͜ͱʂ͜ͷγʔτͷιʔεϑΝΠϧɺଞͷΞϓϦέʔγϣϯηΩϡϦςΟτϐοΫͷγʔτɺଞͷ༷ʑͳݴޠ൛ɺ·ͨʮ08"41ऄͱ͠͝ϓϩδΣΫτʯʹؔ͢ΔใɺҎԼͷ08"41ͷΣϒαΠτʹ͋Γ·͢ɻhttps://www.owasp.org/index.php/OWASP_Snakes_and_Laddersഎܠʮऄͱ͠͝ʯΞδΞൃͷϘʔυήʔϜͰɺϏΫτϦΞே࣌ʹӳࠃʹ༌ೖ͞ΕͨਓؾͷϘʔυήʔϜͰ͢ɻͱͱɺ͜ͷήʔϜળͱѱɺඒಙͱѱಙͷͦΕͧΕͷޮՌΛࣔͨ͠ͷͰͨ͠ɻ͜ͷήʔϜɺΞϝϦΧͷҰ෦ͷॴͰɺʮӍͲ͍ͱ͠͝ʯͱͯ͠ΒΕ͍ͯ·͢ɻ͜ͷ08"41൛ͰɺηΩϡΞͳίʔσΟϯάʢϓϩΞΫςΟϒίϯτϩʔϧʣΛߴܿͳߦಈͱ͠ɺΞϓϦέʔγϣϯϦεΫΛѱಙͱ͍ͯ͠·͢ɻܯࠂ08"41ऄͱ͠͝ɺنͷେখΛΘͣɺιϑτΣΞϓϩάϥϚʔʹ͍ͬͯͨͩ͘͜ͱΛҙਤ͍ͯ͠·͢ɻ͜ͷࢴͷήʔϜγʔτͦͷͷ༗Ͱ͋Γ·ͤΜ͕ɺར༻ऀ͕ɺࣗͰॴ༗͍ͯ͠ΔϓϥενοΫ͋Δ͍ͷαΠίϩΧϯλʔίϚΛ͏͜ͱʹ͢Δ߹ɺࡀҎԼͷࢠڙͨͪʹʹ٧·Βͤͯଉ͢ΔϦεΫ͕͋Δ͔͠Ε·ͤΜɻϧʔϧ͜ͷήʔϜਓ͔ΒਓͰ༡ͼ·͢ɻͦΕͧΕͷϓϨΠϠʔʹ৭ͷ͍ͭͨίϚΛ͍ͬͯͩ͘͞ɻ࠷ॳʹɺͦΕͧΕͷϓϨΠϠʔαΠίϩΛৼͬͯ୭͕࠷ॳʹϓϨΠ͢Δ͔ܾΊ·͢ɻҰ൪େ͖ͳͷΛग़ͨ͠ਓ͕࠷ॳͰ͢ɻશϓϨΠϠʔͷίϚΛʮελʔτʯͱ͋Δ࠷ॳͷϚεʹஔ͖·͢ɻॱʹɺ֤ϓϨΠϠʔαΠίϩΛৼΓɺͦͷʹ͕ͨͬͯ͠ίϚΛҠಈ͠·͢ɻҠಈͨ࣌͠ʹɺ͠ίϚ͕͠͝ͷԼʹདྷͨͳΒɺίϚΛ͠͝ͷ࠷্ஈͷͱ͜Ζʹ͋ΔϚεʹ্͛ͳ͚ΕͳΓ·ͤΜɻίϚ͕ऄͷޱͷͱ͜ΖʹདྷͨͳΒɺͦͷίϚΛऄͷ৲ඌͷͱ͜Ζʹ߱Ζ͞ͳ͚ΕͳΓ·ͤΜɻࠨ্ͷͷͱ͜Ζʹ࠷ॳʹདྷͨϓϨΠϠʔ͕উऀͱͳΓ·͢ɻ͜ͷγʔτ͔ΒΓऔͬͨͷͰαΠίϩΛ࡞ΔʹɺઢʹԊͬͯંΓۂ͛ɺͷΓ͠Ζͷͱ͜ΖʹணࡎΛ͚ͭɺ࢛֯͘ͳΔΑ͏ʹ৻ॏʹܗ͍ͯͩ͘͠͞ɻҰඖͷऄ͕࣍ͷॱ൪ͷΩϛͷαΠίϩͷΛݴ͓͏͔ͬͯɺΟϯΫͯ͠ΔΑɻݟ͔ͭͬͨʁ08"41ऄͱ͠͝ɺແྉͰࣗ༝ʹ͓͍͍͚ͨͩ·͢ɻΫϦΤΠςΟϒίϞϯζදࣔܧঝϥΠηϯεʹج͖ͮɺ͜ͷՌΛෳࣸɺɺૹ৴ɺվมɺۀతར༻͕ՄೳͰ͕͢ɺ͜ͷ࡞ʹج͍͔ͮ͘ͳΔͷʹ͍ͭͯɺ·ͨ࠶ར༻ɺసૹɺೋ࣍తஶ࡞ʹ͍ͭͯɺ͜ͷϥΠηϯεͱಉ͡༻ڐ݅Ͱͳ͚ΕͳΓ·ͤΜɻ© OWASP Foundation 2014.OWASP Snakes and Ladders– ऄͱ͠͝ϞόΠϧΞϓϦ൛ –ΣϒΞϓϦέʔγϣϯ൛ ϞόΠϧΞϓϦέʔγϣϯ൛
Proactive Controlsで脆弱性を事前に除去または低減しよう! Top10の脆弱性への対策を理理解08"411SP"DUJWF$POUSPMT
OWASP モバイル Top10 No モバイル Top 10 IoT Top 101 Weak Server Side Controls 安全でないウェブインタフェース2 Insecure Data Storage 不不⼗十分な認証/認可3 Insufficient Transport Layer Protection 安全でないネットワークサービス4 Unintended Data Leakage トランスポート層における暗号化の⽋欠如5 Poor Authorization and Authentication プライバシーに関する懸念念6 Broken Cryptography 安全でないクラウドインタフェース7 Client Side Injection 安全でないモバイルインタフェース8 Security Decisions Via Untrusted Inputs 不不⼗十分なセキュリティ対策9 Improper Session Handling 安全でないソフトウェア/ファームウェア10 Lack of Binary Protections 物理理セキュリティの不不⾜足OWASP IoT Top10 モバイル/IoTの脆弱性を理理解Top10シリーズとしてモバイル版やIoT版も存在!
Webシステム/Webアプリケーションセキュリティ要件書を⾒見見よう! 簡単にセキュリティ要件を理理解No セキュリティ要件1 認証2 認可(アクセス制御)3 セッション管理理4 パラメータ5 ⽂文字列列処理理6 HTTPS7 Cookie8 画⾯面設計9 その他