Scansione di vulnerabilità è sviluppu sicuru. Parte 1

Scansione di vulnerabilità è sviluppu sicuru. Parte 1

Comu parte di e so attività prufessiunali, i sviluppatori, i pentesters è i prufessiunali di sicurità anu da trattà cù prucessi cum'è a Gestione di Vulnerabilità (VM), (Secure) SDLC.
Sottu sti frasi sò parechji setti di pratiche è arnesi utilizati chì sò intrecciati, ancu s'è i so utilizatori sò diffirenti.

U prugressu tecnologicu ùn hà ancu ghjuntu à u puntu induve un strumentu pò rimpiazzà una persona per analizà a sicurità di l'infrastruttura è u software.
Hè interessante per capisce perchè questu hè cusì, è chì prublemi unu deve affruntà.

I prucessi

U prucessu di Gestione di Vulnerabilità hè cuncepitu per monitorà continuamente a sicurità di l'infrastruttura è a gestione di patch.
U prucessu SDLC Secure ("ciclu di sviluppu sicuru") hè pensatu per mantene a sicurità di l'applicazione durante u sviluppu è l'operazione.

Una parte simili di sti prucessi hè u prucessu di Valutazione di Vulnerabilità - valutazione di vulnerabilità, scanning di vulnerabilità.
A principal diferenza trà u scanning in VM è SDLC hè chì in u primu casu, u scopu hè di truvà vulnerabili cunnisciuti in software di terzu o in una cunfigurazione. Per esempiu, una versione obsoleta di Windows o a stringa di a cumunità predeterminata per SNMP.
In u sicondu casu, l'ughjettu hè di detectà e vulnerabilità micca solu in cumpunenti di terzu (dipendenze), ma principalmente in u codice di u novu pruduttu.

Questu dà origine à differenzi in arnesi è approcci. In u mo parè, u compitu di truvà novi vulnerabilità in una applicazione hè assai più interessante, postu chì ùn si riduce micca à a versione di impronte digitali, a cullezzione di banner, a forza bruta di password, etc.
Un scanning automatizatu di alta qualità di e vulnerabilità di l'applicazioni richiede algoritmi chì piglianu in contu a semantica di l'applicazione, u so scopu è e minacce specifiche.

U scanner di l'infrastruttura pò esse spessu rimpiazzatu cù un timer, cum'è u avleonov. U puntu hè chì puramente statisticamente, pudete cunsiderà a vostra infrastruttura vulnerabile se ùn l'avete micca aghjurnatu per, dì, un mese.

Ferramenti

U scanning, è ancu l'analisi di sicurezza, pò esse realizatu cum'è una scatula negra o una scatula bianca.

Black Box

Cù scanning blackbox, l'uttellu deve esse capace di travaglià cù u serviziu per mezu di e stesse interfacce chì l'utilizatori travaglianu cun ellu.

I scanners di l'infrastruttura (Tenable Nessus, Qualys, MaxPatrol, Rapid7 Nexpose, etc.) cercanu porti di rete aperti, recullanu "banners", identificanu e versioni di u software installatu, è cercanu a so basa di cunniscenza per infurmazioni nantu à e vulnerabilità in queste versioni. Pruvanu ancu di detect errori di cunfigurazione cum'è password predeterminate o accessu publicu à e dati, cifru SSL debule, etc.

Scanners d'applicazioni Web (Acunetix WVS, Netsparker, Burp Suite, OWASP ZAP, etc.) ponu ancu detectà cumpunenti cunnisciuti è e so versioni (per esempiu CMS, frameworks, biblioteche JS). I passi principali di crawl sò crawling è fuzzing.
Durante u crawler, u crawler raccoglie infurmazioni nantu à l'interfacce di l'applicazione esistenti è i paràmetri HTTP. Durante u fuzzing, tutti i paràmetri rilevati sò sustituiti cù dati mutati o generati per pruvucà un errore è detectà una vulnerabilità.

Tali scanners d'applicazioni appartenenu à e classi DAST è IAST - rispettivamente Teste di Sicurezza di Applicazioni Dinamiche è Interattive.

Scatula bianca

Cù scanning whitebox, ci sò più differenze.
Cum'è parte di u prucessu VM, i scanners (Vulners, Incsecurity Couch, Vuls, Tenable Nessus, etc.) sò spessu datu l'accessu à i sistemi eseguendu una scansione autentificata. Cusì, u scanner pò scaricà versioni di pacchetti installati è paràmetri di cunfigurazione direttamente da u sistema, senza guessing them from banners di serviziu di rete.
A scansione hè più precisa è cumpleta.

Se parlemu di scanning whitebox (CheckMarx, HP Fortify, Coverity, RIPS, FindSecBugs, etc.) di l'applicazioni, allora parlemu di solitu di l'analisi di codice staticu è l'usu di i strumenti di classi SAST currispondenti - Testing di sicurezza di l'applicazioni statiche.

Problemi

Ci sò parechji prublemi cù scanning! Aghju da trattà cù a maiò parte di elli personalmente cum'è parte di a prestazione di un serviziu per a custruzzione di scanning è i prucessi di sviluppu sicuru, è ancu quandu si facenu un travagliu di analisi di sicurezza.

Scupriteraghju 3 gruppi principali di prublemi, chì sò ancu cunfirmati da conversazioni cù ingegneri è capi di servizii di sicurità di l'infurmazioni in diverse cumpagnie.

Problemi di scansione di l'applicazioni Web

  1. Difficultà di implementazione. I scanners anu da esse implementati, cunfigurati, persunalizati per ogni applicazione, attribuiti un ambiente di prova per scans è implementati in u prucessu CI / CD per esse efficace. Altrimenti, serà una prucedura formale inutile, chì emette solu falsi pusitivi
  2. Durata di scansione. I scanners, ancu in u 2019, facenu un poviru travagliu di deduplicazione di interfacce è ponu scansà mille pagine cù 10 paràmetri ognunu per ghjorni, cunsiderenduli diversi, ancu s'è u listessu codice hè rispunsevule per elli. À u listessu tempu, a decisione di implementà à a produzzione in u ciculu di sviluppu deve esse fatta rapidamente.
  3. Poveri cunsiglii. Scanners dà cunsiglii abbastanza generale, è ùn hè micca sempre pussibule per un sviluppatore di capisce rapidamente da elli cumu riduce u livellu di risicu, è più importantemente, s'ellu deve esse fattu avà, o ùn hè micca spaventoso.
  4. Impattu distruttivu nantu à l'applicazione. I scanners ponu facirmenti fà un attaccu DoS à una applicazione, è ponu ancu creà un gran numaru di entità o mudificà quelli esistenti (per esempiu, creanu decine di millaie di cumenti nantu à un blog), perchè ùn deve esse micca pensatu à scansà un pruduttu.
  5. Povera qualità di rilevazione di vulnerabilità. I scanners utilizanu tipicamente un array fissu di carichi utili è ponu facilmente mancate una vulnerabilità chì ùn si mette micca in u so cumpurtamentu di l'applicazione cunnisciuta.
  6. U scanner ùn capisce micca e funzioni di l'applicazione. I scanners stessi ùn sanu micca ciò chì hè un "bancu Internet", "pagamentu", "cumentu". Per elli, ci sò solu ligami è paràmetri, cusì un grande stratu di pussibuli vulnerabili di logica cummerciale resta cumplettamente scupertu, ùn anu micca indovinatu di fà una doppia scrittura, sguardu i dati di l'altri per ID o sbulicà l'equilibriu per arrotondamentu.
  7. Malcomprensione di a semantica di a pagina da u scanner. I scanners ùn ponu micca leghje FAQ, ùn ponu micca ricunnosce i captchas, ùn anu micca indovinatu per elli stessi cumu si registrà è poi re-login, chì ùn pudete micca cliccà "logout", è cumu firmà e dumande quandu cambianu i valori di i paràmetri. In u risultatu, a maiò parte di l'applicazioni pò esse micca scansatu.

Problemi di scansione di codice sorgente

  1. Falsi pusitivi. L'analisi statica hè un compitu cumplessu chì implica parechji cumprumessi. Spessu avete da sacrificà a precisione, è ancu i scanners d'impresa caru dà un gran numaru di falsi pusitivi.
  2. Difficultà di implementazione. Per aumentà a precisione è a cumplessità di l'analisi statica, hè necessariu di raffinà e regule di scanning, è scrive queste regule pò esse troppu tempu. A volte, hè più faciule per truvà tutti i posti in u codice cù qualchì tipu di bug è riparà quelli chì scrive una regula per detectà tali casi.
  3. Mancanza di sustegnu di dependenza. I grandi prughjetti dipendenu da un gran numaru di biblioteche è frameworks chì allarganu e capacità di a lingua di prugrammazione. Se ùn ci hè micca infurmazione nantu à i lochi periculosi ("sinks") in questi frameworks in a basa di cunniscenza di u scanner, questu diventerà un locu cecu, è u scanner simpricimenti ùn capisce micca ancu u codice.
  4. Durata di scansione. Truvà vulnerabilità in u codice hè un compitu difficiule in quantu à l'algoritmi. Per quessa, u prucessu pò esse ritardatu è esige risorse informatiche significative.
  5. Copertura bassa. Malgradu u cunsumu di risorse è a durata di scansione, i sviluppatori di strumenti SAST anu sempre da ricurdà à cumprumessi è analizà micca tutti i stati chì un prugramma pò esse in.
  6. Truvà a riproducibilità. Indicà à a linea specifica è a pila di chjama chì porta à una vulnerabilità hè grande, ma in fattu, spessu u scanner ùn furnisce micca abbastanza infurmazione per verificà una vulnerabilità esterna. Dopu tuttu, u difettu pò ancu esse in u codice mortu, chì hè inaccessibile per l'attaccante.

Problemi di scansione di l'infrastruttura

  1. Inventariu insufficiente. In infrastrutture grandi, in particulare geograficamente separati, hè spessu a cosa più difficiuli di capisce quale hosts scanner. In altre parolle, u compitu di scanning hè strettamente ligatu à u compitu di gestione di l'assi
  2. Cattivu priurità. I scanners di rete spessu pruducenu assai risultati cù difetti chì ùn sò micca sfruttati in a pratica, ma formalmente u so livellu di risicu hè altu. U cunsumadore riceve un rapportu chì hè difficiule di interpretà, è ùn hè micca chjaru ciò chì deve esse currettu prima
  3. Poveri cunsiglii. A basa di cunniscenza di l'scanner cuntene spessu solu infurmazioni assai generale nantu à a vulnerabilità è cumu si risolve, cusì l'amministratori anu da esse armati cù Google. A situazione hè ligeramente megliu cù scanners whitebox, chì ponu emette un cumandamentu specificu per riparà
  4. Fattu a manu. L'infrastrutture ponu avè parechji nodi, chì significa chì ci sò potenzalmentu parechji difetti, rapporti nantu à quale anu da esse analizati è analizati manualmente à ogni iterazione.
  5. Mala copertura. A qualità di scanning infrastruttura dipende direttamente da a dimensione di a basa di cunniscenza nantu à e vulnerabilità è e versioni di software. Induve, risulta, ancu i capi di u mercatu ùn anu micca una basa di cunniscenza cumpleta, è ci hè assai infurmazione in a basa di dati di suluzioni gratuiti chì i capi ùn anu micca.
  6. Prublemi cù patching. A maiò spessu, patching vulnerability infrastruttura hè aghjurnà un pacchettu o cambià un schedariu di cunfigurazione. U grande prublema quì hè chì u sistema, in particulare u legatu, pò cumportà imprevisible cum'è u risultatu di una aghjurnazione. In fatti, vi tuccherà à fà testi di integrazione nant'à una infrastruttura live in pruduzzione.

Avvicinamenti

Cumu serà?
Andaraghju in più dettagli nantu à l'esempii è cumu si tratta di parechji di sti prublemi in e seguenti parti, ma per avà indicà e zone principali in quale pudete travaglià:

  1. Aggregazione di vari strumenti di scanning. Cù l'usu currettu di parechje scanners, un aumentu significativu in a basa di cunniscenza è a qualità di a deteczione pò esse ottinutu. Pudete truvà ancu più vulnerabilità di a somma di tutti i scanners run individualmente, mentre chì pudete valutà più precisamente u livellu di risicu è fà più cunsiglii.
  2. Integrazione SAST è DAST. Hè pussibule aumentà a cobertura DAST è a precisione SAST sparte l'infurmazioni trà elli. Da a fonte pudete uttene infurmazioni nantu à e rotte esistenti, è cù l'aiutu di DAST pudete verificà se a vulnerabilità hè visibile da l'esternu.
  3. Machine Learning™. In u 2015 I dettudi più) nantu à l'usu di statistiche per dà à i scanners l'intuizione di u pirate è li accelerà. Questu hè definitu alimentu per u sviluppu di l'analisi di sicurezza automatizata in u futuru.
  4. Integrazione IAST cù autotests è OpenAPI. In u CI / CD-pipeline, hè pussibule di creà un prucessu di scanning basatu annantu à l'arnesi chì travaglianu cum'è proxy HTTP è teste funziunali chì travaglianu nantu à HTTP. I testi è i cuntratti OpenAPI/Swagger daranu à u scanner l'infurmazioni mancanti nantu à i flussi di dati, permettenu di scansà l'applicazione in diversi stati.
  5. Cunfigurazione curretta. Per ogni applicazione è infrastruttura, avete bisognu di creà un prufilu di scanning adattatu, tenendu in contu u numeru è a natura di l'interfacce, e tecnulugia aduprate.
  6. persunalizazione di u scanner. Spessu, una applicazione ùn pò esse scansata senza mudificà u scanner. Un esempiu hè una porta di pagamentu induve ogni dumanda deve esse firmata. Senza scrive un connettore à u protocolu di gateway, i scanners piccaranu senza mente à e dumande cù una firma incorrecta. Hè ancu necessariu di scrive scanners specializati per un tipu specificu di difetti, cum'è Riferimentu di l'ughjettu direttu micca sicuru
  7. Gestione di risichi. L'usu di diversi scanners è l'integrazione cù sistemi esterni, cum'è Asset Management è Threat Management, permetterà parechji paràmetri per esse utilizati per valutà u livellu di risicu, per chì a gestione pò piglià una stampa adatta di u statu di sicurezza attuale di u sviluppu o l'infrastruttura.

State sintonizzati è disturbemu a scansione di vulnerabilità!

Source: www.habr.com

Add a comment