PR
連載 :
  OSSルーキーズ

脆弱性検知ツール「Vuls」の開発者に聞いたOSSをバズらせる極意

2016年8月10日(水)
鈴木 教之(Think IT編集部)

バルスというツールをご存知だろうか? 日本ではとあるアニメの崩壊の呪文として扱われることの多いこのフレーズがいま、サーバー管理者のシステム崩壊を防ぐためのツールとして注目されている。OSSの脆弱性検知ツールであるVuls(バルス)について、開発元であるフューチャーアーキテクトの神戸 康多氏と林 優二郎氏に詳しく話を聞いた。

まずはVulsについて簡単に教えてください

神戸氏:VulsはVULnerability Scannerの略で、Linux/FreeBSD向けの脆弱性スキャンツールです。OSのみならずプログラミング言語やライブラリに至るまで多くの環境に対応し、レポートや通知を行います。ソフトウェアには数多くのバグが含まれ日々脆弱性に関するレポートが報告されています。サーバー管理者は脆弱性に関する情報を随時チェックし、その脆弱性が自身が管理するサーバーにどれくらい含まれているのか影響範囲を調査し、深刻度や緊急性に応じて対応しなければなりません。管理対象のサーバーが多くなるにつれものすごい作業負荷になります。この分野はこれまで自動化が遅れていましたが、Vulsを活用することで可視化し漏れがなくなります。

Vulsの概略図

神戸氏:Vulsの特長は、スキャン対象としてサポートするソフトウェアが広範囲であること、また、エージェントレスのアーキテクチャを採用しているため導入が非常に簡単である点があげられます。OSとしてはUbuntu、Debian、CentOS、Amazon Linux、RHELに対応しています。また、多くのクラウド環境やDockerコンテナもサポートしています。セットアップは簡単でDockerコンテナやChefのレシピなども公開しています。OSのパッケージマネージャーでインストールしたものであれば動的スキャンで対象のソフトウェアを自動で認識します。また、パッケージマネージャー以外で定義する場合は、CPE(Common Platform Enumeration)※1と呼ばれる識別名が登録されているアプリケーションであれば、例えばネットワーク機器などもスキャン対象になり得ます。マネジメント用のサーバー1台にインストールすれば、スキャン対象のサーバーへはSSHで接続するだけです。

※1: https://www.ipa.go.jp/security/vuln/CPE.html

神戸氏:日本語のレポートを出力してくれるのも強みです。米国の脆弱性情報データベースであるNVDの情報を参照しているのですが、日本語版であるJVN iPediaに翻訳済みの情報があれば日本語で、それ以外は英語で出力するようにしています。また、これは外部の方が作ってくれたのですが「VulsRepo」という分析用のWebUIが用意されています。Vulsが吐き出すJSONの情報を可視化してくれるツールで、非常に良くできており調査が捗ってオススメです。

Vulsのメイン開発者である神戸(かんべ)氏、インパクトのある髪型でインタビューに臨んでいただいた

開発はいつごろからどのくらい時間をかけたのでしょうか

神戸氏:2年半くらい前に遡りますが、業務で膨大な数のLinuxサーバーを管理していました。冒頭にも述べたように脆弱性への対応コストがものすごく大変で、自動化したいという思いをずっと抱いていました。「自分が困っていた、楽するために」というのがそもそものモチベーションです。その後、Vulsのコンセプトを社内の定例会で報告して好評だったこともあり、上司に相談して会社の業務としてVulsの開発に専念するための時間を3か月間もらい、すべての会議をブロックし自分を追い込んで作り込みました。そこでプロトタイプを作成し、その後の3か月で実装や公開に向けての準備(リファクタリングやドキュメント作成、テストケースの整備など)をしました。

神戸氏:公開は2016年の4月上旬でしたが、すぐに海外から反響がありました。それなりに狙ってプロモーションしてはいたのですが、予想以上の反響に正直驚いています。まずは英語で海外向けに情報を発信し、その後国内にも紹介していく流れでした。最近ではイベントやLTで登壇する機会も多くなってきています。基本的には私が専任でゴリゴリコードを書いて、周辺ツールの開発などでは社内のメンバー2、3人が手伝ってくれているような開発体制です。

なぜOSSに? 有償ソフトなどの選択肢はなかったのでしょうか

林氏:自社プロダクトとして有償やオプションでの提供というプランもないわけではありませんでした。しかし、開発時からある程度OSSとして公開することを前提にしていました。まず、世の中の反応を見たかったというのがあります。また、社内リソースの投資には限界があるため、(社外の)他の技術者やコミュニティを巻き込むことがプロダクトを育てていくうえで最善だという判断がありました。

ビジネスプランについて語る林氏、神戸氏とともにセキュリティのチームに所属

神戸氏:また、自社のプロダクトとなるとどうしても日本市場がメインになってします、世界のデファクトを狙う上でOSSにすることを選んでいます。さらに言うと、利用者の立場としてはソースが公開されていることも重要な要素の一つです(個人的にはブラックボックスなセキュリティツールには抵抗があります)。OSS化に向けては会社の承認を得る必要があったのですが、エンジニア採用やブランディングなど会社のPRになること、今後マネタイズのプランも考えていくことで説得をしました。現在、会社(フューチャーアーキテクト)のGitHubリポジトリ上でGPLv3として公開しています。

バズらせるうえで意識したことはありますか

神戸氏:3か月業務を休んで開発していたので会社員として切羽詰まっていたこともあり(笑)、かなり周到に用意したつもりです。まず、Facebookグループ、Twitter、redditをメインに宣伝していったのですが、日本と海外とで参加者の規模が20倍ほど開きがあることに気付きました。まずは海外に向けて発信していきTwitterでフォローワーが多い人がRTしてくれました。また、GitHubのスターが増えていって、GitHub TrendingのGo言語カテゴリーで週間1位になったことも大きかったです。公開初月の4月中は様々なところで拡散効果がありました。

神戸氏:意図的に注力したのはGitHubのReadMe(ドキュメント)です、かなり追い込みで力を入れました。英語版を用意することはもちろんのこと、図やアニメーションでわかりやすく作りました。最初は自分で英語版を用意したのですが、社内のより英語が得意な人間にAbstractを添削してもらいました。

神戸氏:逆に意図せず広まっていった部分もたくさんあります。まず、Vulsを気に入ってくれる人が自ら宣伝してくれています、どこかのイベントでLTをしたりQiitaの記事が自然発生的に生まれたり。ドイツ語やフランス語のほか、中国語やスロバキア語(!)などにも翻訳されています。最近では、CentOSのスキャンが10倍早くなったパッチが送られてきたりもしました。先ほど紹介したVulsRepoのように、周辺ツールが派生してきているのも反響の多さを物語っています。ZabbixやDeep Securityと連携させるようなツールも登場しています。

神戸氏:ある程度は準備してきたとはいえ予想以上の結果が得られました。GitHubのTrendinngが全体4位になった時は殉職しても良いとさえ思いましたね(笑)。

神戸氏に聞いたバズらせるためのアドバイス
  • 気合いを入れて英語版のReadMeを作る
  • GitHubスターを稼ぐために海外を狙う(日本人はあまりスターを付けない)
  • 海外での成果をもとに日本を攻める(Qiitaがおすすめ)
  • Twitterの拡散力はすごい
  • 日々GitHub Trendingをチェックしいろんなプロジェクトをチェックする習慣をつける(感覚をやしなうことが重要)
  • Slackチームは便利、コミュニティが醸成される

今後はどういった展開を考えているのでしょうか

神戸氏:OSSとしては地道に改善を重ねていきます、直近ではWindows対応が課題になっています。

林氏:エンタープライズ寄りのニーズも確認できています、例えば有償サポートなどは会社として対応していくような体制を検討しています。今は開発者向けのCUIのみですが、運用管理しやすいようにGUIを整備したり、課題管理の機能を付与していく案などがあります。また現時点ではスキャンツールとしての調査機能がメインですが、攻撃を遮断したり実際にアップデートを実施していくような、より実効的なセキュリティ製品にしていく構想も考えています。

インタビューということでとりあえずろくろを回してみる2人
著者
鈴木 教之(Think IT編集部)
株式会社インプレス Think IT編集グループ 編集長

Think ITのX代目編集長。新卒第一期としてインプレスグループに入社して以来、調査報告書や(紙|電子)書籍、Webなどさまざまなメディアに編集者として携わる。Think ITの企画や編集、営業活動に取り組みながら、プログラミングやWebマーケティングに関する書籍も手がけている。OSSのRe:VIEWとプリントオンデマンド技術を活用したThink IT Booksシリーズを展開するなど、プラットフォームやビジネスモデルへの関心も高い。

連載バックナンバー

データ解析インタビュー

Apache NiFiのコミッターに聞く「OSSコミッター」になる秘訣

2017/8/29
ビッグデータ処理に必要なデータインジェクションを提供するApache NiFiのコミッターに聞いたOSSコミッターへの道とNiFiの未来とは。
システム開発インタビュー

パイプラインベースのCI/CDツール、Concourseとは?

2017/3/21
CI/CDにおける「Jenkinsおじさん問題」を解決するConcourseとは? 開発をリードするPivotalのエバンジェリストにインタビューし、その特徴や背景を聞いた。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています