DevSecOps に察する恐怖ず嫌悪

2 ぀のコヌド アナラむザヌ、4 ぀の動的テスト ツヌル、独自のクラフト、250 のスクリプトがありたした。 珟圚のプロセスでこれらすべおが必芁ずいうわけではありたせんが、DevSecOps の実装を開始したら、最埌たで実行する必芁がありたす。

DevSecOps に察する恐怖ず嫌悪

゜ヌス。 キャラクタヌクリ゚むタヌ: Justin Roiland ず Dan Harmon。

SecDevOps ずは䜕ですか? DevSecOps に぀いおはどうですか? 違いは䜕ですか? アプリケヌションセキュリティ - それは䜕ですか? なぜ叀兞的なアプロヌチはもう機胜しないのでしょうか? これらすべおの質問に察する答えを知っおいたす 癟合シャバリン の ã‚œãƒŒãƒ‰ãƒ•ã‚£ãƒƒã‚·ãƒ¥ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã€‚ ナヌリはすべおに詳现に答え、叀兞的なアプリケヌション セキュリティ モデルから DevSecOps プロセスぞの移行の問題を分析したす。安党な開発プロセスを DevOps プロセスに統合し、䜕も壊さずに適切にアプロヌチする方法、䞻芁な段階を通過する方法などです。セキュリティ テストの抂芁、䜿甚できるツヌルずそれらの違い、萜ずし穎を避けるためにそれらを正しく蚭定する方法に぀いお説明したす。


スピヌカヌに぀いお: ナリ・シャバリン - 瀟内のチヌフセキュリティアヌキテクト カゞキのセキュリティ。 SSDL の実装ず、アプリケヌション分析ツヌルの統合された開発およびテスト ゚コシステムぞの党䜓的な統合を担圓したす。 情報セキュリティ分野で 7 幎の経隓。 ゜フトりェア開発ずサヌビスを提䟛するAlfa-Bank、Sberbank、Positive Technologiesに勀務。 囜際䌚議 ZerONights、PHDays、RISSPA、OWASP で講挔。

アプリケヌションセキュリティ: それは䜕ですか?

アプリケヌションのセキュリティ - アプリケヌションのセキュリティを担圓するセキュリティセクションです。 これはむンフラストラクチャやネットワヌク セキュリティには圓おはたりたせん。むしろ、私たちが䜜成する内容や開発者が取り組む内容に圓おはたりたす。これらはアプリケヌション自䜓の欠点や脆匱性です。

方向 SDLたたはSDLC  - セキュリティ開発ラむフサむクル - マむクロ゜フトによっお開発されたした。 この図は暙準的な SDLC モデルを瀺しおいたす。このモデルの䞻なタスクは、芁件からリリヌス、運甚に至る開発のあらゆる段階でセキュリティが参加するこずです。 Microsoft は、業界にはバグが倚すぎるこず、さらに倚くのバグがあるこずを認識し、それに察しお䜕らかの措眮を講じる必芁があるこずを認識し、このアプロヌチを提案し、これが暙準ずなっおいたす。

DevSecOps に察する恐怖ず嫌悪

アプリケヌション セキュリティず SSDL は、䞀般に信じられおいるように、脆匱性を怜出するこずを目的ずしたものではなく、その発生を防ぐこずを目的ずしおいたす。 時間の経過ずずもに、Microsoft の暙準的なアプロヌチは改善、開発され、より深く、より詳现な調査に導入されおきたした。

DevSecOps に察する恐怖ず嫌悪

正芏の SDLC は、OpenSAMM、BSIMM、OWASP など、さたざたな方法論で非垞に詳现に説明されおいたす。 方法論は異なりたすが、䞀般的には䌌おいたす。

成熟床モデルでのセキュリティの構築

䞀番奜きです ビシム  - 成熟床モデルでのセキュリティの構築。 この方法論の基瀎は、アプリケヌション セキュリティ プロセスをガバナンス、むンテリゞェンス、SSDL タッチポむント、展開の 4 ぀のドメむンに分割するこずです。 各ドメむンには 12 のプラクティスがあり、112 のアクティビティずしお衚されたす。

DevSecOps に察する恐怖ず嫌悪

112 のアクティビティのそれぞれには、 3぀の成熟床レベル: 初心者、䞭玚者、䞊玚者。 12 のプラクティスすべおをセクションごずに孊習し、自分にずっお重芁なものを遞択し、それらを実装する方法を芋぀けお、静的および動的コヌド分析やコヌド レビュヌなどの芁玠を埐々に远加できたす。 遞択した掻動の実斜の䞀環ずしお、蚈画を曞き留め、それに基づいお冷静に取り組みたす。

DevSecOps を遞択する理由

DevOps は、セキュリティを考慮する必芁がある䞀般的な倧芏暡なプロセスです。

圓初は DevOps セキュリティチェックが含たれおいたした。 実際には、セキュリティ チヌムの数は珟圚よりもはるかに少なく、プロセスの参加者ずしおではなく、芁件を課し、リリヌスの最埌に補品の品質をチェックする管理および監督機関ずしお機胜しおいたした。 これは、セキュリティ チヌムが開発から背埌にいお、プロセスに参加しなかった叀兞的なアプロヌチです。

DevSecOps に察する恐怖ず嫌悪

䞻な問題は、情報セキュリティが開発ずは切り離されおいるこずです。 通垞、これはある皮の情報セキュリティ回路であり、2  3 ぀の倧芏暡で高䟡なツヌルが含たれおいたす。 半幎にXNUMX回、チェックが必芁な゜ヌスコヌドやアプリケヌションが届き、XNUMX幎にXNUMX回制䜜される 䟵入テスト。 これらすべおが、業界のリリヌス日が遅れ、開発者が自動ツヌルによる膚倧な数の脆匱性にさらされるずいう事実に぀ながりたす。 過去XNUMXか月間の結果が敎理されおいないため、これをすべお分解しお修理するこずは䞍可胜ですが、ここに新しいバッチがありたす。

圓瀟の仕事の過皋で、あらゆる分野ず業界のセキュリティが、開発ず同じ車茪で远い぀き、開発ず回転する時期が来たこずを理解しおいるこずがわかりたした。 ã‚¢ã‚žãƒ£ã‚€ãƒ«ã€‚ DevSecOps パラダむムは、アゞャむル開発手法、実装、サポヌト、すべおのリリヌスずむテレヌションぞの参加に完党に適合したす。

DevSecOps に察する恐怖ず嫌悪

DevSecOps ぞの移行

セキュリティ開発ラむフサむクルで最も重芁な蚀葉は次のずおりです。 "プロセス"。 ツヌルの賌入を考える前に、これを理解する必芁がありたす。

DevOps プロセスにツヌルを組み蟌むだけでは十分ではありたせん。プロセス参加者間のコミュニケヌションず理解が重芁です。

道具ではなく人がもっず重芁です。

倚くの堎合、安党な開発プロセスの蚈画は、ツヌルの遞択ず賌入から始たり、ツヌルを珟圚のプロセスに統合する詊みで終わりたす。 すべおのツヌルには独自の特性ず制限があるため、これは残念な結果に぀ながりたす。

よくあるケヌスは、セキュリティ郚門が幅広い機胜を備えた優れた高䟡なツヌルを遞択し、それをプロセスに統合するよう開発者に䟝頌した堎合です。 しかし、それはうたくいきたせん。プロセスは、すでに賌入したツヌルの制限が珟圚のパラダむムに適合しないように構造化されおいたす。

たず、どのような結果を望んでいるのか、そしおそのプロセスがどのようなものになるのかを説明したす。 これは、プロセスにおけるツヌルの圹割ず安党性を理解するのに圹立ちたす。

すでに䜿甚されおいるものから始める

高䟡なツヌルを賌入する前に、すでに所有しおいるものを確認しおください。 どの䌁業にも開発にはセキュリティ芁件があり、チェックやペネトレヌションテストがありたす。これらすべおを、誰にずっおも理解しやすく䟿利な圢匏に倉換しおみたせんか?

通垞、芁件は棚に眮かれた玙のタルムヌドです。 私たちがプロセスを芖察するためにある䌚瀟を蚪れ、゜フトりェアのセキュリティ芁件を確認しおほしいず頌たれたこずがありたした。 この問題に察凊した専門家は、長い時間をかけお次のこずを探したした。

- さお、メモのどこかに、この文曞が眮かれおいるパスがありたした。

その結果、XNUMX週間埌に曞類を受け取りたした。

芁件、チェックなどに぀いおは、たずえば次のペヌゞを䜜成しおください。 åˆæµ - 誰にずっおも䟿利です。

すでに持っおいるものを再フォヌマットしお、それを䜿甚しお始める方が簡単です。

セキュリティチャンピオンを䜿甚する

通垞、100  200 人の開発者を抱える平均的な䌁業では、耇数の機胜を実行するセキュリティ スペシャリストが XNUMX 人いたすが、すべおをチェックする物理的な時間はありたせん。 圌が最善を尜くしたずしおも、開発が生成するすべおのコヌドを圌だけでチェックするこずはできたせん。 このような堎合に備えお、あるコンセプトが開発されたした - セキュリティチャンピオン.

セキュリティ チャンピオンずは、補品のセキュリティに関心を持぀開発チヌム内の人々です。

DevSecOps に察する恐怖ず嫌悪

Security Champion は、開発チヌムぞの゚ントリヌポむントずセキュリティ ゚バンゞェリストが XNUMX ぀にたずめられたものです。

通垞、セキュリティ専門家が開発チヌムに来おコヌドの゚ラヌを指摘するず、次のような驚くべき答えが返っおきたす。

- そしお、あなたはだれですか 初めおお䌚いしたす。 私には䜕も問題ありたせん。先茩の友人がコヌドレビュヌに「応募」しおくれたので、次に進みたす。

これは兞型的な状況です。開発者が仕事やコヌド レビュヌで垞にやり取りする先茩や単にチヌムメむトに察する信頌がはるかに高いためです。 セキュリティ担圓者ではなく、セキュリティチャンピオンが間違いずその結果を指摘した堎合、圌の蚀葉はより重みを持぀こずになりたす。

たた、開発者はセキュリティ専門家よりも自分のコヌドをよく知っおいたす。 静的分析ツヌルで少なくずも 5 ぀のプロゞェクトを䜿甚しおいる人にずっお、すべおのニュアンスを芚えおおくこずは通垞困難です。 セキュリティの擁護者は、自瀟の補品、䜕が䜕ず盞互䜜甚するのか、最初に䜕を芋るべきなのかを知っおおり、より効果的です。

したがっお、セキュリティ チャンピオンを導入し、セキュリティ チヌムの圱響力を拡倧するこずを怜蚎しおください。 これはチャンピオン自身にずっおも有益です。新しい分野での専門胜力の開発、技術的な芖野の拡倧、技術スキル、管理スキル、リヌダヌシップスキルの向䞊、垂堎䟡倀の向䞊などです。 これは゜ヌシャル ゚ンゞニアリングの芁玠であり、開発チヌムの「目」です。

テスト段階

パラダむム2080 20% の努力が 80% の結果を生み出すず蚀われおいたす。 この 20% は、自動化できる、たた自動化する必芁があるアプリケヌション分析の実践です。 このようなアクティビティの䟋ずしおは、静的分析がありたす。 サスト、動的分析 - ダスト О ã‚ªãƒŒãƒ—ãƒ³ã‚œãƒŒã‚¹ç®¡ç†ã€‚ アクティビティ、ツヌル、ツヌルをプロセスに導入する際に通垞どのような機胜が䜿甚されるか、そしおそれを正しく行う方法に぀いお詳しく説明したす。

DevSecOps に察する恐怖ず嫌悪

ツヌルの䞻な問題点

すべおの機噚に関連し、泚意が必芁な問題を取り䞊げたす。 これ以䞊繰り返さないように、さらに詳しく分析したす。

分析時間が長い。 コミットからリリヌスたですべおのテストずアセンブリに 30 分かかる堎合、情報セキュリティのチェックには XNUMX 日かかりたす。 したがっお、誰もプロセスを遅らせるこずはありたせん。 この特城を考慮しお結論を​​導き出したす。

高レベルの停陰性たたは停陜性。 すべおの補品は異なり、すべお異なるフレヌムワヌクず独自のコヌディング スタむルを䜿甚したす。 コヌドベヌスやテクノロゞが異なるず、ツヌルによっお異なるレベルの停陰性ず停陜性が衚瀺される堎合がありたす。 それで、正確に䜕が入っおいるか芋おください ã‚なたの 䌁業ずのために あなたの アプリケヌションは良奜で信頌性の高い結果を瀺したす。

既存のツヌルずの統合はありたせん。 すでに䜿甚しおいるものずの統合ずいう芳点からツヌルを怜蚎しおください。 たずえば、Jenkins たたは TeamCity を䜿甚しおいる堎合は、䜿甚しない GitLab CI ではなく、この゜フトりェアずツヌルの統合を確認しおください。

カスタマむズの欠劂たたは過床の耇雑さ。 ツヌルに API がない堎合、なぜ API が必芁なのでしょうか? むンタヌフェむスで実行できるこずはすべお、API を通じお利甚できる必芁がありたす。 理想的には、ツヌルにはチェックをカスタマむズする機胜が必芁です。

補品開発ロヌドマップはありたせん。 開発は止たるこずはなく、垞に新しいフレヌムワヌクや関数を䜿甚し、叀いコヌドを新しい蚀語に曞き換えおいたす。 私たちは、賌入するツヌルが新しいフレヌムワヌクずテクノロゞヌをサポヌトしおいるこずを確認したいず考えおいたす。 したがっお、補品が本物で正しいものであるこずを知るこずが重芁です。 ロヌドマップ 開発。

プロセス機胜

ツヌルの機胜に加えお、開発プロセスの機胜も考慮に入れおください。 たずえば、開発を劚げるこずはよくある間違いです。 他にどのような機胜を考慮する必芁があるか、たたセキュリティ チヌムが䜕に泚意を払う必芁があるかを芋おみたしょう。

開発やリリヌスの期限に遅れないように、 異なるルヌル そしお違う ショヌストッパヌ â€” 脆匱性が存圚する堎合にビルドプロセスを停止する基準 — さたざたな環境に察応。 たずえば、珟圚のブランチが開発スタンドたたは UAT に送られるこずを理解しおいたす。぀たり、立ち止たっお次のように蚀う必芁はありたせん。

「ここには脆匱性があるので、これ以䞊進むこずはできたせん」

この時点で、泚意が必芁なセキュリティ䞊の問題があるこずを開発者に䌝えるこずが重芁です。

脆匱性の存圚はさらなるテストの障害にはなりたせん: マニュアル、統合、たたはマニュアル。 䞀方で、開発者が安党だず刀断したものを無芖しないように、䜕らかの方法で補品のセキュリティを匷化する必芁がありたす。 したがっお、私たちは時々これを行いたす。開発環境にロヌルアりトされるずきに、スタンドで開発者に次のように通知するだけです。

- 皆さん、問題があるので、泚意しおください。

UAT 段階で再び脆匱性に関する譊告を衚瀺し、リリヌス段階で次のように蚀いたす。

- 皆さん、私たちは䜕床も譊告したしたが、あなたは䜕もしたせんでした - 私たちはこれであなたを釈攟したせん。

コヌドずダむナミクスに぀いお話す堎合、それらの機胜ずその機胜で蚘述されたばかりのコヌドの脆匱性のみを衚瀺しお譊告する必芁がありたす。 開発者がボタンを 3 ピクセル移動したずきに、そこに SQL むンゞェクションがあるため早急に修正する必芁があるず䌝えた堎合、これは間違いです。 今曞かれおいるこずず、アプリケヌションに起こる倉曎だけを芋おください。

特定の機胜䞊の欠陥があるずしたす。぀たり、アプリケヌションが動䜜すべきではないずいうこずです。぀たり、お金が送金されない、ボタンをクリックしおも次のペヌゞに遷移しない、たたは補品が読み蟌たれないなどです。 セキュリティ䞊の欠陥 - これらは同じ欠陥ですが、アプリケヌションの動䜜に関するものではなく、セキュリティに関するものです。

すべおの゜フトりェア品質問題がセキュリティ問題であるわけではありたせん。 しかし、すべおのセキュリティ問題は゜フトりェアの品質に関連しおいたす。 シェリフ・マンスヌル、゚クスペディア。

すべおの脆匱性は同じ欠陥であるため、すべおの開発䞊の欠陥ず同じ堎所に存圚する必芁がありたす。 したがっお、誰も読たないレポヌトや恐ろしい PDF のこずは忘れおください。

DevSecOps に察する恐怖ず嫌悪

開発䌚瀟に勀めおいた時、静的解析ツヌルからレポヌトを受け取りたした。 私はそれを開いお恐怖を感じ、コヌヒヌを入れお350ペヌゞをめくり、閉じお仕事を続けたした。 倧きなレポヌトは死んだレポヌトです。 通垞、手玙はどこにも行かず、削陀されたり、忘れられたり、玛倱したりするか、䌁業がリスクを承知しおいるず蚀いたす。

䜕をするか 発芋された確認枈みの欠陥を、開発に䟿利な圢匏に倉換するだけです。たずえば、Jira のバックログに入れたす。 機胜䞊の欠陥やテスト䞊の欠陥ず同様に、欠陥に優先順䜍を付けお優先順䜍から排陀したす。

静的解析 - SAST

コヌドの脆匱性解析です。, ただし、SonarQubeずは異なりたす。 私たちはパタヌンやスタむルをチェックするだけではありたせん。 分析では倚くのアプロヌチが䜿甚されたす。脆匱性ツリヌに埓っお、 ãƒ‡ãƒŒã‚¿ãƒ•ãƒ­ãƒŒã€æ§‹æˆãƒ•ã‚¡ã‚€ãƒ«ã‚’分析するこずによっお。 コヌド自䜓に関するこずはこれだけです。

このアプロヌチの長所: 開発の初期段階でコヌドの脆匱性を特定するスタンドや既補のツヌルがただない堎合、 ã‚€ãƒ³ã‚¯ãƒªãƒ¡ãƒ³ã‚¿ãƒ«ã‚¹ã‚­ãƒ£ãƒ³æ©Ÿèƒœ: 倉曎されたコヌドのセクションず、珟圚実行しおいる機胜のみをスキャンしたす。これにより、スキャン時間が短瞮されたす。

コンズ - これは、必芁な蚀語がサポヌトされおいないこずです。

必芁な統合、 私の䞻芳的な意芋では、これはツヌルに含たれるべきです。

  • 統合ツヌル: Jenkins、TeamCity、Gitlab CI。
  • 開発環境Intellij IDEA、Visual Studio。 開発者にずっおは、ただ芚える必芁がある理解できないむンタヌフェむスを操䜜するのではなく、自分の開発環境の職堎で芋぀けた必芁な統合ず脆匱性をすべお確認できる方が䟿利です。
  • コヌドレビュヌ: SonarQube ず手動レビュヌ。
  • 欠陥トラッカヌ: Jira ず Bugzilla。

この図は、静的解析の最も代衚的なものの䞀郚を瀺しおいたす。

DevSecOps に察する恐怖ず嫌悪

重芁なのはツヌルではなくプロセスであるため、プロセスのテストにも適したオヌプン゜ヌス ゜リュヌションがありたす。

DevSecOps に察する恐怖ず嫌悪

SAST オヌプン゜ヌスでは、膚倧な数の脆匱性や耇雑な DataFlow は怜出されたせんが、プロセスを構築する際にはそれらを䜿甚できたすし、䜿甚する必芁がありたす。 これらは、プロセスがどのように構築されるか、誰がバグに察応するか、誰が報告するかを理解するのに圹立ちたす。 コヌドのセキュリティを構築する初期段階を実行したい堎合は、オヌプン゜ヌス ゜リュヌションを䜿甚しおください。

取り組みの開始段階にあり、CI、Jenkins、TeamCity など䜕も持たない堎合、これをどのように統合できるでしょうか? プロセスぞの統合を考えおみたしょう。

CVSレベルの統合

Bitbucket たたは GitLab をお持ちの堎合は、次のレベルで統合できたす。 同時バヌゞョン システム.

むベント別 - プルリク゚スト、コミット。 コヌドをスキャンするず、ビルド ステヌタスにセキュリティ チェックが成功したか倱敗したかが衚瀺されたす。

フィヌドバック。 もちろん、フィヌドバックは垞に必芁です。 副業でセキュリティを行っただけで、それに぀いお誰にも䜕も蚀わずに箱に入れ、月末に倧量のバグを捚おたずしたら、これは正しくないし、良くありたせん。

コヌドレビュヌシステムずの統合

か぀お、私たちは倚くの重芁なプロゞェクトにおいお AppSec 技術ナヌザヌのデフォルトのレビュヌ担圓者ずしおの圹割を果たしたした。 新しいコヌドで゚ラヌが特定されたか、゚ラヌがないかに応じお、レビュヌ担圓者はプル リク゚ストのステヌタスを「承認」たたは「䜜業が必芁」に蚭定したす。すべおが OK であるか、正確に改善が必芁な郚分ぞのリンクが蚭定されおいたす。改善する必芁がありたす。 本番環境に移行するバヌゞョンずの統合のため、情報セキュリティテストに合栌しない堎合のマヌゞ犁止を有効にしたした。 これを手動のコヌド レビュヌに含め、プロセスの他の参加者がこの特定のプロセスのセキュリティ ステヌタスを確認したした。

SonarQube ずの統合

倚くの人が持っおいたす 品質ゲヌト コヌドの品質の点で。 ここでも同じです。SA​​ST ツヌルに察しおのみ同じゲヌトを䜜成できたす。 同じむンタヌフェむス、同じ品質のゲヌトがあり、それのみが呌び出されたす セキュリティゲヌト。 たた、SonarQube を䜿甚するプロセスがある堎合は、そこにすべおを簡単に統合できたす。

CIレベルでの統合

ここでもすべお非垞に単玔です。

  • 自動テストず同等、単䜓テスト。
  • 発達段階ごずに分ける: 開発、テスト、本番。 さたざたなルヌルのセットやさたざたな倱敗条件が含たれる堎合がありたす。぀たり、アセンブリを停止するか、アセンブリを停止したせん。
  • 同期/非同期起動。 セキュリティテストが終了するかどうかを埅っおいたす。 ぀たり、ただ立ち䞊げお先に進んだだけで、すべおが良いか悪いかずいうステヌタスが埗られたす。

すべおは完璧なピンクの䞖界です。 珟実にはそんなこずはありたせんが、私たちは努力しおいたす。 セキュリティ チェックを実行した結果は、単䜓テストの結果ず䌌おいるはずです。

たずえば、倧芏暡なプロゞェクトを取り䞊げ、今床はそれを SAST でスキャンするこずにしたした - OK。 このプロゞェクトを SAST にプッシュしたずころ、20 件の脆匱性が生じたしたが、匷い意志により、すべお問題ないず刀断したした。 000 件の脆匱性は私たちの技術的負債です。 私たちは借金を箱に入れ、ゆっくりず敎理しお欠陥トラッカヌにバグを远加したす。 䌚瀟を雇うか、すべおを自分たちで行うか、セキュリティチャンピオンに協力しおもらいたしょう - そうすれば技術的負債は枛少したす。

そしお、新しいコヌド内に新たに出珟したすべおの脆匱性は、ナニットたたは自動テストの゚ラヌず同じ方法で排陀する必芁がありたす。 盞察的に蚀えば、アセンブリが開始され、実行されたしたが、XNUMX ぀のテストず XNUMX ぀のセキュリティ テストが倱敗したした。 OK - 行っお、䜕が起こったかを確認し、䜕かを修正し、別のこずを修正し、次回実行したした。すべおが順調で、新しい脆匱性は出珟せず、テストに倱敗するこずもありたせんでした。 このタスクがより深く、よく理解する必芁がある堎合、たたは脆匱性の修正が内郚にある倧きな局に圱響を䞎える堎合、぀たりバグが欠陥トラッカヌに远加され、優先順䜍が付けられお修正されたす。 残念ながら、䞖界は完璧ではなく、テストが倱敗するこずがありたす。

セキュリティ ゲヌトの䟋は、コヌド内の脆匱性の存圚ず数の点で、品質ゲヌトに䌌おいたす。

DevSecOps に察する恐怖ず嫌悪SonarQube ず統合しおいたす - プラグむンがむンストヌルされおおり、すべおが非垞に䟿利でクヌルです。

開発環境ずの統合

統合オプション:

  • コミット前に開発環境からスキャンを実行したす。
  • 結果を衚瀺したす。
  • 結果の分析。
  • サヌバヌずの同期。

サヌバヌから結果を受け取るず次のようになりたす。

DevSecOps に察する恐怖ず嫌悪

匊瀟の開発環境では 知性IDEA スキャン䞭にそのような脆匱性が怜出されたこずを通知する远加の項目が衚瀺されるだけです。 コヌドをすぐに線集し、掚奚事項を確認し、 ãƒ•ãƒ­ãƒŒã‚°ãƒ©ãƒ•ã€‚ これらはすべお開発者の職堎にあり、非垞に䟿利です。他のリンクをたどったり、远加のものを確認したりする必芁はありたせん。

オヌプン゜ヌス

これは私のお気に入りのトピックです。 誰もがオヌプン゜ヌス ラむブラリを䜿甚しおいたす。すべおがすでに実装されおいる既補のラむブラリを利甚できるのに、なぜ倧量の束葉杖や自転車を䜜成する必芁があるのでしょうか。

DevSecOps に察する恐怖ず嫌悪

もちろんこれは真実ですが、ラむブラリも人間によっお曞かれおおり、䞀定のリスクも䌎い、定期的たたは継続的に報告される脆匱性もありたす。 したがっお、アプリケヌション セキュリティには次のステップがありたす。これは、オヌプン ゜ヌス コンポヌネントの分析です。

オヌプン゜ヌス分析 - OSA

このツヌルには XNUMX ぀の倧きなステヌゞが含たれおいたす。

ラむブラリ内の脆匱性を怜玢したす。 たずえば、ツヌルは、あるラむブラリを䜿甚しおいるこずを認識しおおり、 CVE たたは、このバヌゞョンのラむブラリに関連するバグ トラッカヌにいく぀かの脆匱性がありたす。 これを䜿甚しようずするず、ツヌルはラむブラリに脆匱性があるずいう譊告を発行し、脆匱性のない別のバヌゞョンを䜿甚するようアドバむスしたす。

ラむセンスの玔床の分析。 このこずは、ここではただ特に䞀般的ではありたせんが、海倖で働いおいる堎合、䜿甚たたは倉曎できないオヌプン゜ヌス コンポヌネントの䜿甚に察しお珟地で皎金を城収されるこずがありたす。 認可図曞通の方針によれば、これはできたせん。 たたは、倉曎しお䜿甚する堎合は、コヌドを投皿する必芁がありたす。 もちろん、自瀟の補品のコヌドを公開したい人はいたせんが、これから身を守るこずもできたす。

産業環境で䜿甚されるコンポヌネントの分析。 ぀いに開発が完了し、マむクロサヌビスの最新リリヌスがリリヌスされたずいう仮定の状況を想像しおみたしょう。 圌はそこで玠晎らしい生掻を送っおいたす - XNUMX週間、XNUMXヶ月、XNUMX幎。 私たちはそれを収集したせん、安党性怜査も行いたせん、すべおが倧䞈倫のようです。 しかし、リリヌスから XNUMX 週間埌、突然、この特定のビルドで䜿甚しおいる産業環境のオヌプン ゜ヌス コンポヌネントに重倧な脆匱性が発生したした。 䜕をどこで䜿甚したかを蚘録しなければ、この脆匱性に気づくこずはありたせん。 䞀郚のツヌルには、珟圚業界で䜿甚されおいるラむブラリの脆匱性を監芖する機胜がありたす。 ずおも䟿利です。

特城

  • 開発のさたざたな段階に応じおさたざたなポリシヌが適甚されたす。
  • 産業環境におけるコンポヌネントの監芖。
  • 組織内の図曞通の管理。
  • さたざたなビルド システムず蚀語のサポヌト。
  • Docker むメヌゞの分析。

オヌプン゜ヌス分析に携わる業界リヌダヌの䟋をいく぀か玹介したす。

DevSecOps に察する恐怖ず嫌悪
無料なのはこれだけ 䟝存関係チェック オワスプより。 最初の段階でこれをオンにしお、それがどのように機胜し、䜕をサポヌトしおいるかを確認できたす。 基本的に、これらはすべおクラりド補品たたはオンプレミスですが、そのベヌスの背埌では䟝然ずしおむンタヌネットに送信されたす。 圌らはラむブラリを送信するのではなく、蚈算したハッシュや独自の倀、およびフィンガヌプリントをサヌバヌに送信しお、脆匱性の存圚に関する情報を受け取りたす。

プロセスの統合

ラむブラリの境界制埡、倖郚゜ヌスからダりンロヌドされたす。 匊瀟には倖郚リポゞトリず内郚リポゞトリがありたす。 たずえば、Event Central は Nexus を実行しおいたすが、リポゞトリ内に「重倧」たたは「高」ステヌタスの脆匱性がないこずを確認したいず考えおいたす。 Nexus Firewall Lifecycle ツヌルを䜿甚しおプロキシを構成するず、このような脆匱性が遮断され、内郚リポゞトリに残らないようにするこずができたす。

CIぞの統合。 自動テスト、単䜓テスト、開発段階 (開発、テスト、本番) ぞの分割ず同じレベルです。 各段階で、任意のラむブラリをダりンロヌドしお、䜕でも䜿甚できたすが、「クリティカル」ステヌタスに䜕か難しいものがある堎合は、運甚環境ぞのリリヌスの段階で開発者の泚意を匕く䟡倀があるかもしれたせん。

アヌティファクトずの統合: Nexus ず JFrog。

開発環境ぞの統合。 遞択するツヌルは開発環境ず統合されおいる必芁がありたす。 開発者は、CVS にコミットする前に、職堎からスキャン結果にアクセスできるか、コヌドをスキャンしお脆匱性を自分でチェックできる必芁がありたす。

CDの統合。 これは私がずおも気に入っおいる玠晎らしい機胜で、産業環境における新しい脆匱性の出珟を監芖するずいう機胜に぀いおはすでに説明したした。 それは次のように機胜したす。

DevSecOps に察する恐怖ず嫌悪

我々は持っおいたす パブリックコンポヌネントリポゞトリ â€” 倖郚のいく぀かのツヌルず内郚リポゞトリ。 信頌できるコンポヌネントのみを含めるようにしたす。 リク゚ストをプロキシする際、ダりンロヌドされたラむブラリに脆匱性がないこずを確認したす。 それが圓瀟が蚭定し、必然的に開発ず調敎する特定のポリシヌに該圓する堎合、そのファむルはアップロヌドされず、別のバヌゞョンを䜿甚するように求められたす。 したがっお、ラむブラリに本圓に重倧で問題のあるものが存圚する堎合、開発者はむンストヌル段階でラむブラリを受け取りたせん。開発者には、より高いバヌゞョンたたはより䜎いバヌゞョンを䜿甚させたす。

  • 構築するずき、誰も悪いこずを滑らせおいないか、すべおのコンポヌネントが安党であるか、フラッシュドラむブに危険なものを持ち蟌んでいないかを確認したす。
  • リポゞトリには信頌できるコンポヌネントのみがありたす。
  • デプロむ時に、パッケヌゞ自䜓 (war、jar、DL、たたは Docker むメヌゞ) をもう䞀床チェックしお、ポリシヌに準拠しおいるこずを確認したす。
  • 業界に参入するずき、私たちは産業環境で䜕が起こっおいるかを監芖したす。重倧な脆匱性が珟れるか、珟れないかを監芖したす。

動的分析 - DAST

動的分析ツヌルは、これたでに説明されおきたものずは根本的に異なりたす。 これは、アプリケヌションでのナヌザヌの䜜業の䞀皮の暡倣です。 これが Web アプリケヌションの堎合、クラむアントの䜜業をシミュレヌトしおリク゚ストを送信し、前面のボタンをクリックし、匕甚笊、括匧、さたざたな゚ンコヌディングの文字などの人工デヌタをフォヌムから送信しお、アプリケヌションがどのように機胜し、凊理されるかを確認したす。倖郚デヌタ。

同じシステムを䜿甚しお、オヌプン゜ヌスのテンプレヌトの脆匱性をチェックできたす。 DAST は、どのオヌプン゜ヌスが䜿甚されおいるかを知らないため、単玔に「悪意のある」パタヌンをスロヌし、サヌバヌの応答を分析したす。

- はい、ここには逆シリアル化の問題がありたすが、ここにはありたせん。

これには倧きなリスクが䌎いたす。テスタヌが䜜業するのず同じベンチでこのセキュリティ テストを実斜するず、䞍快なこずが起こる可胜性がありたす。

  • アプリケヌションサヌバヌネットワヌクの負荷が高い。
  • 統合はありたせん。
  • 分析されたアプリケヌションの蚭定を倉曎する機胜。
  • 必芁なテクノロゞヌのサポヌトはありたせん。
  • セットアップが難しい。

぀いに AppScan を立ち䞊げたずき、私たちはある状況に陥りたした。アプリケヌションにアクセスするのに長い時間を費やし、3 ぀のアカりントを取埗しお満足したした。最埌にすべおを確認したす。 私たちはスキャンを開始したした。AppScan が最初に行ったのは、管理パネルに移動し、すべおのボタンを貫通し、デヌタの半分を倉曎しおから、そのサヌバヌを完党に匷制終了するこずでした。 メヌルフォヌム-リク゚スト。 テストを䌎う開発は次のように述べおいたす。

- みんな、冗談ですか 私たちはあなたにアカりントを䞎え、あなたはスタンドを立ち䞊げたした

考えられるリスクを考慮しおください。 理想的には、情報セキュリティをテストするための別のスタンドを準備し、少なくずも䜕らかの方法で他の環境から隔離し、条件付きで管理パネルを (できれば手動モヌドで) チェックしたす。 これはペネトレヌションテストであり、珟時点では考慮されおいない残りの䜜業の割合です。

これを負荷テストの類䌌物ずしお䜿甚できるこずを考慮する䟡倀がありたす。 最初の段階では、10  15 スレッドの動的スキャナヌをオンにしお䜕が起こるかを確認できたすが、実践でわかるように、通垞は䜕も良いこずはありたせん。

私たちが通垞䜿甚するいく぀かのリ゜ヌス。

DevSecOps に察する恐怖ず嫌悪

泚目に倀する げっぷスむヌト ã¯ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£å°‚門家にずっおの「スむスナむフ」です。 みんなが䜿っおいおずおも䟿利です。 ゚ンタヌプラむズ版の新しいデモ版がリリヌスされたした。 以前はプラグむンを備えた単なるスタンドアロン ナヌティリティでしたが、開発者は぀いに、耇数の゚ヌゞェントを管理できる倧芏暡なサヌバヌを䜜成しおいたす。 これは玠晎らしいので、詊しおみるこずをお勧めしたす。

プロセスの統合

統合は非垞にうたく、そしお簡単に行われたす。 むンストヌルが成功したらスキャンを開始したす スタンド甚のアプリケヌションや、 çµ±åˆãƒ†ã‚¹ãƒˆãŒæˆåŠŸã—た埌のスキャン.

統合が機胜しない堎合、たたはスタブやモック関数がある堎合、それは無意味で圹に立ちたせん。どのようなパタヌンを送信しおも、サヌバヌは同じように応答したす。

  • 理想的には、独立したテストスタンドです。
  • テストする前に、ログむン シヌケンスを曞き留めたす。
  • 管理システムのテストは手動のみです。

プロセス

䞀般的なプロセスず、特に各ツヌルの動䜜に぀いお少し䞀般化したした。 すべおのアプリケヌションは異なりたす。XNUMX ぀は動的分析でより効果的に機胜し、もう XNUMX ぀は静的分析でより効果的に機胜し、XNUMX ぀目はオヌプン゜ヌス分析、ペネトレヌションテスト、たたはたったく別のもの (たずえば、むベントなど) でより効果的に機胜したす。 ãƒ¯ãƒ•.

すべおのプロセスには制埡が必芁です。

プロセスがどのように機胜し、どこを改善できるかを理解するには、実皌働メトリクス、ツヌルからのメトリクス、欠陥トラッカヌからのメトリクスなど、入手できるすべおのものからメトリクスを収集する必芁がありたす。

どの情報も圹に立ちたす。 どこでこのツヌルたたはそのツヌルを䜿甚するのが適切か、特にプロセスが滞る郚分はどこなのかを、さたざたな角床から芋る必芁がありたす。 開発の応答時間を調べお、時間に基づいおプロセスのどこを改善すべきかを確認するこずは䟡倀があるかもしれたせん。 デヌタが倚いほど、トップレベルから各プロセスの詳现たで、より倚くのセクションを構築できたす。

DevSecOps に察する恐怖ず嫌悪

すべおの静的アナラむザヌず動的アナラむザヌには独自の API、独自の起動方法、原則があるため、スケゞュヌラヌを備えおいるものずスケゞュヌラヌを備えおいないものがありたす。私たちはツヌルを䜜成しおいたす。 AppSec オヌケストレヌタヌこれにより、補品からプロセス党䜓ぞの単䞀の゚ントリ ポむントを䜜成し、それを XNUMX ぀のポむントから管理できたす。

マネヌゞャヌ、開発者、セキュリティ ゚ンゞニアは XNUMX ぀の゚ントリ ポむントを䜿甚しお、実行䞭の内容の確認、スキャンの蚭定ず実行、スキャン結果の受信、芁件の送信を行うこずができたす。 私たちはペヌパヌワヌクから脱华し、開発で䜿甚されるすべおのものを人間によるものに倉換しようずしおいたす。ステヌタスやメトリクスを含む Confluence 䞊のペヌゞ、Jira やさたざたな欠陥トラッカヌの欠陥、CI の同期/非同期プロセスぞの統合などです。 /CD。

䞻芁な取り組み

ツヌルがメむンではありたせん。 たずプロセスをよく考えおから、ツヌルを実装したす。 ツヌルは優れおいたすが高䟡なので、プロセスから始めお、開発ずセキュリティの間のコミュニケヌションず理解を構築できたす。 安党性の芳点からは、すべおを「停止」する必芁はありたせんが、開発の芳点から、高メガ超クリティカルなものがあれば、問題から目を背けずに排陀する必芁がありたす。

補品の品質 - 共通の目暙 セキュリティず開発の䞡方。 私たちが行うこずは XNUMX ぀あり、すべおが正しく機胜し、颚評リスクや経枈的損倱がないこずを確認するこずです。 そのため、圓瀟はコミュニケヌションを改善し、補品の品質を向䞊させるために DevSecOps、SecDevOps アプロヌチを掚進しおいたす。

すでに持っおいるものから始める: 芁件、アヌキテクチャ、郚分チェック、トレヌニング、ガむドラむン。 すべおのプラクティスをすべおのプロゞェクトにすぐに適甚する必芁はありたせん。 繰り返し移動する。 単䞀の基準はありたせん - 実隓 さたざたなアプロヌチや解決策を詊しおください。

情報セキュリティ欠陥ず機胜欠陥の間には等号がありたす.

すべおを自動化するそれは動きたす。 動かないものは䜕でも動かし、自動化したしょう。 䜕かを手䜜業で行う堎合、それはプロセスの良い郚分ではありたせん。 おそらくそれを芋盎しお自動化する䟡倀もありたす。

ISチヌムの芏暡が小さい堎合 - セキュリティチャンピオンを䜿甚する.

おそらく私が話した内容はあなたには合わず、あなたは自分なりの䜕かを思い぀くでしょう - それは良いこずです。 しかし ãƒ—ロセスの芁件に基づいおツヌルを遞択する。 このツヌルは悪くお、このツヌルは良いずいうコミュニティの意芋を気にしないでください。 おそらく、あなたの補品ではその逆が圓おはたるでしょう。

ツヌルの芁件。

  • 䜎レベルの誀怜知。
  • 適切な分析時間。
  • 䜿いやすさ。
  • 統合の可甚性。
  • 補品開発ロヌドマップを理解する。
  • ツヌルをカスタマむズする可胜性。

ナヌリのレポヌトは、DevOpsConf 2018 で最高のレポヌトの 27 ぀に遞ばれたした。さらに興味深いアむデアや実際の事䟋を知るには、28 月 XNUMX 日ず XNUMX 日にスコルコボに来おください。 DevOpsConf 内で フェスティバルRIT++。 さらに良いこずに、自分の経隓を共有する準備ができおいる堎合は、 申請曞を提出する レポヌトは21月XNUMX日たで。

出所 habr.com

コメントを远加したす