Безбедни АПИ-ји и веб апликације са Пробели ДАСТ скенером

S obzirom na to da približno trećina svih poznatih proboja bezbednosti proističe direktno iz uspešnog napada na web aplikacije, od ključne je važnosti testirati sigurnost vaših web aplikacija i API-ja.

Nije dovoljno samo osigurati da su vaše web aplikacije bezbedne zbog regulatornih zahteva, već bi trebalo da vam je stalo do podataka vaših klijenata i rizika kojima je izložena vaša kompanija.

Na raspolaganju vam je mnoštvo opcija kada je reč o zaštiti web aplikacija, svaka sa svojim prednostima i manama. Neka rešenja se oslanjaju na pronalaženje sigurnosnih propusta u izvornom kodu vaših aplikacija. Druga štite vaše aplikacije od napada. A treća koriste dinamičko testiranje sigurnosti vaših web aplikacija tokom njihovog izvršavanja, baš onako kako bi to uradio haker.

Ovaj članak se fokusira na poslednji slučaj, konkretno na Probely. Ono što Probely čini zanimljivim u poređenju s drugim rešenjima jeste to što rešava dva ključna problema skenera ranjivosti na webu: obuhvatnost skeniranja modernih web aplikacija i kvalitet rezultata.

Probely dolazi u dva različita izdanja: jedno je namenjeno malim i srednjim preduzećima i funkcioniše na principu samoposluživanja, dok je drugo namenjeno preduzećima ili kompanijama sa velikim brojem web aplikacija i API-ja.

Probely se usredsređuje na pružanje izvanredne pokrivenosti u modernim razvojnim okruženjima i eliminisanje lažnih pozitivnih rezultata pomoću rezultata skeniranja zasnovanih na dokazima, istovremeno omogućavajući vam da integrirate DAST skeniranje u svoj razvojni ciklus.

Zvuči predobro da bi bilo istinito?

Čitajte dalje da biste saznali više o mojoj analizi Probelyja.

Šta tačno radi Probely?

Imajući na umu programere i preduzeća svih veličina, Probely testira vaše aplikacije i API-je, skenirajući ih u potrazi za sigurnosnim problemima i ranjivostima. Kada se testiranje završi, pruža uputstva o tome kako da rešite pronađene probleme.

Vaši programeri i inženjeri za sigurnost mogu koristiti Probely putem njegovog intuitivnog korisničkog interfejsa. Ali ako vam je potrebna snaga i fleksibilnost, možete se osloniti na njihov API sa punim funkcijama, jer se pridržavaju razvojnog pristupa koji je prvenstveno API-pristup. Njihov API pruža sve funkcije koje su dostupne u korisničkom interfejsu, omogućavajući vam da integrišete Probely u svoj CI/CD cevovod, alat za upravljanje ranjivostima, orkestrator ili praćenje problema. Ako koristite popularne alate, možda ćete imati integraciju spremnu za upotrebu. To je slučaj s alatima poput JIRA, Jenkins, Azure DevOps, DefectDojo, CircleCI i Slack. Međutim, ako ste razvili sopstveni alat za praćenje problema ili orkestrator, API je pravi put.

Pokrivenost, indeksiranje i preciznost

Probely koristi pauk sledeće generacije za navigaciju složenim JavaScript aplikacijama na isti način na koji bi to učinio normalan pretraživač, što rezultira izvrsnom pokrivenošću lokacija, što je problem za mnoge druge DAST alate. Ovaj pauk je idealan za jednostranične aplikacije, kao što su one zasnovane na React-u ili Angular JS-u.

Važno je napomenuti da skener može identifikovati ranjivosti samo na stranicama koje su pronađene. Zato je dobar pauk od najveće važnosti.

Probely takođe nudi različite profile skeniranja, u zavisnosti od okruženja koje želite da testirate. Možete postaviti manje nametljiv profil skeniranja ako želite da skenirate svoje produkcijsko okruženje. Ako testirate svoje okruženje za osiguranje kvaliteta, možete da podesite detaljniji profil za potpunije skeniranje. Testiranjem preprodukcijskog okruženja možete identifikovati i popraviti ranjivosti pre nego što primenite aplikaciju u produkciji.

Izveštavanje

Iako Probely otkriva širok spektar ranjivosti, fokusira se na izveštavanje o onome što je relevantno i bez lažnih pozitivnih rezultata. Za određene klase ranjivosti, pruža dokaz da je ranjivost stvarna, štedeći vreme vašeg tima u proveri da li su ranjivosti stvarne i relevantne.

Probely pruža sveobuhvatne izveštaje iz interfejsa, ali takođe može da sinhronizuje informacije o ranjivosti sa alatom za praćenje problema ili alatom za upravljanje ranjivostima, omogućavajući vam da uklopite Probely u postojeće sigurnosne i razvojne tokove.

Probely može testirati vaš softver na ranjivosti poput onih navedenih u OWASP TOP 10 i mnoge druge. Takođe vam može pomoći da postignete usklađenost proverom specifičnih zahteva PCI-DSS, GDPR, HIPAA i ISO270-01.

Preuzeto iz izveštaja OWASP TOP 10, na prvi pogled ćete videti šta nije u redu u vezi sa ovom usklađenošću.

Interfejs

Interfejs je jednostavan i lak za navigaciju, što vam omogućava da brzo počnete da radite. Enterprise izdanje vam omogućava da kontrolišete korisnike, uloge i podesite prilagođene uloge. Takođe možete koristiti oznake da organizujete korisnike, resurse i ranjivosti kako biste bolje upravljali sigurnošću web aplikacije. Budući da su sve funkcije dostupne putem API-ja, možete lako da integrišete Probely u druge sigurnosne aplikacije i procese preduzeća.

Ako koristite Jira ili Azure ploče, možete da konfigurišete Probely da automatski šalje sve ranjivosti vašem alatu za praćenje problema. Kada programer popravi i zatvori problem na alatu za praćenje problema, automatski će se pokrenuti ponovno testiranje na Probely-u, koji će proveriti da li je ranjivost ispravno popravljena. Ako nije, problem se ponovo otvara u programu za praćenje problema. Ovo omogućava vašem razvojnom timu da rukuje izveštajem o ranjivosti kao i bilo koju drugu grešku, direktno u alatu za praćenje problema, čak i bez korišćenja Probely interfejsa. Zar to nije sjajno? 🙂

Početak rada 🚀

Za potrebe testiranja koristio sam Probely Enterprise izdanje.

Oni takođe nude standardno izdanje i različite planove koje možete odabrati, uključujući besplatan plan. U besplatnom planu, skeniranje testira samo tri kategorije ranjivosti: oznake kolačića, sigurnosna zaglavlja i SSL/TLS problemi. Pro plan nudi većinu funkcija i fokusira se na mala i srednja preduzeća i organizacije koje imaju pet ili manje ciljeva za skeniranje.

Enterprise izdanje se fokusira na organizacije koje imaju veliki broj ciljeva i uključuje dodatne funkcije koje su uobičajene u softveru preduzeća: korisnike, grupe, uloge i dozvole. Takođe vam omogućava da skenirate interne ciljeve (na vašoj privatnoj mreži) instaliranjem agenta koji je obezbeđen.

Dodavanje cilja

Dodavanje cilja je jednostavno. Kada se prijavite sa svojim nalogom, potrebno je da odete na stranicu Ciljevi i kliknete na Dodaj. Zatim navedete ime, URL i jednu ili više oznaka — npr. Testiranje, Produkcija, Razvoj itd. — za novi cilj. Da biste omogućili da Probely skenira ovaj cilj kao samostalni API bez podržane web aplikacije, trebalo bi da označite odgovarajuću opciju da biste ga identifikovali kao API cilj.

Ako vaš cilj nije izložen na internetu, a vi ste instalirali Probely agent na svoju privatnu mrežu, možete da izaberete koji agent ćete koristiti dok dodajete cilj.

Nakon što dodate cilj, morate da potvrdite njegovo vlasništvo, jer Probely zahteva dokaz da imate potrebne privilegije za pokretanje skeniranja na njemu. Postoje dve alternativne metode za validaciju cilja: učitavanje datoteke sa obezbeđenim sadržajem u koren cilja ili dodavanje TXT unosa u vaš DNS zapis, sa imenom domena i nekim specifičnim sadržajem zapisa. Kada je cilj potvrđen, spremni ste da ga skenirate jednostavnim klikom na dugme Skeniraj.

Možete proveriti napredak i status skeniranja tako što ćete otići na karticu Skeniranja na kontrolnoj tabli Probely-a. Ova stranica će vam pokazati kada je skeniranje počelo i šta je do sada pronađeno. Nalazi su obojeni bojama zavisno od ozbiljnosti, tako da na prvi pogled možete videti da li postoje kritični problemi koje treba odmah rešiti.

Ako vaša web lokacija ima stranicu za prijavu i želite da Probely izvrši skeniranje iza nje, morate da navedete akreditive koji mu omogućavaju da popiše web lokaciju kao autentifikovani korisnik. Probely podržava većinu metoda autentifikacije za stranice za prijavu.

Skeniranje API-ja

Da biste skenirali API cilj, Probely treba da navedete njegovu šemu. Ovo radite kada dodate API cilj, bilo davanjem URL-a OpenAPI šeme ili otpremanjem šeme ako ste je prethodno sačuvali kao lokalnu datoteku. Opcija URL omogućava Probely-u da preuzme šemu pre svakog skeniranja, osiguravajući da uvek radi s najnovijom verzijom vaše šeme.

Takođe postoje različite opcije u pogledu metoda autentifikacije za pristup API-ju. Probely podržava ne samo statičke tokene, već i omogućava dinamičku konfiguraciju autentifikacije prilikom skeniranja API-ja. Možete da konfigurišete krajnju tačku za prijavu gde Probely može da dobije token za autentifikaciju ili možete da podesite prilagođeno zaglavlje sa fiksnim API ključem u njemu. Takođe možete da obezbedite prilagođene vrednosti parametara koje će Probely koristiti za one koje se nalaze u šemi.

Kada završite sa konfiguracijom API autentifikacije i parametara, možete započeti skeniranje klikom na dugme Skeniraj sada. Nakon nekoliko sekundi, moći ćete da pratite napredak skeniranja na istoj stranici Skeniranje. Kada se skeniranje završi, možete preuzeti izveštaj o pokrivenosti koji prikazuje sve pronađene krajnje tačke i svaki kod odgovora. Ovaj izveštaj će takođe ukazati da li je bilo neuspešnih krajnjih tačaka.

Provera nalaza

Stranica s nalazima prikazuje rezultate skeniranja čim se pronađu, čak i kada su skeniranja u toku. Svaki nalaz prikazuje ozbiljnost (visoku, srednju ili nisku), odgovarajući cilj i URL, opis nalaza, vreme i datum kada je pronađen, njegovo stanje (fiksno ili nefiksno) i nosioca, kao i da li utiče na PCI-DSS ili OWASP usklađenost.

Osim što vas obaveštava o otkrivenim ranjivostima, stranica s nalazima je takođe korisna za dodeljivanje ranjivosti vašem timu da ih otkloni. Da biste to uradili, kliknite na polje za potvrdu sa leve strane i izaberite primaoca iz padajućeg menija.

Probely takođe pruža informacije o tome kako da popravite ranjivosti koje su pronađene. Uz ova uputstva možete videti kompletan zahtev i odgovor, kao i dokaze.

Na stranici Kontrolna tabla možete videti različite grafikone koji sumiraju sigurnosni rizik skeniranih ciljeva. Grafikoni prikazuju trendove u različitim interesantnim pokazateljima, kao što su ocene rizika, prosečno vreme za rešavanje problema i nivoi ozbiljnosti. Takođe možete da pogledate sajtove koji zahtevaju najviše pažnje i top 5 rangiranja ranjivosti sa najvećom učestalošću.

Konačno, na stranici Integracije možete da konfigurišete Probely da se integriše sa mnoštvom različitih alata za upravljanje projektima, timsku komunikaciju, praćenje problema i još mnogo toga. Dostupne integracije uključuju Azure Boards, DefectDojo, Slack, Jira, Jenkins i CircleCI.

Alat za programere i sigurnosne timove

Za agilne razvojne timove, vreme potrebno za izlazak na tržište je glavni prioritet. Sve što možete da uradite da smanjite vreme potrebno da vaš softver krene u proizvodnju bez ugrožavanja kvaliteta, veoma je dobrodošlo. Probely nudi upravo to – isplativ način da poboljšate sigurnost vaših web lokacija i API-ja, pomažući vam da ispunite obećanja vezana za raspored i isporučite softverske proizvode visokog kvaliteta.

Za sigurnosne timove, Probely vam pruža platformu za zaštitu vaših web aplikacija i upravljanje ranjivostima koje zahtevaju sanaciju. Takođe vam omogućava da neke od sigurnosnih testiranja prebacite direktno na razvojne timove uz zadržavanje uloge nadzora.

Probely nudi besplatne probne verzije, licence za procenu preduzeća i demonstracije proizvoda. Kontaktirajte Probely da započnete.