世界中のエンジニアを救うためのツールを自らの手で ーオープンソースの脆弱性と対応優先度を自動で可視化する「yamory」とは?

公開日時 2019/11/26 09:30
インタビュー見出し

株式会社ビズリーチは、オープンソースの脆弱性と対応優先度を自動で可視化するセキュリティツール「yamory(ヤモリ―)」を2019年8月にリリースしました。

今回は、「yamory」の事業構想の発案者でもある、サイバーセキュリティ事業部プロダクト開発部 部長の鈴木康弘さんにインタビュー。「yamory」の立ち上げ経緯や目指す未来、そして「yamory」開発の体制や求めるエンジニア像などについて伺いました。


サイバーセキュリティ事業部 プロダクト開発部 部長
鈴木 康弘

1983年生まれ。東京工業大学大学院修士課程修了後、ITコンサルティング会社を経て、2010年9月にビズリーチへ入社。ビズリーチの立ち上げ初期から携わり、キャリトレなど4つのサービスを立ち上げてきた。現在は自身が起案した「yamory」のプロダクト開発部 部長として、プロジェクト全体のディレクションや組織マネジメントを行っている。

オープンソースの脆弱性と対応優先度を自動で可視化

――「yamory」とは、どのようなプロダクトなのでしょうか?

「yamory」は、オープンソースの脆弱性と対応優先度を自動で可視化するセキュリティツールです。

現代では、ソフトウェアの8~9割がオープンソースを利用して開発されていると言われていて、何かプロダクトを作るときにオープンソースを使わないということは、ほとんどありません。実際のアプリケーションのロジックは全体の1~2割に過ぎず、さまざまなオープンソース(ソフトウェアの部品)を組み合わせて、システムやプロダクトを開発していくことが一般的です。

一方で、ソフトウェアの脆弱性に対する攻撃の中でもbot的に決まったパターンで攻撃してくるタイプは、広く普及しているオープンソースの穴が狙われやすいと言われています。オープンソースは皆が同じものを使っているので、攻撃手法が1度確立されてしまうと、世界中のサイトをその手法で攻撃できてしまうんです。

こういった攻撃に対応するために今までも、OSSの脆弱性を一律で検知してアラートを出すサービスはありましたが、そのアラートの数がかなりの量になってしまうんですね。その中で、悪用のされやすさなどの観点で評価をし、それを踏まえて優先度を決定する点が、「yamory」独自の提供価値だと考えています。

――サービスを立ち上げるきっかけになった、ご自身の原体験があれば教えてください。

もともと私は、ビズリーチの立ち上げ期からフルスタックのエンジニアをしてきたのですが、新規事業の立ち上げなどに携わる中で、徐々に管理職を任されるようになっていきました。

そのタイミングで課題になったのが、セキュリティでした。セキュリティのリスク対策をアジャイルのプロセスに組み込んでいこうとするとものすごく手間が掛かってしまう。それをできる限り削減したいと考えました。

ビズリーチに限らずですが、各プロダクトで使っているオープンソースソフトウェアの数を調べると、数千という、人が把握できる範囲を超えた量になってしまいます。昔ながらのSIerは、それをExcelなどを使って手作業で管理していたんですよ。でも現状として、あまりに膨大な数なので「そんなの対応していられない」というのが、ほとんどのIT企業の実態じゃないかと思うんです。

ビズリーチは創業当初より、スピード感を重視した開発をしていたのですが、事業の特性上、多くの個人情報や企業情報をお預かりしているため、しっかりと守りも固めながら開発していかなければなりません。スピード感は落とさずに、守りも固めるために、何か良い手法はないだろうかと模索していたのが、私の原体験です。

この課題について、社内外の様々なエンジニアや有識者にヒアリングをしたところ、同様の課題意識がありそうだということがわかりました。そのタイミングでビズリーチの社内コンペ「New Bamboo!」が行われることになったんです。「New Bamboo!」は、新規事業や施策をボトムアップで提案できるビズリーチ内のビジネスコンテストなのですが、そこで提案したことが「yamory」の始まりです。

リーンスタートアップで、段階を経てローンチへ

――どういった流れで、「yamory」のローンチに至ったのか教えてください。

3段階くらいのフェーズを経て、今に至ります。当初は私1人から始まったので、まずは仲間探しからスタートしました。ですので、初期のメンバーは私が採用したんです。それが、2018年1月からですね。

次のフェーズとして、1ヶ月でプロトタイプを作って社内で試しました。社内で運用しながら、いろんなチームにフィードバックをもらって。そうするうちに、評判が上がってきて、「面白そうだね」と言ってくれる人が増えてきたんです。

そして次に、社外で検証しようという話になりました。1度プロダクトを作り直した上で、いろいろな企業の方に「御社の課題を解決できる可能性があるので、トライしてもらえませんか?」と説明して、最終的には12社の企業様にテスト利用のご協力をいただきました。

それを半年続けて、改善をどんどん進めていきながら、プロダクトが一定のレベルに達したタイミングでローンチしました。いわゆるリーンスタートアップの手法で、フェーズに分けてしっかり進めてきたという感じです。

エンジニアを救うためのツールを自身で作る面白さ

――「yamory」の開発に携わる上で、エンジニアにとって面白い部分はどんなところでしょうか?

エンジニアが自分たち自身で使うツールを作ることができる環境は、日本では少ないと思います。エンジニア向けのツールというと、海外製のものが多いんですよね。そういう意味で、エンジニアを救うためのツールを自身で作れる、というのは面白いポイントの1つだと思います。

――技術的なチャレンジとしては、どのような部分がありますか?

いろいろありますが、大きく分けると、脆弱性データベースをクローリングして、自分たちで管理している点が1つ。それから、お客様のソフトウェア資産をすべて静的に解析して、データベース化している点。この2つがあります。

それができたら、ソフトウェアに脆弱性があるかを突合します。そして、画面に結果を出したり、Slackやメールで通知したり。ざっくり説明すると、そういうパートに分かれています。

我々のプロダクトの中では、クローリングの部分や静的にコードを解析する部分が、かなり難しいところかなと思います。技術的にもですが、脆弱性データベースをメンテナンスしていくためには、セキュリティに関する知見や、脆弱性について判断できる知見が必要とされます。

また、裏側が検索サーバーや検索エンジンになっているので、クローリングに関する技術も必要です。コードを静的に解析するためには、Scalaやパーサーコンビネーターなどの関数型言語のテクニックが求められたりと、精度高く解析するために難しい部分も多いですね。

高いスペシャリティを持ったメンバーで構成されるチーム

――現在、「yamory」の開発チームは、どれくらいの人数で構成されていますか?

プロダクト開発に関わっている人数は、16名ほどです。今まさに増えているところですが、エンジニアのメンバーが11~12名ほど。それから、デザイナーが2名、UXデザイナーが1名です。

――チームにはどのようなエンジニアが集まっていますか?

ハイレベルなメンバーが揃っています。例えば、プログラム言語理論を博士課程で研究していたメンバーや、難しいロジックは数式で考えてからコードに書くような、そういうレベルのメンバーがチームにいるおかげで、難しいスキャンのロジックも作ることができています。

他にもApacheのコミッターで、ドキュメントクローラーや検索エンジンのスペシャリストや、セキュリティ、インフラ、フロントエンドなど、それぞれのスペシャリストがいます。それに加えて現在は、幅広く対応できるリードエンジニア的なメンバーを増やしてきました。

もう1つ特徴を挙げるなら、シニアのエンジニアが集まっていることですね。今年の新卒で入ってきたメンバーが1名だけいるのですが、それ以外のエンジニアは32~45歳くらいの年齢層です。ハイレベルな面々で強いチームを作っているので、刺激的な環境だと思います。

――それほど優秀なメンバーを、どう説得して集めてきたのでしょうか?

先ほどお話したような私自身の原体験と同じように、彼らも何らかの形でセキュリティに課題感を持っていたんです。

例えば、管理職の立場では「脆弱性を直してください」と、言わなければならないじゃないですか。でも、そう言うのは簡単ですが、現場のエンジニアはすごく疲弊するわけです。どうしても、アドオンのタスクとして対応してもらうことになってしまう。

それに、現場のエンジニアからすると、脆弱性ってわかりにくい情報で、自分で調査するのも難しいんですよね。言ってしまえば、パッチマネジメントなんて、誰もやりたくないんですよ(笑)。

そんな大変な作業を少しでも楽にしていきたい。そういう思いを伝えると、皆それぞれに自身の体験と紐付く部分があって、事業に共感してもらえたことが大きいです。

「安心してテクノロジーを活用できる世界を実現する」

――ビズリーチというと、人材系サービスのイメージが強い企業ですが、どのようなミッション・ビジョンが設定されていますか?

ビズリーチでは、「インターネットの力で、世の中の選択肢と可能性を広げていく」というミッションを掲げています。会社全体として、テクノロジーを使って世の中にある大きな課題を解決し、社会にインパクトを生み出していく、というテーマをすごく大切にしているんです。

ただ、ビズリーチには事業部が10以上ありますから、事業部によってどのような社会的課題の解決を目指す存在なのか、それぞれに違うため事業部ごとにもミッション・ビジョンが設定されています。

我々の事業部では、「安心してテクノロジーを活用できる世界を実現する」というミッションを掲げています。また、ビジョンに掲げているのは、「すべてのエンジニアにとって、セキュリティを当たり前にする」こと。まずは、オープンソースのセキュリティや脆弱性への対応を当たり前のものにしていくことを、ファーストステップと考えています。

――今後の展開として、思い描いていることはありますか?

現在、アプリケーションやソフトフェアの開発は、IT企業に限らず、あらゆる会社が取り組むことになりつつありますよね。デジタルトランスフォーメーションの流れがますます拡大し、あらゆるビジネスにおいてITが必須になっていく中で、それをちゃんとセキュアに使っていくということは、社会の大きな課題だと思っています。

我々としては、まずはオープンソースのセキュリティというテーマで、課題をしっかり解決していくことが第一歩。「yamory」は今、優先度を自動で決定するところが評価されているので、その強みをさらにパワーアップさせていきたいと思っています。
また、今はオープンソースの部分に焦点を当てていますが、セキュリティの穴がないシステムを開発していくためには、それ以外にも周辺にやるべきことはたくさんあります。それらを網羅していくことで、将来的には現在の「yamory」以外のサービス群を出していけるのではないかと考えています。

私が思い描いている夢は、コンパイル言語で脆弱性のメンテナンスがほぼ不要になる世界を実現できるサービスにすること。実現するまでに、どれくらい掛かるかわからないですが、世界中のエンジニアの夢でもあると思うんですよね。

エンジニアにとっての働きやすさを意識した環境

――働く環境について、働きやすさの面でアピールポイントはありますか?

会社全体で、エンジニア全員にiMac Proが支給されていたり、長時間座っていても疲れにくいオフィスチェアを用意していたり、開発に集中できる環境を提供しています。

それから、チーム開発を意識した体制になっていて、和気あいあいとした、何でも気軽に意見を言い合える雰囲気を大切にしています。

また、働く時間に関しても、18時頃には仕事を終えています。20時を過ぎて遅くまで働いている人は、ほとんどいないですね。私自身も、子どもの送り迎えのために、18時には帰宅しています。

生産性を向上させて、仕事以外の時間で自分に投資する時間を作るべきだと、代表の南が日頃から言っているので、全社的に会社に長く残ることを良しとしない文化になっていますね。

求めているのは、課題に共感できるエンジニア

――最後に、どのようなエンジニアに来て欲しいと考えているか教えてください。

我々が解決しようとしている課題に対して、共感してくださる方がいいですね。それから、Scalaの経験を持っている方や、セキュリティエンジニアやセキュリティアナリストなど、セキュリティに携わった経験を持っている方。そうした経歴の方は、強く募集しています。

プロダクトの開発サイクルにセキュリティを組み込んでいく”DevSecOps”という考え方がありますが、「yamory」はその概念を実現するようなツールをは目指しています。オープンソース以外にも、インフラやネットワーク、コード内のセキュリティなども、将来的には扱っていきたいと思っていますので、そういったところに興味がある方は、ぜひご応募ください。