Slide 1

Slide 1 text

脆弱性診断を通じて 見えてくるWebセキュリティ OWASP Kansai チャプターリーダー はせがわようすけ

Slide 2

Slide 2 text

長谷川陽介 (はせがわようすけ) (株)セキュアスカイ・テクノロジー 取締役CTO [email protected] http://utf-8/jp/ 千葉大学 非常勤講師 OWASP Kansai チャプターリーダー OWASP Japan ボードメンバー CODE BLUEカンファレンス レビューボードメンバー

Slide 3

Slide 3 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter Open Web Application Security Project みんなの力で, ウェブで できたもんの セキュリティを 何とかする活動 …の関西版

Slide 4

Slide 4 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter 自分たちの直面するWebセキュリティの 問題を自分たちの手で解決したい! 日本で2番目の OWASP Local Chapter 2014年3月から 京都・大阪・神戸 で Local Chapter Meeting (勉強会) を開催 Webセキュリティの悩み事を気楽に相談し情報共有できる 場 スキル、役職、業種、国籍、性別、年齢に関係なし

Slide 5

Slide 5 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter Meeting

Slide 6

Slide 6 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter Meeting

Slide 7

Slide 7 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter Meeting 2018年10月17日 オワスプカンサイナイト 開催予定 卓球バーラウンジパレット 本町店

Slide 8

Slide 8 text

OWASP DAY 758 / 2018 #owaspnagoya t OWASP Kansai Chapter Meeting 2018年12月1日 開催予定  テーマ : 経営とセキュリティ」  会場 : アサヒコムホール (大阪中之島フェスティバルタワー)

Slide 9

Slide 9 text

OWASP DAY 758 / 2018 #owaspnagoya t 今日のテーマ 「脆弱性診断を通じて見えてくる Webセキュリティ」

Slide 10

Slide 10 text

OWASP DAY 758 / 2018 #owaspnagoya t 世の中のWebサイトには どんな脆弱性が多いのか

Slide 11

Slide 11 text

OWASP DAY 758 / 2018 #owaspnagoya t IPAへの届け出件数 ソフトウェア等の脆弱性関連情報に関する届け出状況 [2018年第2四半期(4月~6月)] https://www.ipa.go.jp/files/000068146.pdf

Slide 12

Slide 12 text

OWASP DAY 758 / 2018 #owaspnagoya t IPAへの届け出件数 生きてるWebサイトで法的に問題がない状態(?)で見つけられた脆 弱性のみ  クロスサイトスクリプティング  DNS情報の設定不備  SQLインジェクション  ディレクトリ・トラバーサル  ファイルの誤った公開  HTTPSの不適切な使用 個人/研究機関が特定の脆弱性を集中的に探すと結果が変わる 必ずしも実際のWebサイトに存在している脆弱性を反映しているわ けではない このへん大丈夫なのかな…

Slide 13

Slide 13 text

OWASP DAY 758 / 2018 #owaspnagoya t もうちょっと実情に近いデータは ないのかな

Slide 14

Slide 14 text

OWASP DAY 758 / 2018 #owaspnagoya t 出します!どーん!

Slide 15

Slide 15 text

脆弱性の見つかった検査案件数の割合(%) 弊社の診断実施案件にて、年間の検査数に対してそれぞれの 脆弱性がみつかった案件数の割合を%で表示 検出数が少ない脆弱性は記載を省略 ■ 2016年 ■ 2017年

Slide 16

Slide 16 text

脆弱性の見つかった検査案件数の割合(%) 弊社の診断実施案件にて、年間の検査数に対してそれぞれの 脆弱性がみつかった案件数の割合を%で表示 検出数が少ない脆弱性は記載を省略 ■ 2016年 ■ 2017年  XSS - 22%  診断案件の22%で見つかっている  対策していても漏れが見つかる - 網羅的に検 査を行う脆弱性診断が効果的  不適切なプロセスの検証 - 12%  アプリケーションロジック上の問題  診断案件の12%で見つかっている  SQLインジェクション - 5%  それほど件数は多くないがリスクは高い  コードインジェクション - 1%  リモートコード実行、ごくまれに見つかる

Slide 17

Slide 17 text

OWASP DAY 758 / 2018 #owaspnagoya t 診断の効果をあげるために

Slide 18

Slide 18 text

OWASP DAY 758 / 2018 #owaspnagoya t 診断の効果をあげるために 診断の効果を最大限に得られるように!  せっかく予算と期間を割いて脆弱性診断を行うのなら、診断の効果を最大 限にあげられるようにしたほうがお得! 診断が行いやすい条件いろいろ  診断のスケジュールが確定している  大量のリクエストを送っても安定稼働する  診断用の環境を用意する  オーソドックスなデータフォーマットで通信 これら↑が守られていないと診断の精度が落ちることもあり得る

Slide 19

Slide 19 text

OWASP DAY 758 / 2018 #owaspnagoya t 診断のスケジュールが確定している 診断会社は限られたリソース(人員)の予定をやりくりして案件を調整 している  各社とも診断まで3ヵ月待ちとか普通にあり得る 開発の遅れで診断が開始できない、リスケになる  無理やり人員をアサインするので物理的に余裕のない状態になる 診断スケジュールを変えられないので開発中のものを診断する  動かない機能があちこちにあって診断できない  通常のバグも多すぎて脆弱性なのかバグなのか判断できない  診断が終わった箇所の挙動が変わる。何のために診断してるのかわからな くなる

Slide 20

Slide 20 text

OWASP DAY 758 / 2018 #owaspnagoya t 大量のリクエストを送っても安定稼働する 診断では網羅性を上げるため、ツールによって大量のリクエストを送 信する こういうサイトは診断しにくい  大量にリクエストを送ると挙動が不安定になる  レスポンスが遅い ツールをかけるタイミングや速度などの調整はするが、その調整に 相当の時間を取られることも多い  診断用の環境は一時的にしか使わないので、少しだけリソースが潤沢にある とうれしい。DBとかネットワークとか…。

Slide 21

Slide 21 text

OWASP DAY 758 / 2018 #owaspnagoya t 診断用の環境を用意する 本番環境で診断をせざるを得ない場合、かなり神経をつかう  とある診断員とSQLインジェクション https://www.slideshare.net/zaki4649/sql-35102177  「あれはやってはダメ」「これもやってはダメ」という指定が多いとそのための 調整も大変。 本番ではないが開発が進行している環境だと診断の効率が落ちる  毎日ソフトウェアが追加や更新される  不定期にデプロイが走り、ちょっとずつ仕様が変わる。診断前半で操作した 遷移が、後半では消えていて辿れなくなる  毎朝データが消えてる、デフォルト値に戻ってる

Slide 22

Slide 22 text

OWASP DAY 758 / 2018 #owaspnagoya t オーソドックスなデータフォーマットで通信 複雑なデータフォーマットは専用のパーサーやスタブを実装する必 要がある こういうフォーマットだと苦労する  パラメータが1つだけの普通のPOSTかと思ったら、パラメータの中身が URLエンコードされたJSONで、中身がぎっしり詰まってる  送信パラメータから署名を生成して都度埋め込むAPI  MessagePack  SSTtechlog 12 MessagePack/JSON変換HTTPプロキシの紹介 https://www.securesky-tech.com/column/techlog/12.html  スマホアプリで独自暗号化、証明書のピニング  通信を解いた専用環境を提供してもらわないと相当難しい

Slide 23

Slide 23 text

OWASP DAY 758 / 2018 #owaspnagoya t それ以外にも診断の効率が落ちるケース B2B用途のAPIで仕様が非公開、業界独自用語、APIのユースケー スや用途が不明 一度しか操作できない操作(初回ログイン時の設定など)が多い ログイン遷移で外部SSO挟んで多数サイトのリダイレクトを経由す る 診断を通じて物理的な影響が出る  ECサイトの診断で実際に商品が届く  電話やFAXが鳴る  SOCやIDS/IPSが検知してしまう

Slide 24

Slide 24 text

OWASP DAY 758 / 2018 #owaspnagoya t 診断の効果をあげるためにできること 「そうは言っても開発スケジュールも厳しいし、診断会社が柔軟に対 応してよ」 ➡ まったくその通りではあるんですが、後工程に押し付けあいするのではなく、 いっしょに少しでもいいサービスを出せるよう開発側も診断側も協力していき たい 診断を阻害する要因が少なければ少ないほど、より丁寧で精度の高い診断 サービスを提供できる

Slide 25

Slide 25 text

OWASP DAY 758 / 2018 #owaspnagoya t WAFと診断

Slide 26

Slide 26 text

OWASP DAY 758 / 2018 #owaspnagoya t WAFと診断 Web Applicatino Firewallと診断では目的・性格が違う  診断 - 脆弱性を探す - 「シングルクォートを入れるとエラーが表示される」  WAF - 攻撃を防ぐ - 「データベースから実際にデータを抜き出す」 WAFで防げないタイプの脆弱性も多い  アプリケーションの仕様に基づいた脆弱性など

Slide 27

Slide 27 text

OWASP DAY 758 / 2018 #owaspnagoya t 安全なアプリケーション開発のために

Slide 28

Slide 28 text

OWASP DAY 758 / 2018 #owaspnagoya t 安全なアプリケーション開発のために 安全な設計  使用する暗号やハッシュの強度  パスワードリマインダの画面遷移  権限周りの設計ミス  その他、仕様に起因するもの 安全な実装  SQLインジェクション対策  XSS対策  バッファオーバーフロー  その他、実装に起因するもの

Slide 29

Slide 29 text

OWASP DAY 758 / 2018 #owaspnagoya t 安全なアプリケーション開発のために 設計、実装とも世の中の標準を知っておく 例:  MD-5やSHA-1はもう使い物にならない  パスワードリマインダは時限付き  SQLインジェクション対策にはプリペアードステートメント  HTML生成には自動エスケープされるテンプレートエンジン

Slide 30

Slide 30 text

OWASP DAY 758 / 2018 #owaspnagoya t 「脆弱性」の定義 脆弱性はただのバグ 脆弱性はバグの一種です。 一般的なバグは「できるはずのことができな い」というものですが、脆弱性は「できないは ずのことができる」というバグです。もっと言 うと、「できてはいけないことができる」という ことです EGセキュアソリューションズ 徳丸浩さん

Slide 31

Slide 31 text

OWASP DAY 758 / 2018 #owaspnagoya t 脆弱性はただのバグ バグの少ないプログラム = 脆弱性も少ない  脆弱性を減らすにはバグを減らせばいい まずはプログラムの品質をあげよう!  セキュリティだけにフォーカスするのは本当は間違い  そのうえでセキュリティに特化した対応を! コードの品質を上げる = 安全になる  デザインレビュー  コードレビュー  テストを書く  最後に脆弱性検査

Slide 32

Slide 32 text

OWASP DAY 758 / 2018 #owaspnagoya t コードの品質を上げる PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計  和田卓人(t_wada)さん  スライド https://speakerdeck.com/twada/php-conference-2016-revised  動画 https://www.youtube.com/watch?v=54jHDHvcYAo 開発者なら絶対に見ておいたほうがいい

Slide 33

Slide 33 text

OWASP DAY 758 / 2018 #owaspnagoya t 質問? [email protected] @hasegawayosuke http://utf-8.jp/