深夜のXSS講座も? サイボウズのバグハンター合宿がやたら楽しそうな件:セキュリティ・アディッショナルタイム(32)(2/2 ページ)
ソフトウェアに含まれるバグや脆弱性を見つける者たちが1カ所に集まり、集中的に脆弱性を見つけ出す「バグハンター合宿」をサイボウズが開催した。なぜ、わざわざ脆弱性報奨金制度を展開し、合宿まで実施するのだろうか。
実は直っていなかった……冷や汗ものの問題もバグハンターの力で発見
特に優れた脆弱性報告に与えられる「PSIRT賞」「本部長賞」は、mage氏がダブルで受賞した。
今回のバグハンター合宿では、単純な報告件数ではなく、報告した脆弱性のうちCVSS v3スコアが最も高いもの10件の累積でスコアを競ったが、そこで最も高いスコアを達成し、しかもその中にCVSS v3で「9.6」という深刻な脆弱性が1件含まれていたこと、また暗号化されたソースコードを読み解くために、PHPの中間コードを解析して問題を見つけるなど高いテクニックを見せたことなどが理由だ。
PSIRT賞の決め手となったのは、既にサイボウズ社内で認識し、最新バージョンで改修される予定だったSSRF(Server Side Request Forgery)の脆弱性がまだ直っていなかったことを見つけて報告したことだ。既にJPCERTコーディネーションセンター(JPCERT/CC)との調整が進み、翌週には「改修済み」として公表される予定の問題が、実は直っていなかったことが判明したわけで「PSIRTとしては非常にありがたい報告」だったという。
この脆弱性について報告を受けた直後は、さすがのCy-PSIRTメンバーも「改修したはずなのに、何で再現するんだろう」と嫌な汗をかいたそうだ。他の脆弱性の確認作業と並行して、慌ててJPCERT/CCに連絡を取るなどドタバタしたが、公表後に問題が指摘されるという、より深刻な事態は避けられた。これぞ、優れた技術力を持つバグハンターの力をうまく利用した例と感じられた。
他にも反射型XSS(Cross Site Scripting)にCSRF(Cross Site Request Forgery)、SSRF、XXE(XML External Entity)、ディレクトリトラバーサルにDoS(Denial of Service)、あるいは認証を経ずにファイルのアップロードといった操作ができてしまう仕様上の問題に至るまで、バラエティーに富む問題が報告された。また脆弱性を調査する中で、悪用にまでは至らないが「動きやエラーメッセージがちょっとおかしいので、もう少しこの辺を調査すれば脆弱性が見つかるのではないか」という部分も指摘され、議論のタネになっていた。
ただ、プロダクトやサービスによって脆弱性の見つかり方に偏りがあったのも事実だ。
サイボウズ側が開発プロセスの改善に努めるだけではなく、Webブラウザそのものも改良が続いており、以前のような単純な脆弱性は見つかりにくくなってきた。従って、kintoneのように以前から公開され、脆弱性がつぶされてきたサービスについては、バグハンター側も「固め」と見たためか、ほとんど報告がなかったという。
一方で、今まで対象になっていなかった特別製品を合宿限定で対象としたが、開発のいきさつなどもあってあまりケアができておらず、「案の定、いろいろと報告が寄せられ、今後の参考になった」とサイボウズ 開発本部長の佐藤鉄平氏は述べている。
Cy-PSIRTでは、1泊2日の合宿修了後も一から評価し直すなど精査を続け、必要に応じて開発者に修正を依頼するなど、数カ月スパンで対応を続けていくという。
技術力に裏打ちされた指摘が製品品質向上の力の一つに
「朝起きてきたら数十件のチケットがたまっていて、うれしい悲鳴を上げた」というほど、ある意味ではシンドイ場であるにもかかわらず、なぜ、わざわざ脆弱性報奨金制度を展開し、合宿まで実施するのだろうか。
サイボウズ Cy-PSIRTの大塚由梨子氏は理由の一つを「報奨金や経費はかかるが、それだけの価値のあるイベントだと考えている。脆弱性があることを認めた上で、早くそれを見つけ、改修する、その早さに大きな価値があると思うし、技術的に学べることも多い」と話す。
サイボウズから参加したエンジニアも、「今の時代、その気になればプログラム自体は簡単に書くことができるが、そこにこうした脆弱性があり、このように踏み台にして害を及ぼすことが可能だと示してくれるバグハンターは技術力がすごくあるし、刺激をもらう大事な存在だ」と述べていた。
仕様検討時からセキュリティ視点でのフィードバックをもらい、簡単な脆弱性はフレームワークでつぶし、検査を行ってメンテナンスしていく……。そうした地道な取り組みを通じて、安易な脆弱性はつぶしてきた。また、これまでの報奨金制度を通じて、開発者側もセキュリティへの感度を高め、「こんな報告があるならば、ここに気を付けよう」と、仕様検討やコーディング時に報告内容に留意するようになっているという。
だが、それでもなおいろいろな対策をかいくぐって悪用される脆弱性はある。そこを指摘してくれる重要な存在としてバグハンターを認識しているという。年々、複雑な脆弱性が増えている印象があることもあり、サイボウズ Cy-PSRITの長友比登美氏は「バグハンターの皆さんの話を聞きながら、受け止めるべき問題は受け止め、淡々と修正していきたい」と話す。
本部長は「せっかくだから、こういう場でソースコードを提供すると、今までとは違ったタイプの脆弱性報告が出てくるかもしれない」と述べ、引き続き制度ならびに合宿への協力を求めていた。
じかに会話を交わすことで生まれる信頼関係と新たな知見
もう一つの理由は、バグハンターとつながりができ、じかにコミュニケーションを取れるのが楽しいからだ。
「宿題」もあって想像以上のペースで寄せられる報告を確実にさばかねばならないプレッシャーにさらされながらも、バグハンターとじかに「可用性に影響が出るというなら、そのことを示してもらえませんか?」「なるほど、これはまずいですね……」といった会話を交わし、理解を含めていく機会として非常に楽しめたという。
サイボウズに限らず、脆弱性報奨金制度を巡っては、報告した問題が脆弱性かどうかの判断で議論になることは珍しくない。今回も、評価の結果、脆弱性として認定されなかった問題について、「いや、それには反論したい」とその場で議論し、サイボウズ側の社内開発基準なども参照しながら突き詰めていく姿が見られた。
印象深かったのは、CVSSで深刻度を判定したところ「1.7」という非常に低いスコアの脆弱性(「ローカル環境でバイナリファイルを編集し、実行できてしまう」という内容であり、そもそも脆弱性なのかどうか首をひねるところもある)も報告されたことだ。Cy-PSIRTも「常に悩んでいる」と言うが、「脆弱性の深刻度をどのように図るか」「CVSSだけで決めていいのか」など、この部分については引き続き議論していく必要があるだろう。
ただバグハンター側も、報告しても“なしのつぶて”で、ただメールの返信を待つのに比べ、こうしてリアルタイムにやりとりできるのは「ストレスがなく、良い取り組みだ」と感じたそうだ。「じかに事情を聞くことで、コードの背景にどういった歴史的いきさつがあるのかも理解できた」とも話す(それでも脆弱性は報告するが)。
会場では、普段オンラインでは顔見知りでも、実世界では初めて会話を交わすバグハンター同士が、「○○さん、リアルでは初めてですよね」と会話を交わす場面もあった。XSSやCSRFなど、それぞれの「得意分野」に関する知見を交換し、互いのやり方を学ぶ場にもなっていた。
深夜2時には、mage氏から「私はXSSちょっとデキル」Tシャツをプレゼントされた国内有数のバグハンター、Masato Kinugawa氏らを中心に「即席XSS勉強会」が開催され、深夜ならではのテンションで盛り上がっていた。この臨時勉強会で得た、ブラウザのHTMLパーサーの仕様に関する知識を生かし、翌日新たな脆弱性を報告していた参加者もいたほどだ。
バグハンターにとっても、また主催のサイボウズにとってもメリットのあるこうした場は、ひいては安心して使えるサービスであるという意味でユーザーにとっても利益になる。
「ユーザーを脅威から守るという目的は、われわれバグハンターも、サイボウズも共通」「サイボウズに限らず、さまざまな企業にもこうした取り組みがぜひ増えてほしい」(mage氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
サイボウズ、バグハンターたちに向け「感謝祭」を開催
サイボウズは2016年1月28日、同社が実施した脆弱性報奨金制度で実績を持つ“バグハンター”たちに向けた「サイボウズ脆弱性報奨金制度2015報告会 バグハンター感謝祭」を実施した。すご腕バグハンターたちが報奨金制度運営者と本音トーク
@IT編集部は2016年2月26日、東京青山にて「@ITセキュリティセミナー」を開催した。本稿ではそのダイジェスト(後編)をお届けする。千葉大学、学生対象の「セキュリティバグ発見コンテスト」を開催 「きちんと伝える力」を備えたセキュリティ人材の育成に向け
千葉大学が、セキュリティ人材の育成を目的とした「セキュリティバグハンティングコンテスト」を実施する。技術と法律/倫理面で講習を受けた学生に「ライセンス」を与え、実際の大学システムに存在する脆弱性を発見してもらう。独自のルールや仕組みの下で行われる学生向けバグバウンティは国内の大学として初の試みという。