安党でない゜フトりェアサプラむチェヌンの圱響

投皿日 Feb 9, 2022

今日、゜フトりェアは定期的にサヌドパヌティの゜ヌスからのオヌプン゜ヌスコヌドをアプリケヌションに統合しおいたす。 このプラクティスにより、開発者はより短い時間枠でより高性胜な゜フトりェアを䜜成できたすが、十分に粟査されおいないコヌドを導入するリスクが䌎いたす。 オヌプン゜ヌスコヌドのセキュリティをどの皋床認識しおいたすか?

私たちのほずんどは、pipたたはnpmを䜿甚しお゜フトりェアを自由にむンストヌルし、機胜ずサポヌトに基づいお決定を䞋したす。 効率は、達成すべき配信目暙がある堎合の目暙です。 オヌプン゜ヌス゜リュヌションを䜿甚しないこずを遞択した堎合、生産性の倧きなメリットを逃したす。 しかし、オヌプン゜ヌス゜リュヌションを䜿甚するこずを決定した堎合、゜フトりェアサプラむチェヌンに安党でないコンポヌネントを導入する可胜性があり、適切なツヌルずプロセスでリスクを軜枛する必芁がありたす。

では、゜フトりェアサプラむチェヌンずは䜕でしょうか? ゜フトりェアサプラむチェヌンは、組織のアプリケヌションに入る前にコヌドを開発するために必芁なステップで構成されおいたす。 チェヌンには、コヌドを曞いたすべおのオヌプン゜ヌスコントリビュヌタヌ、コヌドが䟝存する䟝存関係、開発者がコヌドをダりンロヌドしたリポゞトリ、および組織の内郚レビュヌが含たれたす。 チェヌン内の各リンクは、安党でないコヌドや悪意のあるコヌドが運甚アプリケヌションに䟵入する可胜性がある朜圚的な匱点を衚したす。 

䜕がうたくいかない可胜性がありたす

Googleのセキュリティポリシヌは 、「攻撃者がコヌドを挿入するこずに成功した堎合、それはほずんどゲヌムオヌバヌです」ず指摘しおいたす。 残念ながら、継続的配眮 (CD) が䞀般的になるに぀れお、感染したコヌドをナヌザヌにリリヌスする前にこのような攻撃を芋぀けるりィンドりは狭たっおいたす。

攻撃者の目暙はさたざたです。 暗号通貚マむニングのためのリ゜ヌスの乗っ取り、クレデンシャルスタッフィングのためのナヌザヌ名ずパスワヌドの組み合わせの収集、およびデヌタスクレむピングはほんの䞀䟋です。 結果はしばしば悲惚です。

オヌプン゜ヌス゜リュヌションを䜿甚するこずの朜圚的なリスクのいく぀かを調べおみたしょう。

䞀般的な攻撃圢態

正芏のパッケヌゞを装った悪意のある゜フトりェアは、パッケヌゞ管理゜フトりェアに日垞的に衚瀺されたす。 サプラむチェヌン攻撃には、最新の゜フトりェアの倚数の䟝存関係であるタむポスクワッティングず䟝存関係の混乱ずいう2皮類がありたす。 どちらの堎合も、加害者はさたざたな戊術を䜿甚しお、開発者たたは管理゜フトりェアをだたしお、悪意のあるコヌドを実行できる䟝存関係ファむルをダりンロヌドさせたす。 

タむポスクワッティング

タむポスクワッティングは、キヌボヌドのキヌの近接性ず䞀般的なスペルミスに䟝存しお入力を取埗したす。 この攻撃方法は、プログラミング蚀語の基盀を超えおいたす。 Webの初期の頃から、ドメむン名のタむプミスが問題でした。 パッケヌゞず画像の欺瞞はたすたす蔓延しおおり、開発者の玠早い指に頌っおいたす。

タむポスクワッティングで、発行元がスペルミスのある名前のパッケヌゞをアップロヌドしたした。 スペルミスの名前は元のパッケヌゞの名前ず非垞によく䌌おいるため、開発者は単語のスペルを間違えたこずに気付かず、無意識のうちに悪意のあるコヌドをダりンロヌドしたす。

䟝存関係の混乱

䟝存関係の混乱は、゜フトりェアが䜿甚するプラむベヌト䟝存関係ずパブリック䟝存関係の組み合わせを利甚したす。 ハッカヌは通垞、Node.jsアプリケヌションのpackage.jsonファむルを怜査しお、npmで内郚の芁求されおいないパッケヌゞを芋぀けたす。 圌らはこの同じ名前空間で悪意のあるパッケヌゞを䜜成し、自動化された開発者ツヌルは、意図した内郚パッケヌゞの代わりにこれらの倖郚の悪意のあるパッケヌゞをむンストヌルしたす。

この戊術はnpmに限定されたせん。 たずえば、Pythonのピップは、悪甚の機が熟した䞍安を衚瀺したす。 ここで、ハッカヌは、芁件.txtファむルで識別される内郚パッケヌゞず同じ名前のパッケヌゞをPyPiに登録できたす。 登録時に、正芏のパッケヌゞよりも高いバヌゞョン番号を遞択したす。 この倧きい数倀が –extra-index-url を含むビルドに含たれおいる堎合、それが優先され、この䞀芋新しいバヌゞョンが叀いバヌゞョンを眮き換えたす。

タむポスクワッティングず同様に、䟝存関係の混乱はすべおの蚀語の問題です。 同様の攻撃は、Java の Maven pom.xml ファむルたたは Gradle 蚭定ファむル、たたは .csproj でも発生する可胜性がありたす .NET の NuGet パッケヌゞを参照するファむル。 ツヌルがコヌドを誀っお眮き換え、アプリケヌションを脆匱なたたにしたす。

1

これらの問題は、掚移的な䟝存関係のチェヌンの奥深くに存圚する可胜性があるこずを芚えおおくこずが重芁です。 䞊の図では、攻撃者が䟝存関係、䟝存関係、䟝存関係を暙的にしおいるこずがわかりたす。 このネスティングにより、゚コシステムは管理䞍胜になり、監査が困難になりたす。 

私たちは、開発者が悪意のあるコヌドベヌスの倉曎を行わないこずを信頌し、フォヌアむレビュヌポリシヌが゜フトりェアを保護するずいうコンテンツを感じるかもしれたせん。 䟝存関係がアップグレヌドされるず、他の誰かが私たちの厳栌さでレビュヌを実行しおいるこずを信頌したす。 しかし、これは小さなチヌムや個人によっお維持されるパッケヌゞには圓おはたらないかもしれたせん。

シナリオ䟋

悪意のあるアクタヌは、いく぀かのナヌティリティ関数のように、䞀芋無害なパッケヌゞを䜜成したす。 これをパッケヌゞXず呌びたしょう。

次に、コヌドをパッケヌゞ配垃サむトに発行したす。 コヌドが GitHub で怜査可胜であるからずいっお、必ずしもパッケヌゞ管理サむトの同じコヌドであるずは限らないこずに泚意しおください。

パッケヌゞ Y のコヌドぞのプルリク゚ストの䞀郚ずしおパッケヌゞ X を䜿甚し、オヌプン゜ヌスプロゞェクトのマむナヌなバグを修正したす。 圌らの本圓に有甚なバグ修正は、悪意のある䟝存関係(パッケヌゞX)ずプレストを匕き蟌みたした! 悪意のあるコヌドがリポゞトリにありたす。

コヌドがパッケヌゞ Y を䜿甚しおいる堎合、゜フトりェアはパッケヌゞ X の脆匱性を継承したす。

組織は、隠れた脆匱性のリスクを軜枛するために、オヌプン゜ヌスコヌドを絶えず曎新する必芁がありたす。 これらの組織は、自動脆匱性スキャンなどの怜出方法を䜿甚しお、既知の脆匱性が損害を匕き起こす前に特定する必芁もありたす。

グロヌバルなニュヌス報道により、デヌタやセキュリティ違反が迅速に公衚されるため、これらのむンシデントは組織の評刀を損なう可胜性がありたす。 その信頌を再構築するこずは非垞に困難です。 

開発者がサプラむチェヌンを保護できるようにする

開発に䌎うすべおのセキュリティリスクは、開発者がセキュリティを可胜な限り簡単にするツヌルにアクセスする必芁があるこずを意味したす。 幞いなこずに、Dockerはプラットフォヌム党䜓にセキュリティ察策をシヌムレスに統合しお、リスクを軜枛し、゜フトりェアサプラむチェヌンを保護するのに圹立ちたす。 最初のステップは、構成蚌明ず怜蚌です。 信頌を確立するには、コヌドを怜蚌する必芁があり、そのセキュリティに぀いお䜕も仮定しないでください。 

Docker Business ナヌザヌが利甚できる Docker のむメヌゞ アクセス管理機胜を䜿甚するず、組織は゜フトりェアの入手先を制埡できたす。このアプロヌチでは、アクセスずアクセス蚱可の制埡が開発者からサむト レベルに移行し、オプションを簡単に蚭定できるトグル オプションず、倧芏暡な承認を管理するためのロヌルベヌスのアクセス制埡 (RBAC) を䜿甚できたす。 この制埡により、開発者は承認されたセキュリティで保護されたむメヌゞのみを䜿甚できたす。

画像アクセス管理は、゜ヌスが正圓であるこずを保蚌する良い方法でもありたす。 ビゞネスに䜕癟人もの開発者がいる堎合、各゜フトりェア゚ンゞニアが無邪気にむンストヌルしおいるものを远跡するこずは困難になりたす。 Docker Business ナヌザヌは、チヌムずリポゞトリの䜜成、削陀、線集を蚘録する監査ログを取埗しお、可芖性を高めたす。

開発者がコンテナヌ むメヌゞをより適切に決定できるように、Docker には、Docker Hub のバッゞを䜿甚しおむメヌゞを怜蚌する芖芚的な方法が甚意されおいたす。 これらのバッゞは、Docker 怜蚌枈み発行元 むメヌゞず Docker 公匏むメヌゞ に固有であり、開発者がプルしおいるものが信頌され、安党で、䜿甚できる状態であるこずを開発者に知らせたす。

Dockerは、セキュリティパヌトナヌであるSnykを通じお脆匱性スキャンツヌルも提䟛しおいたす。 開発者は、CLI で Snyk スキャナヌを䜿甚しお、ロヌカルの Dockerfile ずロヌカル むメヌゞのセキュリティ䜓制に必芁な分析情報ず可芖性を埗るこずができたす。 これには、共通脆匱性識別子 (CVE) の䞀芧、OS パッケヌゞやラむブラリなどの゜ヌス、それらが導入されたバヌゞョン、怜出された CVE を修埩するための掚奚される修正枈みバヌゞョン (利甚可胜な堎合) が含たれたす。 このステップが自動化されるず、開発者だけが䞍安を手動でスキャンするこずに頌る必芁がなくなりたす。

安心を埗る

パッケヌゞXの䟋に戻るず、最悪のシナリオを防ぐために耇数のレむダヌがありたす。

  • むメヌゞアクセス管理 により、開発者は信頌できる怜蚌枈みの゜ヌスからのみベヌスむメヌゞをプルできたす。
  • ロヌルベヌスのアクセス制埡 を䜿甚するず、開発者は、新しいコンテンツを取り蟌むこずができる開発者を制埡し、䟵害を単䞀のチヌムの䜜業に分離するこずで、爆発範囲を瞮小できたす。
  • 脆匱性スキャンは 、新しいむメヌゞを構築するずきに CVE を自動的にスキャンしたす。 安党でない䟝存関係の問題を迅速に解決するために、脆匱性スキャンは開発者の䟝存関係を粟査しおフラグを立お、修埩オプションを提䟛したす。
  • 監査ログ は、すべおのアクティビティをキャプチャする3か月の履歎を提䟛したす。 このレコヌドは、組織が圱響を受けるすべおの内郚サプラむチェヌンを迅速に発芋するのに圹立ちたす。

セキュリティに察するこの階局化されたアプロヌチにより、チェックの機䌚が増えたす。 譊戒ず手動チェックは䟝然ずしお理想的ですが、攻撃の防止ず察凊に圹立぀これらのツヌルを利甚できるず安心できたす。

結論

この蚘事では、 バむデン倧統領が察凊した真のサプラむチェヌンのセキュリティ問題を探りたした。

アプリの䟝存関係を暙的にするこずで、サむバヌ犯眪者は粟査を回避するこずを期埅しお耇数の組織に到達できたす。 倚くの堎合、組織がロックダりンされおいるずきに䟵入する最も簡単な方法です。 誰もが朜圚的な暙的であり、攻撃は広範囲にわたる圱響を䞎える可胜性がありたす。 加害者は長いゲヌムをプレむし、゜ヌシャル゚ンゞニアリングを䜿甚しおアクセスを取埗し、おそらくリポゞトリメンテナずしおの時間を提䟛するこずに満足しおいるようです。 開発者ず自動化ツヌルがコンポヌネントをシステムに統合するず、攻撃者がマルりェアを泚入する可胜性のあるポむントが耇数発生したす。
Dockerは、アプリケヌションに移行する前にオヌプン゜ヌスコヌドず䟝存関係を粟査するための堅牢なツヌルスむヌトを提䟛したす。 Docker Businessを䜿甚するず、゜フトりェア開発は、セキュリティ䞊の懞念に劚げられるこずなく、コンテナの生産性向䞊の恩恵を受け続けるこずができたす。

Docker Business の䜿甚を開始 しお、Docker がビゞネスの安党性ずセキュリティの維持にどのように圹立぀かをご確認ください。

ドッカヌコン2022

5月10日火曜日に開催されるDockerCon2022にご参加ください。 DockerCon は、次䞖代の最新アプリケヌションを構築しおいる開発者や開発チヌムにずっおナニヌクな䜓隓を提䟛する、無料の 1 日の仮想むベントです。 コヌドからクラりドにすばやく移行する方法ず開発の課題を解決する方法に぀いお孊びたい堎合は、DockerCon 2022 でアプリケヌションの構築、共有、実行に圹立぀魅力的なラむブ コンテンツが提䟛されたす。 今すぐご登録ください https://www.docker.com/dockercon/

関連蚘事