クラウド時代を迎えて、アプリケーション開発の実態はそれ以前から大きく変わった。すべてがコード化された環境では、クラウドネイティブで考えることが当たり前になっている。また、開発担当者と運用担当者が連携しながら柔軟に開発を進めるDevOps開発手法も、珍しいものではなくなった。
一方で、そうしたスピーディーな開発のボトルネックになり得るのがセキュリティの問題だ。開発と違ってセキュリティ対策は、未だに開発者とセキュリティ担当者の間で“キャッチボール”になることが多く、どうしてもスピードが落ちてしまいがちだからだ。
では、迅速な開発とセキュリティを両立するにはどうすればいいのか。その答えとなり得るツールが「Snyk(スニーク)」である。
6月10日に開催されたウェビナー「TECH+セキュリティ-専門家とベンダーの対話 第9回 理想と現実の“折り合い”を探る」にて、Snykを提供するSnyk社 シニアソリューションエンジニアの相澤 俊幸 氏が登壇。クラウドネイティブ時代のセキュリティ対策を支えるソリューション、Snykについて紹介した。
「開発者がセキュリティに携わるべき」という想いから生まれたSnyk
Snyk社は2015年に創業されたベンダーであり、同名のセキュリティプラットフォームを提供している。相澤氏によると、同社の創業理念は「開発者がセキュリティに携わるべきである」というものであり、この理念がサービスのコンセプトの核を成している。それは、裏を返せば“開発者がセキュリティに携わっていない”事例が世の中にあふれていることの証左でもある。
具体的に開発者の仕事内容から探ってみよう。相澤氏がポイントとして挙げるのが、クラウド、そしてDevOpsだ。どちらも近年、急速に普及が進み、開発者の仕事を大きく変えた存在である。
クラウドやDevOpsによって、開発者は仕事がやりやすくなった、あるいは開発のスピードが上がったと、一般的には考えられがちだ。コードを書くところはもちろん、リリースに至るまで、全工程を通して開発者が1人で行えるようになったからだ。
しかし、一方でセキュリティ対策に目を向けると、意外なボトルネックが見えてくると相澤氏は指摘する。
「現実として、多くの現場では以前のままのセキュリティ対策が主流です。開発が終わったアプリケーションをセキュリティ担当者に渡し、セキュリティのスキャンを行い、脆弱性が見つかれば、再び開発者に差し戻して修正を行っています」(相澤氏)
せっかくクラウドやDevOpsを導入しても、セキュリティ対策段階でのキャッチボールがボトルネックになり、開発スピードが思うように上がらないのが現状というわけだ。
では、セキュリティ担当者を増やしてスピードを速めればいいのかというと、そういうわけにもいかない。現在の世の中では、開発者の人口に対してセキュリティ担当者の人口が圧倒的に不足している状況があるからだ。
そこで、話は冒頭の創業理念に戻る。
「Snykはディベロッパーセキュリティ――つまり、開発者の日々の仕事にセキュリティ対策が組み込まれるべきだと考えているのです」(相澤氏)
なぜSnykが選ばれるのか、3つの特徴から紐解く
Snykは開発者の仕事をどのようにサポートするのか。相澤氏はクラウド登場前後のアプリケーションを比較しながら、次のように説明する。
「クラウド以前は、ネットワークの設定、サーバのインストールといった作業は運用担当者の仕事でした。ところが、現在のようなクラウド時代では、これらの作業はすべて開発者が担っています。たとえば、ネットワークならコードの中でネットワーク設定が行われますし、OSのインストールもコードを1行書けば完了します。すべてはコードを通じて行われているため、同時に脆弱性もコードから混入しますし、修正もコードを通じて行われます。これが現状の姿です」(相澤氏)
クラウド時代のアプリケーションを構成するコードは、大きく4つの領域に分類できる。まず、アプリケーションのコード、参照されるオープンソース、コンテナ化するコード、そしてIaC(Infrastructure as Code)である。
これら4つのコードベースそれぞれに対して、Snykは「Snyk Code」「Snyk Open Source」「Snyk Container」「Snyk IaC」の4製品を提供している。
相澤氏によると、Snykの特徴は大きく3つあるという。
まず、「開発者のエンパワーメント」である。Snykは開発者にとって使いやすい製品であり、数多くの開発者用ツールと連携が可能だ。そのため、従来のワークフローを変えることなく、セキュアな開発が実現できるのである。
2つ目に「自動修正」。Snykでは多くの場合において、脆弱性を自動修正する技術を提供している。
最後に「セキュリティの知見」である。これは、脆弱性データベースのことを指している。Snykは脆弱性のデータベースに非常に力を入れており、そのレベルは業界でもトップクラスだ。具体的には、他の商用データベースに比べて3倍多くの脆弱性が登録されている。また、脆弱性情報の実に9割が他のデータベースに先駆けて登録されており、誤検知率も低く、修正を支援する情報もデータベースを通じて提供しているという。
同社がこれほどデータベースに注力する理由は、「脆弱性を発見したり、修正したりするためには、脆弱性の情報が必要不可欠」(相澤氏)だからだ。
これら3つの特徴を備えたSnykは、迅速な開発とセキュリティの両立を強力に支援する。だからこそ、Snykは国内外の企業から支持されており、導入企業は1,600社以上にものぼるという。
「コードベースごとに違った課題があると思いますが、氷山の先端にあるアプリケーションコードでよく伺う悩みは2つです。まず、スキャンのスピードです。開発のペースが上がっているのに、スキャンに時間がかかってしまうことが多い。数時間、または数日かかることもあります。もう1つのよくある悩みは精度です。スキャンした結果、脆弱性が報告されても、実は誤検知だったという問題が起こり得ます。セキュリティに問題がなかったこと自体は良いのですが、誤検知のようなノイズが多いと生産性が下がってしまいます。Snykはこの2点について、非常に高い評価をいただいています」(相澤氏)
実際にSnykを導入した企業のPaidyでは、過去90日間で脆弱性の修理に費やす平均時間が73%削減され、管理プロジェクト数が265%増加するなど明確な効果が表れているという。Paidyにおける開発者のSnyk利用率は100%を達成しているとのことで、まさにSnykの効果を感じさせる事例といえるだろう。
セキュリティ専門家も絶賛するSnykの取り組み
ウェビナー後半では、セキュリティの専門家である徳丸 浩 氏、およびpiyokango 氏と相澤氏によるディスカッションが行われた。
なかでも徳丸氏が気にかけたのが、SAST(静的アプリケーション・セキュリティ・テスト)がどこで行われるのか、という点だ。この疑問に対して相澤氏は「SASTはクラウド上で行われる」と回答。続けて「Snyk製品によってもスキャンが行われる場所は異なるが、コードに関しては分析がかなり複雑になるので、スキャンの工程自体が完全にSaaSで行われることになる」と説明し、「ソースコードは最大 24 時間 SaaS 上に保持されます」と述べた。
また、徳丸氏から追加で「オープンソースの脆弱性については、package.jsonなどの情報をもとにしているのか」と質問を受けた相澤氏は、「そのとおりです。我々はマニフェストファイルに注目して、どんなパッケージを使っているのか判断している」と回答した。
その上で相澤氏は、類似製品との違いにも触れ、「Snykはコードやオープンソースだけでなく、コンテナ化によって生じる脆弱性やIaCでも問題などをすべて単一プラットフォームでカバーできる」と説明。
さらに、「特定のツールと結びついている製品と違って、Snykは縛りがないため、様々なIDEやCICDと連携でき、非常に使いやすい製品である」とSnykのメリットについて話した。
続いて、piyokango氏から「Snykで検出されている脆弱性の偏りなどはあるか」との質問が。これに対して相澤氏は、「お客様のカスタムコードに関する脆弱性のトレンドははっきりしていないが、私の印象も含めると、やはりインジェクションの脆弱性およびオープンソースのライブラリからの脆弱性混入が非常に多いと感じる」と回答した。
また、piyokango氏はSnykについても「脆弱性データベースは情報量が多いとのことだが、量だけあっても実際に使えないと意味がない。そのあたりはどうなっているのか」と掘り下げていく。
この意見に対して相澤氏は、「おっしゃる通り」と同意し、「我々も多くの脆弱性をカバーするだけでなく、脆弱性をレビューして、より正確な情報を提供することに力を注いでいる。加えて、独自に脆弱性を見つける取り組みも行っている」と回答。
相澤氏による明確な説明に、piyokango氏も「しっかりとした取り組みだということがわかりました」と絶賛し、徳丸氏も「すばらしいですね」と高く評価していた。
スピードとセキュリティの両立が求められるクラウド時代において、開発者がセキュリティまでを担うディベロッパーセキュリティはもはや欠かせない考え方といえる。
Snykは簡単に導入でき、高速で高精度なスキャンを可能にするセキュリティ対策用ディベロッパーツールだ。大量の脆弱性もすばやく見つけ出し、オープンソースに関しては自動修正できる機能も備えている。
DevOps開発に取り組む際は、ボトルネックになり得るセキュリティ面をカバーするために、Snykを導入してみてはいかがだろうか。
[PR]提供:Snyk