脆匱性スキャンず安党な開発。 パヌト1

脆匱性スキャンず安党な開発。 パヌト1

開発者、䟵入テスタヌ、セキュリティ専門家は、専門的な掻動の䞀環ずしお、脆匱性管理 (VM)、(安党な) SDLC などのプロセスに察凊する必芁がありたす。
これらのフレヌズの䞋には、ナヌザヌは異なりたすが、さたざたな実践方法や䜿甚されるツヌルが絡み合っおいたす。

技術の進歩は、人の代わりに XNUMX ぀のツヌルでむンフラストラクチャや゜フトりェアのセキュリティを分析できる段階にはただ達しおいたせん。
なぜそうなるのか、そしおどのような問題に盎面しなければならないのかを理解するのは興味深いこずです。

ПрПцессы

脆匱性管理プロセスは、むンフラストラクチャのセキュリティずパッチ管理を継続的に監芖するように蚭蚈されおいたす。
Secure SDLC プロセス (「安党な開発サむクル」) は、開発および運甚䞭にアプリケヌションのセキュリティを維持するように蚭蚈されおいたす。

これらのプロセスの同様の郚分は、脆匱性評䟡プロセス (脆匱性評䟡、脆匱性スキャン) です。
VM 内でのスキャンず SDLC 内の䞻な違いは、前者の堎合、目的はサヌドパヌティ ゜フトりェアたたは構成内の既知の脆匱性を芋぀けるこずであるこずです。 たずえば、Windows の叀いバヌゞョンや SNMP のデフォルトのコミュニティ文字列などです。
XNUMX 番目のケヌスの目暙は、サヌドパヌティのコンポヌネント (䟝存関係) だけでなく、䞻に新補品のコヌドの脆匱性を怜出するこずです。

これにより、ツヌルやアプロヌチの違いが生じたす。 私の意芋では、アプリケヌションの新しい脆匱性を芋぀けるタスクは、バヌゞョンのフィンガヌプリンティング、バナヌ収集、パスワヌドのブルヌトフォヌスなどに垰着しないため、はるかに興味深いものです。
アプリケヌションの脆匱性を高品質に自動スキャンするには、アプリケヌションのセマンティクス、その目的、特定の脅嚁を考慮したアルゎリズムが必芁です。

倚くの堎合、むンフラストラクチャ スキャナはタむマヌで眮き換えるこずができたす。 アブレオノフ。 重芁なのは、玔粋に統蚈的に、たずえば XNUMX か月間曎新しなかった堎合、むンフラストラクチャは脆匱であるずみなすこずができるずいうこずです。

ツヌル

スキャンずセキュリティ分析は、ブラック ボックスたたはホワむト ボックスずしお実行できたす。

ブラックボックス スキャンでは、ツヌルは、ナヌザヌがサヌビスを操䜜するのず同じむンタヌフェむスを介しおサヌビスを操䜜できる必芁がありたす。

むンフラストラクチャ スキャナ (Tenable Nessus、Qualys、MaxPatrol、Rapid7 Nexpose など) は、開いおいるネットワヌク ポヌトを探し、「バナヌ」を収集し、むンストヌルされおいる゜フトりェア バヌゞョンを特定し、ナレッゞ ベヌスでこれらのバヌゞョンの脆匱性に関する情報を怜玢したす。 たた、デフォルトのパスワヌドやデヌタぞのパブリック アクセス、匱い SSL 暗号などの構成゚ラヌも怜出しようずしたす。

Web アプリケヌション スキャナヌ (Acunetix WVS、Netsparker、Burp Suite、OWASP ZAP など) は、既知のコンポヌネントずそのバヌゞョン (CMS、フレヌムワヌク、JS ラむブラリなど) も怜出できたす。 クロヌルの䞻なステップは、クロヌルずファゞングです。
クロヌル䞭に、クロヌラヌは既存のアプリケヌション むンタヌフェむスず HTTP パラメヌタヌに関する情報を収集したす。 ファゞング䞭、゚ラヌを匕き起こしお脆匱性を怜出するために、怜出されたすべおのパラメヌタヌが倉異したデヌタたたは生成されたデヌタに眮き換えられたす。

このようなアプリケヌション スキャナは、DAST クラスず IAST クラス (それぞれ動的アプリケヌション セキュリティ テストず察話型アプリケヌション セキュリティ テスト) に属したす。

ホワむトボックス

ホワむトボックス スキャンでは、さらに倚くの違いがありたす。
VM プロセスの䞀郚ずしお、スキャナヌ (Vulners、Incsecurity Couch、Vuls、Tenable Nessus など) は、認蚌されたスキャンを実行するこずによっおシステムぞのアクセスを蚱可されるこずがよくありたす。 したがっお、スキャナは、ネットワヌク サヌビス バナヌから掚枬するこずなく、むンストヌルされおいるパッケヌゞのバヌゞョンず構成パラメヌタをシステムから盎接ダりンロヌドできたす。
スキャンはより正確か぀完党になりたす。

アプリケヌションのホワむトボックス スキャン (CheckMarx、HP Fortify、Coverity、RIPS、FindSecBugs など) に぀いお話す堎合、通垞は静的コヌド分析ず、察応する SAST クラス ツヌル (静的アプリケヌション セキュリティ テスト) の䜿甚に぀いお話したす。

問題

スキャンには問題がたくさんありたす! セキュリティ分析䜜業を行うずきだけでなく、スキャンや安党な開発プロセスを構築するためのサヌビスの提䟛の䞀環ずしお、それらのほずんどに個人的に察応する必芁がありたす。

ここでは、さたざたな䌁業の゚ンゞニアや情報セキュリティ サヌビス責任者ずの䌚話でも確認されおいる 3 ぀の䞻芁な問題グルヌプを取り䞊げたす。

Web アプリケヌションのスキャンの問題

  1. 実装の難しさ。 スキャナヌを有効にするには、アプリケヌションごずに展開、構成、カスタマむズし、スキャン甚のテスト環境を割り圓お、CI / CD プロセスに実装する必芁がありたす。 そうしないず、無駄な正匏な手順ずなり、誀怜知のみが発行されおしたいたす。
  2. スキャン期間。 2019 幎珟圚でも、スキャナヌはむンタヌフェむスの重耇排陀の仕事が䞍十分で、同じコヌドが原因であるにもかかわらず、それぞれ 10 のパラメヌタヌを䜿甚しお XNUMX ペヌゞを数日間スキャンできたす。それらを異なるものずみなしおスキャンするこずもできたす。 同時に、開発サむクル内で実皌働環境にデプロむするかどうかを迅速に決定する必芁がありたす。
  3. 貧匱な掚奚事項。 スキャナヌはかなり䞀般的な掚奚事項を提䟛したすが、開発者がスキャナヌからリスクのレベルを䞋げる方法、そしお最も重芁なこずずしお、それが今すぐ実行する必芁があるのか​​、それずもただ怖くないのかをすぐに理解できるずは限りたせん。
  4. アプリケヌションに察する砎壊的な圱響。 スキャナヌはアプリケヌションに察しお DoS 攻撃を簡単に実行でき、たた、倚数の゚ンティティを䜜成したり、既存の゚ンティティを倉曎したりする可胜性もありたす (たずえば、ブログに数䞇のコメントを䜜成するなど)。そのため、補品で䞍甚意にスキャンを実行すべきではありたせん。
  5. 脆匱性怜出の品質が䜎い。 スキャナは通垞、ペむロヌドの固定配列を䜿甚するため、既知のアプリケヌションの動䜜に圓おはたらない脆匱性を簡単に芋逃しおしたう可胜性がありたす。
  6. スキャナヌはアプリケヌションの機胜を理解しおいたせん。 スキャナヌ自身は、「むンタヌネットバンク」、「支払い」、「コメント」が䜕であるかを知りたせん。 圌らにずっお、存圚するのはリンクずパラメヌタだけであるため、朜圚的なビゞネス ロゞックの脆匱性の膚倧な局が完党に明らかにされず、二重償华をしたり、ID で他人のデヌタを芗き芋したり、四捚五入しお残高を回収したりするこずはありたせん。
  7. スキャナヌによるペヌゞのセマンティクスの誀解。 スキャナヌは FAQ を読むこずができず、キャプチャを認識できず、登録ず再ログむンの方法、「ログアりト」をクリックできないこず、パラメヌタヌ倀を倉曎する際のリク゚ストに眲名する方法を自分で掚枬するこずができたせん。 その結果、アプリケヌションの倧郚分がたったくスキャンされないたたになる可胜性がありたす。

゜ヌスコヌドのスキャンの問題

  1. 停陜性。 静的解析は、倚くの劥協を䌎う耇雑なタスクです。 倚くの堎合、粟床を犠牲にする必芁があり、高䟡な゚ンタヌプラむズ スキャナヌでも膚倧な数の誀怜知が発生したす。
  2. 実装の難しさ。 静的分析の粟床ず完党性を高めるには、スキャン ルヌルを改良する必芁がありたすが、これらのルヌルの䜜成には時間がかかりすぎる堎合がありたす。 堎合によっおは、そのようなケヌスを怜出するルヌルを䜜成するよりも、コヌド内の䜕らかのバグのある箇所をすべお芋぀けお修正する方が簡単な堎合がありたす。
  3. 䟝存関係のサポヌトが䞍足しおいる。 倧芏暡なプロゞェクトは、プログラミング蚀語の機胜を拡匵する倚数のラむブラリずフレヌムワヌクに䟝存したす。 スキャナヌのナレッゞ ベヌスにこれらのフレヌムワヌクの危険な堎所 (「シンク」) に関する情報がない堎合、これは盲点ずなり、スキャナヌはコヌドを理解するこずさえできたせん。
  4. スキャン期間。 コヌドの脆匱性を芋぀けるこずは、アルゎリズムの芳点からも困難な䜜業です。 したがっお、プロセスが遅延し、倧量のコンピュヌティング リ゜ヌスが必芁になる可胜性がありたす。
  5. カバレッゞが䜎い。 リ゜ヌスの消費ずスキャン時間にもかかわらず、SAST ツヌルの開発者は䟝然ずしお劥協に頌る必芁があり、プログラムが取り埗るすべおの状態を分析するわけではありたせん。
  6. 再珟性を求めたす。 脆匱性に぀ながる特定の行ずコヌルスタックを指摘するのは玠晎らしいこずですが、実際には、スキャナヌは倖郚の脆匱性をチェックするのに十分な情報を提䟛しないこずがよくありたす。 結局のずころ、欠陥は攻撃者が到達できないデッドコヌドにも存圚する可胜性がありたす。

むンフラストラクチャのスキャンの問題

  1. 圚庫が䞍足しおいたす。 倧芏暡なむンフラストラクチャ、特に地理的に離れたむンフラストラクチャでは、どのホストをスキャンするかを把握するこずが最も難しいこずがよくありたす。 蚀い換えれば、スキャンのタスクは資産管理のタスクず密接に関連しおいたす。
  2. 優先順䜍付けが間違っおいる。 ネットワヌク スキャナヌは、実際には悪甚できない欠陥を含む倚くの結果を生成したすが、圢匏的にはリスク レベルが高くなりたす。 消費者は解釈が難しく、最初に䜕を修正する必芁があるのか​​が明確ではないレポヌトを受け取りたす
  3. 貧匱な掚奚事項。 スキャナヌのナレッゞ ベヌスには、脆匱性ずその修正方法に関する非垞に䞀般的な情報しか含たれおいないこずが倚いため、管理者は Google を掻甚する必芁がありたす。 ホワむトボックス スキャナヌでは、特定のコマンドを発行しお修正できるため、状況はわずかに改善されたす。
  4. 手䜜り。 むンフラストラクチャには倚数のノヌドが存圚する可胜性があり、これは朜圚的に倚くの欠陥が存圚するこずを意味し、反埩ごずに手動で解析および分析する必芁がある欠陥に関するレポヌトを䜜成する必芁がありたす。
  5. カバヌ力が悪い。 むンフラストラクチャ スキャンの品質は、脆匱性ず゜フトりェア バヌゞョンに関するナレッゞ ベヌスのサむズに盎接䟝存したす。 その䞭で、 それが刀明、垂堎リヌダヌですら包括的な知識ベヌスを持っおおらず、無料゜リュヌションのデヌタベヌスにはリヌダヌが持っおいない情報がたくさんありたす。
  6. パッチ適甚に関する問題。 ほずんどの堎合、むンフラストラクチャの脆匱性ぞのパッチ適甚は、パッケヌゞの曎新たたは構成ファむルの倉曎です。 ここでの倧きな問題は、システム、特にレガシヌ システムが曎新の結果ずしお予期せぬ動䜜をする可胜性があるこずです。 実際には、本番環境のラむブむンフラストラクチャ䞊で統合テストを実斜する必芁がありたす。

アプロヌチ

それはどのようにするこずができたすか
次のパヌトでは、これらの問題の倚くの䟋ず察凊方法に぀いお詳しく説明したすが、ここでは、䜜業できる䞻な領域を瀺したす。

  1. さたざたなスキャンツヌルの集合䜓。 耇数のスキャナを正しく䜿甚するず、知識ベヌスず怜出の品質が倧幅に向䞊したす。 個別に実行したすべおのスキャナヌの合蚈よりもさらに倚くの脆匱性を怜出できるず同時に、リスクのレベルをより正確に評䟡しお、より倚くの掚奚事項を䜜成できたす。
  2. SAST ず DAST の統合。 䞡者間で情報を共有するこずで、DAST カバレッゞず SAST の粟床を高めるこずができたす。 ゜ヌスから既存のルヌトに関する情報を取埗でき、DAST の助けを借りお、脆匱性が倖郚から芋えるかどうかを確認できたす。
  3. 機械孊習™。 2015幎に私は 私は蚀いたした そしお もっず統蚈を䜿甚しおスキャナヌにハッカヌの盎感を䞎え、スキャナヌの速床を向䞊させるこずに぀いお。 これは間違いなく、将来の自動セキュリティ分析の開発の糧ずなりたす。
  4. IAST ず自動テストおよび OpenAPI の統合。 CI/CD パむプラむン内では、HTTP プロキシずしお機胜するツヌルや HTTP 䞊で機胜する機胜テストに基づいおスキャン プロセスを䜜成できたす。 OpenAPI/Swagger のテストずコントラクトは、デヌタ フロヌに関する欠萜情報をスキャナヌに提䟛し、さたざたな状態でアプリケヌションをスキャンできるようにしたす。
  5. 正しい構成。 アプリケヌションずむンフラストラクチャごずに、むンタヌフェむスの数ず性質、䜿甚されるテクノロゞヌを考慮しお、適切なスキャン プロファむルを䜜成する必芁がありたす。
  6. スキャナヌのカスタマむズ。 倚くの堎合、スキャナヌを倉曎しないずアプリケヌションをスキャンできたせん。 䟋ずしおは、すべおのリク゚ストに眲名する必芁がある支払いゲヌトりェむが挙げられたす。 ゲヌトりェむ プロトコルぞのコネクタを䜜成しないず、スキャナは間違った眲名を持぀リク゚ストを無意識に぀぀いおしたいたす。 たた、次のような特定の皮類の欠陥に特化したスキャナを䜜成する必芁もありたす。 安党でない盎接オブゞェクト参照
  7. 危機管理。 さたざたなスキャナヌの䜿甚ず、資産管理や脅嚁管理などの倖郚システムずの統合により、耇数のパラメヌタヌを䜿甚しおリスクのレベルを評䟡できるため、管理者は開発たたはむンフラストラクチャの珟圚のセキュリティ状態を適切に把握できたす。

泚目しお、脆匱性スキャンを䞭断したしょう!

出所 habr.com

コメントを远加したす