OWASP Day 758 講演資料
脆弱性診断を通じて見えてくるWebセキュリティOWASP Kansai チャプターリーダーはせがわようすけ
View Slide
長谷川陽介 (はせがわようすけ)(株)セキュアスカイ・テクノロジー 取締役CTO[email protected]http://utf-8/jp/千葉大学 非常勤講師OWASP Kansai チャプターリーダーOWASP Japan ボードメンバーCODE BLUEカンファレンス レビューボードメンバー
OWASP DAY 758 / 2018 #owaspnagoyatOWASP Kansai ChapterOpenWebApplicationSecurityProjectみんなの力で,ウェブでできたもんのセキュリティを何とかする活動…の関西版
OWASP DAY 758 / 2018 #owaspnagoyatOWASP Kansai Chapter自分たちの直面するWebセキュリティの問題を自分たちの手で解決したい!日本で2番目の OWASP Local Chapter2014年3月から 京都・大阪・神戸 でLocal Chapter Meeting (勉強会) を開催Webセキュリティの悩み事を気楽に相談し情報共有できる場スキル、役職、業種、国籍、性別、年齢に関係なし
OWASP DAY 758 / 2018 #owaspnagoyatOWASP Kansai Chapter Meeting
OWASP DAY 758 / 2018 #owaspnagoyatOWASP Kansai Chapter Meeting2018年10月17日 オワスプカンサイナイト 開催予定卓球バーラウンジパレット 本町店
OWASP DAY 758 / 2018 #owaspnagoyatOWASP Kansai Chapter Meeting2018年12月1日 開催予定 テーマ : 経営とセキュリティ」 会場 : アサヒコムホール (大阪中之島フェスティバルタワー)
OWASP DAY 758 / 2018 #owaspnagoyat今日のテーマ「脆弱性診断を通じて見えてくるWebセキュリティ」
OWASP DAY 758 / 2018 #owaspnagoyat世の中のWebサイトにはどんな脆弱性が多いのか
OWASP DAY 758 / 2018 #owaspnagoyatIPAへの届け出件数ソフトウェア等の脆弱性関連情報に関する届け出状況 [2018年第2四半期(4月~6月)]https://www.ipa.go.jp/files/000068146.pdf
OWASP DAY 758 / 2018 #owaspnagoyatIPAへの届け出件数生きてるWebサイトで法的に問題がない状態(?)で見つけられた脆弱性のみ クロスサイトスクリプティング DNS情報の設定不備 SQLインジェクション ディレクトリ・トラバーサル ファイルの誤った公開 HTTPSの不適切な使用個人/研究機関が特定の脆弱性を集中的に探すと結果が変わる必ずしも実際のWebサイトに存在している脆弱性を反映しているわけではないこのへん大丈夫なのかな…
OWASP DAY 758 / 2018 #owaspnagoyatもうちょっと実情に近いデータはないのかな
OWASP DAY 758 / 2018 #owaspnagoyat出します!どーん!
脆弱性の見つかった検査案件数の割合(%)弊社の診断実施案件にて、年間の検査数に対してそれぞれの脆弱性がみつかった案件数の割合を%で表示検出数が少ない脆弱性は記載を省略■ 2016年■ 2017年
脆弱性の見つかった検査案件数の割合(%)弊社の診断実施案件にて、年間の検査数に対してそれぞれの脆弱性がみつかった案件数の割合を%で表示検出数が少ない脆弱性は記載を省略■ 2016年■ 2017年 XSS - 22% 診断案件の22%で見つかっている 対策していても漏れが見つかる - 網羅的に検査を行う脆弱性診断が効果的 不適切なプロセスの検証 - 12% アプリケーションロジック上の問題 診断案件の12%で見つかっている SQLインジェクション - 5% それほど件数は多くないがリスクは高い コードインジェクション - 1% リモートコード実行、ごくまれに見つかる
OWASP DAY 758 / 2018 #owaspnagoyat診断の効果をあげるために
OWASP DAY 758 / 2018 #owaspnagoyat診断の効果をあげるために診断の効果を最大限に得られるように! せっかく予算と期間を割いて脆弱性診断を行うのなら、診断の効果を最大限にあげられるようにしたほうがお得!診断が行いやすい条件いろいろ 診断のスケジュールが確定している 大量のリクエストを送っても安定稼働する 診断用の環境を用意する オーソドックスなデータフォーマットで通信これら↑が守られていないと診断の精度が落ちることもあり得る
OWASP DAY 758 / 2018 #owaspnagoyat診断のスケジュールが確定している診断会社は限られたリソース(人員)の予定をやりくりして案件を調整している 各社とも診断まで3ヵ月待ちとか普通にあり得る開発の遅れで診断が開始できない、リスケになる 無理やり人員をアサインするので物理的に余裕のない状態になる診断スケジュールを変えられないので開発中のものを診断する 動かない機能があちこちにあって診断できない 通常のバグも多すぎて脆弱性なのかバグなのか判断できない 診断が終わった箇所の挙動が変わる。何のために診断してるのかわからなくなる
OWASP DAY 758 / 2018 #owaspnagoyat大量のリクエストを送っても安定稼働する診断では網羅性を上げるため、ツールによって大量のリクエストを送信するこういうサイトは診断しにくい 大量にリクエストを送ると挙動が不安定になる レスポンスが遅いツールをかけるタイミングや速度などの調整はするが、その調整に相当の時間を取られることも多い 診断用の環境は一時的にしか使わないので、少しだけリソースが潤沢にあるとうれしい。DBとかネットワークとか…。
OWASP DAY 758 / 2018 #owaspnagoyat診断用の環境を用意する本番環境で診断をせざるを得ない場合、かなり神経をつかう とある診断員とSQLインジェクションhttps://www.slideshare.net/zaki4649/sql-35102177 「あれはやってはダメ」「これもやってはダメ」という指定が多いとそのための調整も大変。本番ではないが開発が進行している環境だと診断の効率が落ちる 毎日ソフトウェアが追加や更新される 不定期にデプロイが走り、ちょっとずつ仕様が変わる。診断前半で操作した遷移が、後半では消えていて辿れなくなる 毎朝データが消えてる、デフォルト値に戻ってる
OWASP DAY 758 / 2018 #owaspnagoyatオーソドックスなデータフォーマットで通信複雑なデータフォーマットは専用のパーサーやスタブを実装する必要があるこういうフォーマットだと苦労する パラメータが1つだけの普通のPOSTかと思ったら、パラメータの中身がURLエンコードされたJSONで、中身がぎっしり詰まってる 送信パラメータから署名を生成して都度埋め込むAPI MessagePack SSTtechlog 12 MessagePack/JSON変換HTTPプロキシの紹介https://www.securesky-tech.com/column/techlog/12.html スマホアプリで独自暗号化、証明書のピニング 通信を解いた専用環境を提供してもらわないと相当難しい
OWASP DAY 758 / 2018 #owaspnagoyatそれ以外にも診断の効率が落ちるケースB2B用途のAPIで仕様が非公開、業界独自用語、APIのユースケースや用途が不明一度しか操作できない操作(初回ログイン時の設定など)が多いログイン遷移で外部SSO挟んで多数サイトのリダイレクトを経由する診断を通じて物理的な影響が出る ECサイトの診断で実際に商品が届く 電話やFAXが鳴る SOCやIDS/IPSが検知してしまう
OWASP DAY 758 / 2018 #owaspnagoyat診断の効果をあげるためにできること「そうは言っても開発スケジュールも厳しいし、診断会社が柔軟に対応してよ」➡ まったくその通りではあるんですが、後工程に押し付けあいするのではなく、いっしょに少しでもいいサービスを出せるよう開発側も診断側も協力していきたい診断を阻害する要因が少なければ少ないほど、より丁寧で精度の高い診断サービスを提供できる
OWASP DAY 758 / 2018 #owaspnagoyatWAFと診断
OWASP DAY 758 / 2018 #owaspnagoyatWAFと診断Web Applicatino Firewallと診断では目的・性格が違う 診断 - 脆弱性を探す - 「シングルクォートを入れるとエラーが表示される」 WAF - 攻撃を防ぐ - 「データベースから実際にデータを抜き出す」WAFで防げないタイプの脆弱性も多い アプリケーションの仕様に基づいた脆弱性など
OWASP DAY 758 / 2018 #owaspnagoyat安全なアプリケーション開発のために
OWASP DAY 758 / 2018 #owaspnagoyat安全なアプリケーション開発のために安全な設計 使用する暗号やハッシュの強度 パスワードリマインダの画面遷移 権限周りの設計ミス その他、仕様に起因するもの安全な実装 SQLインジェクション対策 XSS対策 バッファオーバーフロー その他、実装に起因するもの
OWASP DAY 758 / 2018 #owaspnagoyat安全なアプリケーション開発のために設計、実装とも世の中の標準を知っておく例: MD-5やSHA-1はもう使い物にならない パスワードリマインダは時限付き SQLインジェクション対策にはプリペアードステートメント HTML生成には自動エスケープされるテンプレートエンジン
OWASP DAY 758 / 2018 #owaspnagoyat「脆弱性」の定義脆弱性はただのバグ脆弱性はバグの一種です。一般的なバグは「できるはずのことができない」というものですが、脆弱性は「できないはずのことができる」というバグです。もっと言うと、「できてはいけないことができる」ということですEGセキュアソリューションズ徳丸浩さん
OWASP DAY 758 / 2018 #owaspnagoyat脆弱性はただのバグバグの少ないプログラム = 脆弱性も少ない 脆弱性を減らすにはバグを減らせばいいまずはプログラムの品質をあげよう! セキュリティだけにフォーカスするのは本当は間違い そのうえでセキュリティに特化した対応を!コードの品質を上げる = 安全になる デザインレビュー コードレビュー テストを書く 最後に脆弱性検査
OWASP DAY 758 / 2018 #owaspnagoyatコードの品質を上げるPHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 和田卓人(t_wada)さん スライドhttps://speakerdeck.com/twada/php-conference-2016-revised 動画https://www.youtube.com/watch?v=54jHDHvcYAo開発者なら絶対に見ておいたほうがいい
OWASP DAY 758 / 2018 #owaspnagoyat質問?[email protected]@hasegawayosukehttp://utf-8.jp/