Snyk Open Sourceの2021年振り返りと2022年への抱負

本記事は、2021年12月21日に公開した英語ブログ[Snyk Open Source in 2021: A year of innovation](https://snyk.io/blog/snyk-open-source-review-2021/)の日本語版です。

Snykのセキュリティプラットフォームは、下記の4つの製品を提供しています。

* Snyk Open Source: オープンソースコードの脆弱性を発見し、修正することができます。
* Snyk Code: アプリケーションコードの脆弱性を発見し、修正することができます。
* Snyk Container: コンテナイメージの脆弱性を発見し、修正することができます。
* Snyk Infrastructure as Code: Kubernetes、Helm、Terraformの設定ファイルの脆弱性を発見し、修正します。

そのうち、本日のブログはSnyk Open Sourceについて、2021年の製品アップデートのまとめと、2022年の方向性についての話になります。

![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/4df01148-0aff-afad-3ed9-9a51b69ea4e3.png)


[90%以上の組織がオープンソースソフトウェアを利用しており](https://thenewstack.io/the-challenges-of-securing-the-open-source-supply-chain/)、オープンソースに直接または間接的に依存することにより、セキュリティや法的なリスクが大きくなっています。

この課題を克服するために、組織が潜在的なセキュリティ問題をうまく特定し、緩和するための[ソフトウェア構成分析（SCA）ソリューション](https://snyk.io/blog/what-is-software-composition-analysis-sca-and-does-my-company-need-it/)の役割はますます重要になっています。弊社製品の[Snyk Open Source](https://snyk.io/product/open-source-security-management/)は、デベロッパーファーストのSCAソリューションです。開発者とセキュリティチームが、アプリケーションの構築に使用されているオープンソースコンポーネントのセキュリティ脆弱性とライセンス問題を発見し、優先順位を付けて修正することができます。

2021年中に、Snyk Open Sourceは下記を達成しました。

* 5億回以上のテストを実行
* 1,900万件以上のプルリクエストに対して、脆弱性やライセンスに関するテストを実施
* 170万件以上の新規プロジェクトのインポート

2022年を目前に控え、この1年でSnyk Open Sourceが達成したデベロッパーファーストのSCAソリューションへの道のりを振り返る良い機会だと思います。

Snyk Open Source が新しい機能を提供した 3 つの主要な領域、すなわち統合、エコシステムのサポート、および修正を容易にすることについて見てみましょう。

#インテグレーション（統合）
Snyk Open Sourceは、既存の開発ワークフローに統合することで、開発者が現在ご利用の開発ワークフローに適合します。そのため、Snyk Open SourceはSDLCの早い段階で統合されます。開発者のローカル開発環境から始まり、GitベースのワークストリームやCI/CDパイプラインなど、開発プロセス全体を通じて実行されます。

2021年、私たちは、セキュリティとライセンススキャンのプロセスを可能な限りシームレスにするために、既存の統合の改善と新しい統合ポイントの導入に多くのリソースを投入しています。

JetBrains IDE用のIDEプラグインは一新されました。また、[最近ではVisual Studio Codeの拡張機能でSnyk Open Sourceの新しいサポートを導入しました](https://snyk.io/blog/securing-open-source-dependencies-snyk-visual-studio-code-extension/)。

![blog-oss-2021-ide.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/e05ebf06-38bb-f5f9-5961-c497ab5fe21b.jpeg)

6月には、[Atlassian Bitbucket Cloudとの新しいネイティブの統合を発表しました](https://snyk.io/blog/snyk-native-integration-atlassian-bitbucket-cloud-security/)。Bitbucket内の新しいセキュリティタブを通じてSnykを組み込み、既存の脆弱性やオープンソースライセンスに関する問題を可視化し、解決のための優先順位をより高くすることができるようにしました。

![blog-oss-2021-bitbucket.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/f8813b47-2ca3-0dd3-75c7-eae640abbdae.png)

Java Mavenを使っている開発者は[Maven Central](https://search.maven.org/artifact/io.snyk/snyk-maven-plugin)で公開された改良されたプラグインのニュースを受け取りました。これにより、ビルドサイクルに不可欠なアプリケーションの脆弱性スキャンをより簡単に行えるようになりました。

また、[GitHub Code ScanningにおけるSnyk Open Sourceのサポートも開始し](https://snyk.io/blog/github-security-code-scanning/)、開発者はオープンソースの依存関係を自動的にスキャンして、GitHubのセキュリティタブから直接問題を確認できるようになりました。

![blog-oss-2021-github.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/297c7c45-a159-1da1-a642-245fa4a50336.png)

Jenkinsプラグインもメジャーアップグレードされ、ユーザビリティとパフォーマンスが大幅に改善され、Jenkinsベースのパイプラインにセキュリティスキャンを統合することがより簡単にできるようになりました。これらの改善の詳細については、[JenkinsプラグインV3のアナウンスメント](https://updates.snyk.io/jenkins-plugin-v3-203766)をご覧ください。

最後になりましたが、Snyk CLIです。毎月数百万回ダウンロードされ、毎月数百万回のスキャンを実行しているSnyk CLIは、開発者がセキュリティを開発ワークフローに統合するのをより良くサポートするために、継続的に改善と進化を続けています。2021年には、[マルチブランチのサポート](https://updates.snyk.io/multiple-branch-version-support-in-the-cli-210967)など、多くの機能強化が行われました。

#エコシステムサポート
Snyk Open Sourceは、開発者があらゆるタイプのアプリケーションをスキャンできるように、主要なプログラミング言語を含む、多くのエコシステムをサポートしています。これには、JavaScript、Java、Python、Go、.NET、Ruby、PHP、Swift などの主要なプログラミング言語が含まれます。 

Snyk Open Sourceは最近、セキュリティスキャンを拡張し、重要なユースケースであるアンマネージドオープンソースをカバーするという重要なマイルストーンに到達しました。開発者は、アプリケーションにオープンソースを取り込むためにパッケージマネージャを使用するとは限らず、これは特にC/C++のような特定のエコシステムで一般的な慣習ですが、これに限定されるものではありません。[C/C++のサポートを含む最近のベータ版の発表](https://snyk.io/blog/snyk-launches-beta-support-for-cpp/)は、このユースケースをサポートするための第一歩であり、他の言語もサポートするように拡張される予定です。

![blog-oss-2021-ecosystems.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/0a80ccf3-8325-cabb-ba38-9900e110add2.png)

今年初めには、[Elixirのサポート](https://snyk.io/blog/secure-elixir-development-with-snyk/)を追加しました。Snyk CLI を使用することで、Elixir 開発者は Mix/Hex プロジェクトを手動または [CI プロセス](https://snyk.io/learn/what-is-ci-cd-pipeline-and-tools-explained/)の主要ステップでテストおよび監視し、[既知の脆弱性](https://snyk.io/blog/whats-a-known-vulnerability/)を早期に発見して、コードが本番環境にデプロイされる前に確実に検出することができます。

![blog-oss-2021-elixir.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/11e06b72-7e60-7c2b-2a3a-d556b25e8a48.png)

2021年はSnyk Open Sourceにとってインテグレーション（統合）の年でもあり、すでにサポートされているいくつかのエコシステムに対する機能を強化した年でした。[修正アドバイスと自動修正PRが.NETサポート](https://snyk.io/blog/automated-vulnerability-fixes-dot-net-dependencies/)に追加され、Snyk Open Sourceがスキャンした.NETアプリケーションの脆弱性をより簡単に特定し修正できるようになりました。また、Maven の依存関係解決メカニズムの新バージョンを展開中で、これにより、Git からインポートしたプロジェクトでより正確なスキャンが可能になります。

#より簡単で正確な修正判断が可能
開発者第一主義（デベロッパーファースト主義）とは、開発者が問題を発見するだけでなく、迅速かつ的確な行動を取ることを支援することです。Snyk Open Source は、オープンソースの依存関係で特定された脆弱性の優先順位付けと修正を容易にする、実行可能な自動修正ワークフローを提供することを誇りにしています。

このため、10月に[Snyk CLIに新しい`snyk fix`コマンドが導入され](https://snyk.io/blog/snyk-fix-automatic-vulnerability-remediation-snyk-cli/)、開発者はローカルテストやCI/CD中に特定された脆弱性の修正勧告を自動的に適用することが容易になりました。

![blog-oss-2021-fix.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/7301341d-0dd2-0b86-3f0f-62cc4d5171c6.gif)

さらに、オープンソースの依存関係から特定された問題に対して提供されるセキュリティインテリジェンスを強化し、より正確な優先順位付けの決定を行えるよう投資しています。例えば、[新しいソーシャルトレンド機能](https://snyk.io/blog/social-media-for-security-intelligence/)は、特定の脆弱性がTwitterでトレンドになっているかどうかを通知します。また、[脆弱性が悪意のあるパッケージに起因するものかどうかの情報も、Snyk Open Source 内でより目立つように表示されるようになりました](https://snyk.io/blog/preventing-malicious-packages-and-supply-chain-attacks-with-snyk/)。悪意のあるオープンソースパッケージを含むソフトウェアサプライチェーン攻撃の急激な増加を考慮すると、これは重要な信号です。

![blog-oss-2021-score.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/c73f355b-a0b5-d73c-e4f1-945e92bd2c09.png)

GitHubからインポートされたJava MavenおよびGradleプロジェクトにおいて、到達可能脆弱性を判断するエンジンにいくつかの大きな改良が行われました。この改良によって、特定の脆弱性がアプリケーションの実行パスの一部として実際に到達可能かどうかをユーザーが判断し、それに応じて修正に優先順位を付けられるようになりました。このエンジンは、Snyk の静的アプリケーションセキュリティテスト（SAST）ソリューションである　Snyk Code　のものが活用され、より高速で正確なスキャンが可能になりました。

#2022年に向けて
デジタルトランスフォーメーションが加速する中、オープンソースは今後もソフトウェア開発において極めて重要な役割を担っていくことでしょう。オープンソースは、ビジネスの競争力と成功を維持するために必要な急速な開発ペースを後押ししてきましたし、今後も後押しし続けるでしょう。同時に、オープンソースを使用するリスクは増加し続けるでしょう。

2021年は、「ソフトウェアサプライチェーンセキュリティ」の話題が盛り上がった年でした。これは真新しい攻撃ベクトルではありませんが、現代のソフトウェアサプライチェーンを活用した悪質な攻撃が増加し、世界的に注目されたことで、この話題がクローズアップされました。[バイデン大統領の大統領令](https://snyk.io/blog/understanding-software-supply-chain-security-requirements-cybersecurity-executive-order/)は、この問題に対する全体的な認識を強めるだけでなく、開発者優先のソリューションの必要性にも一役買っています。Snyk Open SourceとSnykプラットフォーム全体は、[組織がこの課題に取り組むための方法をすでに提供しており](https://snyk.io/blog/software-supply-chain-security/)、2022年に向けて、より緊密なソリューションの開発にさらなるリソースを投入していく予定です。

Snyk Open Sourceは、開発チームとセキュリティチームが脆弱性に優先順位をつけるのを支援する追加的な方法に引き続き取り組みます。何千もの脆弱性からなるバックログに直面している私たちは、優先順位付けがあらゆる規模の組織にとって大きな痛手であることを知っており、優先順位付けのプロセスをより管理しやすく効果的にするのに役立つ革新的な新しいソリューションにすでに取り組んでいます。

Snyk Open Source はもちろん、現在サポートされている既存のエコシステムのサポートを強化するために投資を続け、新しい言語、フレームワーク、パッケージマネージャ (誰かが Rust と言ったのを聞いたかな?) の対応も追加していく予定です。

2022 年は、Snyk Open Source にとっては、また機能満載の年になりそうです。

Happy new (and secure) year!

#最後に
Snykでは最新の脆弱性情報について、SNSで発信しています。ぜひフォローをお願いします。

* [Snyk Japan Twitter](https://twitter.com/snykjp)
* [Snyk Japan Facebook](https://www.facebook.com/snykJP/)

またSnykは無料でお試しいただけます。ぜひお試しください！

https://qiita.com/SnykSec/items/aa80a976eb17299fff62


Snykを活用したブログは、ぜひQiitaアドカレ2021もご参照ください。

https://qiita.com/advent-calendar/2021/snyk