Muddo tobannaan sano ah, static application security testing (SAST) wuxuu ahaa mid ka mid ah hababka ugu waxtarka badan ee kooxaha amnigu ku ballaariyaan dib-u-eegista koodhka.
Laakiin markii aan dhisaynay Codex Security, waxaan qaadannay go’aan naqshadeyn oo ula kac ah: kuma aynaan bilaabin inaan soo dejinno warbixin falanqayn taagan ah oo aan wakiilka ka codsanno inuu kala hormariyo. Nidaamka waxaan u naqshadaynay inuu ka bilaabmo keydka koodhka laftiisa—qaab-dhismeedkiisa, xuduudaha kalsoonida, iyo hab-dhaqanka loogu talagalay—iyo inuu xaqiijiyo waxa uu helo ka hor inta uusan qof ka codsan inuu waqti ku bixiyo.
Sababtu waa fududahay: nuglaanshooyinka ugu adag badanaa ma aha dhibaatooyin dataflow ah. Waxay dhacaan marka koodhku u ekaado inuu dhaqan-gelinayo hubin amni, balse hubintaasi aanay dhab ahaan dammaanad qaadin astaanta nidaamku ku tiirsan yahay. Si kale haddii loo dhigo, caqabadda ma aha oo keliya la socodka sida xogtu ugu dhex socoto barnaamijka—ee waa go’aaminta in difaacyada ku jira koodhku runtii shaqeeyaan iyo in kale.
SAST badanaa waxaa loo sawiraa sidii dhuun nadiif ah: aqoonso isha gelinta aan la aamini karin, la soco xogta marka ay dhex marayso barnaamijka, oo calaamadee xaaladaha ay xogtaasi ku gaadho meel xasaasi ah iyada oo aan la nadiifin. Waa nooc qurux badan, wuxuuna daboolaa khaladaad badan oo dhab ah.
Hawl ahaan, SAST waa inuu sameeyaa qiyaaso si uu u ahaado mid la maamuli karo marka la ballaariyo—gaar ahaan keydka koodhka ee dhabta ah ee leh indirection, dynamic dispatch, callbacks, reflection, iyo control flow ku culus frameworks. Qiyaasahaasi ceeb ma aha SAST; waa xaqiiqada ka dhalata isku dayga in laga fikiro koodh aan la fulin.
Taasi kaligeed ma aha sababta Codex Security uusan uga bilaaban warbixinta SAST.
Arrinta qotada dheer waa waxa dhacaya ka dib markaad si guul leh uga raadraacdo source ilaa sink.
Xitaa marka falanqaynta taagani si sax ah uga raadraacdo gelinta hawlo badan iyo lakabyo kala duwan, haddana waa inay ka jawaabtaa su’aasha dhab ahaantii go’aamisa in nuglaansho jirto iyo in kale:
Qaado hannaan caadi ah: koodhku wuxuu wacaa wax u eg sanitize_html() ka hor inta aanu soo bandhigin waxyaabo aan la aamini karin. Falanqeeye taagan wuxuu arki karaa in sanitizer-ku orday. Waxa uusan badanaa go’aamin karin waa in sanitizer-kaasi runtii ku filan yahay macnaha bandhigga gaarka ah, template engine-ka, hab-dhaqanka encoding-ka, iyo isbeddellada hoose ee ku lug leh.
Halkaas ayay arrimuhu adkaadaan. Dhibaatadu ma aha oo keliya in xogtu gaadho sink. Waa in hubinnada ku jira koodhku ay dhab ahaan u xannibaan qiimaha sida nidaamku u malaynayo inay u xannibayaan.
Si kale loo dhigo: farqi weyn baa u dhexeeya “koodhku wuxuu wacaa sanitizer” iyo “nidaamku waa ammaan.”
Halkan waxaa ku jira hannaan si joogto ah uga soo muuqda nidaamyada dhabta ah.
Barnaamij web ah wuxuu helaa JSON payload, wuxuu ka soo saaraa redirect_url, wuxuu ku xaqiijiyaa allowlist regex, URL-decode ayuu ku sameeyaa, kadibna natiijada wuxuu u gudbiyaa redirect handler.
Warbixin caadi ah oo source-to-sink ah waxay sharxi kartaa socodka:
gelin aan la aamini karin → hubin regex → URL decode → redirect
Laakiin su’aasha dhabta ahi ma aha in hubintu jirto iyo in kale. Waa in hubintaasi weli xaddidayso qiimaha ka dib isbeddellada xiga.
Haddii regex-ku socdo ka hor decoding, miyuu dhab ahaan xaddidayaa URL-ka la decode-gareeyay sida redirect handler-ku u fasirayo?
Ka jawaabista taas waxay ka dhigan tahay in laga fikiro silsiladda isbeddelka oo dhan: waxa regex-ku oggolaanayo, sida decoding iyo normalization u dhaqmaan, sida URL parsing ula tacaasho xaaladaha geeska ah, iyo sida logic-ga redirect-ku u xalliyo schemes iyo authorities.
Nuglaanshooyin badan oo muhiim ku ah hawlgalka dhabtaa waxay sidan u egyihiin: khaladaadka kala hormarinta hawlgallada, normalization qayb ahaan ah, mugdiyada parsing-ka, iyo is-waafaqla’aanta u dhexeysa xaqiijinta iyo fasiraadda. Dataflow-gu waa muuqdaa. Daciifnimaduna waxay ku jirtaa sida xannibaaduhu ugu gudbaan—ama ugu gudbi waayaan—silsiladda isbeddelka.
Tani ma aha oo keliya hannaan aragtiyeed. Gudaha CVE-2024-29041(ku furmaa daaqad cusub), Express waxaa saameeyay arrin open redirect ah halkaas oo URL-yo khaldan ay ka gudbi kareen hirgelinno allowlist oo caadi ah sababo la xiriira sida bartilmaameedyada redirect-ka loo encode-gareeyay kadibna loo fasiray. Dataflow-gu wuxuu ahaa mid toos ah. Su’aasha ka adag—taas oo go’aaminaysay in bug-ku jiro iyo in kale—waxay ahayd in xaqiijintu weli sii shaqaynaysay ka dib silsiladda isbeddelka.
Codex Security waxaa lagu dhisay yool fudud: in la yareeyo triage-ka iyadoo la soo bandhigayo arrimo leh caddayn ka xooggan. Badeecadda gudaheeda, taasi waxay ka dhigan tahay adeegsiga context-ka repo-ga gaarka u ah (oo ay ku jirto threat model) iyo xaqiijinta arrimaha signal-koodu sarreeyo ee jawi go’doonsan ku jira ka hor inta aan la soo bandhigin.
Marka Codex Security la kulmo xuduud u eg “xaqiijin” ama “nadiifin,” uma qaato sida sanduuq calaamad lagu saaro. Wuxuu isku dayaa inuu fahmo waxa koodhku dammaanad qaadkiisu yahay—kadibna wuxuu isku dayaa inuu buriyo dammaanaddaas.
Hawl ahaan, tani badanaa waxay u ekaataa isku darka:
- Akhrinta jidka koodhka ee khuseeya iyadoo la haysto context-ka keydka koodhka oo buuxa, sida cilmi-baare amni sameyn lahaa, iyo raadinta is-waafaqla’aanta u dhexeysa ujeeddo iyo hirgelin. Tani waxay ku jirtaa comments-ka, laakiin noocku khasab ma aha inuu comments-ka rumaysto sidaas darteed ku darista //Halvar says: this is not a bug korka koodhkaaga ma jahawareeriso, haddii runtii bug jiro.
- Yaraynta dhibaatada ilaa qaybta ugu yar ee la tijaabin karo (tusaale ahaan, transformation pipeline-ka ku wareegsan hal gelin), si aad uga fikirto adoon nidaamka intiisa kale jidka kuugu jirin. Macnahan, Codex Security wuxuu soo saaraa qaybo koodh oo yaryar kadibna wuxuu u qoraa micro-fuzzers.
- Ka fikiridda xannibaadaha marka ay ka gudbayaan isbeddello kala duwan, halkii hubin kasta gooni loogu qaadan lahaa. Meesha ay ku habboon tahay, tani waxay ku jiri kartaa u qaabeynta su’aal satisfiability ah. Si kale haddii loo dhigo, waxaan nooca siinaynaa marin uu ku galo deegaan Python ah oo leh z3-solver, wuuna ku fiican yahay isticmaalkiisa marka loo baahdo, sida qof bani’aadam ahi u samayn lahaa marka uu ka jawaabayo dhibaato xannibaad gelin oo si gaar ah u adag. Tani waxay si gaar ah waxtar ugu leedahay eegista integer overflows ama bug-yo la mid ah oo ka jira architectures aan caadi ahayn.
- Fulinta mala-awaallada jawi xaqiijin oo sandboxed ah marka ay suurtagal tahay, si loo kala saaro “tani dhibaato way noqon kartaa” iyo “tani waa dhibaato”. Ma jiro caddayn ka fiican PoC buuxa oo end-to-end ah iyadoo koodhka lagu compile-gareeyay debug mode.
Tani waa isbeddelka muhiimka ah: halkii lagu joogsan lahaa “hubin baa jirta,” nidaamku wuxuu u riixayaa dhanka “invariant-ku wuu jiraa (ama ma jiro), waana tan caddaynta”. Noockuna wuxuu doortaa aaladda ugu fiican shaqadaas.
Falcelin macquul ah waa: maxaa labadaba loo samayn waayay? Ka bilow warbixinta SAST, kadibna wakiilka u isticmaal inuu si qoto dheer uga fikiro.
Waxa jira xaalado ay findings horay loo xisaabiyay faa’iido leeyihiin—gaar ahaan noocyo bug oo cidhiidhi ah oo la yaqaan. Laakiin wakiil loo naqshadeeyay inuu ogaado oo xaqiijiyo nuglaanshooyin ku jira context-kooda, ka bilaabidda warbixinta SAST waxay abuurtaa saddex hab-fashil oo la saadaalin karo.
Marka koowaad, waxay dhiirrigelin kartaa cidhiidhin degdeg ah. Liiska findings-ku waa khariidad muujinaysa meelihii aaladdu horay u eegtay. Haddii aad taas uga dhigto barta bilowga, waxaad u janjeerin kartaa nidaamka inuu dadaal xad-dhaaf ah ku bixiyo isla aagaggaas, isagoo adeegsanaya isla abstractions-kaas, isla markaana seegaya noocyo arrimo ah oo aan ku habboonayn aragtida aaladda.
Marka labaad, waxay soo gelin kartaa xukuno qarsoon oo adag in dib looga noqdo. Findings badan oo SAST ah waxay qariyaan mala-awaal ku saabsan sanitization, validation, ama xuduudaha kalsoonida. Haddii mala-awaalladaasi khaldan yihiin—ama aanay dhammaystirnayn—ku quudintooda wareegga caqliyeynta waxay wakiilka ka leexin kartaa “baar” una wareejin kartaa “xaqiiji ama diid,” taasina ma aha waxa aan rabno inuu wakiilku sameeyo.
Marka saddexaad, waxay adkayn kartaa qiimeynta nidaamka caqliyeynta. Haddii dhuuntu ka bilaabato wax-soo-saarka SAST, way adkaanaysaa in la kala saaro waxa wakiilku ku ogaaday falanqayntiisa iyo waxa uu ka dhaxlay aalad kale. Kala-soociddaasi waa muhiim haddii aad rabto inaad si sax ah u cabbirto awoodaha nidaamka, taas oo loo baahan yahay si nidaamku waqti ka dib u wanaagsanaado.
Sidaas darteed waxaan u dhisnay Codex Security inuu ka bilaabmo halka cilmi-baarista amnigu ka bilaabato: koodhka iyo ujeeddada nidaamka, iyadoo xaqiijinta loo adeegsanayo in heerka kalsoonida kor loo qaado ka hor inta aynaan qof faragelin.
Aaladaha SAST waxay aad ugu fiicnaan karaan waxa loo naqshadeeyay: dhaqan-gelinta heerarka koodh-qorista amniga leh, qabashada arrimaha tooska ah ee source-to-sink, iyo ogaanshaha hannaano la yaqaan marka la ballaariyo iyadoo la leh tradeoffs la saadaalin karo. Waxay qayb xooggan ka noqon karaan defense-in-depth.
Qoraalkani waa ka cidhiidhsan yahay: wuxuu ku saabsan yahay sababta wakiil loo naqshadeeyay inuu ka fikiro hab-dhaqanka oo uu xaqiijiyo findings-ka aanay shaqadiisu uga bilaaban liis findings taagan ku xiran.
Sidoo kale waxaa mudan in la xuso xaddidaad la xiriirta oo ku saabsan fikirka source-to-sink ee saafi ah: nuglaansho walba ma aha dhibaato dataflow ah. Fashilaad badan oo dhab ahi waa dhibaatooyin state iyo invariant ah—workflow bypasses, daldaloolo oggolaansho, iyo bug-yo ah “nidaamku wuxuu ku jiraa xaalad khaldan.” Noocyadan bug-yada ah, qiime wasakhaysan ma gaadho hal “dangerous sink” oo keliya. Khatartu waxay ku jirtaa waxa barnaamijku u malaynayo inay mar walba run ahaan doonaan.
Waxaan filaynaa in ecosystem-ka qalabka amnigu sii hagaagayo: static analysis, fuzzing, runtime guards, iyo workflows agentic ah dhammaantood door bay yeelan doonaan.
Waxa aan rabno in Codex Security ku fiicnaado waa qaybta ugu kharashka badan kooxaha amniga: u beddelidda “tani waxay u muuqataa wax laga shakiyo” una beddelidda “tani waa dhab, sidan bay u fashilantaa, waana kan sixitaan la jaanqaadaya ujeeddada nidaamka.”
Haddii aad rabto inaad wax badan ka barato sida Codex Security u baaro keydka koodhka, u xaqiijiyo findings-ka, uguna soo jeediyo sixitaanno, eeg dukumeentigeenna(ku furmaa daaqad cusub).


