Le blianta fada, bhí tástáil slándála statach ar fheidhmchláir (SAST) ar cheann de na bealaí ba éifeachtaí a d’úsáid foirne slándála chun athbhreithniú cód a scálú.
Ach nuair a thógamar Codex Security, rinneamar rogha dearaidh d’aon ghnó: níor thosaíomar trí thuairisc anailíse stataí a iompórtáil agus iarraidh ar an ngníomhaire í a thriáiliú. Dhearamar an córas chun tosú leis an stór féin—lena ailtireacht, a theorainneacha iontaobhais, agus an t-iompar atá beartaithe dó—agus chun an méid a aimsíonn sé a bhailíochtú sula n-iarrann sé ar dhuine am a chaitheamh air.
Tá an chúis simplí: de ghnáth ní fadhbanna sreafa sonraí iad na leochaileachtaí is deacra. Tarlaíonn siad nuair is cosúil go gcuireann cód seiceáil slándála i bhfeidhm, ach ní ráthaíonn an tseiceáil sin i ndáiríre an t-airí a mbraitheann an córas air. Is é sin le rá, ní hamháin gur dúshlán é rianú a dhéanamh ar an gcaoi a ngluaiseann sonraí trí chlár—baineann sé le cinneadh a dhéanamh an n-oibríonn na cosaintí sa chód i ndáiríre.
Is minic a chuirtear SAST i láthair mar phíblíne ghlan: foinse ionchuir neamhiontaofa a aithint, sonraí a rianú tríd an gclár, agus cásanna a mharcáil ina sroicheann na sonraí sin sink íogair gan sláintiú. Is samhail ghalánta í, agus clúdaíonn sí go leor fabhtanna fíora.
Go praiticiúil, caithfidh SAST meastacháin a dhéanamh chun fanacht soláimhsithe ar scála—go háirithe i mbunachair chóid fhíora le hatreorú, seoladh dinimiciúil, callbacks, machnamh, agus sreabhadh rialaithe atá trom ar chreataí. Ní cáineadh ar SAST iad na meastacháin sin; is é sin fírinne na hiarrachta réasúnú a dhéanamh faoi chód gan é a rith.
Ní hé sin amháin an fáth nach dtosaíonn Codex Security le tuarascáil SAST.
Is í an cheist níos doimhne cad a tharlaíonn tar éis duit foinse a rianú go sink go rathúil.
Fiú nuair a rianaíonn anailís statach ionchur i gceart trasna ilfheidhmeanna agus sraitheanna, caithfidh sí fós an cheist a fhreagairt a chinneann i ndáiríre an bhfuil leochaileacht ann:
Tóg patrún coitianta: glaonn cód ar rud éigin cosúil le sanitize_html() sula rindreálann sé ábhar neamhiontaofa. Is féidir le hanailíseoir statach a fheiceáil gur ritheadh an sláintitheoir. An rud nach féidir leis de ghnáth a chinneadh ná an leor an sláintitheoir sin i ndáiríre don chomhthéacs rindreála sonrach, don inneall teimpléid, don iompar ionchódaithe, agus do na claochluithe iartheachtacha atá i gceist.
Sin an áit a n-éiríonn rudaí casta. Ní hé an fhadhb amháin an sroicheann sonraí sink. Is í an cheist an gcuireann na seiceálacha sa chód srian ar an luach i ndáiríre ar an mbealach a ghlacann an córas leis.
Ar bhealach eile: tá difríocht mhór idir “glaonn an cód ar shláintitheoir” agus “tá an córas sábháilte.”
Seo patrún a thagann chun cinn i gcórais fhíora an t-am ar fad.
Faigheann feidhmchlár gréasáin ualach JSON, baintear redirect_url as, bailíochtaítear é in aghaidh regex allowlist, déantar URL-dhíchódú air, agus cuirtear an toradh ar aghaidh chuig láimhseálaí atreoraithe.
Is féidir le tuarascáil chlasaiceach foinse-go-sink cur síos a dhéanamh ar an sreabhadh:
ionchur neamhiontaofa → seiceáil regex → díchódú URL → atreorú
Ach ní hí an fhíorcheist an ann don tseiceáil. Is í an cheist an gcuireann an tseiceáil sin srian ar an luach fós tar éis na gclaochlú a leanann.
Má ritheann an regex roimh dhíchódú, an gcuireann sí srian i ndáiríre ar an URL díchódaithe ar an mbealach a léirmhíníonn an láimhseálaí atreoraithe é?
Chun é sin a fhreagairt, caithfear réasúnú a dhéanamh faoin slabhra iomlán claochlaithe: cad a cheadaíonn an regex, conas a iompraíonn díchódú agus normalú iad féin, conas a láimhseálann parsáil URL cásanna imeallacha, agus conas a réitíonn an loighic atreoraithe scéimeanna agus údaráis.
Tá cuma mar seo ar go leor de na leochaileachtaí a mbíonn tábhacht leo go praiticiúil: botúin in ord na n-oibríochtaí, normalú páirteach, débhríochtaí parsála, agus mímheaitseálacha idir bailíochtú agus léirmhíniú. Tá an sreabhadh sonraí le feiceáil. Tá an laige sa chaoi a leathnaíonn srianta—nó nach leathnaíonn—tríd an slabhra claochlaithe.
Ní patrún teoiriciúil amháin é seo. In CVE-2024-29041(osclaíonn i bhfuinneog nua), bhí fadhb open redirect ag Express ina bhféadfadh URLanna míchumtha cur i gcéill ar chur chun feidhme allowlist coitianta mar gheall ar an gcaoi ar ionchódaíodh spriocanna atreoraithe agus ansin ar léirmhíníodh iad. Bhí an sreabhadh sonraí simplí. Ba í an cheist níos deacra—agus an ceann a chinn an raibh an fabht ann—an raibh an bailíochtú fós bailí tar éis an tslabhra claochlaithe.
Tá Codex Security tógtha timpeall ar sprioc shimplí: triáiliú a laghdú trí shaincheisteanna a thabhairt chun solais le fianaise níos láidre. Sa táirge, ciallaíonn sé sin comhthéacs sonrach don stór a úsáid (lena n-áirítear samhail bagartha) agus saincheisteanna ardchomhartha a bhailíochtú i dtimpeallacht iargúlta sula gcuirtear i láthair iad.
Nuair a thagann Codex Security ar theorainn a bhfuil cuma “bailíochtú” nó “sláintiú” uirthi, ní dhéileálann sé leis sin mar bhosca le tic ann. Déanann sé iarracht a thuiscint cad é atá an cód ag iarraidh a ráthú—agus ansin déanann sé iarracht an ráthaíocht sin a bhréagnú.
Go praiticiúil, is gnách go mbíonn meascán díobh seo i gceist:
- Léamh an chosáin chóid ábhartha le comhthéacs iomlán an stóir, ar an mbealach a dhéanfadh taighdeoir slándála, agus cuardach a dhéanamh ar mhímheaitseálacha idir rún agus cur chun feidhme. Áirítear tuairimí leis seo, ach ní gá go gcreideann an tsamhail tuairimí, mar sin má chuireann tú //Halvar says: this is not a bug os cionn do chóid ní chuirfidh sé sin mearbhall air, má tá fabht ann i ndáiríre.
- An fhadhb a laghdú go dtí an slisín is lú is féidir a thástáil (mar shampla, an phíblíne claochlaithe timpeall ar ionchur aonair), ionas gur féidir réasúnú a dhéanamh uirthi gan an chuid eile den chóras a bheith sa bhealach. Sa chiall seo, baineann Codex Security slisíní beaga cód amach agus ansin scríobhann sé micreafhuzzers dóibh.
- Réasúnú a dhéanamh faoi shrianta trasna claochluithe, seachas déileáil le gach seiceáil go neamhspleách. Nuair is cuí, d’fhéadfadh foirmliú mar cheist satisfiability a bheith san áireamh anseo. Is é sin le rá, tugaimid rochtain don tsamhail ar thimpeallacht Python le z3-solver agus tá sí go maith ag baint úsáide as nuair is gá, díreach mar a bheadh ar dhuine a dhéanamh agus fadhb an-chasta srianta ionchuir á freagairt aige. Tá sé seo úsáideach go háirithe chun breathnú ar róshreafaí slánuimhreacha nó fabhtanna cosúla ar ailtireachtaí neamhchaighdeánacha.
- Hipitéisí a chur i bhfeidhm i dtimpeallacht bhailíochtaithe i mbosca gainimh nuair is féidir, chun “d’fhéadfadh sé seo a bheith ina fhadhb” a idirdhealú ó “is fadhb í seo”. Níl cruthúnas níos fearr ann ná PoC iomlán ceann go ceann agus an cód tiomsaithe i mód dífhabhtaithe.
Seo an príomhathrú: in ionad stopadh ag “tá seiceáil ann”, brúann an córas i dtreo “tá an t-inbhéartach fíor (nó níl), agus seo an fhianaise”. Agus roghnaíonn an tsamhail an uirlis is fearr don phost sin.
Freagra réasúnta is ea: cén fáth nach ndéanaimid an dá rud? Tosú le tuarascáil SAST, ansin úsáid an gníomhaire chun réasúnú níos doimhne a dhéanamh.
Tá cásanna ann ina mbíonn torthaí réamhríofa cabhrach—go háirithe do ranganna cúnga fabhtanna aitheanta. Ach do ghníomhaire atá deartha chun leochaileachtaí a aimsiú agus a bhailíochtú i gcomhthéacs, cruthaíonn tosú ó thuairisc SAST trí mhodh teipe intuartha.
Ar an gcéad dul síos, féadfaidh sé cúngú roimh am a spreagadh. Is mapa é liosta torthaí de na háiteanna ar fhéach uirlis cheana féin. Má dhéileálann tú leis mar phointe tosaigh, is féidir leat an córas a chlaonadh chun iarracht dhíréireach a chaitheamh sna réigiúin chéanna, ag úsáid na n-astarraingtí céanna, agus ranganna saincheisteanna nach n-oireann do dhearcadh na huirlise a chailliúint.
Ar an dara dul síos, féadfaidh sé breithiúnais intuigthe a thabhairt isteach ar deacair iad a chealú. Ionchódaíonn go leor torthaí SAST toimhdí faoi shláintiú, bailíochtú, nó teorainneacha iontaobhais. Má tá na toimhdí sin mícheart—nó neamhiomlán amháin—d’fhéadfadh iad a chur isteach sa lúb réasúnaíochta an gníomhaire a aistriú ó “imscrúdaigh” go “deimhnigh nó cuir as an áireamh”, agus ní hé sin atá uainn go ndéanfadh an gníomhaire.
Ar an tríú dul síos, féadfaidh sé é a dhéanamh níos deacra an córas réasúnaíochta a mheas. Má thosaíonn an phíblíne le haschur SAST, bíonn sé deacair an rud a d’aimsigh an gníomhaire trína anailís féin a scaradh ón rud a fuair sé ó uirlis eile. Tá an scaradh sin tábhachtach más mian leat cumais an chórais a thomhas go cruinn, rud atá riachtanach chun go bhfeabhsóidh an córas le himeacht ama.
Mar sin thógamar Codex Security chun tosú san áit a dtosaíonn taighde slándála: ón gcód agus ó rún an chórais, agus bailíochtú in úsáid chun an tairseach muiníne a ardú sula gcuirimid isteach ar dhuine.
Is féidir le huirlisí SAST a bheith ar fheabhas ar an rud ar dearadh dóibh: caighdeáin chódaithe shlána a fhorfheidhmiú, saincheisteanna simplí foinse-go-sink a ghabháil, agus patrúin aitheanta a bhrath ar scála le malairtí intuartha. Is féidir leo a bheith ina gcuid láidir de chosaint i ndoimhneacht.
Tá an postáil seo níos cúinge: baineann sí leis an bhfáth nár cheart do ghníomhaire atá deartha chun réasúnú a dhéanamh faoi iompar agus torthaí a bhailíochtú tosú ar a chuid oibre agus é ancaireáilte do liosta statach torthaí.
Is fiú freisin teorannú gaolmhar de smaointeoireacht ghlan foinse-go-sink a lua: ní fadhb sreafa sonraí é gach leochaileacht. Is fadhbanna stáit agus inbhéartach iad go leor teipeanna fíora—seachaintí sreafa oibre, bearnaí údarúcháin, agus fabhtanna “tá an córas sa stát mícheart”. I gcás na gcineálacha fabhtanna seo, ní shroicheann luach truaillithe “sink chontúirteach” amháin. Tá an riosca sa mhéid a ghlacann an clár leis a bheidh fíor i gcónaí.
Táimid ag súil go leanfaidh éiceachóras na n-uirlisí slándála ag feabhsú: beidh ról ag anailís statach, fuzzing, gardaí ama rite, agus sreafaí oibre gníomhairiúla ar fad.
An rud ba mhaith linn go mbeadh Codex Security go maith air ná an chuid is costasaí d’fhoirne slándála: “tá cuma amhrasach air seo” a iompú ina “tá sé seo fíor, seo mar a theipeann air, agus seo réiteach a oireann do rún an chórais.”
Más mian leat tuilleadh a fhoghlaim faoin gcaoi a scanann Codex Security stórais, a bhailíochtaíonn sé torthaí, agus a mholann sé réitigh, féach ar ár gcáipéisíocht(osclaíonn i bhfuinneog nua).


