脆弱性検知ツール「Vuls」の開発者に聞いたOSSをバズらせる極意
バルスというツールをご存知だろうか? 日本ではとあるアニメの崩壊の呪文として扱われることの多いこのフレーズがいま、サーバー管理者のシステム崩壊を防ぐためのツールとして注目されている。OSSの脆弱性検知ツールであるVuls(バルス)について、開発元であるフューチャーアーキテクトの神戸 康多氏と林 優二郎氏に詳しく話を聞いた。
まずはVulsについて簡単に教えてください
神戸氏:VulsはVULnerability Scannerの略で、Linux/FreeBSD向けの脆弱性スキャンツールです。OSのみならずプログラミング言語やライブラリに至るまで多くの環境に対応し、レポートや通知を行います。ソフトウェアには数多くのバグが含まれ日々脆弱性に関するレポートが報告されています。サーバー管理者は脆弱性に関する情報を随時チェックし、その脆弱性が自身が管理するサーバーにどれくらい含まれているのか影響範囲を調査し、深刻度や緊急性に応じて対応しなければなりません。管理対象のサーバーが多くなるにつれものすごい作業負荷になります。この分野はこれまで自動化が遅れていましたが、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の情報を可視化してくれるツールで、非常に良くできており調査が捗ってオススメです。
開発はいつごろからどのくらい時間をかけたのでしょうか
神戸氏: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を整備したり、課題管理の機能を付与していく案などがあります。また現時点ではスキャンツールとしての調査機能がメインですが、攻撃を遮断したり実際にアップデートを実施していくような、より実効的なセキュリティ製品にしていく構想も考えています。
プロジェクトのGitHubページ
https://github.com/future-architect/vuls
日本語のドキュメント
https://github.com/future-architect/vuls/blob/master/README.ja.md
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OSSのシステム脆弱性スキャン・検査ツール「OpenVAS」「Vuls」「OpenSCAP」を使ってみよう
- システムの脆弱性スキャン・検査ツール「Nmap/Zenmap」「Nessus」を使ってみよう
- Linux向け脆弱性スキャナ「Vuls 0.1.4」リリース
- イメージスキャンやランタイム保護などコンテナのライフサイクル全般をカバー、Aqua Security Softwareが展開するセキュリティ新機軸
- コンテナの静的・動的スキャン
- オープンソース開発プロジェクトの参加者になるワークショップ「OSS Gate」
- 「OpenSSF Meetup」開催、「OpenSSF Day North America」で発表された「OSSセキュリティのための動員プラン」の内容を解説
- 「開発者ファースト」で組織の変革を支援するGitHub (前編)
- オープンソースロジスティクスのBlack Duck、セキュリティリスク必要性を語る
- バックエンド処理に挑戦!