>100 Views
November 28, 25
スライド概要
サイボウズ脆弱性報奨金制度 10周年記念 Meetup
バグハンターじゃない人が この先生きのこるには 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup はせがわようすけ
長谷川陽介(はせがわようすけ) @hasegawayosuke (株)セキュアスカイ・テクノロジー 取締役CTO セキュリティ・キャンプ協議会代表理事 千葉大学 非常勤講師 最近の興味関心領域は哲学・倫理学 WebブラウザーやWebアプリケーションに関する多数の脆弱性を発見。 Black Hat Japan 2008、韓国POC 2008、2010、OWASP AppSec APAC 2014他講演や記事執筆も多数。 https://utf-8.jp/ ※本内容は個人のものであり所属する組織の見解ではありません 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
昔話ばかりで、あんまり役に立たない内容です
バグハンターな人 音楽を聴くかのように日常的に脆弱性を探してる 誰かに強制されるのではなく自分の意志で(むしろ無意識に?)脆 弱性を探してる 見つかるまで根気強く探し続けるので、かならず脆弱性が見つか る → 自分には無理。じゃあ過去、報奨金制度の外でどう脆弱性を探し ていたかを振り返ってみよう! 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
1.誰も使っていないサービスを攻める!
1.誰も使っていないサービスを攻める! 竹迫さん、AltSpaceで XSS見つけたんですけど 伝えておきます! ※脆弱性報奨金制度が始まるよりもだいぶ前です AltSpace サイボウズ・ラボで開発されたばかりのグループ ウェア。ベータ版でほとんど誰も使っていなかった https://ascii.jp/elem/000/000/088/88488/img.html 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
2.強引に脅威をつくる!
2.強引に脅威をつくる! 合宿時、ぜんぜん脆弱性が見つからないので、ちょっとした挙動に 対して無理やり脅威を作って脆弱性にすることにした ① `/user/<username>` にアクセスする → その人のプロフィールページが表示される ② `/user/<myname>` にアクセスする → `/profile` にリダイレクトされ、自分のプロフィールを設定できる ②はリダイレクトを挟むので①と②では時間差がある 罠ページで多量に `/user/%s/` へのアクセスを行いロード完了(あるい はエラー)の時間を計測することで、罠ページへの訪問者を推定可能 ※脆弱性としてはだいぶショボい… ※記憶に頼って書いてるので詳細いろいろ異なってるかも 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
3. 環境を変える!
3.環境を変える! 自分ひとりだと積極的に脆弱性を探せ ないので、人と一緒にやりたいって言っ たらそうなった ひとりだと「見つけられない」ではなく「探 さない」になりがち 周りがどんどん脆弱性を探しているの で、自分も探さないと人権を失う 「見つけられない」だとしても、「探す」は行 える https://blog.cybozu.io/entry/7875 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
4. ルールを変える!
4.ルールを変える! 報奨金の額でランクが可視化されるのがつらい 「脆弱性を見つけてお金をもらう」→「おれはお金が欲しくてやっ てるんじゃないぞ!」と言える根拠を作る (2015年3月) 報奨金の受け取りは辞退させて頂きたく思います。 また、もし可能でしたら、今後は報奨金の受け取りを辞退した場合に自 動的に何らかの募金にそれが回されるような仕組みがあれば、より一層 バグ発見の励みになるのではないかと思いました。 (2015年6月) 2015 年 6 月 16 日より、獲得した報奨金をサイボウズが指定する OSS コミュニティに寄付することが可能となりました。 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
サイボウズ以外だと どうやって脆弱性を探していたか
どうやって脆弱性を探していたか 自分の性格として、丁寧・執拗に繰り返し検査を行うことはできな い そういうのは苦痛でしかない 新しい攻撃の方法を考えて、それが適用できる環境を探すほうが 向いている 例: 文字コードの変換における脆弱性いろいろ あるいは、「仕様と脆弱性の境界」みたいなのを報告して相手を悩 ませるのも楽しい(性格が悪い自覚はある) 「仕様のバグ」なども考えるのが楽しい 「脆弱性とは何か」を考えることになる ← 自分の興味関心領域は哲学 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
新しい攻撃手法が適用できる対象を探した例① JVN#18282718 Hyper Estraier におけるディレクトリトラバー サル/サービス不能の脆弱性 Hyper Estraier: OSSの全文検索エンジン Unicodeの `¥(U+00A5)` を含めたディレクトリを作ると、内部的に ANSI(Shift_JIS等)に変換されるため ディレクトリ区切りの `¥(0x5C)` へと 暗黙的に変換され、ディレクトリトラバーサルが発生 「`..¥..¥`」などを作成しておくと無限に再起処理が行われDoSも発生 当時、Unicodeとレガシー文字コードの暗黙的な変換によって脆弱性 が起こるパターンはまったく知られていなかった おそらくこれが世界初の公表例 最近だとPHPのCVE-2024-4577などが有名 Microsoftでも新しい攻撃パターンとしてファイルされていたと聞いた 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
新しい攻撃手法が適用できる対象を探した例② Googleサイト内の複数のXSS サーバーが返すcharsetがIEの理解できないものである場合にUTF-7 と誤認させることができる点を利用したXSS e.g.: `http://www.google.com/search?q=...&oe=CP932` これで `Content-Type:text/html;charset=CP932` が返される CP932 = Shift_JISの亜種。Google的には正しく処理できているが、 IEはCP932という文字コードは認識できない。 結果としてUTF-7と解釈させてXSSが可能(詳細は省略) 当時、「charsetがつけられていないとXSSとなり得る」と言わ れていた charsetをつけていてもXSSが可能なことを実証 charsetを攻撃者が指定可能なサービスを探した結果がGoogleだった 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
仕様と脆弱性の境界を報告した例 MS07-034: IE/OEの脆弱性 `mhtml:` というプロトコルハンドラを使ってIEでユニバーサルXSSが発 生できた 当初Microsoftは「IEおよびOEの仕様に基づく挙動」として修正を行う ことがなかった MSのサイト内でこの挙動によって発生するXSSを大量に報告し た microsoft.com / live.com / msn.com / msn.co.jp 他… 「IEの仕様のためサイト側での修正が必要」という文言も忘れずに添えて 報告 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup
まとめ
まとめ バグハンターに必要な素質が自分には欠けている が、脆弱性を発見することは一定できていた 主な戦略としては以下が多かった 新しい攻撃手法が適用できる対象を探す 仕様と脆弱性の境界を考える、仕様のバグを探す AIによって上記が適用できる範囲が広がりそう 「丁寧に実装ミスを探す」よりも、AIの新しい使い方に伴って発生する、新 しい攻撃パターンを検討し、それが実装されていそうなサービスを探す等 とはいえ、こういう行動パターンはバグバウンティとは相性がよく ない 「決められた範囲の中で探す」ではないので。 2025-11-23 サイボウズ脆弱性報奨金制度 10周年記念 Meetup