OWASP World Tour 2017 Tokyo #2
当日のスライド下記にすべてあり
https://speakerdeck.com/owaspjapan/
※個人的に印象に残ったことを赤字にしております(怒られそうですが)
--------------------------
◆[Opening]ご注意
--------------------------
録音録画 OK
個人の撮影 NG (ただし登壇者はOK)
CPEの申請は最後にやります
自分の管理外への攻撃はダメ!(※攻撃とみなされるものもダメ)
脆弱性のある環境をグローバルにださない
--------------------------
◆[Opening]OWASP FlagShipProjectの説明
--------------------------
・ZAP →脆弱性診断、プロキシ
・Dependency Check→Java .Net 対応
・OWASP TOP10
・TestingEnviroment
・OWTF
*SecretyShepherd →新しいプロジェ、トレーニング向け
https://www.owasp.org/index.php/OWASP_Security_Shepherd
・ModSecurityCoreRule→ModSecurity関連
*ASVS →アセスメントの基準作成
*TestingGuide →診断項目
*スキルマッププロジェクト →脆弱性診断のレベル担保
--------------------------
◆[1]OWASP TOP10を用いた脆弱性対応
--------------------------
対策はProactiveControlsのドキュメント参照
WebGhotに脆弱なコードあるからコードが必要な場合さがせばよい
Spring→SpringSecurityFWがある(組み込め!)
ORマッパよりFWのセキュリティ対策機構のほうが堅牢
--------------------------
◆[2]安全な権限設計
--------------------------
最小権限が基本だす
最低限の権限
最低限の期間
^^^^^
ビジネスロジックがらみ
ツール検出困難→修正も困難なケースが多い
ユーザ権限と対応画面一覧をエクセルでまとめてアクセス制御系を潰す
そもそも論、サービス設計、仕様バグに至る可能性がある
パラメタ操作で権限昇格できるパターンなどはツール検出困難→診断員の経験に依存
・攻撃例
権限を越えた、強制ブラウズできるか
権限を越えた、強制ダウンロードできるか
?FileNameをクエリ指定でDLできるか、また解析できるクエリか
権限越えをできるか(管理ユーザ権限、一般ユーザ権限、別ユーザ権限)
パラメータ操作(Getパラ、Postパラ、Cookie)
・対策例
外部入力値でアクセス制御を行わない=サーバ側で検証可能な値を使う
デフォルトは全部拒否
最小権限
FrameWorkのACLをつかいましょ(自作やめましょ~)
・リスクアセスメント的アプローチをとりましょう
画面単位の設計→データ単位の設計へ※脅威の明確化
レコード単位、カラム単位、テーブル単位でデータの設計を考えてみる
作成契機をかんがえる
削除契機をかんがえる
※オブジェクトがいつNewしてDestoroyして触れるのは誰なのか
・検証/維持
テストコードに権限検証も入れましょう~
権限表を作る
権限表を検証できるテストコードをテスト要件に入れる
--------------------------
◆[3]ZAP
--------------------------
管理外への攻撃送信、ダメ、ゼッタイ
ウィルス検知系の検知アラートあがるかも
次リリースでアクセス制御系の検査入る。現行で試せる。
--------------------------
◆[4]OWASPBWAを用いた教育
--------------------------
BWA=BrokenWebApplication
教育するにあたり対象層と到達目標を常に意識したほうがよい
問題の粒度、難度は受講者が自力で解ける程度がよい
→モチベーションの維持のため
振り返りの重要性
→1を解いて4を解くとあ~って分かる感じにする
合宿:3日でXSS、RCE、SQLiを習得(さすが♪)
演習:週1.5H*2ヶ月で同じメニューを完遂(1.5*8=12Hくらい?)
→合宿部隊とは別に個別教育した
合宿など開催場所のNW環境が見えない場合、
演習環境を提供したほうがよい(VM配布による各自のローカル閉鎖環境のほうが楽)
デモ大事とにかくデモ作れ
--------------------------
◆[5]開発プロジェクトとセキュリティ推進(OWASP SAMM)
--------------------------
大事なのは、「定量化、可視化」
各レイヤーの要員が多層的にセキュアにする
他人に説明するときに可視化されているものがある(グラフなど)と説得しやすい
何か基準(アセスメント系)を作る場合、どこかに元ネタになるドキュメントあるので
OWASPのドキュメントをよく探すのがよい
企業内のセキュリティの仕事は色々な玉が飛んでくる
それらへのアドバイザリ的なお仕事が多い
利便性の維持とセキュリティの両立を考える
開発⇔運用の分断があってはダメ
フィードバックが必要
ヒアリング⇔ロードマップ作成は大変
悪いところだけでなく、いいところも合わせてレビューする!
大きいPRJの場合スモールスタートで小さく始めて、改善する方向がよいのでは?
--------------------------
◆[Closing] SHIFT LEFTの重要性
--------------------------
OWASPは手立て(方法、情報)を提供している
でも、モチベーションも大事
→セキュリティが開発のダメ出しになり、心のよりどころにならない
→セキュリティが絵空事になっている(工数やお金がないからできない)
OSI参照モデルの物理層以外は全部ソフト
前段階で高頻度で見直すことが必要(レビュー、テスト、)
→楽にできる仕組み→自動化、流用
英語で言えば、SHIFT LEFT
うーん、おなかいっぱいな一日でした。
またあしたから、もっと手を動かして、よく見て、地道にがんばりまーす。