最近は以下のようなセキュリティの問題が取り上げられることが多くあります。
-
Log4Shell, Spring4ShellなどのOSSライブラリの脆弱性の問題
-
SQLインジェクションなどによるクレジットカード情報の流出
-
サプライチェーンのセキュリティ問題、SBOM
SQLインジェクションなどの脆弱性は以前から多くあるセキュリティ上の問題でしたが、最近またニュースとしてみることが増えてきているように思われます。
加えて、OSSライブラリの脆弱性の問題やサプライチェーンのセキュリティ問題・SBOMといったものは最近になって注目されるようになったものです。
これらの最近話題のセキュリティの問題を守ろうとすると色々なサービスを組み合わせて、複雑な運用がまた必要になる・・・といったことが考えられますが、実はSnykだけでこれらの問題を解決することができます!
Log4Shell, Spring4ShellなどのOSSライブラリの脆弱性の問題への対策
2021年12月10日に公開されたApache Log4jの脆弱性、通称Log4Shellが大きく話題になりました。
また、2022年3月30日に公開されたSpringフレームワークの脆弱性、Spring4Shellも続けて話題となりました。
これらの問題の共通点は、自分たちが開発するときに書いたコード(カスタムコード)の問題ではなく、開発時に組み込んだOSSのライブラリやフレームワークに含まれる脆弱性による問題であるという点です。
そのため、開発時にセキュリティに気をつけてコードを書く、セキュリティのテストをすることでは防ぐことができないタイプの問題になります。
また、脆弱性が公開されるまでは気付くことができないので、脆弱性が公開された2021年12月10日や2022年3月30日時点で急に大きな問題があることを突きつけられ、対応が必要になります。
更に悪いことに、警察庁からの報告によると脆弱性が公開された2021年12月10日以降からすぐに脆弱性を狙った攻撃が観測されているそうです。
このような開発時に組み込んだOSSのライブラリやフレームワークに含まれる脆弱性が自分たちの開発物にも影響を与えるかどうかを確認できるサービスが「Snyk Open Source」になります。
Snykは無料でトライアルすることができますので、実際にLog4Shellの脆弱性を含むGitHubのプロジェクトをスキャンしてみたところ、以下のように検出することができました。
アカウント作成からスキャンまでは5分もかからずできたのでとても導入が簡単だと感じました。
また、スクショの右下の「Fix this vulnerability」のボタンから簡単に脆弱性を修正するPRを作成できるので、こちらもとてもスムーズです。
このように、最近話題のOSSのライブラリやフレームワークに含まれる脆弱性の確認から修正までを「Snyk Open Source」で簡単に解決することができました。
SQLインジェクションなどの脆弱性への対策
SQLインジェクションなどの古くから指摘されているセキュリティの問題がカード情報の流出などの大きなセキュリティインシデントに繋がるケースも増えてきています。
このような問題は、セキュリティのテストや外部の診断などで気がつくことが多いですが、開発が終わった後に行うテストや診断の場合では修正するコストが高く、修正が後回しにされてしまうことがあります。
Snykには「Snyk Code」という静的アプリケーションセキュリティテスト(SAST)サービスがあり、これを使うことで開発時にセキュリティのテストをリアルタイムに行うことができるので、完成してからテストして修正するという手戻りコストを下げることができます。
実際に、 OWASPのjuice shopと呼ばれる脆弱性を含むサンプルアプリをスキャンしたところ、大量の脆弱性のアラートが出てきました。
こちらも先ほどのSnyk Open Sourceと同様にGitHubのプロジェクトを連携することで特に追加の設定などなしで簡単に行うことができました。
スキャンの結果が出るまでには数分ほどかかっているように感じました。
詳細ページより具体的にどの部分にどのようなセキュリティの問題があるのか確認することができます。
左側のフィルターよりSeverityで絞り込みや、Vulnerability Typesより、SQLインジェクションなどの脆弱性のタイプでの絞り込みも行うことができます。
大量に検出されても、絞り込み機能で気になる部分だけ見つけることができるのでよさそうです。
また、以下のように個別に詳細な脆弱性の説明、修正方法も書かれているのでとても良心的です。
今回は利用していませんがIDEのプラグインも提供されているので、開発しながらIDEの画面上で確認・修正ができるのも便利なように思います。
自分たちが開発するときに書いたコード(カスタムコード)に含まれるSQLインジェクションなどの脆弱性は開発時に確認・修正できる「Snyk Code」で解決できます。
サプライチェーンのセキュリティ問題、SBOMへの対応
2021年05月12日にバイデン大統領がサイバーセキュリティ強化のための大統領令に署名し、その中でサプライチェーンのセキュリティ強化やSBOM(Software Bill of Materials)について触れられていることが話題になりました。
SBOMは、ソフトウェアの中に使われている部品のような役割のOSSやソフトウェアを列挙したものです。
SBOMの情報を使うことでソフトウェアにどんな脆弱性があるのか確認でき、またGPL汚染などのライセンス問題の解決にも役立てることが期待されています。
Snykでは、SBOMの国際標準とされているSPDXと呼ばれるフォーマットで出力する機能は提供されていませんが、「Snyk CLI」と外部提供されている「snyk2spdx」を利用することでSPDX形式での出力が可能となっています。
今回は、Snyk CLIまで利用しなかったため、具体的にどのような出力になるのかまで確認できていません。
外部ツールが必要になるため、簡単に確認ができるという状態では現状ないため、今後ボタン一つで出力できるとSnyk Open SourceやSnyk Codeのように素晴らしいユーザー体験になると感じました。
また、 Snyk APIを利用してもSBOMに必要な情報を収集することもできるようです。
APIには豊富な機能とドキュメントも充実しているので開発者としてはこちらも嬉しいですね。
最近話題のセキュリティの問題、 Snykで解決!
初めてSnykを利用してみましたが、ユーザー登録してから実際に利用するまでの流れはとても簡単で初期導入も簡単にできそうに感じられました。
ドキュメントやブログなどのコンテンツも豊富なため困ったときに調べれば対応できそうと思えるものになっていました。
現状はサービス・ドキュメント共に英語という点が利用者にとって一番のハードルだと思います。
(あとは開発メンバーの数や利用したいサービス毎に価格が異なるので会社としてどこまでコストがかけられるのか)
最近話題のセキュリティの問題の3つを例にあげましたが、Snyk一つのサービスで完結できる点は利用者としてとても良いと思います。
まだまだ多くの機能が追加されたり、他のサービスとの連携が追加されているように感じられるので今後の成長が楽しみなサービスです。