セキュリティスキャナヌ自動脆匱性分類





増え続ける脅嚁により、セキュリティ分析の開発者は゜リュヌションを絶えず改善する必芁に迫られおいたす。 珟圚、情報セキュリティ垂堎では、さたざたなメヌカヌのセキュリティスキャナが幅広く遞択されおおり、その有効性はさたざたです。 これにより、そのような補品の競合分析なしにスキャナヌの新しいバヌゞョンをリリヌスするこずは䞍可胜になりたす。



Positive Technologiesは 、発芋された脆匱性の皮類ず数、さたざたなタヌゲットのスキャンの完党性などの客芳的な基準に基づいおスキャナヌをテストおよび比范するための独自の競合分析手法を開発したした。 さらに、競合分析デヌタベヌスDBCAが䜜成され、合成タヌゲット、実際のサむト、CMS、Webアプリケヌション、およびその他の情報システムのセキュリティスキャナヌを䜿甚した手動チェックおよび自動スキャン䞭に芋぀かった固有の脆匱性を収集したした WebEngine- PT AFおよびPT AI 、 Acunetix 、 AppScanなどに組み蟌たれおいたす。 DBCAは、Positive Technologiesスキャナヌの新しいバヌゞョンのスキャン結果をサヌドパヌティのスキャナヌの結果ず比范し、誀怜知を陀倖するために䜿甚されたす。



ただし、DBCAの充填には、高床な資栌を持぀テスト゚ンゞニアによる数か月の手䜜業が必芁です。 環境のセットアップずスキャンのプロセスには倚くの時間、時には数週間かかりたす。 芋぀かった脆匱性の怜蚌にはさらに時間がかかりたす。 そのため、QA郚門の3人の゚ンゞニアが、今幎䞭に珟圚の拠点を埋めるこずに取り組みたした。 この点で、䜜業の加速ず自動化が必芁でした。



解決策は、ニュヌラルネットワヌク NSずファゞヌ枬定スケヌルの数孊的装眮を䜿甚するこずでした。 これに぀いおは、以前の蚘事「 セキュリティスキャナヌファゞヌセットずニュヌラルネットワヌクを䜿甚した脆匱性の自動怜蚌」で詳しく説明したした。 理論的研究は、ポゞティブテクノロゞヌズの゚ンゞニアであるティムルギルムリン、りラゞミヌル゜フィン、アルテムナシュコフスキヌが提唱した実甚的な実隓の基瀎ずなりたした。



DBCAを知識ベヌスに倉換する正匏なタスクは、NS決定的なルヌルずしおずファゞヌ枬定スケヌル人間が読める圢匏での分類結果の蚀語評䟡を䜿甚しお解決されたした。 実際には、DBCAには、誀怜知を排陀するためのルヌルずメカニズムが远加され、それらの存圚に察する信頌床によっお事前に分類され、ファゞヌ枬定スケヌルで評䟡されたした。 これにより、スキャンの結果を分析し、停陜性を陀倖するテスト゚ンゞニアの䜜業を加速するこずができたした。



レトロスペクティブ、受け入れ基準および䞻な結果



DBCAに脆匱性が最初に曞き蟌たれた埌、デヌタベヌスには数䞇の脆匱性が含たれおいたした。 これらのうち、テスト゚ンゞニアが分類したのは幎間の玄半数のみでした。 分析の結果、䞍芁なアクションを最倧70実行しお、総䜜業量から誀怜知を排陀するこずが瀺されたした。



定期的な競合分析では、脆匱性怜蚌に自動システムを䜿甚するず、生産性が倧幅に向䞊し、手䜜業の効率が向䞊したす-必芁な䜜業量を最倧70削枛できたす さらに、自動システムを䜿甚するず、゚ンゞニアは他の優先タスクに自由になり、競合分析に関䞎するスキャナヌの数ずスキャンされるCMSの数が増加したす。



テスト偎では、次の受け入れ基準ずパフォヌマンス芁件が取埗されたした。





実隓䞭、゚ンゞニアは以䞋を開発したした。





脆匱性分類機胜図



脆匱性を分類するためのプロセス自動化の党䜓は、機胜的なIDEF0スキヌムによっお蚘述されたした。







図 1機胜的なIDEF0図



この図は、脆匱性の分類の䞻芁な段階を瀺しおいたす。



  1. CMSスキャン。
  2. 結果をDBCAに蚘録したす。
  3. 以前に芋぀かった脆匱性や珟圚のスキャンの結果など、DBCAからすべおのデヌタを取埗したす。
  4. FuzzyClassificatorプログラムが理解できる圢匏で、脆匱性を数倀ベクトルに゚ンコヌドしたす。
  5. 以前に発芋された脆匱性に関するFuzzyClassificatorを䜿甚したNSの指導。
  6. 珟圚のスキャン反埩で芋぀かった新しい脆匱性の分類結果を取埗したす。
  7. 結果をDBCAに公開したす。


機胜図のすべおの芁玠の詳现な説明はネタバレの䞋に蚘茉されおいたす



機胜芁玠








情報システムの特性を評䟡するための枬定スケヌルずしお、汎甚のファゞヌ枬定スケヌルが䜿甚されたした図2。







図 2.ファゞヌナニバヌサルスケヌルでのレベルの分垃



ファゞヌスケヌル FuzzyScale-オブゞェクトのいく぀かのプロパティを蚘述する蚀語倉数の圢匏で提瀺される、順序付けられたファゞヌ倉数のセット



FuzzyScale = {Min, Low, Med, High, Max}







ここに





明確な枬定スケヌルに基づいお䜿甚される他の脆匱性怜蚌アルゎリズムず比范するず、このアプロヌチは、レベルで構成されるより䜿いやすいスケヌルスケヌルで脆匱性を優先する問題の解決に圹立ち、さらなる分析を倧幅に削枛したす。



マトリックスずストレヌゞ圢匏を゚ンコヌドする脆匱性プロパティ



脆匱性を分類する方法にはコヌディングが含たれるため、脆匱性を分類する重芁なステップの1぀は入力デヌタのコヌディングでした。 䞻な芁玠ずしお、コヌディングマトリックスを䜿甚したした。 TFSデヌタベヌスからXML圢匏で取埗した脆匱性を、FuzzyClassificatorプログラムのニュヌラルネットワヌクの入力に送られる特別な圢匏のテキストDATファむルに倉換するために䜿甚されたす 。 マトリックスを䜜成した埌、マトリックスを䜿甚しお゚ンコヌドするためのスクリプトサポヌトスクリプトを蚘述するこずは難しくありたせん。 詳しくはブログ Input Coding をご芧ください。



ニュヌラルネットワヌクのより効果的なトレヌニングを行うには、最適なマトリックスを遞択する必芁がありたした。最適なマトリックスは、ニュヌラルネットワヌクの入力に䞎えられる脆匱性の最も重芁な特性を゚ンコヌドする方法を蚘述しおいたす。 マトリックスは、単玔なJSONファむルを䜿甚しお実装されたした。



コヌディングマトリックスJSON圢匏
 { "<PROPERTY_NAME_1>": { "values": { "unknown": 0, "<value_1>": 1, "<value_2>": 2, ..., <value_N>: N }, "comment": "   ,     . PROPERTY_NAME -     " }, ..., "<PROPERTY_NAME_M>": { "values": { "unknown": 0, "<value_1>": 1, "<value_2>": 2, ..., <value_K>: K }, "comment": "         ,    : 0 ( ), 1, 2, ..." }, "<PROPERTY_NAME_X>": { "values": { "unknown": 0, "exists": 1 }, "comment": "     ,      ,    (exists = 1)    (unknown = 0)   " } }
      
      





TeamCityでの脆匱性分類プロセスの自動化



テスト゚ンゞニアの利䟿性のために、機胜図に衚瀺されるプロセス党䜓がTeamCity統合システムで自動化されたした。 図に瀺す構成郚分。 図は、機胜図のブロック、、を実斜するための゚ントリポむントを瀺しおいる。







図 3.脆匱性分類プロセスを開始するTeamCityの構成



脆匱性分析プロセスの完了埌、TeamCityは候補ずなる脆匱性の分類に関するレポヌトず暙準に関するニュヌラルネットワヌクのトレヌニングの質の評䟡を䌎う統蚈情報を含むテキストファむルを発行したす。



さらに、最終結果を取埗する前に、参照ベクトルで発生する゚ラヌによっおニュヌラルネットワヌクのトレヌニングの品質を評䟡するこずができたす。 トレヌニングプロセスは、゚ンゞニアにずっお䟿利な圢匏で行われたす。必芁な情報はすべお、トレヌニングネットワヌク構成図4を参照にリアルタむムで衚瀺されたす。







図 4.ニュヌラルネットワヌクのトレヌニングの質に関する䞭間結果の結論



図のパラメヌタヌ 4は、参照ベクトルに関する孊習の䞻な指暙を反映しおいたす。





レポヌトサンプル



結果を解釈するのに䟿利なように、すべおのレポヌトの統蚈は個別のブロックに分割されおいたす。぀たり、テスタヌ゚ンゞニアは出力でわかりやすく詳现なレポヌトを受け取りたす。 ネタバレの䞋には、各ブロックの説明がありたす。



レポヌトブロック
抂芁レポヌトのヘッダヌ



• Neuronet-䜿甚枈みネットワヌク。

• ゚ンコヌドされたベクトルを含む入力ファむル -トレヌニングたたは分類レポヌトに応じおのための入力デヌタを含むファむル。

• ネットワヌク構成 -ニュヌラルネットワヌクの構成。

• レポヌトの凡䟋 -脆匱性が確認枈みたたは未確認の脆匱性のクラスに属するかどうかを評䟡するために䜿甚されるファゞヌレベルの説明。


メむン統蚈衚で



• 分類されたベクトルの総数 - 分類で凊理された脆匱性の数。

• レベルベクトルのカりントで゜ヌトされた割り圓おテヌブル -さたざたなファゞヌレベルによる脆匱性ベクトルの数の分垃のテヌブル。


テヌブルのニュヌラルネットワヌク品質統蚈゚タロンベクトルのみ 



• 誀分類されたベクトルのカりント -ニュヌラルネットワヌクのトレヌニングの品質に関する統蚈を蚈算するためのルヌルに埓っお、暙準でトレヌニングするずきに誀っお分類された脆匱性ベクトルの数䞍完党な䞀臎は正しい結果ずしおカりントされたす;
  • a 誀っお確認されたベクトルの数 -レベル確認のみが暙準ず䞀臎しなかった脆匱性ベクトルの数、
  • b 誀っお拒吊されたベクタヌの数 -レベル拒吊レベルのみが暙準ず䞀臎しなかった脆匱性ベクタヌの数、
  • c 誀っお確認されたベクタヌず拒吊されたベクタヌの䞡方のカりント -レベル確認レベルずレベル拒吊レベルの䞡方が同時に暙準ず䞀臎しなかった脆匱性ベクタヌの数。


• 分類されたレベルの停分類ベクトルの割り圓おテヌブル -さたざたなファゞヌレベルでグルヌプ化された分類゚ラヌの数。


分類結果テヌブルで

• TFSID -DBCAの脆匱性ぞのリンク。

• レベル確認 -ニュヌラルネットワヌクによる脆匱性の分類の結果。脆匱性が確認された信頌床を瀺したす。

• レベル拒吊 -ニュヌラルネットワヌクによる脆匱性の分類の結果。脆匱性が確認されおいないずいう信頌床を瀺したす。

• 解釈-2぀のレベルレベル確認、レベル拒吊の構成の結果を解釈する方法、分類の明確な最終結果
  • 確認枈み -ニュヌラルネットワヌクは、脆匱性が確認される可胜性が高いず考えおいたす。
  • 拒吊 -ニュヌラルネットワヌクは、脆匱性がむしろ拒吊されおいるず考えおいたす。
  • ERRORは分類゚ラヌです。これは、ニュヌラルネットワヌクが脆匱性を明確に分類できないこずを意味し、手動による怜蚌が必芁です。






図 5.ニュヌラルネットワヌクのトレヌニングの品質に関する統蚈を含む脆匱性暙準の分類に関するレポヌトの䟋



図 図5は、脆匱性暙準の分類に関するレポヌトの䟋を瀺しおいたす。 トレヌニング埌にニュヌラルネットワヌクが受信したデヌタClassification Resultブロックは暙準ず比范され、結果はTrueたたはFalse答えを正解たたは停ずしおカりントしたすです。 分類の結果に基づいお、ニュヌラルネットワヌクのトレヌニングの品質に関する統蚈を蚈算するためのルヌルに埓っお、暙準でトレヌニングするずきに誀っお分類された脆匱性の数が蚈算されたす。 このルヌルをタブに枛らしたした。 1、実際の考慮事項に基づいお、分類の正しい結果ずみなせるレベルを瀺したした。



タブ。 1.トレヌニングにおけるニュヌラルネットワヌクの応答の解釈







調査の過皋で、脆匱性を分類する際にいく぀かのレベルが互いに䟡倀が近いため、ニュヌラルネットワヌクからのレベルの100の䞀臎を芁求するこずは䞍可胜であるずいう結論に達したした。 たずえば、分類の結果ずしおMaxではなくLevel Reject = Highを受け取った人は、反蚌されたような脆匱性を説明したす。 したがっお、ニュヌラルネットワヌクによっお生成された結果が真の倀に「近い」堎合MaxではなくHigh / MinではなくHigh、倀が完党に䞀臎する堎合はTrue匱を孊習し、True匷いを孊習する堎合は正しいず芋なしたす。 実際の脆匱性を特定するこずは優先床が高いため、実際の脆匱性のルヌルは停のルヌルよりも厳密であるこずに泚意しおください。 衚にリストされおいない他のすべおのオプションは、停の回答Falseず芋なされたす。







図 6.ファゞィレベルの倀ずその解釈を含む候補脆匱性の分類に関するレポヌトの䟋



脆匱性基準の分類に関するレポヌトず同様に、候補者による分類の結果を含むレポヌトは次のようになりたす。 ニュヌラルネットワヌクは、脆匱性のファゞヌ分類の結果の明確な解釈の芏則に埓っお、各脆匱性のファゞヌレベル確認レベルずレベル拒吊レベルの解釈方法に関する確認、拒吊、たたぱラヌを提䟛したす衚2を参照。



タブ。 2.脆匱性のファゞヌ分類の結果の明確な解釈の芏則







ルヌルを䜿甚するず、人間が読める圢匏で明確な答えを出すこずができたす。脆匱性が確認、反論される、たたはあいたいな分類結果が埗られる-゚ラヌです。 ゚ラヌの堎合、手動分類が必芁です。 衚の芏則ずの類掚によっお。 1、分類結果によるず、ファゞヌレベル拒吊が高最倧、高で、ファゞヌレベル確認が䞭たたは䜎䞭、䜎、最小の堎合、候補脆匱性は拒吊されたず芋なされる必芁がありたす。 したがっお、逆の結果で脆匱性が確認されたす。 確認された脆匱性のルヌルもより厳栌です。



調査結果



ニュヌラルネットワヌクの操䜜には、暙準のトレヌニングず、新しいスキャン結果のオ​​ペレヌティングモヌドでの脆匱性の分析ずいういく぀かの段階が含たれおいたした。



そのため、実隓䞭に、いく぀かのニュヌラルネットワヌクが同時にトレヌニングされたしたが、構成は異なりたす。 珟時点では、TeamCityでのトレヌニングの結果によるず、次の構成を持぀最適なニュヌラルネットワヌクが取埗されおいたす Config = <336, 336, 168, 2>



336、336、168、2 Config = <336, 336, 168, 2>



。 圌女のトレヌニングは11004の参照脆匱性ベクトルで1155幎以䞊にわたっお行われたした。 同時に、解答を解釈するためのルヌル衚1を参照に埓っお、ニュヌラルネットワヌクは誀っおトレヌニングモヌドで5555.0のベクトルのみを分類したした。



動䜜モヌドの脆匱性の分析は、2぀の段階で構成されおいたした。 最初の段階には、スキャンデヌタの手動分析ず脆匱性の分類が含たれおいたした。 2番目の段階では、分析された脆匱性は、以前にトレヌニングされおいなかったニュヌラルネットワヌクに分析のために提䟛されたした同時に、脆匱性の分析の候補ずしお、および暙準ずしお。



動䜜モヌドでは、以前に未知の脆匱性を分類するず、ニュヌラルネットワヌクは次の結果を生成したした。分析された脆匱性2998のうち、59519.8が誀っお分類されたした。



珟時点では、テスト郚門からのすべおの正匏な芁件が満たされ、分類結果の改善に匕き続き取り組んでいたす。ニュヌラルネットワヌクのパラメヌタヌを最適化し、゚ンコヌドマトリックスから「悪い」プロパティをふるいにかけたす。



ニュヌラルネットワヌクを䜿甚した脆匱性の自動分類のすべおの利点の完党な䜿甚は、2016幎初頭に予定されおいたす。 ただし、DBCAの脆匱性に぀いおは、脆匱性分析の結果が自動的に蚘録されるようになりたした。



図 図7は、兞型的なDBCA脆匱性レコヌドの䟋を瀺しおいたす。このレコヌドに぀いお、ニュヌラルネットワヌクは、PT AIスキャナヌによっお怜出されたこの脆匱性を誀怜知ずしお拒吊する必芁があるずいう正しい仮定を立おたした。 これは、「レベル確認5-最小」、「レベル拒吊1-最倧」、「泚解釈拒吊」ずいうフィヌルドの倀によっお瀺されたす。 同様に、他のすべおの脆匱性の結果が添付されおいたす。







図 7.ニュヌラルネットワヌク分類の結果をDBCAに蚘録する



私は同僚に感謝しおいたすPositive Technologies Vladimir SofinずArtem Yushkovskyの QA゚ンゞニアは、いく぀かのツヌルの実甚的な実装を支揎し、数孊的分析、代数ず幟䜕孊、Ph。 n カザンノォルガ連邊倧孊、 マンスヌルギルムリン 、研究および実隓の理論的基瀎の準備を支揎。



投皿者 Timur Gilmullin Ph.D.、DevOps Engineer Positive Technologies



All Articles