アプリケーション開発が進化し、ソフトウェアの作成は、ローカル、ホストといった環境に、クラウド、SaaS (Software as a Service) が加えられてから二十年余りが経ちました。この進化は、開発ワークフローの最初の変化であり、本番環境のソフトウェア資産に対する新しい潜在的な攻撃ベクトルを確立させました。次にオープンソースが急増し、ソフトウェア開発とイノベーションが加速し、コミュニティが人気のある脆弱なオープンソース コンポーネントを採用するのと同じくらい迅速にセキュリティ・リスクが拡大する可能性があるという認識が生まれました。
そして今、私たちはソフトウェア開発ライフサイクルの進化の新しい段階にいることに気付いています。これは、迅速な DevOps ワークフロー、CI/CD パイプライン、多くのコントロールポイントと断片化された結果を伴う無数のアプリケーション・セキュリティ・テストツールを特徴としています。同時に、セキュリティの責任は開発者に委ねられていますが、その役割の範囲に対応する変更は行われておらず、厳しい出荷期限と加速するスプリントは、ソフトウェア開発者やエンジニアがより安全なソフトウェアを作成する時間が少なくなることを意味しています。
組織と、組織がアクセス、送信、保存する機密データを危険にさらすことを避けるには、セキュアコーディングが不可欠です。 後工程でのセキュリティテストは、安全な開発プラクティスを複雑にし、セキュリティ ポリシーに準拠していないソフトウェア成果物を開発の初期段階に強制的に差し戻し、次のスプリントに移った開発者の注意を奪います。 この課題に対処するために、2022 年の初めに、Synopsysは VS Code 用の Code Sight™ IDE セキュリティプラグインのスタンドアロン・バージョンをリリースしました。 これにより、開発者はソフトウェア成果物をスキャンし、記述したコードの品質とセキュリティのリスク、およびオープンソース・コンポーネントと依存関係の既知の脆弱性を特定できます。
現在、スタンドアロンの Code Sight セキュリティプラグインを IntelliJ で利用できるため、確立された開発ワークフローを壊すことなく、IDE ベースのアプリケーション・セキュリティ・テストを実行できます。
Code Sight は、開発者が脆弱なソフトウェアを後工程にプッシュする前に、プロジェクトの問題を見つけて修正するのに役立つセキュリティリスク情報にアクセスできるようにするという 1 つのことを非常にうまく行うように設計されています。 内部的には、Code Sight を使用すると、開発者は潜在的なセキュリティリスクについてプロジェクトを評価するスキャンを起動し、静的アプリケーション・セキュリティ・テスト(SAST)とソフトウェア・コンポジション解析(SCA)を迅速に実行できます。
スキャン結果は、業界をリードする Synopsys Coverity® SAST および Black Duck® SCA によって生成されたセキュリティリスクの知見として通知され、IDE を通して開発者に直接提供されるため、問題をすぐに修正してプロジェクトの次のスプリントに進むことができます。 この最新のリリースにより、Synopsys は、開発者が IntelliJ IDEA でスタンドアロンの Code Sight IDE プラグインを使用できるようにします。 さらに、Coverity と Black Duck のフルライセンスがなくても開発チームが利用できるため、開発者はセキュリティ チームの行動を待つことなく、より安全なソフトウェアを迅速にリリースできます。 また、IntelliJ のMarket Placeを通して Code Sight をすぐに無料で試用することができます。
次のビデオでは、開発者が Code Sight を使用して、オープンソースを用いたコードの問題を見つけて修正する方法を説明しています。
ここからは開発者のために用意しました。私たちは、IntelliJ でのセキュアなソフトウェア開発を達成可能な活動にしたいと考えています。 これを行う 2 つの方法は、プロジェクト・ファイルに対して自動または手動でのコード解析とオープンソース解析を実行することです。 今後、ブログ記事でCode Sight に関するユーザー向けのヒントをいくつか紹介しますが、手始めに、下記の 2つの重要な観点から始めましょう。
セキュアコーディングの実践は時間の経過とともに発展し、不注意でセキュアでないコードをプロジェクトに導入する可能性があります。 Coder Analysis ビューは、開発者に静的解析を通じてコードの品質とセキュリティの問題に関する知見を、CWE (MITRE によって追跡される標準化されたセキュリティリスク) を含め提供します。Code Analysis ビューは、リスクの重大度と場所についての知見も提供します。
[Issue] ビューには、特定のリスクに関する特定の情報が表示されます。これには、リスクの説明、コード内でリスクに至るまでのイベント、セキュリティスキルを持つ開発者が問題を迅速に修正するのに役立つ修正ガイダンスが含まれます。
図1: Code Sightではコードの静的解析実行時の Code Analysis ビュー に、発見された品質とセキュリティ上のリスクが表示される
オープンソース・コミュニティは、セキュアコーディング・プラクティスやセキュリティリスクの認識に欠けている可能性があるため、潜在的に脆弱なオープンソース・コンポーネントやライブラリをプロジェクトに含めると、セキュリティリスクに対する姿勢が制限される可能性があります。 Open Source Analysis ビューは、サードパーティ・ライブラリ、オープンソース・コンポーネント、およびプロジェクト内の依存関係で見つかった既知の脆弱性に関する知見を提供します。これは SCA を介して行われ、CVE (MITRE によって追跡される公開された脆弱性) が含まれます。
Open Source Analysis ビューには、プロジェクト内で検出されたすべての脆弱なオープンソース・コンポーネントが一覧表示されます。これには、宣言された推移的な依存関係で検出されたものも含まれます。 また、脆弱性の重大度と場所も含まれます
社内で作成されたコードのAnalysis ビューと同様に、[Issue] ビューには、特定の脆弱性に関する特定の情報が表示されます。これには、開発者が問題を迅速に修正するのに役立つ説明や修正ガイダンス ([Fix] ボタンからアクセスできます) が含まれます。
図 2:Code SightのOpen Source Analysis ビューでサードパーティのライブラリの脆弱性、オープンソース・コンポーネント、依存関係を確認
Synopsys Code Sight は、開発者やソフトウェア・エンジニアがアプリケーション・セキュリティ・テストとセキュリティ・リスクの認識を IDE で直接入れ込むための最良の方法です。VS Code 用の Code Sight のプラグインはVisual Studio Market Place から、IntelliJ IDEA 用は JetBrains Market Place からアクセスできます。 Code Sight スタンドアロン・プラグインの無料トライアルで数分以内にスキャンを開始でき、シンプルなライセンスオプションを開発チームで利用できます。 もちろん、Code Sight は、Coverity または Black Duck ライセンスがあれば、さらに多くの IDE、言語、およびフレームワークのプラグインとして利用することができます。