Snyk、開発者ファーストのAppSecアプローチをC/C++にも展開
2023年4月4日
0 分で読めますSnykは、Java、JavaScript、Pythonなど、さまざまなエコシステムに対応した開発者ファーストのアプリケーションセキュリティソリューションで知られています。Snykを使えば、開発者は問題を検出するだけでなく、すばやく修正を適用できます。セキュリティに変革をもたらし、SDLCの最も早い段階からセキュリティを組み込めます。
2022年には、C/C++のオープンソースパッケージへの対応を初めてリリースしました。そして今回、Snyk CodeのC/C++対応のオープンベータと、Snyk Open Sourceのライセンス機能を発表します。
開発チームが抱える課題
C/C++エコシステムには40年以上の歴史があります。LinuxやApache OpenOfficeなどの有名なプロジェクトとともに、C++はオープンソース革命の最前線を担ってきました。一方、Java、C#、JavaScriptでは「依存関係地獄」――増え続けるオープンソースライブラリへの依存関係の管理――への対応が進みましたが、C++には共通のアプローチがありません。そのため、依存関係の管理は現代のC++開発者が抱える最大の課題の一つとなっています。
昨年、パッケージマネージャーがなくてもC/C++アプリケーション内のオープンソースライブラリを検出できる機能を提供し、C/C++コミュニティへの支援を開始しました。この間、お客様から多くを学び、この活気ある強固な開発コミュニティが求めているのは、パッケージマネージャーとの連携だけではないこと、エコシステムの複雑さと奥深さに対応する必要があることを確認しました。
C/C++アプリも、ほかの現代的なプログラミング言語と同様に、安全なコーディングに関する課題や脆弱なコンポーネントの問題に直面しています。しかし、このエコシステムには長年積み重なった技術的負債や独自の脆弱性タイプがあり、パッケージマネージャーが登場する前から使われてきました。そのため、開発者はオープンソースライブラリをコードに直接組み込む必要があります。
静的に検出可能なセキュリティ問題をスキャンする際、こうしたプロジェクトは通常、コンパイルが必要となり、開発ワークフローの遅延や中断を招いていました。C/C++はほかの多くの言語と組み合わせて使われることが多く、アプリで用いられる抽象化によって、実際のデータフローが見えにくくなります。
こうした複雑さが重大なギャップを生み、開発者やセキュリティチームを悩ませています。たとえば、次のような課題があります。
ほかのツールによる開発者の生産性低下。具体的には、
動作が遅く、開発ワークフローを中断させる
理解しにくいメッセージを表示する
実行可能な対応につながらない脆弱性アラートを発する
適切なデータフロー分析ができない
習得が難しい
既存のC/C++セキュリティツールは性能が劣るため、投資対効果が低く、リスクが高い。その理由は、
高額である
コードのコンパイルが必要である
対象が狭く、専門性が高い
セットアップやメンテナンスが難しい
ビルドパイプラインとの連携が難しい
結果として、アプリに脆弱性が残る
次の理由により、オープンソースの依存関係や関連する脆弱性、ライセンス条件を可視化できない。
標準化されたパッケージマネージャーがない
多くの開発者がオープンソースライブラリのコピーを埋め込んでいる
Snykはどのように支援するのか?
Snykは、開発者がすばやく実行に移せる修正を提供する分野で業界をリードしており、C/C++開発チームも同じ体験を得られるようになりました。昨年開始した取り組みをさらに発展させ、SnykはC/C++コードの奥深くに潜むAppSecの問題を検出し、組織全体のポリシーに照らしてライセンスを確認することで、コンプライアンスを確保します。
さらに、オープンソースパッケージをいっそう多く識別できるようになりました。マニフェストファイルがなくても、Conanなどの一般的なパッケージマネージャーで見つかるパッケージの大半を検出できます。
もちろん、SnykはIDEなど既存のツールに簡単に組み込めるため、開発者はコード変更をコミットする前に問題をすばやく見つけて修正できます。
Snyk CodeのC/C++対応
今回リリースする静的解析ルールセットは、主にデスクトップ、サーバー、Webアプリを開発する方を対象としています。今後ルールを追加するにつれて、組み込みアプリや自動車向けアプリなどにも対応していきます。Snyk CodeはIDEプラグインを提供し、ソースコードを直接スキャンするため、コンパイラーを実行することなく、既存のツール環境に簡単に組み込めます。
本日、C/C++対応のオープンベータを開始します。ベータ期間中は、対象範囲と機能を継続的に改善していきます。Snykのコードセキュリティ調査では、数十万件のオープンソースリポジトリをスキャンし、AIとMLによる分析にセキュリティ専門家の知見を組み合わせて、Snyk Codeのナレッジベースを構築しています。C/C++エコシステムも例外ではありません。より多くのプロジェクトをスキャンするにつれて、検出結果は継続的に改善されます。
C/C++対応はベータ版のため、Snyk Web UIの「Snyk Settings / Preview」セクションで有効化する必要があります。ベータ期間中、皆様からのフィードバックをお待ちしています。ルールの動作については、アプリ内のサポートチケットからお知らせください。必要な調整を喜んで行います。今後数カ月にわたり、SnykはシンボリックAIに独自の人間主導型機械学習プロセスを組み合わせ、C/C++のナレッジベースを追加・改善し、既知のC/C++の問題に対するカバレッジを拡大します。


Snyk Open SourceのC/C++ライセンス機能
オープンソースパッケージの特定や修正に関するアドバイスに加え、Snyk Open SourceはC/C++のオープンソースライセンスを可視化し、セキュリティチームと法務チームが設定した組織全体のポリシーに照らして確認できるようになりました。これにより、コンプライアンスを確保できます。開発者は、自社のポリシーに基づき、許容されるライセンスについてリアルタイムのガイダンスを受け取れます。
CLIから、プロジェクトのメインディレクトリでsnyk test --unmanagedを実行してください。
Snyk Plugin(CLion、Visual Studio Code、その他の対応IDE向け拡張機能)のプロジェクト設定で、追加パラメーター--unmanagedを指定すると、IDEから直接この機能を利用できます。



C/C++開発を現代的なスタイルに
SnykのC/C++向けAppSecサポートにより、直感的で使いやすいインテグレーションを通じて、開発者はセキュリティ問題を簡単に見つけて修正できます。同時に、セキュリティチームには必要な可視性をすべて提供します。業界をリードするセキュリティインテリジェンスに支えられたプラットフォームで、これらを実現します。
その結果、実現するのは……
次のような、満足度と生産性の高い開発者です。
開発ワークフローにシームレスに統合
わかりやすく、実行可能なメッセージ
元のコードに基づくデータフロー分析
「Snykを利用する開発者の85%が、時間の大幅な節約と使いやすさを理由に、ほかの人にもSnykを勧めています。」
Snykの開発者ファーストの最新アプローチなら、より短時間で簡単に修正できます。
数分、場合によっては数秒でコードを自動かつ継続的にスキャン
ソースコードをスキャンするため、コンパイルが不要
PRごとのチェックなど、SDLC全体にセキュリティゲートを配置
次の機能により、C/C++のセキュリティ問題をすべて可視化できます。
パッケージ、ライセンス、脆弱性を網羅した、業界をリードするC/C++オープンソースデータベース
ファイル署名のフィンガープリントを使って、管理されていないオープンソースパッケージ(パッケージマネージャーを使用していないもの)を特定
すべてのプラットフォーム製品を対象とした組織全体の一元的なレポートと、簡単なフィルタリング
デモを実際にご覧になるには、SnykLaunchのオンデマンド録画をご覧ください。
今すぐC/C++プロジェクトのセキュリティ対策を始めましょう。
無料トライアルに登録し、C/C++セキュリティのエキスパートとの相談時間を予約して、新しいベータ機能をお試しください。



