やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

OWASP TOP 10 2017のリスクを体感してみた

chocopurin2018-04-27

OWASP Kansaiのハンズオンイベント
「OWASP TOP 10のリスクを体感してみよう」
https://owasp-kansai.doorkeeper.jp/events/72652
に参加してみました。
前回のOWASP Kansaiで少し告知されて以来、内容的に速攻埋まるだろうと思って
適宜チェックしていました(実際、申し込みはあっという間に定員オーバー)。


内容はOWASP TOP 10 2017をBadLibrary
https://github.com/SecureSkyTechnology/BadLibrary
というやられアプリと
OWASP ZAP
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
で試してみようというもの。
書面でしか見られなかったOWASP TOP 10でしたが、
実際に手を動かすことで、かなり理解が深まりました。


当日までにBadLibraryを導入しておいた方がよいということで、
事前にやってはいたのですが、Node.js周りでちょこちょこハマったので、
コンテナ化して、いつでも復元できる形にして臨みました。
Docker様様v


ハンズオンの資料は
https://speakerdeck.com/owaspkansai/owasp-kansai-20180427handson
で公開されていますが、おうち帰ってレポるまでがハンズオン。
いつも通り、ハッシュタグや手元にとっ散らかしたメモを整理してみます。


・本ハンズオンイベントの位置づけ
あとで自分たちでも試せるようになることを目的としているため、
ツールの詳しい使い方は説明しない。


【座学部分】
・OWASPの紹介


・OWASP TOP 10の紹介
2017が最新。TOP10とあるが、順位付けはない。
10個並べただけと考えるべし。


・A1:2017 インジェクション
SQLインジェクションXSS、OSコマンドインジェクションとかを
ひとまとめにしている。


・A2:2017 認証の不備
二要素認証が対策になる。
ログアウトしてもセッションが破棄されてないケースがある。


・A3:2017 機微な情報の露出
OWASP TOP 10では暗号化にフォーカスされてしまっているが、
実際にはそれだけではない。


・A4:2017 XML外部エンティティ参照
XML内の外部サイト参照の機能を悪用


・A5:2017 アクセス制御の不備
某アプリにて、A5:2017が原因で退職届を誰でも承認できる状態になってたらしいw


・A6:2017 不適切なセキュリティ設定
http-only属性がつづりミスで効いていなかったという事例があったらしい(苦笑)


・A7:2017 クロスサイトスクリプティング
インジェクションに含まれているにも関わらず単独項目になっている。


・A8:2017 安全でないデシリアライゼーション
文字列やバイト列からオブジェクトを復元する機能。
フレームワーク作成時に入ってしまうことが多い。


・A9:2017 既知の脆弱性のあるコンポーネントの使用
アプリの運用体制きちんとを作るべし。


・A10:2017 不十分なロギングとモニタリング
脆弱性診断では見つけづらい。運用担当と一緒にどう進めるか考えるべし。


(質問)
DOM based XSSとは?
JavaScriptでHTMLを操作するときの操作に問題があるときに発動するXSS




【ハンズオン】
・インジェクション
SQLインジェクションで他人の貸出履歴を見る。
ログイン画面にSQLインジェクションをすることで、誰でもログインできる。


・認証の不備
ブラウザのプロキシ設定をOWASP ZAPに向ける。
→ハンズオン:セッションIDの入れ替えをしていないことがわかる。


・機微な情報の露出
robots.txtを手がかりに情報ゲット


XML外部エンティティ参照
ZAPの再送信機能が働かなくて、ちょっち焦る。
プロテクトモードとコンテキストへの追加設定が原因だった模様。
神戸脆弱性診断の会#1のときに、ある程度とはいえ、触っといてよかった。
→config.json取れた


・不十分なロギングとモニタリング
BadLibraryはログを吐きませんw


(質問)
安全でないデシリアライゼーションはどうやったら試せる?
JavaPHPがいる。この脆弱性は、フレームワークを作るときに起こりうる。
 普通にプログラム書いてる分には出にくい。


(質問)
TOP 10があるということは、それだけ被害が多くあるということか?

OWASP TOP 10
https://www.owasp.org/index.php/Japan
からDLできる日本語版22ページが参考になる。
脆弱性情報については、JVNにCVSS数値を用いてまとめられているので、
参考にするとよい。


(質問)
資料は再配布してよいか?
→全く問題なし。ただし、資料や講習内容を公開サイトで試さないこと。