Ин қисмати чоруми ин силсилафилм аст силсилаи постҳо дар бораи ҷузъҳои зараровар, ки дар он мо пешниҳод мекунем Ксигенӣ равиши мубориза бо ин таҳдид, ҳамчун як қисми фарогирии мо барои Open Source Security.
Мо дидем, ки эътимоди аз ҳад зиёд ба ҷузъҳои манбаъи кушодаи манбаи номуайян аз ҷониби гунаҳкорони ҳама намуд барои пешниҳоди рафтори ғайричашмдошт барои иҷро дар мошинҳои таҳиягар истифода мешавад. CI/CD системаҳо, ё дар нармафзори ташкилоти ҷабрдида ҷойгир карда шудаанд, то он ба муштариёни ташкилот интиқол дода шавад. Мо дар эпизоди №2 ҳамлаҳо бо истифода аз феҳристҳои давлатӣ барои интиқоли нармафзори зараровар ва он чизе, ки мо пас аз тамошои тарзи кори бозигарони бад ва дар қаблӣ омӯхтаем эпизоди №3 воситаҳои назорате, ки бар зидди ин таҳдид кор мекунанд (ва онҳое, ки ноком мешаванд), баррасӣ шуданд.
Акнун вақти он расидааст, ки ба равиши худ ба мушкилот назар андозем. Дар ин қисм, мо стратегияеро пешниҳод мекунем, ки мо дар Xygeni барои фаъолияти худ риоя мекунем. Огоҳии барвақти нармафзори зараровар (MEW) система. Чӣ гуна ин системаи бисёрмарҳилаӣ ҳангоми баровардани версияи нави баста дар вақти воқеӣ кор мекунад, чӣ гуна далелҳо аз манбаъҳои гуногун гирифта мешаванд, чӣ гуна гурӯҳбандӣ анҷом дода мешавад, мо кадом меъёрҳои таснифотро риоя мекунем ва чаро барои тасдиқи хусусияти номзади бастаи зараровар ҳанӯз таҳлили дастӣ лозим аст. Мо инчунин шарҳ медиҳем, ки чӣ гуна мо ба NPM, GitHub, PyPI ва дигар инфрасохторҳои калидӣ дар экосистемаҳои кушодаасос барои кам кардани вақти интизории нармафзори зараровар кӯмак мекунем.
Дар pipeline
Огоҳии барвақтии нармафзори зараровари Xygeni (MEW) пайваста ҷузъҳоро коркард мекунад, ё бастаҳои тарбол барои китобхонаҳо ва чаҳорчӯбаҳо барои экосистемаҳои барномасозии дастгиришаванда ба монанди JavaScript/Node ё Python, тасвирҳои контейнерии Docker/OCI ё васеъкуниҳо ва плагинҳо барои абзорҳо ба монанди IDE ё CI/CD системаҳо. Чунин ҷузъҳо дар феҳристҳои оммавӣ бо сатҳҳои гуногуни санҷиши корбарон нашр карда мешаванд.
Дар зер схематикии тарзи кори система оварда шудааст:
Дар кашфкунанда Раванди нашриёт аз рӯйдодҳои нашр хабар мегирад. Чорабинии нашриёт эҷоди версияи нави ҷузъи нав ё мавҷуда аст. Азбаски феҳристҳои маъмул механизми pub-sub-ро барои истеъмолкунандагони манфиатдор пешниҳод намекунанд, ин аксар вақт тавассути пурсиш дар феҳрист барои рӯйдодҳои ахир анҷом дода мешавад. Лоиҳаи аъло аз ҷониби OSSF, каналҳои бастабандӣ, дастгирӣ феҳристҳои маъмул ба монанди PyPI ё Maven Central ва интерфейси ягонаи фидӣ пешниҳод мекунанд. Дар MEW мо баъзе татбиқҳои мушаххасеро илова кардем, ки вақти интизориро кам мекунанд, масалан, бо нусхаи пойгоҳи додаҳои CouchDB, ки аз ҷониби NPM истифода мешавад ва бо пойгоҳи додаҳои сабти номи оммавӣ ҳамоҳанг аст.
Дар Xygeni, мо инвентаризатсия дорем[1] аз ҳамаи ҷузъҳо (мустақиман ё ғайримустақим), ки аз ҷониби нармафзори муштариёни мо истифода мешаванд. Координатаҳои ҷузъҳои муштариён барои афзалият додан ба таҳлилҳо мунтазам ба MEW фиристода мешаванд: ҷузъҳое, ки аз ҷониби муштариёни мо истифода мешаванд, пештар коркард карда мешаванд. Афзалият инчунин ба обрӯи ношир ва танқидии ҷузъ асос ёфтааст, аз ин рӯ, ҷузъҳое, ки аз ноширони дорои обрӯи паст меоянд, низ афзалият дода мешаванд.
Дар таҳлилгарон сипас ҷузъҳои дар интизорӣ бударо дар навбати афзалиятнок истеъмол кунед. Вақте ки версияи компонент барои таҳлил интихоб карда мешавад, рамзи tarball-и он аз феҳрист зеркашӣ карда мешавад. Дар хотир доред, ки ҷузъи дуӣ ва бастабандишуда таҳлил карда мешавад: Аксари ҷузъҳои кушодаасос одатан аз анбори рамзи кушода, аксар вақт дар github.com, ки танҳо барои контекст истифода мешавад, меоянд ва нармафзори зараровар ҳамеша дар рамзи компонент ҷустуҷӯ карда мешавад, зеро ҳамлагарони таҳдид ба таври систематикӣ дар бораи манбаъҳое, ки иддао доранд, ки барои сохтани рамзи компоненте, ки онҳо нашр мекунанд, истифода кардаанд, дурӯғ мегӯянд.
Аз нуқтаи назари корбар
Ман мешунавам, ки шумо фикр мекунед: Чӣ гуна ман метавонам аз огоҳии барвақт дар бораи версияи бастаи зараровар фоида гирам? Дар қисмат «Анатомияи бастаҳои зараровар: Тамоюлҳо кадомҳоянд?» мо дидем, ки вақти умумии интизорӣ дар диапазони рӯзҳо аст, дар ҳоле ки аввалин огоҳинома аз MEW ба муштариёне, ки ҷузъи зарардидаро истифода мебаранд, дар диапазони дақиқаҳо аст. Бо девори муҳофизатии оддӣ[2] Шумо метавонед ин сохташударо масдуд кунед (ду сатҳи огоҳӣ мавҷуданд, яке пурра автоматӣ вақте ки муҳаррик хулоса мекунад, ки нармафзори зараровар вуҷуд дорад ва огоҳии дертар вақте ки дастаи амниятии мо бо санҷиши дастӣ мавҷудияти нармафзори зарароварро тасдиқ мекунад). Интизор шудан то тасдиқи нармафзори зараровар аз ҷониби реестр ва хориҷ кардани он аз реестр аз сабаби муддати тӯлонӣ хеле дер аст.
Ташкилот метавонад аз девори муҳофизатӣ истифода барад, ки оё ҷузъе бо нармафзори эҳтимолии зараровар (дар ҳар яке аз ду сатҳи огоҳӣ) мавҷуд аст ё тавассути API зуд бидонад, ки оё ягон вобастагии мустақим ё ғайримустақим дар лоиҳаи нармафзор ҷузъи зарароварро истифода мебарад.
Чӣ тавр MEW кор мекунад: Тафсилоти дохилӣ
Асосӣ: Муҳаррики ошкоркунии нармафзори зараровар
Таҳлилгар барои сабти далелҳои рафтори нодуруст аз детекторҳои гуногун истифода мебарад. Детекторҳо таҳлили статикӣ, таҳлили қобилиятҳо ва таҳлили контекстиро муттаҳид мекунанд.[3], чунон ки дар паёми қаблии ин силсила тавсиф шудааст.
Дар Xygeni, мо як дастаи муҳандисӣ дорем, ки таҷрибаи тӯлонӣ дар таҳлили статикӣ дорад ва ин фарқияти асосӣ бо дигар роҳҳои ҳалли зидди нармафзори зараровар аст. Дар хотир доред, ки барои баъзе экосистемаҳо tarball бастабандишуда ё рамзи сарчашма (масалан, рамзи JavaScript ё TypeScript барои бастаҳои NPM, манбаъҳои Python барои бастаҳои PyPI) ё рамзи тартибдодашударо дар бар мегирад, ки ба рамзи сарчашма барои таҳлили статикӣ наздик аст (масалан, байткод дар файлҳои JAR барои Maven). Барои дигарон, ба монанди тасвирҳои контейнерӣ, файлҳои иҷрошавандаи дуӣ маъмуланд, аз ин рӯ, усули истифодашавандаи муайянкунии қобилиятҳо, дар баробари муайянкунии анъанавии нармафзори зараровар дар асоси қоидаҳои YARA ва имзоҳои нармафзори зараровар, муайянкунии қобилиятҳо мебошад.
Лутфан, дар хотир доред, ки технологияҳои оддӣ ба монанди ифодаҳои муқаррарӣ ё имзоҳо барои муайян кардани рафтори зараровар мувофиқ нестанд. Тасаввур кунед, ки дроппер ё зеркашикунандаро муайян кунед: Баъзе рамзҳо ё файлҳои дуӣ дар баста ҷойгиранд ё аз домени беруна зеркашӣ карда мешаванд, ки ба ҷузъ алоқаманд нестанд (метавонад яке аз ... бошад). рӯйхати калони доменҳо, ки аз ҷониби таҳдидкунанда харидорӣ шудаанд[4], ё a домени қонунӣ барои пешгирӣ аз ошкоркунӣ). Сипас, ин рамз бо истифода аз яке аз функсияҳои он иҷро карда мешавад. Рамзро метавон барои пинҳон кардани URL-и зеркашӣ ё функсияе, ки барои иҷро кардани рамзи зеркашӣ истифода мешавад, табдил дод. Барои муайян кардани он, таҳлили пурраи ҷараёни маълумот лозим аст, бо истифода аз механизми пурраи таҳлили статикӣ ё иҷрои қуттии регдор (агар шартҳои иҷро шудани рафтори зараровар воқеан риоя карда шаванд), дар ҳолати умумӣ метавонад инро муайян кунад.
Таҳдидкунандагон ҳамон усулҳоро риоя мекунанд ва детекторҳои онҳо тарҳрезӣ ва амалӣ карда шудаанд. Инчунин баъзе қадамҳои пеш аз коркард мавҷуданд, масалан, барои бартараф кардани нофаҳмиҳо, ки аксар вақт барои ошкор кардани рафтори пинҳонӣ заруранд.
Илова кардани контекст
Баъзе детекторҳо аз маълумоти контекстӣ истифода мебаранд. Масалан, номувофиқатӣ байни версия дар феҳристи компонентҳо ва тег/релиз дар анбори марбут ба GitHub далели қавӣ аст, ки шояд як бозигари бад эътимодномаи нашрро барои феҳрист ба даст оварда бошад, аммо на барои анбори GitHub. Ҳамлаҳое ба монанди ҳамлаҳое, ки ба фурӯшандаи ҳамёни криптовалюта таъсир мерасонанд Ledger бо ин номувофиқатӣ ба осонӣ муайян кардан мумкин аст.
A холҳои бадхоҳӣ (MS) аз натиҷаҳои кори детекторҳо, ки ба қувваи далелҳои ба даст овардашуда асос ёфтаанд, ҳисоб карда мешавад. На ҳама натиҷаҳо яксонанд ва тартиби иҷрои онҳо муҳим аст.
Обрӯи корбар ва ҷузъ
На ҳама таҳиягарони кушодаасос яксон офарида шудаанд!
Шояд ҳисоби таҳиягари бонуфузи NPM-и ӯ дуздида шавад (ин ҳатто бо одамони огоҳ ба амният рух медиҳад) ва нармафзори зараровар бо истифода аз он ҳисоб нашр карда шавад. Албатта, обрӯ бояд ногаҳон коҳиш ёбад ва танҳо вақте ба шӯҳрати гузашта баргардад, ки ҳисоби дуздидашуда барқарор карда шавад ва таҳиягар шароитҳоеро, ки боиси ғасби ҳисоб шудаанд, ислоҳ кунад. Ба даст овардани обрӯ душвор аст, аммо онро дар як лаҳза аз даст додан мумкин аст.
Дар MEW, мо як системаи ҳамаҷонибаи идоракунии обрӯро барои мукофотонидани рафтори мусбат ва ҷазо додани фаъолиятҳои шубҳанок ҷорӣ кардем. Ин система бо корбарони нав дар мавқеи бетараф оғоз мешавад ва обрӯи онҳоро дар асоси фаъолиятҳои ҷории онҳо танзим мекунад.
Обрӯи корбар тавассути амалҳои мусбат, аз қабили нигоҳ доштани ҳисобҳои фаъоли шабакаҳои иҷтимоӣ, фаъол кардани аутентификатсияи бисёрфакторӣ, саҳмгузории мунтазам дар лоиҳаҳо ва имзо беҳтар мешавад. commitс бо калидҳои тасдиқшаванда. Баръакс, обрӯ аз сабаби амалҳои душманона, ба монанди нашри нармафзори зараровар, истифодаи суроғаҳои почтаи электронии якдафъаина, имзо накардан, паст мешавад. commitс, ё намоиш додани намунаҳои ғайриоддӣ дар саҳмҳо.
Ҳадафи асосии системаи мо таъмини муҳити бехатар ва боэътимод аст. Он ин корро тавассути танзими динамикии обрӯи корбарон дар асоси омилҳои гуногун, дар айни замон эҳтиром ба нигарониҳои махфият ва маҳдудиятҳои феҳристҳои гуногун ба даст меорад.
Барои корбар (ҳамроҳ шудан ба феҳрист ва ҳисоби github, агар имкон бошад), ва дар баробари холҳои зарароварӣ, ки ҳангоми таснифи ҷузъи таҳлилшаванда истифода мешаванд ва барои муайян кардани беҳтари он, ки кӣ зери нашри ҷузъ қарор дорад, холҳои обрӯи дохилӣ ҳисоб карда мешаванд.
Далелҳо дар бораи рафтори зараровар пайдо шуданд. Пас чӣ? Раванди баррасии дастур
Таснифгари ҷорӣ версияи ҷузъи таҳлилшударо ба яке аз категорияҳои "зараровар тасдиқшуда", "эҳтимол зараровар", "хатари баланд", "хатари паст" ё "ғайризараровар" дар асоси остонаҳои холҳо, ки натиҷаҳоро кам мекунанд ва обрӯи корбар/ҷузъро муайян мекунад, муқаррар мекунад. Тасниф ба категорияҳои "хатари баланд" ё "эҳтимол зараровар" баррасии дастӣ ва огоҳиномаи аввалро ба вуҷуд меорад. Категорияи "зараровар тасдиқшуда" пас аз баррасии дастӣ ё вақте ки далелҳо бо ҳамон далелҳо барои версияи қаблие, ки зараровар тасдиқ шуда буд, мувофиқат мекунанд, муқаррар карда мешавад.
Вақте ки далелҳои кофӣ барои рафтори эҳтимолии зараровар мавҷуданд, ба ташкилотҳои зарардида огоҳии аввал (огоҳиномаи карантинӣ) фиристода мешавад. Тавре ки қаблан зикр гардид, ин метавонад насб ё сохтани нармафзореро, ки аз ҷузъи карантинӣ вобаста аст, манъ кунад.
Ин дар дохили MEW мушкилот эҷод мекунад dashboard аз ин рӯ, таҳлилгарони амниятӣ метавонанд раванди баррасии дастӣ барои ҷузъро оғоз кунанд. Гурӯҳ дорои абзорҳои махсусгардонидашуда (қуттии рег, деобфускаторҳо, паҳнкунӣ барои таҳқиқоти нармафзори зараровар, абзорҳои гузоришдиҳӣ дар бораи нармафзори зараровар) барои арзёбии фаврии хусусияти версияи ҷузъи мавриди таҳқиқ мебошад. Аксари нармафзори зараровар ("анчоусҳо" ё ҷузъҳои зараровари нотамом) баррасӣ карда мешаванд.
Натиҷаи баррасӣ дар ҳарду ҳолат хулоса мешавад бехатар, бинобар ин, муҳаррики таҳлили автоматӣ натиҷаи мусбати бардурӯғро пайдо кард, ки ҳамчун бозгашт ба таснифгари омӯзиши мошинӣ барои омӯхтани намуна истифода мешавад; ё зараровар тасдиқ шудааст, бинобар ин, пас аз раванди гузоришдиҳӣ, ҷузъ бо масъулият ҳамчун зараровар ба феҳристи давлатӣ ошкор карда мешавад. Огоҳиномаи дуюм ба ташкилотҳои зарардида фиристода мешавад, ки дар навбати худ метавонад ҷузъро карантинан бекор кунанд ё онро аз раванди навсозии версия ё девори оташи ҷузъе, ки дар феҳристи дохилии онҳо истифода мешавад, маҳкам кунанд.
Ин танзимот ба мо имкон медиҳад, ки ҳар рӯз даҳҳо ҳазор версияҳои навро таҳлил кунем ва даҳҳо версияҳои эҳтимолан зарароварро муайян кунем, ки сипас онҳоро дастӣ баррасӣ мекунем. Дар қисмати қаблӣ дар хотир доред, ки аз даҳ ҳазор яктоаш сатҳи ҷузъҳои зарароварест, ки мо айни замон дар табиат мебинем.
Ҳисоботдиҳӣ ба Феҳристи бақайдгирӣ
Мо муайян кардем, ки аксари феҳристҳои давлатӣ, ки яке аз сутунҳои инфрасохтори манбаъи кушода аст, механизмҳои нисбатан маҳдуди гузоришдиҳӣ дар бораи масъалаҳои амниятӣ ва махсусан ҷузъҳои зарароварро пешниҳод мекунанд. Мо барои беҳтар кардани ташкили аслии раванди гузоришдиҳӣ мубориза мебарем. Одатан, мо ҳадди аксар аз дастаи амниятии феҳрист почтаи электронии фикру мулоҳиза мегирем, ки тасдиқ мекунад, ки ҷузъ аз феҳрист хориҷ карда шудааст.
Баъзан аз феҳрист сӯиистифода мешавад ва шартҳои истифодаи онро вайрон мекунад, аммо дар нармафзори таҳвилшуда рафтори зарароварро ба вуҷуд намеорад. Ин инчунин ба феҳрист хабар дода мешавад, аммо барои маҳдуд кардани сарусадо ба ташкилотҳо хабар дода намешавад.
Корҳои оянда
Айни замон дар харитаи роҳ бисёр беҳбудиҳо мавҷуданд. Пеш аз ҳама, портали оммавӣ барои саломатии ҷузъҳои системаи амалиётӣ, махсусан ба далелҳои ёфтшуда дар бораи зарароварии эҳтимолӣ алоқаманд аст, айни замон дар ҳоли таҳия қарор дорад. Ин ҳамчун саҳми хоксорона ба ҷомеаи манбаъҳои кушода пешбинӣ шудааст. Бо мо бимонед.
Рушди дигари идомаёбанда такмилёфта аст таснифкунандаи омӯзиши мошинӣMEW аз таснифоти гузашта сабақ хоҳад гирифт. Вектори ёфтаҳо аз детекторҳои муҳаррик, илова бар холҳои бадхоҳӣ ва холҳои обрӯи ҳам ҷузъ ва ҳам ношир ("далелҳои ёфтшуда") ҳамчун вуруд ба системаи омӯзиши мошинӣ истифода мешавад, ки модели таснифкунандаро навсозӣ мекунад. Тағйирёбандаи баромад танҳо агар регистр тасдиқ кунад, ки оё ҷузъ зараровар аст. Ин рамзӣ "Oracle" ном дорад ва ба пешакӣ кӯмак мекунад.cise квалификатор, ки барои дуруст будан (ба ёд овардани баланд, яъне аз даст надодани ҷузъҳои зараровар), вале бо камтар мусбати бардурӯғ (ҷузъҳои бехатарро ҳамчун зараровар гузориш надиҳед) тарҳрезӣ шудааст.
A холҳои танқидӣ барои меъёрҳои афзалиятдиҳӣ илова карда мешавад, илова бар мансубият ба маҷмӯи вобастагиҳои муштариён ва обрӯи пасти ношир. Равшан аст, ки лоиҳаҳое, ки дорои нуфуз ва аҳамияти бештар мебошанд, бояд пешакӣ барои таҳлил баррасӣ шаванд. Мо дар ин ҷо чархро аз нав ихтироъ намекунем ва аз он пайравӣ мекунем. Холи танқидии лоиҳаи манбаъи кушода.
Дастгирии экосистемаҳои иловагӣ дар ҳоли таҳия аст. Технологияҳо ва абзорҳои васеъ ба монанди плагинҳои PHP ё Jenkins дар харитаи роҳ мавҷуданд.
Мо инчунин меомӯзем, ки оё раванди баррасии дастӣ бо истифода аз зеҳни сунъӣ метавонад барои содда кардани таҳлили чанд ҷузъҳои мураккабтари зараровар кӯмак кунад.
Дар қисмати навбатӣ ва ниҳоии ин силсила, "Истифодаи манбаи кушода: Аз бадкорон чӣ интизор шудан мумкин аст", мо ба роҳҳои охирине, ки рақибон барои пинҳонкортар, душвортар муайян кардан, бештар ба соҳаҳои мушаххас нигаронидашуда ва фоидаовартар кардани ҳамлаҳо истифода мебаранд, тамаркуз хоҳем кард. Оё ҳамлаҳои нармафзори фидя бо истифода аз ин восита анҷом дода мешаванд? Чӣ гуна бадкорон аз абзорҳои зеҳни сунъӣ барои интиқоли нармафзори мураккабтар истифода мебаранд? Оё лоиҳаҳои маъмултарин дар хатаранд? Ин барои он аст, ки ба хонандагон дар бораи ин мусобиқаи мусаллаҳшавӣ ва чӣ интизор шудан дар муддати кӯтоҳ (нимаи дуюми соли 2024) ва миёнамуддат (2025) маълумот диҳанд.
Мо бо баъзе андешаҳо дар бораи он ки ҷомеа метавонад кадом қадамҳои хурдро бидуни тағир додани кушодагии ҷаҳони манбаъҳои кушода анҷом диҳад, анҷом медиҳем. Масалан, механизми муассиртар барои гузориш додани нармафзори зараровар ба феҳристҳои давлатӣ ва мубодилаи далелҳои ҷузъҳои эҳтимолан зараровар бо феҳристҳо ва ҷомеа як қадами хурд дар самти дуруст ба сӯи ҳадафи бастани дарҳо ба сӯи омилони таҳдид хоҳад буд.
Нармафзори зараровар дар ҷузъҳои манбаъи кушода набояд ба манфиатҳои бузурге, ки ҷомеаи манбаъи кушода ба ҷомеаи мо овардааст, халал расонад.
- [1] Сканери мо ҷузъҳои кушодаасосро, ки аз ҷониби лоиҳаҳои нармафзори таҳлилшуда истинод карда мешаванд, муайян мекунад, аз ин рӯ, графики пурраи вобастагии навшуда маълум аст, ҳадди аққал барои лоиҳаҳое, ки мунтазам скан карда мешаванд. Xygeni OSS API-ро фош мекунад, ки муштариён метавонанд ҳангоми ворид кардани ҷузъи мавриди таваҷҷӯҳ, аз ҷумла маълумот дар бораи осебпазириҳо ва далелҳои зараровар, истифода баранд.
- [2] Агар шарте, ки бо мушкилоти амниятӣ мувофиқат мекунад, ошкор карда шавад, девори муҳофизатӣ метавонад сохтмонро вайрон кунад. Натиҷаҳои амниятӣ ба монанди осебпазирии муҳим ва дастрас ё истифодаи ҷузъи карантиншуда метавонанд ба қадри кофӣ ҷиддӣ ҳисобида шаванд, ки сохтори нармафзори зарардидаро вайрон кунад.
- [3]Таҳлилгарони амниятии мо ҷузъ ё скриптҳои насби онро дар муҳити қуттии регдор дар ҳолати зарурӣ иҷро мекунанд. Аммо, MEW таҳлили динамикиро анҷом намедиҳад, пеш аз ҳама аз он сабаб, ки рафтори зараровар на ҳамеша дар ҳамлаҳои мақсаднок анҷом дода мешавад ва аз сабаби мантиқи канорагирӣ, ки субъектҳои таҳдид барои канорагирӣ аз таҳлили динамикӣ истифода мебаранд.
- [4] Ин техника номе бо номи Алгоритмҳои тавлиди домени бақайдгирифташуда ё RDGA ва омилҳои нави таҳдидкунанда ба монанди ... гирифт. Харгӯш револвер то 1 миллион доллар ба 500 ҳазор домен сармоягузорӣ кардааст, ки нишон медиҳад, ки соҳаи ҷиноятҳои киберӣ то чӣ андоза фоидаовар аст.




