ソフトウェアサプライチェーン

devsamurai

ソフトウェアサプライチェーン

重要なポイント ソフトウェア開発は、従来のサプライチェーンによく似ています。 オープンソースのパッケージは、サブアセンブリや構成部品として機能します。 これらは、コンポーネントの倉庫や保管場所として機能するパッケージレジストリやホスト型アーティファクトリポジトリに格納されています。 開発チームは、これらのパーツを組み立てて、ソフトウェアアプリケーションやサービスという形で完成品に仕上げます。 これらの製品は、継続的インテグレーションシステムとウェブホスティング製品のホスティングサービスを使用して、お客様に「出荷」されます。 概要 Sonatypeのお客様、あるいはSonatypeのソリューションを検討されている方は、「ソフトウェアサプライチェーン」と「サプライチェーンマネジメント」という言葉を耳にしたことがあるのではないでしょうか。この記事では、この2つの用語の定義と比較を行い、従来のサプライチェーンがソフトウェアサプライチェーンにどのように変換されるのか、その概要を説明します。 サプライチェーンマネジメントとは? 「サプライチェーンマネジメント」とは、未加工の原材料が完成品に加工され、消費者に届けられるまでの流れを管理することです。サプライチェーンマネジメントは、大規模なもの(原材料が海を渡るようなもの)から小規模なもの(部品がベルトコンベアーから次のベルトへと移動するようなもの)まで存在し、主に材料の移動に関係しています。 サプライチェーンマネジメントという考え方は新しいものではありません。「ローマは一日にして成らず」という言葉があるように、ローマはコンクリートの安定供給なくして建設されなかったのです。 しかし、現代のサプライチェーンマネジメントのコンセプトが確立されたのは、1980年代のことです。グローバル化は、より迅速な製造、より高い効率性、より高い品質の製品を約束した一方で、同時に深刻なリスクももたらしました。サプライチェーンマネジメントは、その利点を生かし、リスクを回避するために開発されたのです。   動きと流れ 前述したように、サプライチェーンマネジメントの主な対象は「モノの動き」です。なぜなら、品質とスピードの向上のほとんどは、材料が生産のある段階から次の段階へと移動する方法を改善することにあるからです。品質やスピードの低下は、通常、同じ原因から生じています。 動きと流れの重要性を理解するために、専門家が製造工場の効率化を任された場合の質問をいくつか考えてみましょう。この場合、材料がどこに保管されているか、どのように工場に到着するか、配送業者の信頼性はどうか、などを知りたいと思うでしょう。ベルトコンベアーの速度や、組み立て機械の能力も知りたいかもしれません。さらに、完成した製品がどれだけ速くトラックに積み込まれるか、トラックがどれだけ速く配達を完了するか、といったことも尋ねるでしょう。 ソフトウェアサプライチェーンとは? ソフトウェアサプライチェーンとは、コンポーネント(あらかじめ作られた小さなコードの断片)が開発プロセスを経て、完成したソフトウェアになり、顧客に配布される仕組みのことです。これは、物理的な原材料が完成品に変換され、店の棚に出荷される方法に似ています。 「ソフトウェアサプライチェーン」という言葉は比較的新しく、SDLCにおけるオープンソースコンポーネントの役割に対する認識が高まった結果、2014年頃に作られた造語です。Sonatypeは、この言葉を「ソフトウェアサプライチェーンマネジメント」とともに、いち早く取り入れた企業の1つです。  …
devsamurai

DevSecOpsとは

重要なポイント DevSecOpsは、DevOpsの拡張であり、セキュリティの懸念を開発プロセスの早い段階に移すことに重点を置いています。 「シフトレフト」とは、セキュリティを考慮し、開発プロセスを前倒しして実施するという概念です。 DevSecOpsは、セキュリティへの配慮を開発の最後まで残しておくことで生じる摩擦や手戻りを減らすことを目指しています。 DevSecOpsは、開発、運用、およびセキュリティがビジネスゴールに沿って連携し、より効率的なイノベーションを実現するための画期的な手段です。 DevSecOpsは、作業原則の集合体です。ソフトウェアコンポジション解析や、安全なコンポーネント管理に関連しており、1つのツールや手順というよりも、組織が連携する手段に関するものです。 一言で言うと? Dev.Sec.Ops. 上記の言葉を聞いたことがありますか?そうでない場合、あなただけではありません。DevSecOpsの基本的な前提は、話す相手によって異なる名前で呼ばれていることもあります(Rugged DevOps、SecDevOpsなど)。 では、DevSecOpsとは一体どういう意味なのでしょうか?まず知っておかなければならないのは、DevSecOpsの「sec」はセキュリティを意味するということでしょう。 多くの企業にとって、DevOpsの考え方を導入することは、ソフトウェア開発チームとIT運用チームの間の「ギャップを埋める」、つまり「サイロ化を防ぐ」ことであり、多くの場合、より速く、より安定したソフトウェアをリリースできるようになることを目的としています。 DevSecOps は、DevOps の概念を拡張したものであり、ソフトウェア開発ライフサイクル(SDLC)の中で「セキュリティを(つまり、より早い時期に)シフトレフトする」というキャッチフレーズで紹介されることがよくあります。セキュリティレビューや検査は、緩和措置が必要な発見があった場合、実施するのがより困難でコストがかかるサイクルの終盤に取り組むよりも、より効率的に実施することができるのです。 実際、DevSecOpsの背後にある原則、すなわち品質をソースに近づけ続けることは、「The DevOpsハンドブック」で述べられているように「DevOpsの第二の道(フィードバック)」の重要な信条でもあります。 “複雑なシステムでは、検査プロセスや承認プロセスを増やすと、かえって将来の不具合の可能性が高まります。意思決定を作業現場から遠ざけると、承認プロセスの有効性が低下します。そうすると、意思決定の質が下がるだけでなく、サイクルタイムが長くなるので、原因と結果のフィードバックの強度が低下し、成功と失敗から学ぶ能力が低下するのです。” Edwards Demingは、エンジニア、統計学教授、経営コンサルタントであり、米国で「総合品質管理(TQM)」を立ち上げるきっかけとなったことでよく知られていますが、同じ考えを(ずっと以前に)「ビジネスの有効性を変革するための(14の)主要経営原則」の3番目に提唱しています。…
devsamurai

Sonatypeパートナーサミット

今年の10 月6 日〜7 日まで、シンガポールでSonatype Partner サミットを開催されました。様々な国で活躍する有識者と弊社の代表を同席し、「日本の市場及びアジア市場を広がる戦略」とテーマした大変興味深い講演を聞きました。 Sonatype Partner Summit 2022 今回のイベントを通して、さまざまな技術のノウハウを共有しながら、世界の境を跨ぐ取組みに関心を通し、Sonatype 社はDevSamurai とのパートナーシップが強化され、日本の市場連携について披露させていただきました。 DevSamurai_Sonatype employees Nexus 関連製品 Nexus リポジトリプロ   …
devsamurai

SCAとは?

重要なポイント オープンソースのコンポーネントは、アプリケーションにリスクをもたらします。 このリスクは、プログラミングの見落としや悪意のあるコード、オープンソースのパッケージが依存する他のパッケージから発生します。 ソフトウェア構成分析(SCA)ツールは、アプリケーションに含まれるオープンソースパッケージを検査し、潜在的なリスクを特定します。 バイナリスキャンは、アプリケーションに存在するファイルを検査し、依存関係を特定します。 マニフェストスキャンは、依存関係を識別するためにビルドファイルを検査します。この方法は通常、バイナリスキャンよりも精度が低くなります。 SCAツールを使用すると、自動検出とポリシー適用によって大規模なリスク管理が可能となります。 オープンソースコンポーネントと危険性 近頃、ソフトウェアをゼロから構築することは滅多にありません。開発チームは、サードパーティやオープンソースのコンポーネントを利用し、車輪の再発明をせずにコードを出荷し、より速く革新的な製品を開発しています。このようにオープンソースソフトウェアに依存することで、アプリケーションにおけるファーストパーティコード、つまり開発チームが書いたコードの量は劇的に変化しています。米Sonatype社が発表した「State of the Software Supply Chain Report」によると、アプリケーションのコードの90%はオープンソースソフトウェアであることが一般的だそうです。これらのコンポーネントは依存関係と呼ばれ、それぞれの依存関係はセキュリティの脆弱性、ライセンスの問題、または品質の問題といった形で潜在的なリスクを引き起こします。 多くの依存関係は、他のオープンソースコンポーネントに依存しています。つまり推移的な依存関係であるため、本来のリスクの原因を特定することが困難になっています。このようなサードパーティコンポーネントをアプリケーションで使用することにより、組織は、自分たちのチームが書いていないコードに対する責任を負うことになります。オープンソースソフトウェアによるプロジェクトへのリスクは、ソフトウェア・コンポジション解析(SCA)によって管理および予防することができます。 ソフトウェアコンポジション解析とは? ソフトウェアコンポジション解析(SCA)とは、アプリケーションを構成する特定のオープンソースソフトウェアコンポーネントと、それらのコンポーネントに関連する脆弱性を発見するプロセスです。 つまり、SCAとは、プロジェクトに含まれるすべてのコンポーネントを調べ、それらのコンポーネントから潜在的なリスクを判断することです。ソフトウェアコンポジション解析は、アプリケーションの脆弱性を発見し、特定するためのツールを用いて行われます。これらのツールは自動化することができ、ソフトウェア開発ライフサイクル(SDLC)全体にわたってコンポーネントを監視することができます。 SCAツールはどのように機能するのか?…

Nexusファイアウォール

堅牢性に優れたオープンソースリスク阻止機能 リポジトリマネージャーがSDLC全体に渡ってオープンソースコンポーネントをキャッシュし、管理することが当たり前になるにつれ、「ソース」を保護する必要性はこれまで以上に高まっています。 2019年のState of the Software Supply Chain年次報告書では、パブリックリポジトリからダウンロードされたJavaの10%、またJavascriptの50%のコンポーネントに既知のセキュリティ脆弱性が含まれていることが報告されています。ローカルリポジトリがエンジニアチームの業務を効率化する一方で、管理外のリポジトリは組織に甚大なリスクを及ぼす可能性があるのです。 デベロッパーが高品質のオープンソースコンポーネントだけを確実に選択するために、組織には何ができるのでしょうか。 Nexusファイアウォールは、準拠していないコンポーネントを即座に検疫し、プロキシ中にオ ープンソースポリシーを適用することで、取捨選択を可能にします。 自動化されたセキュリティポリシーは、開発チームが非準拠のコンポーネントを使用することを防ぎ、チーム全体の時間と費用を節約します。欠陥のあるコードの侵入をはじめから食い止めましょう。 普遍的なリポジトリサポートも含まれます リポジトリにArtifactoryをご使用でも問題ありません。Nexusファイアウォール は、JFrog製のArtifactory、NexusリポジトリOSS及びプロに対応しています。 あらゆる言語で 開発パイプラインをコントロール Nexusファイアウォールは、脆弱なコンポーネンをSDLCに侵入させません。Java、JavaScript、.NET、Python、Go、Ruby、RPMをはじめとする、数多くの言語に対応しているNexusファイアウォールを使用して、リポジトリの堅牢性を高めましょう。 作成されたルールの実施をお手伝い 年数や普及度、ライセンスの有無といった一般的なリスク因子に基づいて、SDLCで許可されるコンポーネントを決定します。その上で、ポリシーに対する措置を設定し、不要なコンポーネントや承認されていないコンポーネントを含んだアプリケーションがSDLC…
Menu