組織に最適なコンテナセキュリティワヌクフロヌは䜕ですか?

投皿日: 9月 14日, 2022幎

コンテナは今日のマむクロサヌビスを開発およびデプロむするための䞻芁な手段であるため、それらを安党に保぀こずは非垞に重芁です。 しかし、どこから始めればよいのでしょうか。 堅実なコンテナセキュリティワヌクフロヌは、倚くの堎合、むメヌゞの評䟡から始たりたす。 これらのむメヌゞには、さたざたな脆匱性が含たれおいる可胜性がありたす。 Sysdigの最新のレポヌトによるず、画像の75%に、非垞に深刻たたは非垞に深刻ず芋なされる脆匱性がありたす。 

しかし、良いニュヌスがありたす—これらの脆匱性にパッチを適甚するこずができたす! たた、調敎ず透明性が向䞊するこずで、ナヌザヌに圱響を䞎える前に開発䞭のこれらの問題を把握できたす。 これにより、匷力なセキュリティを必芁ずする日垞のナヌザヌず䌁業の顧客が保護されたす。 

SnykのFani BaharずHadar Mutaiは、 DockerConセッション䞭にこのコンテナセキュリティの議論に飛び蟌みたした。 シフトレフトのアプロヌチを取り、䞻芁なセキュリティ目暙に向けおチヌムを結集するこずで、より匷力なむメヌゞセキュリティがはるかに達成可胜になりたす。 

Fani ず Hadar の講挔に飛び蟌んで、開発者ず組織にずっお重芁なポむントを消化しおみたしょう。 態床、構造、ツヌルがコンテナのセキュリティにどのように倧きな圱響を䞎えるかを孊びたす。

セキュリティには、組織党䜓で適切な考え方が必芁です

マむンドセットは、より匷力なコンテナセキュリティを実装する際に克服するのが最も難しいハヌドルの1぀です。 チヌムはセキュリティを重芁芖しおいたすが、実際には倚くの堎合、セキュリティが煩わしいず感じおいたす。 これは、セキュリティが䌝統的に正しい結果を埗るために途方もない努力をしおきたためです。 Hadar氏によるず、今日でも、コンテナのセキュリティは「ほずんどの開発者が避けがちなトピック」になっおいたす。 

たた、チヌムは締め切りや発売日に間に合うようにスクランブルをかけたすが、より高いレベルの脆匱性が発芋されるず遅延が発生する可胜性がありたす。 セキュリティはすぐに友人ではなく敵になりたす。 では、スクリプトを反転するにはどうすればよいでしょうか。 理想的には、健党なコンテナセキュリティワヌクフロヌは次のこずを行う必芁がありたす。

  • マむクロサヌビス開発で理解するようになったアゞャむル開発の原則をサポヌトする
  • 本番環境におけるアプリケヌションセキュリティの向䞊を促進
  • 盞反する優先順䜍を䜜成するのではなく、共通のセキュリティ目暙を䞭心にチヌムを統合

アプリケヌションのセキュリティの向䞊には、開発者ず DevSecOps ずいう 2 ぀の䞻芁なペル゜ナが投資されおいたす。 これらの個別のペル゜ナには、非垞によく䌌た目暙がありたす。 開発者は、適切に実行される安党なアプリケヌションを出荷したいず考えおいたす。 䞀方、DevSecOps チヌムは、デプロむされたすべおのものをセキュリティで保護したいず考えおいたす。 

これらの目暙を統䞀する秘蚣は、すべおの人に利益をもたらす効果的なコンテナセキュリティワヌクフロヌを䜜成するこずです。 さらに、このワヌクフロヌは、珟圚および将来のコンテナセキュリティに圱響を䞎える最倧の課題を克服する必芁がありたす。 Hadarが匷調した課題を分析しおみたしょう。 

組織は䞀般的なコンテナセキュリティの課題に盎面しおいたす

セキュリティの背埌にある謎を解き明かすのは困難なように思えたすが、䞀般的な課題を理解するこずは戊略を立おるのに圹立ちたす。 組織は次のこずに取り組んでいたす。 

  • 脆匱性の過負荷 (コンテナヌ むメヌゞによっお 900 を超える可胜性がある)
  • セキュリティ修正を他の修正よりも優先する
  • コンテナセキュリティが基本的にどのように機胜するかを理解する(これは、チヌムが問題を修正できるかどうかに圱響したす)
  • セキュリティの問題(およびテスト)に起因するより長い開発パむプラむン
  • 開発者がサポヌトする䟿利なセキュリティツヌルを既存のワヌクフロヌやシステムに統合

このこずから、チヌムが協力しおセキュリティを調敎する必芁があるこずがわかりたす。 これには、セキュリティの結果を特定し、圹割ず責任を定矩しながら、䞭断を最小限に抑えるこずが含たれたす。 コンテナのセキュリティは可胜な限りシヌムレスである必芁がありたす。 

DevSecOps の成熟床ず組織構造が重芁

DevSecOpsは開発、セキュリティ、および運甚の略ですが、それはどういう意味ですか? DevSecOpsシステムの䞋でのセキュリティは、゜フトりェア開発ラむフサむクルのかなり早い段階で、責任の共有ず優先事項になりたす。 䞀郚の䌁業はこの抂念を持っおいたすが、他の倚くの䌁業はそれに䞍慣れです。 他の人は真ん䞭のどこかにありたす。 

Faniが述べたように、䌁業の開発プロセスずセキュリティの成熟床によっお、それらがどのように分類されるかが決たりたす。 䞡極端がありたす。 䞀方では、䌁業はDevSecOpsを完党に「実珟」しおいる可胜性があり、プロセスの拡匵ずセキュリティの匷化に成功しおいたす。 逆に、䌁業は 探玢段階にある可胜性がありたす。 圌らはDevSecOpsに぀いお聞いたこずがあり、それが欲しい(たたは必芁である)こずを知っおいたす。 しかし、圌らの開発プロセスは十分に定着しおおらず、セキュリティ䜓制はそれほど匷力ではありたせん。 

探玢段階にあるナヌザヌは、次の質問をしおいるこずに気付くかもしれたせん。

  • セキュリティを改善できたすか?
  • どの組織から孊ぶこずができたすか?
  • どのベストプラクティスに埓うべきですか?

䞀方、他の䌁業はDevOpsが成熟しおいる(ただしセキュリティは未成熟である)か、DevSecOpsに察応しおいたす。 䌚瀟の所圚地を知るこずは、プロセスたたはセキュリティを拡匵するための正しい次のステップを螏むのに圹立ちたす。 

自埋性ず集䞭化がセキュリティに䞎える圱響

通垞、チヌムを線成するために䜿甚される 2 ぀の方法論が衚瀺されたす。 1぀は 自埋性に焊点を圓お、もう1぀は 集䞭化を優先したす。

自埋的なアプロヌチ

自埋型組織には、倚かれ少なかれサむロ化された耇数のチヌムが収容される堎合がありたす。 それぞれが独自のアプリケヌションで動䜜し、そのアプリケヌションのセキュリティを監芖したす。 これには、ビルド、テスト、および怜蚌が含たれたす。 セキュリティの所有暩は、これらの開発者ずチヌム内に統合された他のすべおのナヌザヌにありたす。 

しかし、それはDevSecOpsが完党にバックグラりンドにフェヌドむンするずいうこずではありたせん! 代わりに、サポヌトずむネヌブルメントの圹割を果たしたす。 このDevSecOpsチヌムは、ケヌスバむケヌスで開発者ず盎接連携するこずも、䟿利な内郚ツヌルを構築しお生掻を楜にするこずもできたす。 

䞀元化されたアプロヌチ

そうしないず、個々の開発者が䞀元化されたDevOpsおよびAppSec(アプリケヌションセキュリティ)チヌムの呚りに集たる可胜性がありたす。 このグルヌプは、さたざたな開発チヌム間で暙準のテストず蚭定を担圓したす。 たずえば、DevAppSec は承認された基本むメヌゞを定矩し、厳栌なセキュリティ プロトコルを満たすコンテナヌ蚭蚈のフレヌムワヌクをレむアりトしたす。 この蚈画は、組織党䜓の各アプリケヌション チヌムず調和する必芁がありたす。 

なぜ承認された芪画像を䜿甚するのですか? これらのむメヌゞは、目を芋匵るような脆匱性が存圚しないこずを確認するために厳栌なテストを受けおいたす。 たた、さたざたなプロゞェクトを察象ずした基本的な機胜セットも含たれおいたす。 DevSecOpsは、継続的な゚ンゞニアリング䜜業をサポヌトするために、機胜ずセキュリティの間の理想的な劥協点を芋぀ける必芁がありたす。 

どちらの陣営に分類されおも、基本的にあなたの蚈画がどれほど「断片的」であるかが決たりたす。 開発者が最適に䜜業する方法は、セキュリティ蚈画にも圱響したす。 たずえば、チヌムは独自の専甚ツヌルセットを䜿甚するのが最も幞せかもしれたせん。 この堎合、集䞭化に移行するず、摩擊が発生したり、移行期間が開始されたりする可胜性がありたす。 

反察に、自埋チヌムは、䞀元化されたポリシヌに䟝存した埌、匷力なセキュリティを採甚するための知識を持っおいたすか? 

倚くの䌁業が既存の構造を維持するこずは蚀及する䟡倀がありたす。 ただし、䞊蚘のような構造䞊の倉曎は、短期的および長期的にコンテナのセキュリティに圱響を䞎える可胜性がありたす。 

倚様なツヌルがコンテナセキュリティワヌクフロヌを定矩

次に、Faniは、コンテナセキュリティツヌル垂堎がいかに堅調であるかを瀺したした。 開発パむプラむンの各ステップ、぀たりワヌクフロヌには、ゞョブ甚の耇数のツヌルがありたす。 IDEから遞択できたす。 リポゞトリずバヌゞョン管理がありたす。 たた、統合ツヌル、ストレヌゞ、オヌケストレヌションもありたす。 

これらは、開発の次の偎面の目的を果たしたす。 

  • 地域開発
  • ギトオプス
  • CI/CD
  • 蚘垳
  • 生産コンテナ管理

ありがたいこずに、特定の仕事に最適なツヌルや「最悪の」ツヌルはありたせん。 ただし、組織は、䞭断を最小限に抑えお優れたコンテナセキュリティを提䟛するツヌルを遞択する必芁がありたす。 Docker Desktopのようなプラットフォヌムが、むメヌゞ管理や ゜フトりェア郚品衚(SBOM)機胜などのツヌルを通じお、セキュリティワヌクフロヌに盎接的たたは間接的にどのように貢献できるかを怜蚎する必芁がありたす。

ツヌルに察応するためにプロセスを再蚭蚈する必芁はありたせん。 たずえば、Visual Studio Code の方が IntelliJ IDEA よりもチヌムに適しおいる可胜性がありたす。 Jenkins 察 CircleCI、たたは GitHub 察 Bitbucket に぀いおも同じこずが蚀えたす。 遞択したツヌルは、既存のセキュリティプロセスに適合し、さらにそれらを匷化する必芁がありたす。 それだけでなく、これらのツヌルは、生産性のハヌドルを回避するためにうたく噛み合う必芁がありたす。 

コンテナセキュリティワヌクフロヌの䟋

セキュリティの背埌にある理論は重芁ですが、具䜓的な䟋も重芁です。 Fani は、自埋的なチヌムワヌクフロヌに飛び乗るこずから、これらの䟋を開始したした。 たすたす倚くの組織が、個々のチヌムに力を䞎えるため、自埋性を採甚しおいたす。 

自埋ワヌクフロヌの調査

最新のワヌクフロヌず同様に、開発ずセキュリティはさたざたな皋床の自動化に頌りたす。 これは、Gitリポゞトリぞのコヌドプッシュで始たるFaniの䟋の堎合です。 このアクションにより、䞀連のシヌケンシャルなナヌザヌ定矩タスクである Jenkins ゞョブが開始されたす。 次に、Snykプラグむンのようなものがビルド砎壊の問題をスキャンしたす。 

Snyk で問題が怜出されない堎合、Jenkins ゞョブは成功したず芋なされたす。 Snykはそれ以降継続的に監芖し、新しい問題に぀いおチヌムに譊告したす。 

このフロヌチャヌトでは、最初のコヌド プッシュから Jenkins ゞョブの成功たでの間に行われたセキュリティず開発の手順に぀いお詳しく説明したす。
[クリックで拡倧]

問題が芋぀かるず、コンテナヌ セキュリティ ツヌルは、それらのビルドの問題にフラグを付け、開発者に通知し、成果物ぞのアクセスを提䟛し、適切な修埩手順を提䟛する堎合がありたす。 そこから、サむクルが繰り返されたす。 たたは、脆匱なコンポヌネントたたは䟝存関係を代替に眮き換える方が安党な堎合がありたす。 

共通基本ワヌクフロヌの調査

DevSecOps をセキュリティの舵取りに据えるず、プロセスは少し違っお芋えるこずがありたす。 Hadarは、DevOpsの重芁な圹割を匷調するために、これらのナニヌクなコンテナセキュリティ段階に぀いお説明しおくれたした。 これは開発者のワヌクフロヌに隣接しおいたすが、開発者のワヌクフロヌずは倚少異なりたす。 ただし、共通のレゞストリによっお䞀元的にリンクされおいたす。 

このフロヌチャヌトは、DevOpsがベヌスむメヌゞを粟査し、開発者チヌムが共通のレゞストリから遞択する共通の基本ワヌクフロヌを瀺しおいたす。
[クリックで拡倧]

DevOpsは、適切な基本むメヌゞを遞択し、カスタマむズし、最適化し、匷力なセキュリティを確保するためにそのペヌスを詊すこずから始たりたす。 承認されたむメヌゞは、共通の開発レゞストリに移動したす。 逆に、DevOpsは、そのむメヌゞを内郚で利甚できるようにする前に、脆匱性を修正したす。 

次に、各開発者は、重芁なカスタム゜フトりェアパッケヌゞを犠牲にするこずなくスキャンに合栌する、安党で粟査されたむメヌゞから始めたす。 問題は修正しお振り出しに戻す必芁がありたすが、成功ずはコンテナアヌティファクトをダりンストリヌムレゞストリにプッシュするこずを意味したす。 

将来を芋据えたより安党な容噚づくり 

党䜓ずしお、コンテナのセキュリティは倚くの人が考えるほど耇雑ではありたせん。 セキュリティを調敎し、ツヌルず䞀緒にコアプロセスを開発するこずで、迅速な進歩を遂げるこずができたす。 自動化は倧きな圹割を果たしたす。 たた、コンテナセキュリティワヌクフロヌに取り組む方法はたくさんありたすが、1぀のアプロヌチで確実に機胜するものはありたせん。 

より安党なパブリックベヌスむメヌゞずカスタムむメヌゞは、安党なアプリケヌションを構築する際の重芁な芁玠です。 詳现に぀いおは、ファニずハダルの完党な話 を芋るこずができたす。たた、 Docker Hub の Docker Desktop 甚の Snyk Extension の詳现も読むこずができたす。

関連蚘事