9/30 2017 OWASP World Tour Tokyo

9月は、都合4回の勉強会に参加しました。

  • 9/2 OWASP Nagoya Local Chapter Meeting 1st
  • 9/9 Nagoyasec #13
  • 9/16 ISACA名古屋支部月例会(講師:徳丸浩様)
  • 9/30 OWASP World Training Tour 2017 (TOKYO)

今回は、9/30の OWASP World Training Tour TOKYO を名古屋サテライト会場で受講した話をまとめます。

提供されたスライド類

かなりの枚数のスライド類が提供されました。多いわーマジ多いわー。

OWASPの歩き方(上野様)

ゴメンナサイ、MacOSでUSBテザリングに四苦八苦しててほとんど聞いてませんでした orz
OWASPの各ワークグループで進められているプロジェクトの紹介でした。

  • ZAP
    JavaベースのWebアプリケーション脆弱性スキャナ
  • Web Testing Environment
    VMイメージでのディストリ
  • OWTF
    自動診断ツール
  • OWASP Security Shephered
    これもVMイメージのディストリ。
    仲間にWebGoat(war形式のアプリ)も。
  • ModSecurity のルールセット
    WAFに組み込みたい例のアレ。
  • Testing Guide
    アプリケーションテストのガイドブック、224ページ…
  • Webシステム/Webアプリケーションセキュリティ要件書
    要求定義のお手本。上野様のアカウントが公開URIなのね…(ほむほむ)

日本語にローカライズされているのはほんの一部で、変な話1センテンス。1ワードでもいいから日本語訳に参加してほしい!とのことでした。(そういえば、チートシート集の日本語版は圧巻の量でしたね・・・)

OWASP Top10を用いた脆弱性対応(安藤様)

OWASP Top10の読み方と、Top10で挙げられている各内容がシステム開発・運用のどのあたりに効いてくるのか、の説明でした。

  • 認証回りではなるべく「ありもの」のフレームワークを使う。でもフレームワークは万能に作用するわけではない(例えばSQLインジェクション) ので、フレームワークを過信しすぎないこと
  • OWASP Top10 Proactive Controls のプラクティスを参考にしたり、開発フェーズでのユニットテスト・受け入れフェーズでのテストにZAPでの脆弱性検査を行うことを組み合わせること
  • 要件定義フェーズは「ASVS」や「Webアプリケーションセキュリティ要件書」を活用すること

…等の紹介がありました。

最小権限の具体的な実現方法(長山様)

お昼ご飯のあとは「最小権限」の実装について長山様から紹介がありました。

アイスブレイクの要約はこんな感じ。
自分以外や、親しい人以外に見られたくない・知られたくないことがあるか?
→どうやって制御する?
→最小権限をなぜ実装するかは、ここ

権限回りがややこしいのは、SQLiやXSSみたいにZAPなどのツールを当てながら作りこむことで回避ができるわけではなくて、「役割(その人が売上入力だけする人なのか、仕入を担当する人なのか、それらを束ねて管理する人なのか、など)」とカルチャ(企業文化・しきたり・社長や役員のIPアドレスは小さい値にして末端従業員は2xx台にーみたいな)が複雑に結びついてることから、ZAPでは検出しづらいし、問題を見つけにくいところ。

アクセス認可といえば、IPAさんにこんな記事があったのを思い出します。(ちと古い気がするが、きにしない)

考えられるワークアラウンドと、個人的に気になったこと。

  • データ中心に認可回りを考えて、ユーザID・グループIDと参照される先のテーブルとの間に権限テーブル的なものを配置して、これをグルーとする。グルーを経由することでワンクッション置ける。
  • 各データについてライフサイクルを検討する。いつ作られて、それはいつ破棄されるべきか。
    データのライフサイクル、変な話Classic VBの「手作りの基幹システム」でも起きる話で、「xxさんって2年前に退職したのになんでxxさんのアカウントでログイン履歴があるの?→便利だからさ」みたいな事案が某社でよく起きてたの思い出す。しかも対策は「使えてるんだからそのままでよくね?(ログの監査は面倒だからやってねえ)」みたいなアレレな話だったが。PCIDSSとかJ-SOX的に刺されそうな話だが。ああこれもカルチャだ。
  • テストコード内で権限設計を検証する。そもそも外部の第三者が受け入れ監査しようとしても権限・カルチャ通りの動きをしているかどうかは第三者なだけに知らないところ。
  • コードから権限表を生成する。そもそも外部の第三者が受け入れ監査しようとしても権限・カルチャ通りの動きをしているかどうかは第三者なだけに知らないところ。
    権限表があればマトリクスに沿ってExcel1スクショで必要最低限?のエビデンスで済む…い、いやなんか間違ったことを思った気がするが忘れよう。

OWASP ZAPを用いた脆弱性診断技法(亀田様)

大前提として、OWASP ZAPは管理範囲のネットワークにだけ行うように、とのこと。この話どこかで聞いたと思ったら、某セキュリティセンタの方が「監視ポイントに飛んでくるたいていのパケットが脆弱性スキャナだった」って話だ。監視ポイントをいじめるために使うわけじゃなくて、作ったアプリケーションに対して検査をしたいわけなので、必然的に以下のパターンになる。

  • 構内(同一のネットワーク、FWの内側同士)で実施する
  • 本番系にぶち込むとインジェクション検査でゴミができる可能性があるので、本番系と同様の構成の検証系で実施する
  • ある意味マルウェアと同じふるまいをするので、マルウェア検知プログラムが迎撃することがある。できるだけ隔離された環境で実施する

…あれ?これ開発フェーズというよりどっちかというと運用フェーズの話じゃ(頭痛が…)

OWASP ZAP ではTop10のうち 以下の3点が自動検査では「見つかりにくい」とされています。

  • A2:認証/セッション管理
  • A4:(自動検査ではあずかり知らない)オブジェクト参照
  • A7:アクセス制御

今回のセッションでは、この3つについて、

  • A2:httpセッション機能(一般利用者のセッションと管理者のセッションを適宜切り替えてみる)
  • A4:パラメータタブ (パラメータを人為的に操作して適宜切り替えてみる)
  • A7:スパイダー,Access Control(ある状態でどこまで画面遷移できるか突っ込ませる)

での診断の紹介がありました。

(ここまで全部使いこなせたらかなりいいデバッガーになれそうだなぁ…がんばってみる)

BWAを用いたトレーニング環境の構築(松浦様)

BWAは「もろい」Webアプリケーションを集めたVMイメージで、VMware/VirtualBoxがあればどこでも使えるとのこと。そこで、あらかじめシナリオを立てて、それにそってBWA上のアプリケーションを「攻撃」して、シナリオを成立させる、という演習を行った話。の紹介でした。

  • 対象が学生の場合
    あらかじめノートパソコンにVMware/VirtualBoxとアプライアンスをセットアップしてもらい、ノートパソコン内で完結した環境を持ち寄ってもらって、合宿形式で演習を行ったケース
  • 対象が職員の場合
    プライベートネットワーク上の仮想化用サーバにアプライアンスをセットアップしておき、週1回数時間程度のハンズオンを数週間にわけて演習を行ったケース

の2例で、いずれもうまく演習が完了したとのこと。

うーむ、これどっかで見たな・・と思ったら、そうです。7月に参加した CTF for Beginners では、演習用のVMをVMware/VirtualBoxと一緒にセットアップして会場に持ち込み、演習で得られた回答(FLAG)を投票サーバに送ったのでした。演習用VMは(BWAもだけど)非常にサイズが大きいので、あらかじめダウンロード・構成してもってきてもらえば、当日は演習だけに集中できる。これは指導者側からするとすごくいい。演習用にファイルを配る必要があっても、ネットワークはも最小限で済む。(さすがに演習系の構築を忘れた子も出るからってんで、USBメモリに実習用の一式を入れて会場に入っていたとのこと・・・これもCTF4Bと一緒か)

職員向けの環境も、例えばハンズオンは木曜日の17時~18時の1時間、とか決めて、その間だけ(かつプライベートネットワークで)BWAのアプライアンスを起動するとかすれば、とにかく狙われる危険性は最低限に抑えられるなぁっと感心。

ブラウザは、FirefoxがChromeに比べて無理がきくとのことで、中の人が開発者向けFirefoxをプッシュされてました。

そういえば弊社KVMサーバしかたってないわ!どうしよ!
海外で同じこと考えてる人がいました(しかも2014年に)
…プライベートセグメントこさえるのがちょいと難儀なので、本来は別鯖立ててやりたいなー。ま、まぁ考えておこう。(本当は適当なサーバ/ワークステーションにたんまりメモリを突っ込んで、検証用のVMware ESXiを立てたいトコロ)

…所用のため、自分はこのセッションまでで退出。

いい加減なりにまとめ

いち参加者としては、事前にタイムテーブルが知らされてなくて、うわーゴハンどうしよう、休憩どうしようと結構気をもんだのですが、参加者向けにランチタイムもあったし(笹島キャンパスのおいしい空気と一緒にお弁当をいただきました)、コマ毎に休憩時間もあったしで、非常に満足な一日でした。
一方、「高画質で十数か所のサテライトに映像を配信したい」というスタッフの熱意とは裏腹に配信系が時折不安定になってしまったこともあり、岡田様はじめイベント本部スタッフや、サテライト会場のスタッフ(及び、愛知では、会場や受信機材の貸し出しに快諾いただいた愛知大学様)の苦労もかなりのものだったと思います。

今回はOWASPの内容を1から10までやるのかな?知り合いいっぱい連れてきたほうがいいのかな?と肩ひじはってましたが、セッションの内容からすると「あぁ一人で着てよかった」と思える内容でした。

HTTPの基礎や、なぜ「例えばPHPを避ける」とかいうネタが流行るのかとか、そういった部分をある程度理解したうえで、「プロジェクト的にいまいち品質が確保できないなー、どうやって底上げすればいいのかなー」ってレベルの人でないとついていくのは大変だったと思います。(実際、自分もJavaやプレースホルダ回りは疎くて途中???ってなるところもありました)

自分がまずやれることは、まぁこういった勉強会があるからみんな参加しようよーって声かけするのもあるんですが、得た内容を「なるべく、その人にわかるコトバで(これけっこうつらい)」共有することかなぁ、と感じました。

さすがにHTTPの基礎とかPHPの話とかは「うーん好きでコの業界に来たんだから好きなりに勉強しようや」でいいと思うのですが、その一歩先。セキュアコーディングとか、ベンダフリーな検証方法を社内のハンズオン講習で行えるように環境を作って、手を動かしてもらって。教えた先の相手がもっとやってみたい!という風であれば、自前で検証環境を構築できるように手助けしていくのがいいのかな、と感じたのがまとめです。(まとまってねえ・・・)

広告

9/30 2017 OWASP World Tour Tokyo」への1件のフィードバック

  1. ピンバック: 2017 OWASP World Tour Tokyo / Nagoya Satellite イベント開催報告 – OWASP Nagoya Blog

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください