Skip to main content

Snyk Open Source、管理対象外の依存関係向けにC/C++セキュリティスキャンを追加

著者
Headshot of Michal Brutvan

Michal Brutvan

blog feature oss cpp

2022年4月5日

0 分で読めます

Snyk Open SourceでC/C++セキュリティスキャンの一般提供を開始しました。開発チームとセキュリティチームは、C/C++のオープンソースライブラリの依存関係にある既知のセキュリティ脆弱性を検出し、修正できるようになります。

C and C++ Scans in the Snyk CLI

マニフェスト不要

CおよびC++のエコシステムは複雑で、多数のオープンソースプロジェクト、リポジトリ、パッケージマネージャーを管理する必要があります。今回のリリースは、管理対象外コードのスキャンをサポートするための第一歩です。

他のソリューションとは異なり、Snyk CLIは依存関係を解決するためのマニフェストを必要としません。ファイルをデジタル署名(ハッシュ)に変換し、それをSnykのデータベースと照合して、一致するオープンソースコンポーネントの一覧を作成します。この一覧を使って、Snyk Vulnerability Databaseに脆弱性を照会します。

開発者ファースト

Snykの開発者向けセキュリティプラットフォームは、DevOps環境で最新のアプリケーション全体を迅速かつ安全に構築できる、業界で唯一の開発者ファーストのソリューションです。Snyk Open Sourceは、CおよびC++プロジェクトのコンテキストと構造を理解できる点で、類似ツールと一線を画しています。その結果、誤検知が減り、検出結果を手作業で修正する時間も短縮できます。

厳選されたデータベース

セキュリティとオープンソースの専門家チームが、CおよびC++のオープンソースプロジェクト向け脆弱性データベースを継続的に改善するとともに、プロジェクトのフォークやミラーもマッピングし、Snyk CLIがより多くのコンテキストを把握できるようにしています。脆弱性が検出されると、脆弱性の解消に必要な更新先のパッケージバージョンなど、推奨される修正方法が提示されます。

CVE-2016-9842とCWE-189を示すセキュリティアドバイザリ。madler/zlibをバージョン1.2.9以降にアップグレードするよう案内しています。

仕組み

今回のリリースでは、新しいコマンドラインオプション--unmanagedが追加されました。このオプションを使うと、マニフェストがなくてもソースコード内の依存関係をCLIでスキャンできます。

C/C++のオープンソース依存関係をスキャンするには、snyk test --unmanagedを実行します。依存関係と問題のスナップショットをSnykダッシュボードにインポートするには、snyk monitor --unmanagedを実行してください。

Snyk CLIのセットアップ

まず、Snyk CLIがインストールされており、バージョン1.885.0以降を使用していることを確認してください。

Snyk CLIのセットアップは簡単です。npmまたはHomebrewを使ってすばやくインストールし、Snykアカウントで認証するだけです(まだアカウントをお持ちでない場合は、無料で登録してください)。

$ npm install -g snyk
$ snyk auth

CLIの認証を求める画面がブラウザーで開きます。認証を完了してください。

これで、Snyk CLIを使ってC/C++プロジェクトの脆弱性をスキャンする準備が整いました。

セキュリティ脆弱性をスキャンする

Snyk CLIでテストを実行してみましょう。

プロジェクトをスキャンするには、スキャン対象のディレクトリ内にオープンソースライブラリが配置されている必要があります。そのディレクトリで、次のCLIコマンドを実行します。

$ snyk test --unmanaged

プロジェクト内のファイル数によって、スキャンには数秒から数分かかります。スキャンが完了すると、検出された脆弱性の一覧が表示されます。

Issues:

 ✗ [Critical] Double Free
    Introduced through: <https://curl.se|curl@7.58.0>
    URL: <https://security.snyk.io/vuln/SNYK-UNMANAGED-CURL-2317564>

 ✗ [Critical] Out-of-bounds Read
    Introduced through: <https://curl.se|curl@7.58.0>
    URL: <https://security.snyk.io/vuln/SNYK-UNMANAGED-CURL-2317585>

Tested 3 dependencies for known issues, found 29 issues.

新たな脆弱性を監視する

snyk monitor --unmanagedコマンドを実行すると、依存関係と脆弱性のスナップショットが作成され、Snykアプリにアップロードされます。その後、Snykが依存関係を監視し、脆弱性データベースに新たな脆弱性が追加された際に通知します。

オープンソースプロジェクトのデータベースが更新・改善されると、新しい依存関係が見つかることがあります。監視対象の依存関係一覧を最新の状態に保つため、snyk monitor --unmanagedコマンドを定期的に実行してください。

近日公開

皆さまからのフィードバックは、いつでも大切にしています。今後はCLI機能を改善し、SnykのCIプラグインやIDEをサポートする予定です。また、APIを更新してC/C++パッケージの脆弱性を直接検索できるようにし、Conanなどのパッケージマネージャーとのテスト連携にも対応します。Snyk Codeチームも、将来的にCおよびC++プロジェクトのサポートを追加する計画です。アイデアやご意見は、ccpp@snyk.ioまでお寄せください。

Snykに登録して、今すぐ無料でお試しください。

「C/C++でCLIを使う方法」にご参加ください

Snykのシニアプロダクトマネージャー、Michal Brutvanとプロダクトマーケティングディレクター、Jason Laneが、この機能が皆さまにもたらすメリットについて解説します。また、4月21日に開催される30分間のOffice Hoursパネルでは、皆さまからのご意見やご質問もお受けします。

オープンソースの依存関係を安全に

開発者を第一に考えたSnykのツールなら、脆弱なオープンソースの依存関係やその推移的依存関係を、ワンクリックで修正するプルリクエストを作成できます。