デベロッパーがオープンソースのコードやパッケージを利用することは、どこでも当たり前になってきた。今やソフトウェアが世界を食べている*と言われるが、その食事はオープンソースソフトウェアというお店での外食だ。〔*: software eats the world, Marc Andreessenの名(迷?)言。〕
誰かが書いたコードがすでにある、という今の状況はデベロッパーの生産性を大きくアップしているが、しかしそれらを利用すると、それらのコードが抱えるセキュリティの問題を自分のアプリケーションが抱え込むことになるから、とくに比較的新しいオープンソースパッケージの場合は、コードの脆弱性の点検に多大な時間と努力を費やすことになりがちだ。
そこでSnykの出番だ。ロンドンとイスラエルにまたがるこのスタートアップは、その大仕事をデベロッパーに代わって行い、オープンソースコードをベースとする開発のセキュリティを確保する。
Snykの協同ファウンダーでCEOのGuy Podjarnyは問題をこう説明する: “npmのようなパッケージリポジトリには何十万ものパッケージがあって、きみが自分で書く必要のない大小様々な機能性を提供している。でも、良い機能性と共にきみは、そのパッケージのセキュリティの欠陥も取り込むことになる。パッケージの7つに1つは、既知の脆弱性を抱えている”。
その対策としてSnykは、オープンソースのコードを安全にする作業を、デベロッパーの通常のワークフローに組み込む。たとえばそのサービスをGitHubに組み込むと、脆弱性のチェックが開発過程の中で行われる。テスト過程で一回だけ行われる(当たり外れのある)コード監査と違って、チェックは反復的継続的に行われる。
脆弱性が見つかるとSnykは適切なパッチを提供し、また可能なかぎり、依存性の解決も行う。パッチはSnykのチーム自身が開発し、彼らはサイバーセキュリティとオープンソースソフトウェアのベテラン揃いだ。
Podjarnyは主張する: “Snykのツールは問題を早期に発見し迅速に手当する。新しい脆弱性が公表されると、それにも素早く対応する。ツールは最近GitHubと統合したので、これらのセキュリティ管理をGitHubのワークフローに一体化し、コードが変更されようとするたびにSnykがチェックを行う。そして問題を修復するためのコードの書き換えを、ボタンをクリックするだけで提案する。そうやって脆弱性を退治できたら、次はプロジェクト全体の依存性を調べ、新たに公表された脆弱性がアプリケーションに影響を与えていれば、そのことを警告すると同時に、問題修復のためのコードの書き換えを提案する”。
デベロッパーのプロジェクトがオープンソースならSnykの利用は無料で、コマンドラインで使うテスト機能も無料だ。同社が提供している有料のパッケージには、生産性とレスポンスタイム向上のための工夫が盛り込まれている。
“弊社のツールは、セキュリティ問題を解決するための、もっとも効率的な方法を提供する。それらは新たな問題の発生を防ぎ、新しい脆弱性警告にも対応する”、と彼は語る。Snykのプロダクトはセルフサービス型だが、有料プランは月額19ドルからだ。対象コードの規模が大きければ、そのぶん料金は高くなる。