OWASPのAppSecトレーニングが世界各地で行われることになっており、本日は東京開催日でした。
https://www.owasp.org/index.php/2017_OWASP_World_Tour_Tokyo
東京開催ですが、日本全国に中継されるとのことで、サテライト会場で参加してきました。
オープニングとクロージングセッションに50分から60分のセッションが5つ。
休憩をはさみつつ、約7時間半の濃い内容でした。
通常なら一人十万以上はかかりそうなのに、無料で実施ってすげえ。
資料は
https://speakerdeck.com/owaspjapan
の「owt2017jp-*」となっているところに公開されていますが、
せっかくなので手元のメモをさらしてみます。
キーワード拾った程度ですが気にしない。
(1)OWASPの歩き方
・OWASP TOP 10 2017 RC1が出ていたが、リジェクトされてしまった。
→正式版リリースは11月下旬にずれ込み。
・OWASP Web Testing Environment
・OWASP Security Shephered
・ModSecurityのルールセットは、実はOWASPが出してた。
・CSRFGuard Project
・ASVS(Verification Standard Project)
・Testing Guide
(2)OWASP TOP 10を用いた脆弱性対応
・OWASP TOP10 2013がStableで最新で、2017が年内リリース
(前セッションの11月リリースのこと)。
→2017では「A4.安全でないオブジェクト参照」と 「A7.機能レベルアクセス制御の欠落」は統合され、
「A10.未検証のリダイレクトとフォーワードは廃止予定。
・OWASP Top 10 Proactive Controls 2016
・WAFの防御力だけでは満足できない。根本的にはWebアプリの作りで対処すべし。
・SQLインジェクションの原因:SQLが制御とデータを区別しないこと。
・実装・テストの対応だけでは不十分。
→セキュリティアーキテクチャの構築が重要。
・Spring Security
・フレームワークは脆弱性の危険性を下げてくれるが、過度な期待はダメ。
・OWASPアプリケーションセキュリティ検証標準
https://www.jpcert.or.jp/securecoding/materials-owaspasvs.html
・非機能要求定義の一環として、セキュリティ要件定義をしましょう。
(3)最小権限の具体的な実現方法
・情報・データ起点権限設計しましょう
・権限設計の脆弱性は、診断ツールでは見つけにくい。また、脆弱性が見つかっても修正しにくい。
→ツールはあくまでもパラメータを変えたときの挙動を見てるだけ。
・最小権限を実現するために公開されている情報
・IPA:安全なウェブサイトの作り方
外部のパラメータを利用してアクセス制御しないように!
・OWASP:OWASP Top 10 Proactiove Controls 2016 Japanese P18-P20
守るべき対象はデータ中心にアクセス権限を考える。
・リスクアセスメントと権限設計は似てる
・権限設計をするには、データとその特性の洗い出しをする
・扱うデータの特定
・データのライフサイクルの検討
・データの操作権の特定
・認証後でないとアクセスできない箇所は公開領域に設置しない。また、未ログイン時の画面に表示しないこと。
・操作方法の検討:Howを考える(シーケンス図で検討)
・実装方法:フレームワークのアクセス制御機能を利用すべし
・検証方法:テストコードに含める
・開発者・管理者:事情を知ってるのでテストコードに書ける
・第三者の診断担当者:権限表がない限り、推測で見ることになる
(4)開発者・運用担当者に向けた、OWASP ZAPを用いた脆弱性診断手法
・アンチウイルスソフトが攻撃と判断して通信を遮断する可能性があるので注意すること。
・ZAPpingTheTop10のうち、手動診断でないと見つけにくいもの
・A2:HTTPセッション
・A4:パラメータタブ
・A7:スパイダー、AJAXスパイダー、Access Control(開発中)
・Webアプリ脆弱性診断ガイドラインを見ておくべし
・ScanルールはとりあえずはReleaseバージョンになっているものを使っておけばよい
(5)OWASP BWAを用いた学生および職員向けトレーニング
・BWAを使って学生とCERT職員に演習教育をやってみた話。
・BWAの環境は絶対にグローバルな環境に繋いだらダメ!
・複雑なXSSを初学者にどう理解させるかが鍵。XSS全体のシナリオを分解することで対応した。
・座学だけよりも手を動かす形式にした方が、ポジティブに取り組んでくれる。
(6)開発プロジェクトの現状を把握する OWASP SAMMの活用
・OWASP SAMM:開発ライフサイクルをセキュアにすること
・現状把握-アセスメント:ヒアリング項目が70個以上ある。計画が大事。
・目標設定-実施:必ずしも最高レベルを目指す必要はない。
・4つのビジネス機能と12のセキュリティ対策で構成
[質疑応答]
OWASP SAMMは小さなプロジェクトでも使えるのか?
→意見交換をするためのツールとして使える。その際はどの人がどのロールかを把握したうえで使うべし。
(7)クロージング
シフトレフト!
会場でいただいた戦利品。
9月2日のOWASP Kansai Local Chapter Meetingで1枚ゲットしてたけど、
LinuxノートPCに貼ってしまったので補充。