ReDoS

Шарҳи ReDoS: DoS ифодаи муқаррарӣ чист ва чӣ гуна онро пешгирӣ кардан мумкин аст

DoS ифодаи муқаррарӣ (ReDoS) хатари афзоянда дар дохили он аст амнияти барномаҳои муосирАзбаски дастаҳои бештар ба тасдиқи вуруд ва мувофиқати намуна такя мекунанд, регекси нодуруст тарҳрезишуда метавонад осебпазириҳои кориро ба вуҷуд орад, ки ҳамлагарон метавонанд аз онҳо барои суст кардани хидматҳо ё боиси қатъ шудани кор истифода баранд. Дар асл, OWASP ReDoS-ро ҳамчун ҳамлаи радди хидмат тавсиф мекунад, ки аз он истифода мебарад, ки бисёре аз татбиқҳои муқаррарӣ метавонанд хеле суст шаванд, баъзан вақти иҷро бо андозаи вуруд ба таври экспоненсиалӣ афзоиш меёбад.

Дар айни замон, ҳамлаҳои ReDoS махсусан дар системаҳои абрӣ хатарноканд. CI/CDмуҳитҳои -drive, ки дар он як регекси осебпазир дар API, шлюз ё ҷараёни аутентификатсия метавонад ба дастрасӣ дар миқёс таъсир расонад. Аз ин рӯ, дастаҳо бояд ReDoS-ро ҳамчун хатари воқеии дастрасӣ, на танҳо як ҳолати бартарии махсус, баррасӣ кунанд.

Муҳимтар аз ҳама, ин осебпазириҳо аксар вақт ҳангоми таҳия ошкор намешаванд, зеро равишҳои анъанавӣ ба синтаксис, на ба рафтори иҷро, тамаркуз мекунанд. Дар натиҷа, намунаҳои регексии номуассир метавонанд ба осонӣ ба истеҳсолот бидуни огоҳӣ бирасанд.

Ин ҷоест, ки платформаҳои муосири AppSec ба монанди Xygeni ба кор медароянд. Бо ҷойгир кардани санҷишҳои амниятӣ мустақиман ба ҷараёнҳои кории таҳия, онҳо ба ошкор кардани ин масъалаҳо барвақттар ва муайян кардани хатарҳое, ки воқеан дастрас ва таъсирбахшанд, ба ҷои он ки танҳо садои бештар эҷод кунанд, мусоидат мекунанд.

ReDoS (DoS ифодаи муқаррарӣ) чист?

ReDoS (Радди мунтазами ифода аз хидмат) як осебпазирӣ аст, ки вақте рух медиҳад, ки як намунаи муқаррарӣ боиси пайгирии аз ҳад зиёд мегардад, ки боиси вақти экспоненсиалии иҷро мегардад.

Ба ибораи оддӣ, вуруди зараровар метавонад барномаи шуморо маҷбур кунад, ки вақти аз ҳад зиёдро барои арзёбии регекс сарф кунад, системаро масдуд кунад ва самаранокии онро паст кунад.

Масалан, нақшҳо бо миқдордиҳандаҳои дохилии дохилӣ ба монанди:

ҳангоми коркарди вурудҳои муайян, махсусан вақте ки қасдан аз ҷониби ҳамлагар сохта шудааст, метавонад хеле ғайрисамаранок гардад.

Гарчанде ки ин метавонад як ҳолати ниҳоӣ ба назар расад, он дар барномаҳои воқеӣ, бахусус дар мантиқи тасдиқ, вуруди шаклҳо ва коркарди дархостҳои API, ба таври ҳайратангез маъмул аст.

Чӣ тавр ҳамлаҳои ReDoS кор мекунанд

Ҳамлаи ReDoS ба истифодаи пешрафта ниёз надорад. Баръакс, он рафтори пешгӯишавандаи муҳаррики муқаррарии системаро сӯиистифода мекунад.

Бозгашти фалокатбор

Ҳамлагар ба регекси муқаррарӣ, ки метавонад якчанд масирҳои мувофиқро гирад, ҳадаф мегирад. Сипас онҳо вурудеро пешниҳод мекунанд, ки муҳаррикро маҷбур мекунад, ки аксари ё ҳамаи масирҳоро омӯзад.

Вуруд аз ҷониби ҳамлагарон таҳия шудааст

Ҳамлагарон одатан мефиристанд:

  • Торҳои дароз бо аломатҳои такроршаванда.
  • Вурудҳое, ки қариб мувофиқат мекунанд, сипас дар охир ноком мешаванд.
  • Пардохтҳое, ки ба қисмати норавшантарини нақш тамаркуз мекунанд.

Таназзули иҷроиш

Азбаски ҳар як дархост метавонад CPU-ро сӯзонад, таъсир зуд ҷамъ мешавад:

  • Таъхири баландтар дар нуқтаҳои ниҳоӣ.
  • Хароҷоти ҳавзи ришта.
  • Давраи рӯйдодҳо дар вақти иҷрои якранг қатъ мешавад.

Ин ҳамлаҳо эксплойтҳои мураккабро талаб намекунанд. Ба ҷои ин, онҳо аз мувофиқати номуассири намунаҳо истифода мебаранд, ки агар абзори шумо танҳо синтаксис ё CVE-ҳои маълумро тафтиш кунад, муайян кардани онҳоро душвор мегардонад.

аз нав анҷом додан

Таъсири воқеии осебпазириҳои ReDoS

ReDoS дар сегонаи CIA ба "А" мерасад: дастрасӣ. Он метавонад ба як масъалаи субот монанд бошад, на ба як ҳодисаи амниятӣ, то он даме, ки шумо нуқтаҳоро пайваст накунед.

сустшавии API

Нуқтаи ниҳоии ягонае, ки аз регекси осебпазир истифода мебарад, метавонад ҳангоми тасдиқи вуруд, роҳнамоии дархост ё санҷишҳои аутентификация CPU-ро суръат бахшад.

Қатъи хидматрасонӣ

Дар ҳолати боркунӣ, нуқтаи дастрасии ReDoS метавонад боиси аз нав оғоз кардани подҳо, паст кардани миқёспазирӣ ва ба вуҷуд овардани нокомиҳои каскадӣ гардад.

Тамомшавии захираҳо

ReDoS метавонад истеъмол кунад:

  • CPU дар гиреҳҳои барнома.
  • Хотира аз сабаби ҳолати қафомонӣ.
  • Риштаҳои коргарӣ, ки дархостҳои дигарро масдуд мекунанд.

Азбаски ReDoS ба ҷои ошкор кардани маълумот, ба самаранокӣ нигаронида шудааст, бисёр дастаҳо таъсири онро нодида мегиранд. Бо вуҷуди ин, дастрасӣ қисми асосии амнияти барномаҳо мебошад ва халалдоршавӣ метавонад зуд ба хатари тиҷоратӣ табдил ёбад.

Тағйироти фаврӣ мушкилоти воқеии эътимод мебошанд

Вақте ки таҳиягарон мегӯянд, ки онҳо ба ислоҳи худкор эътимод надоранд, онҳо аксар вақт як чизи хеле мушаххасро дар назар доранд: онҳо ба он бовар надоранд, ки чизеро вайрон накунад.

Ин мушкили эътимод бештар дар бартарафсозии вобастагӣ ба назар мерасад.

Бастаи осебпазир метавонад версияи часбшударо дошта бошад, аммо ин маънои онро надорад, ки навсозӣ бехатар аст. Нусхаи часбшуда метавонад усулеро, ки барномаи шумо истифода мебарад, нест кунад. Он метавонад API-ро номгузорӣ кунад. Он метавонад шартномаи типро сахттар кунад. Он метавонад рафторро ба тарзе тағйир диҳад, ки аз санҷишҳои воҳид гузарад, аммо боиси регрессияи истеҳсолот гардад. Дар бисёр дастаҳо, арзиши воқеии ислоҳ татбиқи часб нест. Он радиуси таркишро тафтиш мекунад.

Як мисоли оддиро дар Java дида мебароем. Пойгоҳи рамз аз китобхонае вобаста аст, ки дар он усули маъмул дар версияи 1.x мавҷуд аст, аммо дар версияи 2.x нест карда мешавад.

Ҳамлаҳои ReDoS дар ҷаҳони воқеӣ ва ҳодисаҳои амниятӣ

ReDoS танҳо як осебпазирии назариявӣ нест. Он дар барномаҳои воқеӣ истифода шудааст ва ба китобхонаҳо ва системаҳои истеҳсолии васеъ истифодашаванда таъсир мерасонад.

Инҳоянд чанд мисоли қобили таваҷҷӯҳ, ки таъсири қолибҳои номуассири регексро нишон медиҳанд:

Осебпазирии Moment.js ReDoS

Яке аз маъруфтарин осебпазириҳои ReDoS, ки осеб дидаанд Moment.js, китобхонаи санаҳои JavaScript-и васеъ истифодашаванда.

  • Намунаи нодуруст тарҳрезишудаи регекс боиси пайгирии аз ҳад зиёди ақибмонда гардид
  • Ҳамлагарон метавонанд бо истифода аз вуруди тарҳрезишуда истифодаи баланди CPU-ро ба вуҷуд оранд
  • Барномаҳое, ки Moment.js-ро истифода мебаранд, дар шароити рад кардани хидмат осебпазир шуданд

Ин масъала нишон дод, ки чӣ гуна ҳатто китобхонаҳои боэътимод метавонанд ба ҳазорҳо барномаҳо осебпазириҳои асоси иҷроишро ворид кунанд.

Китобхонаи тасдиқкунандаи Node.js (validator.js)

Мисоли дигаре, ки дар он иштирок дошт validator.js, маъмулан барои тасдиқи вуруд истифода мешавад.

  • Баъзе функсияҳои тасдиқкунӣ ба регекси номуассир такя мекарданд
  • Вурудҳои зараровар метавонанд иҷрои корро ба таври назаррас ба таъхир андозанд
  • Ин ба API-ҳо ва хидматҳои пуштибонӣ, ки ба тасдиқи вуруди корбар такя мекарданд, таъсир расонд.

Азбаски validator.js ба таври васеъ истифода мешавад, таъсири он ба барномаҳо ва хидматҳои сершумор паҳн шудааст.

Қатъи нокомии Cloudflare (Хатогӣ дар асоси Regex)

Як ҳодисаи пурсарусадо рух дод Cloudflare, ки дар он як намунаи нодурусти регекс боиси қатъи ҷиддӣ гардид.

  • Як регекси муқаррарӣ, ки дар истеҳсолот истифода мешавад, боиси истифодаи аз ҳад зиёди CPU мегардад
  • Системаҳо дар саросари ҷаҳон беҷавоб шуданд
  • Қисматҳои зиёди интернет муваққатан аз кор монданд

Гарчанде ки ин ҳамлаи бадхоҳона нест, ин ҳодиса ба таври возеҳ нишон медиҳад, ки чӣ гуна носамарии регекс метавонад оқибатҳои воқеиро дар миқёси васеъ ба бор орад.

Чаро абзорҳои анъанавии амниятӣ ReDoS-ро аз даст медиҳанд

Ин бахши табдилдиҳӣ аст, зеро он фосилаеро, ки аксари дастаҳо эҳсос мекунанд, шарҳ медиҳад: сканерҳо кор мекунанд, dashboards пур мекунад ва ReDoS ҳоло ҳам аз он мегузарад.

Воситаҳои статикӣ ба синтаксис тамаркуз мекунанд

Бисёре аз сканерҳо метавонанд "намунаҳои хатарноки муқаррарӣ"-ро қайд кунанд, аммо онҳо аксар вақт дар бораи он ки оё ин нақш воқеан дар контексти шумо истифодашаванда аст ё не, эътимод надоранд.

Контексти иҷро нест

ReDoS дар бораи рафтори вақти иҷро аст. OWASP қайд мекунад, ки бисёре аз татбиқҳои муқаррарӣ метавонанд ба вазъиятҳои фавқулодда расанд ва хеле суст кор кунанд, баъзан бо андозаи вуруд ба таври экспоненсиалӣ алоқаманданд.
Агар асбоб ҳеҷ гоҳ дар бораи шакли вуруд, шароити нокомии мувофиқат ё роҳҳои иҷро сабаб наёбад, он хатарро аз даст медиҳад ё шуморо дар мусбатҳои бардурӯғ ғарқ мекунад.

Таҳлили қобили истифода вуҷуд надорад

Регекс метавонад "аз ҷиҳати назариявӣ хатарнок" бошад, аммо дар амал дастнорас бошад. Баръакс, валидатори "хурд" дар нуқтаи ниҳоии оммавӣ метавонад як ҳодисаи воқеӣ бошад. Бе контекст, дастаҳо ё огоҳиҳоро нодида мегиранд ё аз ҳад зиёд ислоҳ мекунанд.

Сканнерҳои анъанавӣ аксар вақт ReDoS-ро муайян карда наметавонанд, зеро онҳо тарзи рафтори regex-ро дар вақти иҷро ё дар шароити вуруди зараровар арзёбӣ намекунанд. Ин ҷоест, ки платформаҳо ба монанди Xygeni бо якҷоя кардани таҳлил бо... арзёбии хатари контекстӣ, ба гурӯҳҳо кӯмак мекунад, ки дарк кунанд, ки оё нуқсон воқеан дастрас ва таъсирбахш аст.

Чӣ тавр осебпазириҳои ReDoS-ро муайян кардан мумкин аст

Шумо метавонед ReDoS-ро бо омезиши интизоми тарроҳӣ ва санҷиш муайян кунед. Илова бар ин, шумо мехоҳед санҷишҳоеро, ки пайваста анҷом дода шаванд, на танҳо ҳангоми баррасии амниятӣ.

Тарроҳии амнии регекс

Бо нақшҳое оғоз кунед, ки номуайяниро кам мекунанд. Аз миқдорсанҷҳои дохилии ҷойгиршуда ва алтернативаҳои такроршаванда худдорӣ кунед.

Фуззинг ва озмоиш

Намунаҳои муқаррариро бо инҳо санҷед:

  • Вурудҳои хеле дароз.
  • Вурудҳои қариб бехато, ки дер ноком мешаванд.
  • Токенҳои такрорӣ, ки барои фаъол кардани пайгирии бозгашт тарҳрезӣ шудаанд.

Таҳлили статикӣ

Аз таҳлиле истифода баред, ки сохторҳо ва нақшҳои хатарноки маълумро бо онҳо мувофиқ нишон медиҳад CWE-1333.

Тасдиқи вақти иҷро

Дар ҳолати имконпазир, маҳдудиятҳои дарозии вуруд ва тайм-аутҳоро дар атрофи арзёбии муқаррарӣ татбиқ кунед. Дастури тасдиқи вуруди OWASPe ба таври возеҳ дар бораи ReDoS огоҳ мекунад ва аҳамияти муайян кардани дарозии ҳадди ақал ва ҳадди аксарро таъкид мекунад.

Роҳҳои ҳалли пешрафтаи AppSec, ба монанди Xygeni, аз ошкор кардани намунаҳо бо роҳи таҳлили код дар контексти кори корӣ ва кӯмак ба дастаҳо дар тамаркуз ба масъалаҳое, ки эҳтимолан дар сенарияҳои воқеӣ муҳимтаранд, ки мусбатҳои бардурӯғро коҳиш медиҳанд ва ислоҳро суръат мебахшанд.

Чӣ тавр аз ҳамлаҳои ReDoS пешгирӣ кардан мумкин аст

Пешгирӣ маҷмӯи намунаҳои бехатартар, вурудҳои бехатартар ва интихоби бехатартари вақти иҷро мебошад.

Аз миқдорсанҷҳои дохилии дохилӣ худдорӣ кунед

Такрори лонадор аксар вақт бадтарин таркишҳои ақибнишинӣ (backtracking)-ро ба вуҷуд меорад.

Андозаи вурудро маҳдуд кунед

Ин соддатарин ва боэътимодтарин коҳиши хатар аст. Ҳадди ниҳоии дарозиро барои вурудҳое, ки аз санҷиши муқаррарӣ мегузаранд, муқаррар кунед. OWASP маҳдудиятҳои дарозиро ҳамчун қисми калидии санҷиши бехатари вуруд таъкид мекунад.

Дар ҷойҳои имконпазир аз муҳаррикҳои бехатари регекс истифода баред

Вақте ки шумо метавонед муҳаррикро интихоб кунед, якеро афзалтар донед, ки барои пешгирӣ аз қафоравии фалокатовар тарҳрезӣ шудааст. RE2-и Google ҳамчун алтернативаи бехатар ба муҳаррикҳои муқаррарии пайгирии бозгашт ҷойгир карда шудааст.

Тасдиқи вурудҳо бо санҷишҳои қабатӣ

Барои ҳама санҷиш ба як регекси ягона такя накунед. Якҷоя кунед:

  • рӯйхати иҷозатдодашудаи қаҳрамонҳо,
  • санҷишҳои қатъии дарозӣ,
  • ва намунаҳои соддатар барои ҳар як соҳа.

Пешгирии ReDoS амалияҳои рамзгузории амниро талаб мекунад ва тасдиқи пайваста дар тамоми давраи ҳаёти таҳия, махсусан бо афзоиши миқёси барномаҳо ва вобастагиҳо.

Чӣ тавр Xygeni ба ошкор ва пешгирии ReDoS кӯмак мекунад

Xygeni ба гурӯҳҳои DevSecOps кӯмак мекунад, ки осебпазириҳои ReDoS-ро тавассути якҷоя кардани қабатҳои сершумори таҳлил муайян ва пешгирӣ кунанд.

Қобилиятҳои асосӣ инҳоро дар бар мегиранд:

  • Муайян кардани намунаҳои регекси осебпазир ҳангоми рушд
  • Таҳлили ҷараёни маълумот ва роҳҳои иҷроиш
  • Муайян кардани осебпазириҳои истифодашаванда, на танҳо осебпазириҳои назариявӣ
  • Интегратсия ба CI/CD pipelines барои сканкунии пайваста
  • Дастури амалии ислоҳот барои таҳиягарон

Ба ҷои он ки дастаҳоро бо огоҳиҳо сарнагун кунад, Xygeni ба он афзалият медиҳад осебпазириҳое, ки воқеан дастрасанд ва таъсирбахш.

Ин ба дастаҳо имкон медиҳад, ки мушкилоти воқеиро зудтар, бе суст кардани рушд, ҳал кунанд.

Беҳтарин таҷрибаҳо барои дастаҳои DevSecOps

Амнияти Shift-чап

Санҷишҳои ReDoS-ро қисми ҳамон тартибе, ки баррасии код ва санҷишҳои воҳидӣ доранд, иҷро кунед.

Сканкунии автоматӣ

Санҷишҳоро дар ҳар як pull request Пас, хатари муқаррарӣ интизори баррасиҳои даврӣ нест.

Вобастагиҳои мониторинг

Осебпазириҳои Regex инчунин дар китобхонаҳои вобастагӣ ва таҳлили вуруд пайдо мешаванд, аз ин рӯ гигиенаи вобастагиро қатъиян риоя кунед.

Тасдиқи пайвастаи вурудҳо

Маҳдудиятҳои дарозӣ ва қоидаҳои вурудро дар канорҳо татбиқ кунед, сипас дубора дар дохили хидматҳои муҳим тасдиқ кунед.

Бо ҷойгир кардани амният мустақиман ба ҷараёнҳои кории таҳия, дастаҳо метавонанд аз осебпазириҳои дар асоси самаранокӣ ба монанди ReDoS пеш аз расидан ба истеҳсолот пешгирӣ кунанд.

Пешгирии ReDoS бо намоёнии бе соя оғоз мешавад

ReDoS аксар вақт нодида гирифта мешавад, аммо он метавонад ба самаранокӣ ва дастрасии барномаҳо таъсири назаррас расонад. OWASP ReDoS-ро ҳамчун хатари рад кардани хидматрасонӣ, ки бар асоси рафтори шадиди иҷрои вақти муқаррарӣ реша мегирад, арзёбӣ мекунад.
Ин маънои онро дорад, ки ба шумо на танҳо сканкунии оддӣ, балки ба контекст, афзалиятгузорӣ ва автоматизатсия низ лозим аст.

Агар шумо ба регекс мисли коде муносибат кунед, ки метавонад дар вуруди аз ҷониби ҳамлагар идорашаванда ноком шавад, шумо ReDoS-ро барвақттар пайдо мекунед ва системаҳои бехатартарро интиқол медиҳед. Бо Xygeni, дастаҳо метавонанд садоро кам кунанд, хатари воқеиро афзалият диҳанд ва назорати AppSec-ро дар дохили он тақвият диҳанд. CI/CD коргарон.

хулоса

Осебпазириҳои ReDoS-ро ба осонӣ пайдо кардан мумкин аст ва бидуни контексти дуруст муайян карданашон душвор аст.

Дар ҳоле ки абзорҳои анъанавӣ ба муайян кардани мушкилот тамаркуз мекунанд, AppSec-и муосир фаҳмидани он чизеро, ки дар асл муҳим аст, талаб мекунад.

Аз ин рӯ, барои пешсаф мондан, дастаҳо ба намоёнӣ, афзалиятгузорӣ ва автоматикунонӣ ниёз доранд, ки дар тӯли тамоми давраи рушд якҷоя кор кунанд.

Ин ҷоест, ки Xygeni тафовут эҷод мекунад. Бо тамаркуз ба хатарҳои истифодашаванда, он ба дастаҳо кӯмак мекунад, ки мушкилотро барвақттар муайян кунанд, сару садоро кам кунанд ва барномаҳоро аз таҳия то ҷойгиркунӣ эмин нигоҳ доранд.

Дар ниҳоят, имрӯз сохтани нармафзори амн маънои берун рафтан аз сканкунӣ ва қабули равиши контекстӣ ва вақти воқеиро барои амният дорад.

Оғози сохтани барномаҳои бехатар ва устувор бо ошкоркунии вақти воқеӣ ва амнияти контекстӣ.

Саволҳои пурсидашуда (FAQ)

Ҳамлаи ReDoS чист?

Ҳамлаи ReDoS (Радди мунтазами ифода аз хидмат) як навъи осебпазирӣ аст, ки дар он намунаҳои регекси номуассир метавонанд барои ба вуҷуд овардани вақти аз ҳад зиёди коркард истифода шаванд, ки боиси паст шудани самаранокӣ ё суқути барнома мегардад.

Чаро ReDoS дар барномаҳои муосир хатарнок аст?

Ҳамлаҳои ReDoS метавонанд тавассути истеъмоли захираҳои CPU ва суст кардани хидматҳо ба дастрасии барномаҳо таъсир расонанд. Дар муҳитҳои абрӣ, ин метавонад зуд ба мушкилоти кори тамоми система табдил ёбад.

Чӣ тавр таҳиягарон метавонанд аз осебпазириҳои ReDoS пешгирӣ кунанд?

Таҳиягарон метавонанд ReDoS-ро тавассути пешгирӣ аз намунаҳои мураккаби муқаррарӣ, маҳдуд кардани андозаи вуруд, истифодаи муҳаррикҳои бехатари муқаррарӣ ва ҳамгироии санҷишҳои амниятӣ ба он пешгирӣ кунанд. CI/CD pipelines.

Оё абзорҳои анъанавии амниятӣ метавонанд ReDoS-ро муайян кунанд?

Аксари абзорҳои анъанавӣ барои муайян кардани ReDoS душворӣ мекашанд, зеро онҳо рафтори вақти иҷро ё қобилияти истифодабариро таҳлил намекунанд. Ҳалли пешрафтаи AppSec ошкоркунии беҳтарро тавассути арзёбии тарзи иҷрои код дар сенарияҳои воқеӣ таъмин мекунад.

Чӣ тавр Xygeni ба пешгирии ҳамлаҳои ReDoS мусоидат мекунад?

Xygeni намунаҳои осебпазири регексиро муайян мекунад, роҳҳои иҷроишро таҳлил мекунад ва хатарҳои истифодашавандаро афзалият медиҳад. Он ба CI/CD pipelineс ва ба таҳиягарон роҳнамоии амалии ислоҳотро пешниҳод мекунад.

Дар бораи муаллиф

Муассис ва CTO

Фатима Said дар мундариҷаи аввалиндараҷаи таҳиягарон барои AppSec, DevSecOps ва ғайра тахассус дорад. software supply chain securityВай сигналҳои мураккаби амниятиро ба роҳнамоии возеҳ ва амалӣ табдил медиҳад, ки ба дастаҳо дар муайян кардани афзалиятҳои зудтар, кам кардани садо ва фиристодани рамзи бехатартар кӯмак мекунад.

 
асбобҳои sca-tools-нармафзор-таҳлили таркиб
Хатарҳои нармафзори худро афзалият диҳед, ислоҳ кунед ва бехатар созед
Ҳисоби ройгони худро дастрас кунед.
Корти кредитӣ лозим нест.

Таҳия ва интиқоли нармафзори худро таъмин кунед

бо маҷмӯи маҳсулоти Xygeni