生産性の向上と脆弱性リスクの低減を両立─ 開発者ファーストのセキュリティプラットフォーム 「Snyk」がもたらす効果・効用
![](https://thinkit.co.jp/sites/default/files/styles/main_image_730x/public/main_images/f_devops_guide2022_cover_6.jpg?itok=2-Z37Uqh)
開発と運用を一体化させたDevOpsを推進する過程で、開発者が突き当たる大きな課題の1つ。それはDevOpsのプロセスにセキュリティチェックをどう組み込み、ソフトウェアの安全性と生産性を高いレベルで担保するかだ。その課題を解決し、 DevOpsとセキュリティ対策を融合させた「DevSecOps」の環境を形づくるクラウド型のセキュリティプラットフォームが「Snyk(スニーク)」だ。同製品はすでにDevOpsを推進する名だたる企業に採用され、ユーザーの裾野を急速に広げている。 Snykの採用メリットについて開発・提供元Snyk社のキーパーソンに話を伺う。
デジタル時代のリーディングカンパニーに
Snykが選ばれる理由
開発者がDevOpsの手法を取り入れること、あるいはCI(継続的インテグレーション)/CD(継続的デリバリ)パイプラインを形成してコーディングからデプロイまでを効率化・自動化することの大きなメリットは、ソフトウェア(サービス/アプリケーション)のリリースと改善のスピードを向上させられる点にある。そんなDevOpsによる生産性向上を阻害する因子となりうるのがソフトウェアのセキュリティを担保するプロセスだ。とりわけ、従来型のセキュリティチェックの方式をそのままDevOpsに適用しようとすると、開発の生産性が低下することになるとSnyk社のシニアソリューションエンジニア、相澤俊幸氏は指摘する。
「従来、ソフトウェアの開発プロセスと脆弱性などを検出するセキュリティチェックのプロセスはそれぞれが分離独立していました。開発チームが開発作業を終えてから、セキュリティチームがセキュリティチェックをかけ、その結果に基づいて開発チームが必要な修正を施すといった方式が今でも一般的です。しかし、このような方式は非効率で開発の手戻りが大きくなるリスクを内包しているうえに、そもそもコーディングからデリバリまでを一気通貫でスピーディに行うDevOpsやCI/CDの考え方とは相容れないものです」(相澤氏)
こうした従来方式から抜け出す一手は、開発と脆弱性チェックのプロセスを融合させることである。ただし、それによって開発者の負担が大きく膨らみ、生産性が落ちてしまうのでは意味がない。そこで必要になるのが、開発者がDevOpsのプロセスの中で脆弱性のチェックや修正を簡単に、かつスピーディに行うための環境となる。その環境を形づくるクラウド型のセキュリティプラットフォームが「Snyk」だ。
Snykのソリューションは日本を含め世界中で展開されている。その顧客数は2022年4月時点で世界1,600社強に上り、その中にはGoogleやセールスフォースなど、デジタル時代を牽引する有力企業・組織が名を連ねている。
「こうしたお客さまからSnykが高く評価されている理由は、開発者に大きな負担をかけることなく、クラウド時代のソフトウェアが内包しがちなセキュリティリスクを洗い出し、かつ、その修正作業を効率化・自動化する仕組みを備えているからです。つまり、Snykは、DevOpsとセキュリティ対策を融合させた“DevSecOps”環境を形成するのに最適な『開発者ファーストのセキュリティツール』と言えるわけです」(相澤氏)
4つのプロダクトで広範なコードに
潜在するリスクを検知
相澤氏の言う「クラウド時代のソフトウェアが内包しがちなセキュリティリスク」とは、開発者がコーディングしたソースコードの脆弱性をはじめ、オープンソースソフトウェア(OSS)やコンテナ、さらには、IaC(Infrastructure as Code(*1)などに含まれる脆弱性や設定ミスなどを指している。
*1 IaC(Infrastructure as Code):インフラの設定やプロビジョニングをプログラムコードによって自動化することを指す。
「例えば、クラウド上で展開される今日のソフトウェアは、そのコードのおよそ80%がOSSで占められているとされていますが、OSSの脆弱性は頻繁に発見され、サイバー攻撃の格好の標的になっています。コンテナについても、多数のLinuxパッケージが含まれているために、脆弱性が混入しやすい環境と言えるでしょう」(相澤氏)
こうした脆弱性(あるいは、セキュリティリスク)の発見と修正の効率化・自動化に向けて、Snykでは以下の4つのプロダクトが用意されている。
- Snyk Code
開発者がコーディングしたコードの静的解析によって脆弱性/セキュリティポリシー違反を検知し、かつ、コード修正のアドバイスなどを提供する。コードスキャンの高速性や脆弱性の誤検知の少なさなどを特徴とする。 - Snyk Open Source
ソフトウェアに含まれるOSSの脆弱性チェック、自動修正の機能を提供する。ワンクリックで修正用プルリクエストを生成する機能を備える。 - Snyk Container
コンテナに含まれるパッケージの脆弱性のチェック/自動修正を実現する。 - Snyk IaC
IaCにおける設定ミスを検出し、コード修正を迅速に行う。
これらのプロダクトは統合開発環境(IDE)やソースコード管理ツール、CI/CDツールなど、数多くの開発ツールとの連携が可能であり、それによってDevOpsにおける脆弱性のチェック・修正の作業を、開発者のニーズに合わせて効率化・自動化することができる。加えてSnykでは、OSSなどに関する最新の脆弱性情報と、その対処法を格納した脆弱性データベースが提供されている。その最新データを使った脆弱性スキャンは、デプロイ後のソフトウェアに対しても(デフォルトで)1日1回の頻度で自動実行される。それによって新たな脆弱性が見つかった場合には、担当の開発者/開発チームに対し、メールやチャット、タスク管理ツールなどを通じて即座にアラートが飛ばせるようになっている。
そのため、2021年12月にOSSの「Apache Log4j」に深刻な脆弱性「Log4Shell」が発見された際も、その内容が脆弱性データベースに即座(発見の数時間後)に反映されたため、Snyk導入企業は大きな混乱には至らなかったという。
なお、以上に示したSnykの機能を使った脆弱性のチェック/修正の実行例は図に示すとおりとなる。ぜひ、今後の参考にされたい。このほか、Snyk社では開発の前段階でソフトウェアの安全性を担保するための仕組みとして「Snyk Advisor」も提供している。これは、同じ機能を持ったOSSパッケージの選択肢が複数ある場合に、過去の脆弱性の発生状況やパッケージのメンテナンス履歴に基づきながら「どのパッケージを選ぶのが最も安全か」を見定めるための仕組みである。
Snykを使うことで、コーディング中やコーディング後、ビルド時、デプロイ後など、DevOpsのさまざまなフェーズにセキュリティチェック/修正のフローを組み込み、効率化・自動化することが可能となる
脆弱性修正に要する時間が73%減──
日本の開発現場でも威力を発揮するSnyk
Snyk社の日本法人が活動を開始したのは2022年2月のことだ。ただし、それ以前からSnykを活用している国内ユーザーがあるほか、Snykの活用で大きな成果を手にしているところも少なくない。例えば、国内780万人のユーザーを擁する後払いサービス「ペイディ」の開発・提供元である Paidy社では、Snykを社内の開発者全員が使っており、採用後90日間でソフトウェアの脆弱性修正に要する時間を平均73%削減することに成功したという。「開発者にとってソフトウェアの脆弱性への対応は不可欠ではあるものの、本来業務ではなく、その業務負担は小さいに越したことはありません。しかも今日では、多くの開発者がソフトウェアのリリースと改善のスピードを一層上げていく必要に迫られています。そのような時代では、Snykを使い、日々の開発をシステマチックにチェックすることが強く求められていると言えるのです」(相澤氏)
https://go.snyk.io/jp-contact-us.html
Email:info-japan@snyk.io
TEL:03-6822-0629(平日9:00-18:00)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 開発者主導のセキュリティ対策の強い味方、脆弱性スキャンを随所に組み込む「Snyk」の価値
- プロダクトライフサイクルでのシフトレフトを推進―開発者ファーストの思想で一貫したDevSecOps環境を実現するSnyk
- CNSC 2022からアクセンチュアのセキュリティエンジニアがDevSecOpsの要点を解説
- DevOpsを始めるときに「何をやるべきか」を理解しよう
- 知っておくべきDevOpsの「4つの原則」
- DevOpsはここから始めよう
- コンテナ開発へのDevSecOpsの適用
- 【事例】すべての機能を利用可能なDevSecOpsプラットフォームで生産性向上
- インフラエンジニアの視点で見る、DevOpsを実現するためのツールとは
- DevOpsのフローとDevOpsの実践に必要な技術