Dr. Anila Mjeda, Lektore e Sigurisë Kibernetike
10 shkurt 2022 – CyberSkills.ie
Përktheu Arben Çokaj
Në literaturën e lashtë greke, Troja është portretizuar si një mbretëri e fuqishme e Epokës Heroike. Aftësia e Trojës për t’i bërë ballë betejave dhe sulmeve ishte për shkak të forcës së mureve të saj, të cilat, sipas legjendës, ishin ndërtuar nga perënditë greke, Poseidoni dhe Apolloni. Kjo u bë edhe më e dukshme kur Troja ‘ra’ pasi perimetri i jashtëm i supozuar, i padepërtueshëm, u shkel.
Ky mësim nga mitologjia greke bën jehonë gjithmonë të vërtetën në sistemet e sotme softuerike. Mekanizmat tanë të Sigurisë Kibernetike duhet të trajtohen në një mënyrë të quajtur “Mbrojtja në thellësi“, ku një sërë mekanizmash mbrojtës janë shtresuar për të ofruar mbrojtje më të mirë për sistemin. (Imagjinoni shtresat e kështjellave mesjetare të betejave të shkëlqyera, kullave dhe mureve ‘të larta’ dhe ‘të pjerrëta’.) Ajo që është më jetike në Sigurinë Kibernetike, është shtresa më e brendshme e një mbrojtjeje të fortë dhe të thellë. Kjo shtresë duhet të fillojë me kodim të sigurt, i cili është një koncept që ne e quajmë “Shifting Left” (zhvendosje majtas).
Zhvendosja majtas (Shifting Left)
Zhvendosja majtas, në thelb nënkupton përfshirjen e sigurisë në fillim të një projekti, siç është mbledhja e të dhënave, dhe përfshirja e aktiviteteve të sigurisë në secilën nga fazat e ciklit jetësor të zhvillimit të softuerit. Metafora e zhvendosjes majtas buron nga fakti se njerëzit, gjuha amtare e të cilëve shkruhet nga e majta në të djathtë, priren ta perceptojnë të majtën (mendojnë më së shumti majtas në një faqe) si vendin ku dikush fillon punën e tyre.
Si zhvillues, a do të duhet aplikacioni juaj të trajtojë të dhënat e kartës së kreditit? A do të lejohen përdoruesit e aplikacionit tuaj të ngarkojnë filet e tyre në sistem dhe cilët komponentë të palëve të treta do të përdorni në sistem? Këto janë vetëm një pjesë e konsideratave të sigurisë, që duhen analizuar që nga fillimi i çdo projekti.
Sistemet e sotme softuerike janë në thelb të ndërlidhura, dhe ne nuk mund të krijojmë thjesht urën dhe të mbrojmë sistemet tona me stilin mesjetar. Sistemet softuerike përdorin librari, API, mikroshërbime dhe në përgjithësi një sërë komponentësh, që përkthehen në një produkt përfundimtar. Ka varësi komplekse, shumë prej të cilave ndaj programeve të palëve të treta. Për më tepër, qasjet moderne si tubacionet e integrimit të vazhdueshëm / vendosjes së vazhdueshme (CI/CD), Infrastruktura si kod (IaC), Siguria si kod (SaC), Platforma si shërbim (PaaS) dhe Infrastruktura si shërbim (IaaS) shtyjnë më shumë funksionalitetin në domenin e softuerit.
Ky mjegullim i kufijve do të thotë se siguria nuk është punë vetëm e profesionistëve të sigurisë dhe kërkon që ekipi i zhvillimit të luajë një rol vendimtar në të.
Zhvilluesit e softuerit janë krijues të talentuar dhe shpikës dhe ndërsa sulmet kibernetike rriten në numër dhe ashpërsi, është jetike që ata të bashkëpunojnë ngushtë me profesionistët e sigurisë dhe të marrin trajnimin e duhur për të ndërthurur sigurinë në krijimet e tyre. Ndërsa trajnimi i duhur i zhvilluesve është përgjigja e vërtetë për të parandaluar dobësitë që zvarriten në aplikacionet tona, nëse do të filloja nga një element, ai do të ishte mentaliteti i Zero-Trust (Besimi-Zero).
Ndonëse nuk e rekomandoj atë si një mentalitet për jetën, e rekomandoj shumë në të gjithë sigurinë kibernetike. Koncepti Zero-Trust shtrihet nga infrastruktura në softuer. Në fakt, një aspekt i softuerit tonë, i cili nëse e bëjmë siç duhet, do të zgjidhte shumicën e problemeve tona të sigurisë është besimi zero i të gjitha hyrjeve.
Besimi-Zero për hyrjet tuaja
Puristët e gjuhës mund ta falin këtë shndërrim të besimit zero në një folje, me arsyetimin se mos vendosja e besimit në të gjitha hyrjet (edhe kur ato vijnë nga sistemi juaj), do të na ndihmonte të zbusim shumicën e problemeve tona të sigurisë.
Ju mund të pyesni, “Pse të mos e bëjmë atë atëherë dhe ta “zgjidhim” sigurinë një herë e përgjithmonë?“. Një pjesë e vështirësisë mbështetet në identifikimin e çdo hyrje të vetme.
A i kemi identifikuar të gjitha flukset e punës në renë kompjuterike, që mund të aktivizojnë funksionet tona pa server? A ka ndonjë mënyrë të paparashikuar në bazën tonë të të dhënave (Përshëndetje dobësive të injektimit)? A mundet një sulmues t’i japë udhëzime serverit dhe si rezultat të fitojë akses, që nuk duhet të ketë (dobësitë e falsifikimit të kërkesës nga ana e serverit (SSRF))? A mund të komandohet sistemi ynë i bazuar në ueb për të sulmuar përdoruesit tanë legjitimë (dobësitë e skripteve të faqeve të kryqëzuara (XSS))? — janë vetëm disa nga sulmet e mundshme, ku trajtimi i duhur i hyrjeve do të bënte një rrugë të gjatë, për t’i bërë sistemet tona të sigurta.
Nëse po filloni udhëtimin tuaj drejt kodimit të sigurt dhe nuk i besoni hyrjet tuaja, unë do t’ju inkurajoja fuqimisht të mësoni më shumë rreth vlefshmërisë së hyrjeve dhe kodimit të daljes. Për të filluar, shpjegime të shkurtra të listës së bardhë, vërtetimit, kodimit të daljes dhe shmangies jepen në kutinë e tekstit më poshtë:
Lista e bardhë. Për të pasur rregulla ose lista për atë që lejohet. Mendoni për një mashtrues në një vend të njohur, që lejon vetëm njerëzit, emri i të cilëve është në listën e tyre të bardhë.
Vlerësimi i hyrjes. Detyrimi i sintaksës së saktë të fushave të strukturuara (psh., detyroni një fushë për të pranuar vetëm data) dhe korrektësinë e një vlere (psh., është mosha brenda intervalit të pritur).
Kodimi i daljes. Konvertimi i hyrjes së pabesueshme në një formë të sigurt, përpara se ta shfaqë atë në shfletues. Me fjalë të tjera, duke u siguruar që një hyrje me qëllim të keq në sistemin tonë nuk mund të sulmojë përdoruesit tanë.
Shmangia e hyrjes së dhënë nga përdoruesi. Heqja e të dhënave të padëshiruara, që kanë potencialin të interpretohen si kode.
Programi AppSec. Një grup aktivitetesh të lidhura me sigurinë të integruara në ciklin jetësor të zhvillimit të softuerit me synimin të sigurimit, që softueri që po zhvillojmë ose mirëmbajmë është i sigurt.
Një portë e mirë për të mësuar më shumë rreth kësaj, është OWASP (Open Web Application Security Project)
Për më tepër, në Cyber Skills ne kemi disa kurse të Sigurisë Kibernetike, për t’ju ndihmuar që të përmirësoni aftësitë në mënyrë fleksibël, me ritmin tuaj dhe me standardin e industrisë.
Troja mund të ketë rënë në Luftën e Trojës, por në epokën dixhitale, ne mund ta bëjmë sigurinë tonë të “murojë” atë të legjendave të tyre.
Rrugët e aftësive kibernetike:
Certifikatë për veprimet e rrjetit të sigurt
Certifikatë për zhvillimin e sigurt të softuerit
Certifikatë për Arkitekturën e Sistemeve të Sigurta