Pecynnau Maleisus Ffynhonnell Agored: Y Dull Xygeni

Dyma'r bedwaredd bennod yn y cyfres o bostiadau ynglŷn â chydrannau maleisus, lle rydym yn cyflwyno'r Xygeni dull o ymdrin â'r bygythiad hwn, fel rhan o'n sylw ar gyfer Open Source Security

Gwelsom fod gormod o ymddiriedaeth mewn cydrannau ffynhonnell agored o ffynhonnell ansicr yn cael ei defnyddio gan droseddwyr o bob math i gyflawni ymddygiad annisgwyl i'w redeg naill ai mewn peiriannau datblygwyr, CI/CD systemau, neu wedi'u hymgorffori ym meddalwedd sefydliad y dioddefwr, fel ei fod yn cael ei basio ymlaen i gleientiaid y sefydliad. Fe wnaethon ni ddadansoddi yn pennod #2 yr ymosodiadau sy'n defnyddio cofrestrfeydd cyhoeddus i gyflwyno meddalwedd faleisus a'r hyn rydyn ni wedi'i ddysgu ar ôl gwylio sut mae'r actorion drwg yn gweithredu, ac yn y gorffennol pennod #3 archwiliwyd y rheolaethau sy'n gweithio (a'r rhai sy'n methu) yn erbyn y bygythiad hwn. 

Nawr yw'r amser i edrych ar ein dull o ymdrin â'r broblem. Yn y bennod hon, rydym yn cyflwyno pa strategaeth rydym yn ei dilyn yn Xygeni ar gyfer ein Rhybudd Cynnar Maleisus system (MEW). Sut mae'r system aml-gam hon yn gweithio mewn amser real pan fydd fersiwn newydd o becyn yn cael ei rhyddhau, sut mae tystiolaeth yn cael ei chasglu o wahanol ffynonellau, sut mae triage yn cael ei wneud, pa feini prawf dosbarthu yr ydym yn eu dilyn, a pham mae angen rhywfaint o ddadansoddiad â llaw eto i gadarnhau natur ymgeisydd pecyn maleisus. Byddwn hefyd yn egluro sut yr ydym yn helpu NPM, GitHub, PyPI, a seilweithiau allweddol eraill yn yr ecosystemau ffynhonnell agored i leihau'r amser aros ar gyfer meddalwedd faleisus. 

The pipeline

Mae Rhybudd Cynnar Malware Xygeni (MEW) yn prosesu cydrannau'n barhaus, naill ai peli tar pecynnau ar gyfer llyfrgelloedd a fframweithiau ar gyfer ecosystemau rhaglennu a gefnogir fel JavaScript/Node neu Python, delweddau cynhwysydd Docker / OCI, neu estyniadau ac ategion ar gyfer offer fel IDEs neu CI/CD systemau. Cyhoeddir cydrannau o'r fath mewn cofrestrfeydd cyhoeddus gyda gwahanol lefelau o wirio defnyddwyr.

Dyma olwg sgematig o sut mae'r system yn gweithredu:

The darganfyddwr Mae'r broses yn cael y porthiant o ddigwyddiadau cyhoeddi. Digwyddiad cyhoeddi yw creu fersiwn newydd o gydran newydd neu bresennol. Gan nad yw'r cofrestrfeydd poblogaidd yn darparu mecanwaith cyhoeddi-sub i ddefnyddwyr sydd â diddordeb, gwneir hyn yn aml trwy holi'r gofrestrfa am ddigwyddiadau diweddar. Prosiect rhagorol gan yr OSSF, porthiant-pecynnau, cefnogaeth cofrestrfeydd poblogaidd fel PyPI neu Maven Central, a darparu rhyngwyneb unedig yn seiliedig ar borthiant. Yn MEW, fe wnaethom ychwanegu rhai gweithrediadau penodol sy'n lleihau'r amser aros, er enghraifft gyda replica o'r gronfa ddata CouchDB a ddefnyddir gan NPM sydd mewn cydamseriad â'r gronfa ddata gofrestrfa gyhoeddus.

Yn Xygeni, mae gennym rhestr eiddo[1] o'r holl gydrannau (yn uniongyrchol neu'n anuniongyrchol) a ddefnyddir gan feddalwedd ein cwsmeriaid. Caiff cyfesurynnau cydrannau cwsmeriaid eu bwydo'n rheolaidd i MEW er mwyn blaenoriaethu'r dadansoddiadau: caiff cydrannau a ddefnyddir gan ein cwsmeriaid eu prosesu'n gynharach. Mae blaenoriaeth hefyd yn seiliedig ar enw da'r cyhoeddwr a pha mor hanfodol yw'r gydran, felly rhoddir blaenoriaeth hefyd i gydrannau sy'n dod gan gyhoeddwyr sydd ag enw da isel.

The dadansoddwyr yna defnyddiwch y cydrannau sydd ar ddod yn y ciw blaenoriaeth. Pan ddewisir fersiwn o gydran i'w dadansoddi, caiff ei phêl dar ei lawrlwytho o'r gofrestrfa. Sylwch fod y gydran ddeuaidd, wedi'i phecynnu yn cael ei dadansoddi: Mae'r rhan fwyaf o gydrannau ffynhonnell agored fel arfer yn dod o ystorfa ffynhonnell agored, yn aml yn github.com, a ddefnyddir ar gyfer cyd-destun yn unig, ac mae'r meddalwedd faleisus bob amser yn cael ei chwilio amdani yn y bêl dar gydran oherwydd bod actorion bygythiad yn dweud celwydd yn systematig am y ffynonellau y maent yn honni eu bod wedi'u defnyddio i adeiladu'r bêl dar gydran y maent yn ei rhyddhau. 

O safbwynt y defnyddiwr

Rwy'n eich clywed chi'n meddwl: Sut alla i elwa o wybod am fersiwn pecyn faleisus yn gynnar? Yn y bennod “Anatomeg Pecynnau Maleisus: Beth Yw’r Tueddiadau?” gwelsom fod cyfanswm yr amser aros yn yr ystod o ddyddiau, tra bod yr hysbysiad cyntaf gan MEW i gwsmeriaid sy'n defnyddio'r gydran yr effeithir arni yn yr ystod munudau. Gyda rheilen warchod syml[2] gallwch rwystro'r adeiladwaith (mae dau lefel rhybudd, un sy'n gwbl awtomataidd pan fydd yr injan yn dod i'r casgliad bod meddalwedd faleisus posibl a hysbysiad diweddarach pan fydd ein tîm diogelwch yn cadarnhau presenoldeb meddalwedd faleisus trwy archwiliad â llaw). Mae aros nes bod y gofrestrfa yn cadarnhau'r meddalwedd faleisus ac yn ei dynnu o'r gofrestrfa fel arfer yn rhy hwyr oherwydd y ffenestr amlygiad hir.

Gall y sefydliad ddefnyddio rheilen warchod sy'n gwirio a oes cydran gyda meddalwedd faleisus posibl (yn unrhyw un o'r ddau lefel rhybuddio) neu, trwy API, gwybod yn gyflym a yw unrhyw un o'r dibyniaethau uniongyrchol neu anuniongyrchol mewn prosiect meddalwedd yn defnyddio cydran faleisus.

Sut Mae MEW yn Gweithio: Manylion Mewnol

Y Craidd: Peiriant Canfod Meddalwedd Maleisus

Mae'r dadansoddwr yn defnyddio gwahanol synwyryddion i gasglu tystiolaeth o gamwedd. Mae synwyryddion yn cyfuno dadansoddiad statig, dadansoddiad galluoedd, a dadansoddiad cyd-destun.[3], fel y disgrifiwyd yn y post blaenorol yn y gyfres hon. 

Yn Xygeni, mae gennym dîm peirianneg sydd â phrofiad hir mewn dadansoddi statig, a dyma'r prif wahaniaeth gyda datrysiadau gwrth-ddrwgwedd eraill. Sylwch, ar gyfer rhai ecosystemau, fod y darball wedi'i becynnu yn cynnwys naill ai cod ffynhonnell (e.e. cod JavaScript neu TypeScript ar gyfer pecynnau NPM, ffynonellau Python ar gyfer pecynnau PyPI), neu god wedi'i lunio sy'n ddigon agos at y cod ffynhonnell ar gyfer dadansoddi statig (e.e. cod beit mewn ffeiliau JAR ar gyfer Maven). Ar gyfer eraill, fel delweddau cynwysyddion, mae ffeiliau gweithredadwy deuaidd yn gyffredin, felly casglu galluoedd yw'r dechneg a ddefnyddir, ynghyd â chanfod meddalwedd faleisus confensiynol yn seiliedig ar reolau YARA a llofnodion meddalwedd faleisus. 

Sylwch nad yw technolegau syml fel mynegiadau rheolaidd neu lofnodion yn briodol ar gyfer canfod ymddygiad maleisus. Dychmygwch ganfod gollyngwr neu lawrlwythwr: Mae rhywfaint o god neu ffeil ddeuaidd wedi'i leoli yn y pecyn neu wedi'i lawrlwytho o barth allanol, nad yw'n gysylltiedig â'r gydran (gallai fod yn un o rhestr fawr o barthau a brynwyd gan yr actor bygythiad[4], Neu parth cyfreithlon i osgoi canfod). Yna caiff y cod hwnnw ei weithredu gan ddefnyddio un o'r swyddogaethau ar gyfer hynny. Gellir trawsnewid y cod i guddio'r URL lawrlwytho neu'r swyddogaeth a ddefnyddir ar gyfer rhedeg y cod a lawrlwythwyd. Mae angen dadansoddiad llif data llawn i'w ganfod, gan ddefnyddio peirianwaith llawn dadansoddi statig, neu gallai gweithrediad blwch tywod (os bodlonir yr amodau ar gyfer rhedeg ymddygiad maleisus mewn gwirionedd) ganfod hyn yn yr achos cyffredinol.

Mae actorion bygythiad yn dilyn yr un technegau a synwyryddion ar eu cyfer ag y cynlluniwyd a'u gweithredu. Mae yna hefyd rai camau cyn-brosesu, er enghraifft ar gyfer cael gwared ar ddryswch, sydd yn aml yn angenrheidiol i ddatgelu'r ymddygiad cudd. 

Ychwanegu Cyd-destun

Mae rhai synwyryddion yn defnyddio gwybodaeth am gyd-destun. Er enghraifft, mae anghydweddiad rhwng y fersiwn yn y gofrestrfa gydrannau a'r tag/rhyddhad yn y storfa GitHub gysylltiedig yn dystiolaeth gref bod actor drwg o bosibl wedi cael manylion cyhoeddi ar gyfer y gofrestrfa ond nid ar gyfer y storfa GitHub. Ymosodiadau fel yr un sy'n effeithio ar werthwr waledi crypto Ledger gellid ei ganfod yn hawdd gan y camgymhariad hwn.

A sgôr maleisusrwydd Cyfrifir (MS) o ganfyddiadau'r rhediad synwyryddion, yn seiliedig ar gryfder y dystiolaeth a gasglwyd. Nid yw pob canfyddiad yr un peth, ac mae trefn y gweithrediad yn berthnasol. 

Enw Da Defnyddwyr a Chydrannau

Nid yw pob datblygwr ffynhonnell agored wedi'i greu'r un fath! 

Gall cyfrif NPM datblygwr ag enw da gael ei herwgipio (mae hyn yn digwydd hyd yn oed gyda phobl sy'n ymwybodol o ddiogelwch), a meddalwedd faleisus yn cael ei gyhoeddi gan ddefnyddio'r cyfrif hwnnw. Yn amlwg, dylai enw da ostwng yn sydyn, a dim ond adfer i ogoniant a fu pan fydd y cyfrif a herwgipiwyd yn cael ei adfer a bod y datblygwr yn trwsio'r amodau a arweiniodd at gymryd drosodd y cyfrif. Mae enw da yn anodd ei ennill ond gellir ei golli mewn amrantiad.  

Yn MEW, rydym wedi gweithredu system rheoli enw da gynhwysfawr i wobrwyo ymddygiad cadarnhaol a chosbi gweithgareddau amheus. Mae'r system hon yn dechrau gyda defnyddwyr newydd mewn safbwynt niwtral ac yn addasu eu henw da yn seiliedig ar eu gweithgareddau parhaus.

Mae enw da defnyddiwr yn gwella trwy gamau cadarnhaol fel cynnal cyfrifon cyfryngau cymdeithasol gweithredol, galluogi dilysu aml-ffactor, cyfrannu'n rheolaidd at brosiectau, a llofnodi commits gydag allweddi gwiriadwy. I'r gwrthwyneb, mae enw da yn dirywio oherwydd gweithredoedd gelyniaethus fel cyhoeddi meddalwedd faleisus, defnyddio cyfeiriadau e-bost tafladwy, peidio â llofnodi commits, neu'n arddangos patrymau anarferol mewn cyfraniadau.

Prif nod ein system yw sicrhau amgylchedd diogel a dibynadwy. Mae'n cyflawni hyn drwy addasu enw da defnyddwyr yn ddeinamig yn seiliedig ar ffactorau amrywiol, gan barchu pryderon preifatrwydd a chyfyngiadau gwahanol gofrestrfeydd hefyd.

Cyfrifir sgôr enw da mewnol ar gyfer y defnyddiwr (gan ymuno â'r gofrestrfa a'r cyfrif github pan fo'n bosibl), ac ynghyd â'r sgôr maleisusrwydd a ddefnyddir wrth ddosbarthu'r gydran sy'n cael ei dadansoddi, ac er mwyn cymhwyso'n well pwy sydd o dan gyhoeddiad y gydran.

Cafwyd Tystiolaeth o Ymddygiad Maleisus. Beth Felly? Y Broses Adolygu â Llaw

Mae'r dosbarthwr cyfredol yn gosod y fersiwn gydran a ddadansoddwyd yn un o'r categorïau "wedi'i chadarnhau'n faleisus", "yn ôl pob tebyg yn faleisus", "risg uchel", "risg isel" neu "ddim yn faleisus" yn seiliedig ar drothwyon ar y sgoriau sy'n crynhoi'r canfyddiadau ac enw da'r defnyddiwr/cydran. Mae dosbarthiad i gategorïau "risg uchel" neu "yn ôl pob tebyg yn faleisus" yn sbarduno'r adolygiad â llaw a'r hysbysiad cyntaf. Gosodir y categori "wedi'i chadarnhau'n faleisus" ar ôl adolygiad â llaw neu pan fydd y dystiolaeth yn cyfateb i'r un dystiolaeth ar gyfer fersiwn flaenorol a gadarnhawyd yn faleisus. 

Pan fo digon o dystiolaeth o ymddygiad maleisus posibl, anfonir rhybudd cyntaf (rhybudd cwarantîn) at y sefydliadau yr effeithir arnynt. Fel y soniwyd o'r blaen, gall hynny rwystro gosod neu adeiladu meddalwedd sy'n dibynnu ar y gydran sydd wedi'i chwarantîn. 

Mae hynny'n creu problem yn fewnol yr MEW dashboard felly gall dadansoddwyr diogelwch ddechrau'r broses adolygu â llaw ar gyfer y gydran. Mae gan y tîm offer arbenigol (blwch tywod, dad-ddwyso, dosbarthu ar gyfer ymchwil meddalwedd faleisus, offer adrodd meddalwedd faleisus) ar gyfer asesu natur y fersiwn gydran sy'n cael ei hymchwilio'n gyflym. Mae'r rhan fwyaf o'r meddalwedd faleisus ("y brwyniaid" neu gydrannau maleisus heb eu datrys) yn cael ei adolygu  

Daw canlyniad yr adolygiad i ben naill ai ddiogel, felly canfu'r peiriant dadansoddi awtomatig ganlyniad positif ffug a ddefnyddir fel adborth i'r dosbarthwr dysgu peirianyddol i ddysgu'r patrwm; neu wedi'i gadarnhau'n faleisus, felly mae'r gydran yn cael ei datgelu'n gyfrifol fel un faleisus i'r gofrestrfa gyhoeddus, yn dilyn y broses adrodd. Anfonir ail hysbysiad at y sefydliadau yr effeithir arnynt, a all hynny yn eu tro dad-gwarantîn y gydran, neu ei rhwystro'n bendant o'u proses uwchraddio fersiwn neu wal dân y gydran a ddefnyddir yn eu cofrestrfa fewnol.

Mae'r gosodiad hwn yn caniatáu inni ddadansoddi degau o filoedd o fersiynau newydd bob dydd a nodi'r degau sy'n debygol o fod yn faleisus, ac yna rydym yn eu hadolygu â llaw. Cofiwch o'r bennod flaenorol mai un o bob deg mil yw cyfradd y cydrannau maleisus a welwn yn y gwyllt ar hyn o bryd. 

Adrodd i'r Gofrestrfa

Fe wnaethon ni ganfod bod y rhan fwyaf o gofrestrfeydd cyhoeddus, un o asgwrn cefn y seilwaith ffynhonnell agored, yn darparu mecanweithiau cymharol gyfyngedig ar gyfer adrodd am broblemau diogelwch, a chydrannau maleisus yn benodol. Rydym yn cael trafferth gwella trefniadaeth sylfaenol y broses adrodd. Fel arfer, rydym yn derbyn e-bost adborth ar y mwyaf gan y tîm diogelwch yn y gofrestrfa yn cadarnhau bod y gydran wedi'i thynnu o'r gofrestrfa. 

Weithiau caiff y gofrestrfa ei chamddefnyddio, gan dorri ei thelerau defnyddio, ond heb achosi ymddygiad maleisus yn y feddalwedd a gyflwynir. Caiff hyn ei adrodd i'r gofrestrfa hefyd, ond ni chaiff ei hysbysu i sefydliadau i gyfyngu ar y sŵn.  

Gwaith yn y dyfodol

Mae llawer o welliannau ar y gweill ar hyn o bryd. Yn gyntaf oll, a porth cyhoeddus ar gyfer iechyd cydrannau'r system weithredu, yn enwedig mewn perthynas â'r dystiolaeth a ddarganfuwyd o faleisusrwydd posibl, yn cael ei ddatblygu ar hyn o bryd. Bwriedir i hyn fod yn gyfraniad cymedrol i'r gymuned ffynhonnell agored. Daliwch ati i wylio. 

Datblygiad parhaus arall yw gwelliant dosbarthwr dysgu peirianyddolBydd MEW yn dysgu o ddosbarthiadau blaenorol. Defnyddir y fector o ganfyddiadau o synwyryddion injan, ynghyd â'r sgôr maleisusrwydd a'r sgôr enw da a ddeilliwyd ar gyfer y gydran a'r cyhoeddwr (“y dystiolaeth a ganfuwyd”) fel mewnbwn i system ddysgu peirianyddol sy'n diweddaru'r model dosbarthwr. Y newidyn allbwn yw a yw'r gofrestrfa wedi cadarnhau a oedd y gydran yn faleisus. Gelwir hyn yn "yr Oracle" a bydd yn helpu gyda mwy o ragofalon.ciscymhwyster e, wedi'i gynllunio i fod yn gadarn (atgof uchel h.y. peidiwch â cholli cydrannau maleisus) ond gyda llai o ganlyniadau positif ffug (peidiwch â riportio cydrannau diogel fel rhai maleisus). 

A sgôr critigolrwydd yn cael eu hychwanegu ar gyfer meini prawf blaenoriaethu, ar wahân i berthyn i set o ddibyniaethau cwsmeriaid, ac enw da isel y cyhoeddwr. Mae'n amlwg y dylid ystyried prosiectau sydd â mwy o ddylanwad a phwysigrwydd yn gynharach ar gyfer dadansoddi. Ni fyddwn yn ailddyfeisio'r olwyn yma, ac yn dilyn y Sgôr Beirniadaeth Prosiect Ffynhonnell Agored.

Mae cefnogaeth ar gyfer ecosystemau ychwanegol yn cael ei datblygu. Mae technolegau ac offer eang fel ategion PHP neu Jenkins yn y cynllun.

Rydym hefyd yn archwilio a allai deallusrwydd artiffisial helpu'r broses adolygu â llaw i symleiddio'r dadansoddiad ar gyfer yr ychydig gydrannau maleisus mwy soffistigedig. 

Yn y rhandaliad nesaf ac olaf o'r gyfres hon, “Manteisio ar Ffynhonnell Agored: Beth i'w Ddisgwyl Gan y Dynion Drwg”, byddwn yn canolbwyntio ar y ffyrdd diweddaraf y mae'r gwrthwynebwyr yn eu cymryd i wneud yr ymosodiadau'n fwy cudd, yn anoddach i'w canfod, yn fwy targedig at ddiwydiannau penodol, ac yn fwy proffidiol. A fydd ymosodiadau ransomware yn cael eu cyflwyno gan ddefnyddio'r cerbyd hwn? Sut mae'r drwgweithredwyr yn manteisio ar offer AI i gyflwyno meddalwedd faleisus mwy soffistigedig? A yw prosiectau poblogaidd iawn mewn perygl? Mae hyn er mwyn rhoi syniad i ddarllenwyr o'r ras arfau hon, a beth i'w ddisgwyl yn y tymor byr (ail hanner 2024) a'r tymor canolig (2025). 

Byddwn yn gorffen gyda rhai syniadau ar ba gamau bach y gallai'r gymuned eu cymryd heb newid gormod ar natur agored y byd ffynhonnell agored. Er enghraifft, byddai mecanwaith mwy effeithlon ar gyfer adrodd meddalwedd faleisus i gofrestrfeydd cyhoeddus, a rhannu tystiolaeth o gydrannau a allai fod yn faleisus gyda'r cofrestrfeydd a'r gymuned yn gam bach i'r cyfeiriad cywir tuag at y nod o gau'r drysau i actorion bygythiad. 

Ni ddylai meddalwedd faleisus mewn cydrannau ffynhonnell agored amharu ar y manteision enfawr y mae'r gymuned ffynhonnell agored wedi'u dwyn i'n cymdeithas.  

  • [1] Mae ein sganiwr yn canfod cydrannau ffynhonnell agored y cyfeirir atynt gan y prosiectau meddalwedd a ddadansoddwyd, felly mae'r graff dibyniaeth llawn a chyfoes yn hysbys, o leiaf ar gyfer prosiectau sy'n cael eu sganio'n rheolaidd. Mae Xygeni OSS yn datgelu API y gall cwsmeriaid hefyd ei ddefnyddio wrth roi cydran o ddiddordeb ar y rhestr wen, gan gynnwys gwybodaeth am wendidau a thystiolaeth faleisus.
  • [2]  Gall rheilen warchod dorri'r adeiladwaith os canfyddir cyflwr sy'n cyfateb i broblemau diogelwch. Gellid ystyried bod canfyddiadau diogelwch fel bregusrwydd critigol a chyrhaeddadwy neu ddefnyddio cydran mewn cwarantîn yn ddigon difrifol i dorri'r adeiladwaith ar gyfer y feddalwedd yr effeithir arni.
  • [3]Mae ein dadansoddwyr diogelwch yn rhedeg y gydran neu ei sgriptiau gosod mewn amgylchedd blwch tywod pan fo angen. Fodd bynnag, nid yw MEW yn cynnal dadansoddiad deinamig, yn bennaf oherwydd nad yw'r ymddygiad maleisus bob amser yn cael ei berfformio mewn ymosodiadau wedi'u targedu ac oherwydd y rhesymeg osgoi y mae actorion bygythiad yn ei defnyddio i osgoi dadansoddiad deinamig. 
  • [4]  Rhoddwyd enw i'r dechneg hon, Algorithmau Cynhyrchu Parth Cofrestredig neu RDGA, ac actorion bygythiad newydd fel yr hyn a elwir Cwningen Llawddryll buddsoddodd gymaint â $1M mewn 500K o barthau, gan ddangos pa mor broffidiol yw'r diwydiant seiberdroseddu. 

Anatomeg Pecynnau Maleisus: Beth Yw'r Tueddiadau?

Diogelu yn Erbyn Pecynnau Maleisus OSS: Beth Sy'n (Nid) Gweithio

offer-sca-meddalwedd-offer-dadansoddi-cyfansoddiad
Blaenoriaethu, cywiro a diogelu eich risgiau meddalwedd
Cael eich Cyfrif Am Ddim.
Nid oes angen cerdyn credyd.

Sicrhau eich Datblygiad a Chyflwyniad Meddalwedd

gyda Phecyn Cynnyrch Xygeni