こんにちは! GMOサイバーセキュリティ byイエラエ株式会社 アセスメントサービス部 診断一課の診断員 A と申します。
去年までは PF 診断やクラウド診断業務に従事していたのですが、PF・クラウド・Web の領域を手広く診断できる人になりたいなと思ったことから、社内異動の制度を利用し、今年の1月から Web 診断業務に従事しております。アセスメントサービス部へ異動後は OJT メンターの方々から手厚くフォローいただき、最近ようやく Web 診断業務にも慣れてまいりました。今は楽しみながら、時に悩みながら Web 診断業務に専念しています。
本記事ではそんな駆け出しの Web 診断員が、アセスメントサービス部が誇る二人のWeb診断員、年間数十件の CVE を取得している猛者たちに、何がきっかけで CVE 取得につながる脆弱性調査(以下、脆弱性調査)を始めたのか、普段どのように脆弱性調査を行って脆弱性を報告しているのか、どうしたらそんなにたくさんの CVE を取得できるようになるのか、将来的に何を目指しているのか…?などについてインタビューした内容を記載しています。
前編では猛者たちが脆弱性調査を始めたきっかけ、脆弱性調査にあたってのモチベーションや脆弱性調査のアプローチ方法、今までに報告した印象深い脆弱性について、後編では開発・実装にあたってのアドバイス、CVE 取得(Responsible Disclosure)プロセスに関する裏話、今後のキャリア目標について記載しています。
この二人へのインタビューを通して、私だけではなく読者の皆さまも脆弱性調査をやってみよう!と思っていただけたら幸いです。
● 石井健太郎さん / アセスメントサービス部 診断三課
学生時代に OSCP 取得を経て脆弱性診断に興味を持つ。新卒から Web アプリケーションの脆弱性診断に従事し、 OSWE を取得する。業務外でも Bug Bounty・OSS・市販製品で脆弱性を発見して報告している。2024年は11件の CVE 発行となる脆弱性を報告した。2023年より現職。

● 川根健太郎さん / アセスメントサービス部 診断四課
SOC で IPS などのセキュリティ機器の調査の経験を経て2023年より現職。現職では Web アプリケーションの脆弱性診断を担当している。業務外でも脆弱性調査を行っており、WAF や IPS などのセキュリティ機器でリスクレベルの高い脆弱性を多数発見して報告している。

● 猛者たちがセキュリティ業界へ足を踏み入れ、脆弱性調査を始めたきっかけとは?
―まずセキュリティ業界に入ったきっかけについて教えてください。
石井さん:学生の頃にインターネットの記事を読んで、Web 診断やペネトレーションテストのようなハッキングを仕事にできる世界があることを知り、カッコいいなという憧れからセキュリティ業界を目指すようになりました。学生時代の専攻は情報系でしたが、元々は今やっているようなセキュリティのことは全く将来の道としては考えていませんでした。
川根さん:自分はセキュリティに興味を持ったのは学生の頃の授業がきっかけだったかな、と思います。Web アプリケーション開発やサーバ構築といった「作る」作業だけではなく、SQL インジェクションのような「壊す」こともできる技術があるよという授業内容で、学んでいく内に、攻撃の技術って脱出ゲームとか謎解きパズルみたいな、そういう要素が結構強いじゃないですか。そういうのに気づいてから、どんどんハマっていきました。
―学生時代に触れた記事や授業内容がきっかけだったんですね。そうすると脆弱性調査も学生時代から嗜まれていたのでしょうか?
川根さん:いや、学生時代は全くで、脆弱性調査よりもバグバウンティを少しだけやっていました。脆弱性調査を本格的に始めたのはイエラエに入社してからです。イエラエは脆弱性を報告して CVE を取得すると会社から報奨金が出るという CVE 報奨金制度があって、CVE 取得を支援・奨励する環境が整っていたので入社後にどんどん CVE 取得の方にシフトしていった形です。
石井さん:私も学生時代に気が向いたらやってみる…という温度感でバグバウンティをやっていました。身の周りにバグバウンティをやっている人もあまりいなかったので、凄くのめりこむという感じではなかったです。ただ、セキュリティ業界を学生時代に目指し始めてからは、実力をつけるための勉強の一環として取り組んでいました。同じく脆弱性を探し始めたのは社会人になってからです。脆弱性調査を始めたきっかけとしては、前職の同じチームでCVEをたくさん取得している先輩がいて、その方に大変お世話になり、色々と手ほどきを受けたことが影響として大きいかもしれません。
―学生時代にバグバウンティを少しやっていて、脆弱性調査を本格的に始められたのは社会人になってからなんですね。社会人になって初めて CVE を取得した時はどんなお気持ちでしたか?
川根さん:もう既にあまり記憶がなくなってきているのですが、とてもわくわくしたのは覚えています。
石井さん:初めて CVE を取得したのは社会人になって Web 診断をやり始めてからで、大体3年前の25歳の時でした。やはりCVEを取得することに憧れがあったので凄く嬉しかったです。報告した CVE が一体いつ公表されるのかと待ちきれず、ベンダーの Web ページを見に行っては何度も無駄にページをリロードしてしまったり。最終的に公開されるまでには1年くらいかかりましたが、脆弱性が修正されてもうすぐ公開されるという連絡が来てからは、実際に公開されるまでそんな調子でした。
―お二人ともここ2、3年前くらいからコンスタントにCVEを大量に取得されていますが、そのモチベーションの源は何でしょう?
石井さん:やはり会社が出してくれる CVE 報奨金の存在がとても大きいです…という本音は置いておいて、私の場合は元々脆弱性の調査自体が好きというのはありつつ、脆弱性調査をするときに他の人があまり調査をしていなさそうな、例えば国内のみで使われているソフトウェアなどを対象に探すことが多いです。なので1つのソフトウェアで芋づる式に何個も脆弱性が見つかるパターンが多く、それもあって CVE の取得件数が多くなっているかもしれません。
―川根さんは海外でも使われている結構メジャーな製品を対象に脆弱性報告をされることがありますが、やはり世界中で使用されているソフトウェアはいろんな国の研究者も同じように脆弱性を探しているので、その中で先んじて脆弱性を見つけて報告を挙げられているのは本当に凄いことだな…と思います。
川根さん:モチベーションと言われると何だか難しいですね。ゼロデイ調査や CVE を取得することを非日常というか特別なものとして捉えて質問してくださっているのかな…と感じたのですが、私の場合はモチベーションとかはあまり考えたことがなくて。TVを見たり、ゲームをしたりするのにモチベーションって特にいらないじゃないですか。自分の生活の一部なので、探すのが好きだから探したくなったら探すし、気分でなければ探さない…という感じです。
―息をするのと同じ、というくらい脆弱性探しが日常の一部なんですね…なるほど。
私の家族もペネトレーションテスト業務に従事しているのですが、この前の夏休み中も夜中3、4時くらいまで検証のために嬉々としてフィッシング用サイトを量産していたり、OSINT 用の自動化ツールを楽しそうに作ったりしていましたね…
―なんというか、モチベーション云々というより、単に技術的に自分が興味があるからやっているだけで、決して非日常なものではなく、日常の日々の当たり前のルーティーンの一環という感覚なんでしょうね。
● 脆弱性調査のアプローチ方法・使用ツール
―さきほど石井さんからは、あまり他の人が脆弱性を探していなさそうなソフトウェアにあたりをつけて調査をしているとお話を伺いました。川根さんの場合はどんなアプローチ方法で脆弱性を探すことが多いですか?今までに川根さんが取得された CVE は、WAF や Firewall などのネットワーク機器に関する脆弱性が多いように感じたのですが、これは狙ってそのような製品を探しているのでしょうか。
川根さん:改めて考えると普及率や技術的好奇心というのも対象選定時のウェイトとしては大きいのですが、自分も過去にあまり調査されていなさそうな対象を選ぶことが多いです。例えば最近 Fortinet が提供している FortiWeb という WAF 製品で私が発見した脆弱性が公開されたのですが、どういう経緯でこれを調査対象に選んだのかを例にしますね。
Fortinet という世界中で使われているセキュリティ機器の有名なベンダーがあったので、そのベンダーの製品を調査してみようと思い、そのベンダーの中でも一番普及している SSL VPN、Firewall の機能がある FortiGate という製品にあたりをつけました。ただ、機能的にとても価値が高く、既に色んな研究者に脆弱性を探し尽くされていた状態だったので、代わりにあまり調査されていなさそうな WAF の機能を持った製品を解析してみようかな、という感じで選んでいました。
―脆弱性を見つけるときは、どんな方法で見つけることが多いですか? 対象の製品を実際に触って見つけるブラックボックス的なアプローチと、製品のソースコードを読んで見つけるホワイトボックス的なアプローチがあるのかなと。
石井さん:ソースコードがあれば勿論内容を読みますね。ただ私が調査対象にしたソフトウェアはほとんどのケースでソースコードがなかったので、ブラックボックスのアプローチが多いです。
川根さん:自分も製品のファームウェアなどを取得し、ソースコードやバイナリが手元にある状態で探すホワイトボックスやグレーボックスのアプローチをとっています。
―脆弱性の調査にあたってよく使うツールなどはありますか?
石井さん:私の場合は Web の脆弱性を探すことが多いので、Burp Suite は必須ですね。あとバイナリやファームウェア解析時は Binwalk というツールを使って探すことが多いです。
川根さん:私も Burp Suite はよく使います。ソースコードを見るときはある程度どこを見ればよいか見当をつけた上で探すために、Semgrep や Snyk など SAST を使うことも多いですね。
―これは検証が難しかったと感じた脆弱性はありましたか? CVE の取得申請にあたっては、攻撃条件や範囲、PoC などを準備する必要があると思うのですが、検証が難しかったものがあれば教えてください。
川根さん:特定の脆弱性というより、全体的に製品を調査対象にするときにデバッグできるような環境を作る…というのが難しくて。例えば、最近 FortiWeb という WAF 製品で発見した認証前の RCE の脆弱性に関する Blog を公開したのですが、これって SQL インジェクションが見つかりましたっていうところから始まっていて、その脆弱性をどうやって RCE に変換するのかみたいなところを書いた話なんですよね。
SQL インジェクションで書き込んだファイルを読み取るところなどは root shell を取った状態で検証している画像を載せていますが、エクスプロイトが完成する前は root shell なんて当然持っていないので、それをまずどうやって取るのかみたいなところが脆弱性を検証する上で難しいところだなと感じています。
―脆弱性を見つけるときは、どんなタイミングで見つけることが多いでしょうか。Web 診断の業務中というより、プライベートに時間を取って調査することが多いですか?
石井さん:業務中に CVE 取得対象になるような脆弱性を検出した場合は顧客に了承を得た上で申請するフローになっているのですが、今のところ診断中に見つけた脆弱性に CVE がついたことはないですね。主にプライベートな時間で探しています。
川根さん:自分も同じくです。
―プライベートで脆弱性調査にはどれくらい時間をかけていますか?
川根さん:月によってバラバラで、月に30時間くらい時間を割いているときもあれば、全く何もやらないときもあります。探すときは休日のタイミングが多くて、この前の夏休みではディスプレイドライバーの解析などをやっていました。今まではネットワーク系のアプライアンス製品を対象に調査することが多かったのですが、ちょっと kernel 周りを見てみたくなって取り組んだところ、1つ脆弱性を見つけられました。
―普段の Web 診断業務では取り扱わない kernel 部分の脆弱性をサクッと見つけられるのは、さすが脆弱性調査が日常になっている川根さんならではですね…!
石井さん:私も川根さんと同じく、対象が定まっていたら結構のめり込んで月に何十時間と時間をかけてとことん探していますね。ただ、逆にやりたいものがなければ全くやらないときも。ここ数ヶ月はプライベートの方が忙しくてあまり時間が取れていないです。
―忙しくてもコンスタントに脆弱性調査を続けていくための工夫や、ルーティーンなどはありますか?
石井さん:繁忙期やプライベートで忙しいときは中々手を付けられないですが、落ち着いたらやる…という感じですかね。
川根さん:私も同じ感じですね。でもそのタイミングでいい調査対象が見つかったら仕事が忙しいときも結構のめり込んでやってしまいます。
―忙しいときは潔くお休みしつつ、自分が興味を持てる調査対象を上手く探すのがポイントかもしれないですね。私も来月から数ヶ月育休に入るので気になっているのですが、家庭との両立ってどうしていますか? プライベートの時間を脆弱性調査にフルコミットするのは中々大変ではないですか?
石井さん:そうですね、家族には CVE 報奨金を稼いでくるからね、という感じで理解を得ています。脆弱性調査中はずっと自室に閉じこもっていることになるので、明確なリターンがあると家族を説得しやすいですね。
―そうじゃないと家族からしたら家庭内タスクの方をやって欲しいな…となりますよね。今後もコンスタントに石井さんに脆弱性調査を続けていただくためにも、会社は CVE 報奨金制度を続けていって欲しいです。
● 今までに報告した脆弱性について
―企業や開発者にとって「盲点」になりそうだな、と感じた脆弱性があれば教えてください。
川根さん:これは今後 Blog 記事で詳細を公開したいと思っているのですが、URL の解析処理が原因となってアプリケーションのコードとミドルウェアの間に解釈の差異が生じて認証バイパスができてしまう…という恐らく開発者が全く意図していないであろう脆弱性を見つけることがたまにあります。言語や関数の細かい仕様を知らなかったり、使い方を間違えてしまうと起きてしまう…という類のものです。
―それって通常の単体テスト、結合テスト、システムテストなどで開発者側で気付くのは難しいものなんでしょうか。
川根さん:各言語や関数の仕様をかなり細部まで知らないと見つけられないので開発者側で気付くのは少し難しいかもしれないです。脆弱性を探している時に、なんだかこれ脆弱性がありそうだけど、これがこうだったら何かできそうだな…と気になって仕様を調査した時に初めて分かったので。
―脆弱性調査の過程で、これがこうなったら悪用できそうだな…とあたりを付けた上でその言語の関数や仕様を深掘りして調べたら見つけられた、という流れなんですね。確かに通常の開発のテストとはテスト観点が違うので、脆弱性診断などのセキュリティの診断時でないと検出が難しそうです。
―今までに見つけた脆弱性の中で、特に印象的なものがあったら教えてください。
川根さん:Cisco の ISE 製品で特権ユーザーのパスワードが固定されていたという静的認証情報の脆弱性ですね。認証周りを見ていて初めて見つけた脆弱性だったことと、このユーザーの資格情報を使ってログインした上で別の脆弱性と組み合わせることで完全な認証前 RCE(リモートコード実行)が達成できたので特に印象に残っています。IoT 系ではありがちな脆弱性だと思うのですが、自分で見つけたのはこれが初めてだったのでとても印象に残っています。
石井さん:私の場合は、初めて脆弱性調査をする際に買ったルーターがあるのですが、探し始めていきなり認証前 RCE の脆弱性を見つけたのが印象に残っています。こんなあっさり見つかるものなんだな…と、初めて見つけた脆弱性だったのも相まって感慨深かったです。
―初めて見つけた脆弱性はやはり印象深いですよね。私もまだ Web 診断を始めたばかりですが、この前機微な情報をファイルアップロードする機能があるサイトの診断をしていた時に、ファイルアップロード先に何も認証がかかっていなくてインターネット上から誰でもそのファイルを閲覧できる…という問題を見つけました。適切に認証が施されていない類の問題点を見つけると、心なしか血が騒いでしまいますよね。
(本記事は2025年9月1日にGMO サイバーセキュリティ by イエラエ セキュリティブログに掲載された記事を転載しました)



