Imagjinoni një botë ku softueri që fuqizon aplikacionet tuaja të preferuara, siguron transaksionet tuaja në internet dhe ruan jetën tuaj dixhitale, mund të tejkalohet dhe të merret nën kontroll nga një pjesë kodi e maskuar me zgjuarsi. Ky nuk është një komplot nga trileri më i fundit kibernetik; në fakt është një realitet prej vitesh. Si do të ndryshojë kjo – në një drejtim pozitiv ose negativ – pasi inteligjenca artificiale (AI) merr një rol më të madh në zhvillimin e softuerit është një nga pasiguritë e mëdha që lidhen me këtë botë të re të guximshme.
Në një epokë ku AI premton të revolucionarizojë mënyrën se si jetojmë dhe punojmë, biseda për implikimet e saj të sigurisë nuk mund të anashkalohet. Ndërsa ne mbështetemi gjithnjë e më shumë në AI për detyra që variojnë nga të zakonshmet deri te ato kritike për misionin, pyetja nuk është më vetëm, “A mundet AI rritur sigurinë kibernetike?” (sigurisht!), por edhe “A mundet AI të hakuar?” (po!), “A mund të përdoret AI për të hakuar?” (sigurisht!), dhe “Will AI prodhojnë softuer të sigurt?” (mirë…). Ky artikull i udhëheqjes së mendimit ka të bëjë me këtë të fundit. Cydrill (një kompani e sigurt trajnimi për kodim) gërmon në peizazhin kompleks të dobësive të prodhuara nga AI, me një fokus të veçantë në GitHub Copilot, për të nënvizuar imperativin e kodimit të sigurt praktikat për të mbrojtur të ardhmen tonë dixhitale.
Ju mund të testoni aftësitë tuaja të sigurta të kodimit me këtë shkurtore vetëvlerësimi.
Paradoksi i Sigurisë së AI
Kapërcimi i AI nga kurioziteti akademik në një gur themeli të inovacionit modern ndodhi mjaft papritur. Aplikimet e tij përfshijnë një sërë fushash të lë pa frymë, duke ofruar zgjidhje që dikur ishin lëndë e fantashkencës. Megjithatë, ky avancim dhe adoptim i shpejtë ka tejkaluar zhvillimin e masave përkatëse të sigurisë, duke i lënë sistemet dhe sistemet e AI të krijuara nga AI të prekshme ndaj një sërë sulmesh të sofistikuara. Déjà vu? Të njëjtat gjëra ndodhën kur softueri – si i tillë – po pushtonte shumë fusha të jetës sonë…
Në zemër të shumë sistemeve të AI është mësimi i makinerive, një teknologji që mbështetet në grupe të gjera të dhënash për të “mësuar” dhe për të marrë vendime. Ironikisht, forca e AI – aftësia e saj për të përpunuar dhe përgjithësuar nga sasi të mëdha të dhënash – është gjithashtu thembra e saj e Akilit. Pika fillestare e “çfarëdo që gjejmë në internet” mund të mos jetë të dhënat e përsosura të trajnimit; për fat të keq, urtësia e masat mund të mos jetë e mjaftueshme në këtë rast. Për më tepër, hakerët, të armatosur me mjetet dhe njohuritë e duhura, mund të manipulojnë këto të dhëna për të mashtruar AI për të marrë vendime të gabuara ose për të ndërmarrë veprime dashakeqe.
Kopilot në Crosshairs
GitHub Copilot, i mundësuar nga Codex i OpenAI, qëndron si një testament për potencialin e AI në kodim. Ai është krijuar për të përmirësuar produktivitetin duke sugjeruar copa kodi dhe madje blloqe të tëra kodi. Megjithatë, studime të shumta kanë nxjerrë në pah rreziqet e mbështetjes së plotë në këtë teknologji. Është demonstruar se një pjesë e konsiderueshme e kodit të gjeneruar nga Copilot mund të përmbajë të meta sigurie, duke përfshirë dobësitë ndaj sulmeve të zakonshme si injektimi SQL dhe tejmbushjet e buferit.
Parimi “Garbage In, Garbage Out” (GIGO) është veçanërisht i rëndësishëm këtu. Modelet e AI, duke përfshirë Copilot, janë të trajnuar mbi të dhënat ekzistuese dhe ashtu si çdo model tjetër i gjuhës së madhe, pjesa më e madhe e këtij trajnimi është e pambikëqyrur. Nëse këto të dhëna trajnimi janë me të meta (gjë që është shumë e mundur duke pasur parasysh se vijnë nga projekte me burim të hapur ose faqe të mëdha pyetjesh dhe përgjigjesh si Stack Overflow), prodhimi, duke përfshirë sugjerimet e kodit, mund të trashëgojë dhe përhapë këto të meta. Në ditët e para të Copilot, një studim zbuloi se afërsisht 40% e mostrave të kodit të prodhuara nga Copilot kur iu kërkua të plotësonin kodin bazuar në mostrat nga CWE Top 25 ishin të cenueshëm, duke nënvizuar parimin GIGO dhe nevojën për ndërgjegjësim të shtuar të sigurisë. Një studim në shkallë më të gjerë në 2023 (A është Copilot i GitHub po aq i keq sa njerëzit në futjen e dobësive në kod?) pati rezultate disi më të mira, por ende larg nga të mirat: duke hequr linjën e cenueshme të kodit nga shembujt e cenueshmërisë së botës reale dhe duke kërkuar nga Copilot ta plotësonte atë, ai rikrijoi cenueshmërinë rreth 1/3 e kohës dhe rregulloi cenueshmërinë vetëm rreth 1 /4 të kohës. Për më tepër, ai performoi shumë dobët në dobësitë që lidhen me verifikimin e munguar të hyrjes, duke prodhuar kod të cenueshëm çdo herë. Kjo nënvizon se AI gjeneruese është e pajisur dobët për t’u marrë me inputet me qëllim të keq nëse nuk disponohen zgjidhje të ngjashme me ‘plumbat e argjendta’ për trajtimin e një cenueshmërie (p.sh. deklarata të përgatitura).
Rruga drejt zhvillimit të sigurt të softuerit të mbështetur nga AI
Adresimi i sfidave të sigurisë të paraqitura nga AI dhe mjetet si Copilot kërkon një qasje të shumëanshme:
- Kuptimi i dobësive: Është thelbësore të pranohet se kodi i gjeneruar nga AI mund të jetë i ndjeshëm ndaj të njëjtave lloje sulmesh si softueri i zhvilluar “tradicionalisht”.
- Ngritja e praktikave të sigurta të kodimit: Zhvilluesit duhet të trajnohen në praktikat e sigurta të kodimit, duke marrë parasysh nuancat e kodit të krijuar nga AI. Kjo përfshin jo vetëm identifikimin e dobësive të mundshme, por edhe kuptimin e mekanizmave përmes të cilëve AI sugjeron copa të caktuara kodi, për të parashikuar dhe zbutur rreziqet në mënyrë efektive.
- Përshtatja e SDLC: Nuk është vetëm teknologjia. Proceset duhet të marrin parasysh gjithashtu ndryshimet delikate që do të sjellë AI. Kur bëhet fjalë për Copilot, zhvillimi i kodit është zakonisht në fokus. Por kërkesat, dizajni, mirëmbajtja, testimi dhe operacionet mund të përfitojnë gjithashtu nga modelet e mëdha të gjuhës.
- Vigjilencë dhe Përmirësim i Vazhdueshëm: Sistemet e AI – ashtu si mjetet që ata përdorin – po evoluojnë vazhdimisht. Të mbash ritmin me këtë evolucion do të thotë të jesh i informuar për kërkimet më të fundit të sigurisë, të kuptosh dobësitë në zhvillim dhe të përditësosh praktikat ekzistuese të sigurisë në përputhje me rrethanat.
Lundrimi në integrimin e mjeteve të AI si GitHub Copilot në procesin e zhvillimit të softuerit është i rrezikshëm dhe kërkon jo vetëm një ndryshim në mentalitet, por edhe miratimin e strategjive të forta dhe zgjidhjeve teknike për të zbutur dobësitë e mundshme. Këtu janë disa këshilla praktike të dizajnuara për të ndihmuar zhvilluesit të sigurojnë që përdorimi i tyre i Copilot dhe mjeteve të ngjashme të drejtuara nga AI rrit produktivitetin pa kompromentuar sigurinë.
Zbatoni vërtetimin e rreptë të hyrjes!
Zbatimi praktik: Programimi mbrojtës është gjithmonë në thelb të kodimit të sigurt. Kur pranoni sugjerime kodesh nga Copilot, veçanërisht për funksionet që trajtojnë hyrjen e përdoruesit, zbatoni masa strikte të vërtetimit të hyrjes. Përcaktoni rregullat për hyrjen e përdoruesit, krijoni një listë lejimi të karaktereve dhe formateve të të dhënave të lejuara dhe sigurohuni që të dhënat të jenë të vërtetuara përpara përpunimit. Ju gjithashtu mund t’i kërkoni Copilot-it ta bëjë këtë për ju; ndonjehere në fakt funksionon mirë!
Menaxhoni varësitë në mënyrë të sigurt!
Zbatimi praktik: Copilot mund të sugjerojë shtimin e varësive në projektin tuaj dhe sulmuesit mund ta përdorin këtë për të zbatuar sulmet e zinxhirit të furnizimit nëpërmjet “halucinacioneve të paketave”. Përpara se të përfshini ndonjë bibliotekë të sugjeruar, verifikoni manualisht statusin e tyre të sigurisë duke kontrolluar për dobësi të njohura në bazat e të dhënave si Baza e të Dhënave Kombëtare të Vulnerabilitetit (NVD) ose kryeni një analizë të përbërjes së softuerit (SCA) me mjete si OWASP Dependency-Check ose auditimi npm për projektet Node.js . Këto mjete mund të gjurmojnë dhe menaxhojnë automatikisht sigurinë e varësive.
Kryeni vlerësime të rregullta të sigurisë!
Zbatimi praktik: Pavarësisht nga burimi i kodit, qoftë ai i krijuar nga AI apo i krijuar me dorë, kryeni rishikime dhe teste të rregullta të kodit me fokus sigurinë. Kombinoni qasjet. Testoni në mënyrë statike (SAST) dhe dinamike (DAST), bëni analizën e përbërjes së softuerit (SCA). Bëni testimin manual dhe plotësoni atë me automatizim. Por mos harroni të vendosni njerëzit mbi mjetet: asnjë mjet apo inteligjencë artificiale nuk mund të zëvendësojë inteligjencën natyrore (njerëzore).
Bëhuni gradual!
Zbatimi praktik: Së pari, lëreni Copilot të shkruajë komentet tuaja ose të korrigjojë regjistrat – tashmë është shumë mirë në këto. Çdo gabim në këto nuk do të ndikojë gjithsesi në sigurinë e kodit tuaj. Pastaj, pasi të jeni njohur me mënyrën se si funksionon, mund ta lini gradualisht të gjenerojë gjithnjë e më shumë copa kodi për funksionalitetin aktual.
Gjithmonë rishikoni atë që ofron Copilot!
Zbatimi praktik: Asnjëherë mos pranoni verbërisht atë që sugjeron Copilot. Mos harroni, ju jeni piloti, është “thjesht” ai Kopilot! Ju dhe Copilot mund të jeni një ekip shumë efektiv së bashku, por gjithsesi jeni ju që jeni në krye, kështu që duhet të dini se cili është kodi i pritur dhe si duhet të duket rezultati.
Eksperimento!
Zbatimi praktik: Provoni gjëra dhe kërkesa të ndryshme (në modalitetin e bisedës). Përpiquni t’i kërkoni Copilot të përmirësojë kodin nëse nuk jeni të kënaqur me atë që keni marrë. Mundohuni të kuptoni se si “mendon” Copilot në situata të caktuara dhe të kuptoni pikat e forta dhe të dobëta të tij. Për më tepër, Copilot bëhet më i mirë me kalimin e kohës – kështu që eksperimentoni vazhdimisht!
Qëndroni të informuar dhe të edukuar!
Zbatimi praktik: Edukoni vazhdimisht veten dhe ekipin tuaj mbi kërcënimet më të fundit të sigurisë dhe praktikat më të mira. Ndiqni bloget e sigurisë, merrni pjesë në webinare dhe seminare dhe merrni pjesë në forume të dedikuara për kodimin e sigurt. Njohuria është një mjet i fuqishëm për identifikimin dhe zbutjen e dobësive të mundshme në kod, të krijuara nga AI ose jo.
konkluzioni
Rëndësia e praktikave të sigurta të kodimit nuk ka qenë kurrë më e rëndësishme ndërsa ne lundrojmë në ujërat e paeksploruara të kodit të gjeneruar nga AI. Mjetet si GitHub Copilot paraqesin mundësi të rëndësishme për rritje dhe përmirësim, por edhe sfida të veçanta kur bëhet fjalë për sigurinë e kodit tuaj. Vetëm duke i kuptuar këto rreziqe mund të pajtohet me sukses efektiviteti me sigurinë dhe të ruhen infrastrukturën dhe të dhënat tona të mbrojtura. Në këtë rrugëtim, Cydrill mbetet i përkushtuar për të fuqizuar zhvilluesit me njohuritë dhe mjetet e nevojshme për të ndërtuar një të ardhme dixhitale më të sigurt.
Udhëtimi i përzier mësimor i Cydrill ofron trajnime në kodimin e sigurt proaktiv dhe efektiv për zhvilluesit nga kompanitë e Fortune 500 në të gjithë botën. Duke kombinuar trajnimin e udhëhequr nga mësuesi, mësimin elektronik, laboratorët praktik dhe gamifikimin, Cydrill ofron një qasje të re dhe efektive për të mësuar se si të kodoni në mënyrë të sigurt.
Shikoni kurset e kodimit të sigurta të Cydrill.