SDLCにおけるセキュリティ

SolarWindsのハッキングは注目度の高いフォーチュン500や米国の大規模な連邦政府機関に影響を与え、ソフトウェア開発におけるセキュリティがDevOpsコミュニティとJFrogにとって重要な問題となっていることに注目が集まっています。根本的にはCI/CDパイプラインを介してリリースされたコードが安全でない場合、他のすべてのDevOpsの利点は無駄になります。

何が起きたのか

IT監視・管理ベンダーのSolarWinds社はハッカーが同社のシステムに侵入し、同社のOrion Platformのソフトウェア構築プロセスにマルウェアが仕込まれたと公表しました。数ヶ月前から製品のアップデートに脆弱性が含まれており、ハッカーがバックドアを使用して顧客のOrionサーバーを危険に晒すように作られていました。

約18,000社の顧客が脆弱性を含むアップデートを受け取り、数十社が侵入されたと推定されています。影響を受けたのはマイクロソフト、米国国土安全保障省(DHS)、サイバーセキュリティベンダーのFireEyeであり、同社は独自のセキュリティツールをハッカーが盗み出した後、今月最初に攻撃を検知しました。

SDLCセキュリティを詳細に確認

アーキテクチャレビュー、静的・動的コード解析、オープンソース解析を含む安全な開発ライフサイクルを利用してすべての製品を構築しているSolarWindsは既に以下のSDLCセキュリティを強化しています:

  • ビルド環境へのアクセス権の更なる制限
  • 新しいビルドに新しいコード署名証明書を使用
  • ビルド環境のアーキテクチャ、アクセス権を持つ特権ユーザと非特権ユーザとそれを取り巻くネットワークの見直し

また同社は昨年、パブリックGithubリポジトリのFTP資格情報を誤って公開してしまった可能性があると報告しており、これがハッカーのシステム侵害の手段になったのではないかという疑問が浮上しています。

Rolling out a comprehensive, holistic DevSecOps strategy is a must, especially with the exponential growth of open source software, which we know often contains vulnerabilities and other security faults. Click To Tweet

悩ましい傾向

上流のサプライチェーン攻撃として知られるこの種の侵害は非常に効果的なベクトルを提供することから、ハッカーの間でますます人気が高まっています。ソフトウェア・プロバイダとその顧客間の信頼関係を悪用してサイバー犯罪者は安全だと思われているコードをハッキングします。ハッカーのマルウェアは正規のソフトウェアに隠れて、知らず知らずのうちに正式な方法で何千人もの顧客に配布されます。

JFrogがどのように役立つか

JFrogは長年に渡り、DevSecOpsに関する意識を高め、セキュリティ機能をプラットフォームに組み込んできました。設計から製造までエンドツーエンドでセキュリティをSDLCに組み込まなければならないというのが当社の信念です。 

そうすることでセキュリティのギャップ(脆弱性、マルウェア、設定ミス、ポリシー違反など)を早期に発見し、悪用される前にすぐに修正することができます。

これはアプリケーション・セキュリティ、インフラストラクチャ・セキュリティ、データ・セキュリティおよび包括的な役割ベースのアクセス・コントロール(RBAC)を含む、全体的で多次元的なアプローチを必要とする複雑な内容です。 

ここではJFrog Platform内のDevSecOpsといくつかの推奨事項を簡単にご紹介します。

JFrog Xray

JFrog Xrayは継続的なセキュリティとユニバーサルなアーティファクト分析を提供するように設計された当社のDevSecOpsツールです。コンテナとソフトウェア・アーティファクトのマルチレイヤー分析を行う、このソフトウェア構成分析ソリューションは脆弱性とライセンス・コンプライアンスの問題を検出することで適切な対応を迅速に行うことができます。

JFrog Xrayは当社のプラットフォームのフラッグシップ・コンポーネントであるJFrog Artifactoryとネイティブにインテグレーションされており、最適化されたスキャン、統一された操作でお客様のアーティファクトのセキュリティとコンプライアンスの問題に対する統一ビューを提供します。脆弱性の特定とビルドのトレーサビリティは切り離せません。セキュリティとライセンスのコンプライアンスをアーティファクト管理システムに完全にインテグレーションされなければなりません。そうであれば脆弱性が検出された場合、それがどのようにしてそこに存在し、またそれが他にどのような影響を与えているのかを知ることができます。 

さらに、Artifactoryは粒度の細かいRBAC機能を提供しているため、アーティファクトへのアクセスを制限し、読み書きや読み取り専用のパーミッションなど、どのようなアクセスを許可する等を設定することができます。さらに、Artifactoryの豊富なメタデータはアーティファクトの完全なトレーサビリティを提供します。このようにして侵害に即座に対応し、安全なコンポーネントを使った新しいビルドを数日ではなく数時間で生成することができます。

JFrog Xrayの再帰的スキャンはコンポーネントのすべての基礎となるレイヤーと依存関係を可視化し、完全な影響分析を提供するため、どのアーティファクトに安全でないコンポーネントが含まれているかを検出することができます。また、これをすべて継続的かつDevOpsのスピードで実行するため、サイクルの最後にセキュリティチェックのボトルネックを作らず(IDEから直接でも可能)にSDLCの早期かつ頻繁に違反を特定して修正することができます。

これをすべて手動で行う場合、相互運用性の低いポイントツールでは動作が遅くなり、セキュリティの問題を正確にピンポイントで指摘することができなくなり、違反のリスクが高まります。

JFrog Pipelines

以前に説明したように、CI/CDツールにとって秘密を安全に保つことは難しいことです。これらのツールはそれぞれが独自のパスワードやトークンを持つ他の多くのサービスに接続しなければならず、サイバー犯罪者からそれらのデータを保護しなければなりません。

JFrog Pipelinesは当初から秘密を守るために設計されており、ネイティブな組込みの秘密管理機能を備えています。Pipelinesはそのインテグレーション機能を通じて、中央の秘密管理をJFrogプラットフォームのきめ細かなアクセス権限と組み合わせています。すぐに利用可能なインテグレーション機能にはGitHub、Bitbucket、Docker、Kubernetes、SlackのほかにAWS、GCP、Azureなどのパブリッククラウド・プラットフォームが含まれています。

Pipelinesインテグレーションを使用した場合は安全なリソースを共有し、その利用を許可する秘密を保護することができます。JFrog Platformの統一された権限モデルを使用し、必要な人にはアクセスを許可し、それ以外の人にはアクセスをブロックすることができます。これによって、CI/CDツールから不注意に公開されたり、盗用されたりすることから秘密を保護するプロセスがすべて自動化し、インテグレーションされます。

ベストプラクティス

特にオープンソース・ソフトウェアの急激な成長に伴い、脆弱性やその他のセキュリティ上の欠陥が含まれていることが多いことが分かっているため、包括的で網羅的なDevSecOps戦略を展開することは必須です。このホワイトペーパーで説明したように、これらの推奨事項はDevSecOpsを開始したり、チューニングしたりするためのベースラインを提供します:

  • DevSecOpsをSDLCの要として確立する
  • 開発と運用チームにセキュリティの知識とオーナーシップを浸透させる
  • セキュリティとコンプライアンスのベストプラクティスを活用して継続的な改善を行う
  • セキュリティとガバナンスを自動化できる統合されたDevSecOpsツールのスイートを使用する
  • ツールスイートに汎用的なソフトウェア構成分析ソリューションが含まれていることを確実にする
  • 最も包括的でタイムリーな脆弱性インテリジェンス・データベースの活用する

また、当社がJFrog Xrayで使用しているVulnDB脆弱性データベースを提供しているRisk Based Security社の脆弱性インテリジェンス担当副社長のBrian Martin氏が以下のヒントを共有して頂きました:

  • 信頼できるベンダーからソフトウェアの更新を受ける企業のために: あらゆるソースからのコードを受け入れる際には精査を行い、セキュリティに重点を置いた適切なポリシーを持つ。時間のかかる作業ではありますが、すべてのコード変更は少なくとも2名のチェックを通す必要があります。そうすれば資格情報が悪用されて新しいコードがプロジェクトに混入された場合、そのコードをチェックする責任は2番目の人が負うことになります。
  • DevOpsチームはパイプラインが侵害されたり、ハッカーによってコードが改ざんされたりすることを防ぐために、ソフトウェアの使用に使用されているサードパーティのコードを定期的に確認する必要があります: DevOpsチームはソフトウェアで使用されているサードパーティのコードを定期的にレビューする必要があります。まだ必要なのか?プロジェクトは積極的にメンテナンスされているか?コードに脆弱性の履歴があるか?そのプロジェクトには外部からのコードをレビューするポリシーがあるか?これらは全て実施すべき重要な質問です。

無償のJFrog Cloudアカウントにサインアップし、Xrayの再帰的スキャンとインパクト分析機能がDevOpsパイプライン全体のセキュリティとコンプライアンスをどのように向上させるかを直接体験してください。