Kalbant apie įmonės kamino saugumą, programinės įrangos programos yra silpniausia grandis. Į Programos saugumo būklė, 2020 m„Forrester“ teigia, kad dauguma išorinių atakų įvyksta naudojant programinės įrangos pažeidžiamumą (42 %) arba žiniatinklio programą (35 %).
Kūrėjai patiria spaudimą kuo greičiau išleisti funkcijas, nes programos tampa sudėtingesnės, o kūrimo terminai mažėja. Siekdami išskirtinių ir patrauklių programų funkcijų, kūrėjai vis dažniau pasikliauja trečiųjų šalių bibliotekomis.
Šis perėjimas prie atvirojo kodo komponentų lemia saugumas įmonėms sudėtingesnė praktika. Naujos sistemos, tokios kaip konteineriai ir API, dar labiau apsunkina programų saugumą.
Kadangi kūrėjai nuolat spaudžiami išleisti naujas funkcijas, organizacijos susiduria su labai realia rizika, kad saugumas neatsiliks. Saugumas gali būti pasiektas įtraukiant geriausią programų saugos praktiką į programinės įrangos kūrimo gyvavimo ciklą ir jas įgyvendinant.
Kodėl žiniatinklio saugos testavimas yra svarbus?
Saugumo spragų tikrinimas žiniatinklio programoms ir jų konfigūracijai yra žiniatinklio saugos testavimo tikslas. Pagrindiniai taikiniai yra taikomųjų programų lygmens atakos (ty nukreiptos į HTTP pagrindu veikiančias programas).
Įprasta žiniatinklio programai pateikti įvairių tipų įvestis, kad išprovokuotų klaidas ir ji netikėtai pasielgtų. Šių vadinamųjų „neigiamų testų“ metu tikrinama, ar sistema elgiasi ne pagal paskirtį.
Taip pat svarbu atkreipti dėmesį į tai Interneto saugumo testavimas nėra vien tik programoje įdiegtų saugos funkcijų (pvz., autentifikavimo ir autorizacijos) testavimas.
Taip pat būtina patikrinti, ar kitos funkcijos (pvz., verslo logika ir įvesties bei išvesties patvirtinimas) yra įdiegtos saugiai. Tikslas yra saugi prieiga prie žiniatinklio programos funkcijų.
Kaip programų saugos testavimas sumažina jūsų organizacijos riziką?
Dauguma žiniatinklio programų atakų
- SQL įpurškimo technika
- Skirtingų svetainių scenarijus (XSS)
- Komandų vykdymas nuotoliniu būdu
- Kelio perėjimas
Atakos rezultatai
- Turinys, kuris yra ribojamas
- Paskyros, kurios buvo pažeistos
- Kenkėjiškos programinės įrangos diegimas
- Prarastos pajamos
- Klientai praranda pasitikėjimą
- Žala reputacijai
- Taip pat daug daugiau
Šiandieninė žiniatinklio aplinka yra linkusi į daugybę problemų. Be to, kad žinosite, kaip galima išnaudoti programą, žinodami galimus atakos padarinius, jūsų įmonė padės iš anksto pašalinti spragas ir tiksliai juos patikrinti.
Nustačius pagrindinę pažeidžiamumų priežastį, ankstyvosiose SDLC stadijose gali būti taikomos švelninančios kontrolės priemonės. Be to, žiniatinklio programos saugos testas gali pasinaudoti žiniomis apie tai, kaip veikia šios atakos, kad būtų nukreiptos į žinomas lankytinas vietas.
Norėdami valdyti savo įmonės riziką, turite suprasti atakos poveikį, nes jį galima naudoti norint įvertinti bendrą pažeidžiamumo sunkumą.
Atlikus saugos testą, aptiktų problemų rimtumo nustatymas gali padėti efektyviai ir efektyviai nustatyti taisymo veiksmų prioritetus. Sumažinkite savo įmonės riziką pradėdami nuo kritinio sunkumo ir pereidami prie mažesnio poveikio problemų.
Kiekvienos jūsų įmonės taikomųjų programų bibliotekoje esančios programos galimo poveikio įvertinimas prieš nustatant problemą gali padėti nustatyti programos saugos testavimo prioritetus.
Kai žiniatinklio saugos testavimui yra sukurtas aukšto lygio programų sąrašas, galime suplanuoti testavimą, kad pirmiausia būtų nukreiptos į jūsų įmonės svarbiausias programas, kad būtų sumažinta rizika jūsų verslui.
Kokias funkcijas reikėtų peržiūrėti atliekant žiniatinklio programų saugos testą?
Atliekant žiniatinklio programų saugos testavimą reikėtų išnagrinėti keletą funkcijų, tačiau sąrašas nėra baigtinis. Jūsų organizacija gali susidurti su rimta rizika netinkamai įgyvendinus kiekvieną iš jų.
10 geriausių žiniatinklio programų saugos praktikos pavyzdžių
Toliau pateikiame dešimt geriausių programų saugos praktikos pavyzdžių, kuriuos jūsų organizacija jau turėtų įgyvendinti.
#1 Stebėkite savo turtą
Jei nežinai, ką turi, negali jo apsaugoti.
Kokioms funkcijoms ar programoms naudojate konkrečius serverius? Kuriose žiniatinklio programose naudojate atvirojo kodo komponentus?
Ar manote, kad nėra svarbu sekti savo turtą? Labai svarbu atsiminti, kokia programinė įranga veikia kiekvienoje programoje – tiesiog paklauskite „Equifax“, kuriai buvo skirta 700 mln. USD bauda už tai, kad neapsaugo daugiau nei 145 mln. klientų duomenų.
Vienas iš kredito reitingų agentūros klientų interneto portalų buvo pažeistas, kai nebuvo pataisytas atvirojo kodo komponentas „Apache Struts“. Bendrovė teigia nežinojusi, kad klientų portalas naudojo pažeidžiamą atvirojo kodo komponentą.
Kuo anksčiau pradėsite sekti savo turtą, tuo mažiau galvos skausmo ir nelaimių vėliau turėsite. Organizacijoms plečiant savo plėtrą, šis procesas gali atrodyti kaip Sizifo užduotis.
Taip pat turėtumėte klasifikuoti savo turtą, pažymėdami tuos, kurie yra labai svarbūs jūsų verslo funkcijoms, ir tuos, kurie yra mažiau svarbūs. Tada galėsite įvertinti grėsmes ir vėliau jas pašalinti.
# 2 Atlikite grėsmės įvertinimą
Jei sudarysite sąrašą, ką turite apsaugoti, galite nustatyti grėsmes, su kuriomis susiduriate, ir kaip jas sumažinti.
Kaip įsilaužėliai galėtų įsilaužti į jūsų programą? Kokias esamas saugumo priemones taikėte? Kokių papildomų įrankių reikia?
Vertindami grėsmę turite atsakyti į šiuos ir kitus klausimus.
Tačiau taip pat turite būti realistai nustatydami saugumo lygį, kuriuo galite mėgautis. Kad ir kaip saugiai padarytumėte savo sistemą, vis tiek galite ją nulaužti. Be to, turite būti sąžiningi dėl priemonių, kurias jūsų komanda gali išlaikyti laikui bėgant.
Per daug stengdamiesi galite rizikuoti, kad jūsų saugumo standartai ir praktika bus ignoruojami. Į saugumą žiūrėkite rimtai ir neskubėkite.
Norėdami įvertinti savo riziką, naudokite šią formulę:
Rizika = Atakos tikimybė x Atakos poveikis.
Rizika taip pat gali būti vertinama kaip tikimybė, kad kažkas atsitiks, palyginti su pasekmių sunkumu.
Nors būtų katastrofiška, jei banginis iškristų iš dangaus ir jus sutraiškytų, mažai tikėtina, kad taip nutiks.
Kita vertus, uodo įkandimas žygyje yra gana tikėtinas, bet greičiausiai nepadarys didelės žalos, išskyrus keletą niežtinčių iškilimų.
# 3 Likite savo pataisymo viršuje
Diegiate naujausius pataisymus savo operacinėse sistemose? Ar naudojate trečiosios šalies programinę įrangą? Tikėtina, kad atsiliekate, vadinasi, esate atskleistas.
Vienas iš svarbiausių žingsnių, kurių turėtumėte imtis norėdami užtikrinti savo programinės įrangos saugumą, yra atnaujinti programinę įrangą iš komercinio pardavėjo arba atvirojo kodo bendruomenės.
Kai pažeidžiamumas aptinkamas ir atsakingai apie jį pranešama produkto ar projekto savininkams, jis paskelbiamas saugos patarimų svetainėse ir duomenų bazėse, pvz., WhiteSource pažeidžiamumo duomenų bazėje.
Jei įmanoma, pataisymas turi būti sukurtas ir išleistas prieš paskelbiant, suteikiant vartotojams galimybę apsaugoti savo programinę įrangą.
Tačiau jei nepritaikote pataisos, kai ji tampa prieinama, patobulinta sauga neturėsite naudos.
Jei nerimaujate, kad atnaujinimas į naujausią versiją gali sugadinti jūsų produktą, automatizuoti įrankiai gali daug padėti. Bet kurią savaitės dieną turėtumėte teikti pirmenybę naujinimui ir pataisymui kaip geriausios programos saugos praktikos daliai.
# 4 Tvarkykite savo konteinerius
Pastaraisiais metais konteinerių populiarumas išaugo, nes vis daugiau organizacijų taiko technologiją dėl jos lankstumo, o tai supaprastina komponentų kūrimo, testavimo ir diegimo procesą įvairiose aplinkose per visą programinės įrangos kūrimo gyvavimo ciklą (SDLC).
Visuotinai pripažįstama, kad konteineriai suteikia saugumo pranašumų, suteikiančių jiems pranašumą. Be to, dėl savarankiškos OS aplinkos jie yra suskirstyti pagal dizainą, taip sumažinant rizikos lygį.
Tačiau konteineriai ir toliau yra pažeidžiami tokių išnaudojimų, kaip prasiveržimo ataka, kurios metu izoliacija buvo nutraukta. Konteineriuose taip pat gali būti juose saugomo kodo pažeidžiamumas.
Siekdami CI / CD konvejerio saugumo, turėtumėte nuskaityti pažeidžiamumą nuo pradžios iki pabaigos, įskaitant savo registrus.
Be šių nuskaitymų, geriausia programų saugos praktika dirbant su konteineriais taip pat apima svarbias užduotis, tokias kaip savo vaizdų pasirašymas naudojant tokius įrankius kaip „Docker Content Trust“, jei naudojate „Docker Hub“, arba „Shared Access Signature“, jei jūsų komanda naudoja "Microsoft Azure".
# 5 Suteikite pirmenybę ištaisymo veiksmams
Pastaraisiais metais pažeidžiamumų vis daugėjo, ir ši tendencija nerodo jokių požymių, kad greitu metu sulėtės.
Todėl kūrėjai yra užsiėmę taisymu. Komandoms, kurios tikisi, kad jų programos bus saugios ir išliks sveikos, svarbu nustatyti prioritetus.
Grėsmių įvertinimas atliekamas atsižvelgiant į pažeidžiamumo sunkumą (CVSS reitingą), paveiktos programos kritiškumą ir daugybę kitų veiksnių.
Turite žinoti, ar atvirojo kodo pažeidžiamumas iš tikrųjų paveikia jūsų patentuotą kodą, kai kalbama apie atvirojo kodo pažeidžiamumą.
Neveiksmingas ir nedidelė rizika, net jei pažeidžiamo komponento CVSS įvertinimas yra labai svarbus, jei jis nesulaukia skambučių iš jūsų produkto.
Išmaniosios strategijos yra tos, kurios, atsižvelgiant į esamus veiksnius, pirmenybę teikia svarbiausioms grėsmėms, o mažos rizikos palieka vėliau.
# 6 Šifravimas, šifravimas, šifravimas
Į OWASP Top 10 įtrauktas ramybės ir gabenimo duomenų šifravimas daugelį metų, todėl tai yra būtinas bet kurios programos saugos geriausios praktikos sąrašo reikalavimas.
Žmogaus viduryje atakos ir kitos įsibrovimo formos gali atskleisti neskelbtinus duomenis, kai nepavyksta tinkamai užblokuoti srauto.
Kai jūs saugoti slaptažodžius ir vartotojo ID paprastu tekstu, pavyzdžiui, jūs rizikuojate savo klientams.
Įsitikinkite, kad naudojate SSL su atnaujintu sertifikatu kaip pagrindinio šifravimo kontrolinio sąrašo dalį. Neleisk atsilikti dabar, kai HTTPS yra standartas. Taip pat rekomenduojama maišyti.
Be to, niekada neturėtumėte „išleisti savo kriptovaliutų“, kaip sakoma. Apsvarstykite saugos produktus, kuriuos palaiko speciali komanda, turinti tinkamai atlikti darbą.
#7 Tvarkykite privilegijas
Neprivalote suteikti prieigos prie visko visiems savo organizacijos nariams. Programas ir duomenis gali pasiekti tik tie, kuriems jų reikia, vadovaudamiesi geriausios tinklo saugos ir programų saugos geriausios praktikos pavyzdžiais.
Tam yra dvi priežastys. Pirmas dalykas, kurį reikia padaryti, yra neleisti įsilaužėliams naudoti rinkodaros kredencialus, kad gautų prieigą prie sistemos, kurioje yra kitų jautresnių duomenų, pvz., finansų ar teisinių duomenų.
Viešai neatskleista grėsmė taip pat kelia susirūpinimą, nesvarbu, ar tai būtų netyčinė, pavyzdžiui, pametus nešiojamąjį kompiuterį arba išsiųstas netinkamas el. laiško priedas, ar kenkėjiška.
Mažiausios privilegijos principas teikti darbuotojams tik tuos duomenis, kurių jiems reikia norint pasiekti duomenis, gali sumažinti jūsų poveikį, palyginti su kontrolės priemonių nebuvimu.
Nr. 8 Pasinaudokite automatizavimu savo pažeidžiamumo valdymui
Per pastaruosius kelerius metus jų programų saugumas kūrėjams tapo vis svarbesnis, ypač kai kalbama apie tokias užduotis kaip pažeidžiamumo valdymas.
Siekdamos išspręsti saugumo poslinkį į kairę, kūrėjų komandos anksti ir dažnai atlieka bandymus, kuo daugiau saugumo patikrų atlieka kūrimo proceso pradžioje, kai lengviau ir pigiau ištaisyti pažeidžiamumą.
Kad galėtų valdyti sudėtingą testavimo procesą dėl daugybės pažeidžiamumų, kūrėjams reikalingi automatiniai įrankiai.
Norint rasti galimų saugos spragų savo patentuotame kode, kuriant gali būti naudojamas statinis programų saugos testavimas (SAST) ir dinaminis programų saugos testavimas (DAST).
Saugos skylės uždaromos naudojant SAST ir DAST, tačiau patentuotas kodas sudaro palyginti nedidelę viso kodo dalį.
Daugiau nei 92 % visų šiuolaikinių programų atvirojo kodo komponentai sudaro 60–80 % jūsų kodų bazės. Programos saugos kontrolinis sąrašas turėtų teikti pirmenybę atvirojo kodo komponentų apsaugai.
Naudodamos programinės įrangos sudėties analizės įrankius, komandos gali vykdyti automatines saugos patikras ir ataskaitas visame SDLC, identifikuodamos kiekvieną atvirojo kodo komponentą savo aplinkoje ir nurodydamos, kuris iš jų turi žinomą pažeidžiamumą, keliantį pavojų jūsų programų saugai.
Galite geriau valdyti savo pažeidžiamumą perkeldami automatinį atvirojo kodo saugos problemų testavimą į kairę.
#9 Prasiskverbimo testas
Populiariausių programų saugos geriausių praktikų sąrašas būtų neišsamus, neminint rašiklio testavimo, nors automatiniai įrankiai padeda išspręsti daugumą saugumo problemų.
Bandymas naudojant rašiklį ir popierių leidžia pažvelgti į programą ir surasti trūkumus. Jei ryžtingas įsilaužėlis bando įsilaužti į jūsų programą, geri rašiklio bandytojai tiksliai žino, kokių veiksmų jiems reikia imtis.
Įsilaužimo įmones galima samdyti arba laisvai samdomi darbuotojai gali dalyvauti tokiose programose kaip „BugCrowd“ ir „HackerOne“. Jūsų įmonė turėtų remti kompensaciją už klaidas, jei to dar nepadarėte.
Jei samdote rašiklio testerius, daug geriau už juos sumokėti, nei kovoti su tikro pažeidimo pasekmėmis.
# 10 Būkite atsargūs su žetonais
Nepaisant to, kad tai lengva apsaugoti, daugelis kūrėjų tinkamai neapsaugo savo žetonų trečiosioms šalims.
Ieškodami populiarių kūrėjų svetainių, galite lengvai rasti neapsaugotus žetonus internete. Užuot saugoję žetonų informaciją kitur, kūrėjai tiesiog įtraukia juos į savo atvirojo kodo saugyklas.
Pagrindinė programos saugumo geriausia praktika yra tinkamai apsaugoti trečiųjų šalių prieigos raktus. Neturėtumėte palikti įsigytų žetonų gulėti savo kode, kad kas nors galėtų juos paimti.
Programų saugos geriausia praktika kaip pagrindinė praktika
Kiekviena čia aprašyta geriausia praktika turėtų būti integruota į nuolatinį jūsų organizacijos plėtros procesą. Jei nesumažinsite rizikos, kyla pavojus jūsų įmonės programoms ir duomenims. Atlikite šiuos veiksmus, kad sumažintumėte riziką.
Išvengti klaidų, kurias gali padaryti kiti, yra vienas iš būdų apsisaugoti nuo įsilaužėlių, todėl jums bus sunkiau nusitaikyti į atakas. Niekada nebus perimetro ar programos saugumo priemonės, kuri būtų visiškai apsaugota nuo įsilaužimo.
Tačiau vadovaudamiesi šiais pagrindiniais geriausios praktikos pavyzdžiais galite labai padėti, kad jūsų programa nebūtų verta įsilaužėlių rūpesčių.