ReDoS

Pagpasabot sa ReDoS: Unsa ang Regular Expression DoS ug Unsaon Paglikay Niini

Ang Regular Expression DoS (ReDoS) usa ka nagkadako nga risgo sulod sa modernong seguridad sa aplikasyonSamtang daghang mga team ang nagsalig sa input validation ug pattern matching, ang usa ka dili maayo nga pagkadisenyo nga regex mahimong magpakita sa mga kahuyangan sa performance nga mahimong pahimuslan sa mga tig-atake aron mapahinay ang mga serbisyo o hinungdan sa mga outages. Sa tinuud, OWASP gihulagway ang ReDoS isip usa ka denial of service attack nga nagpahimulos sa kamatuoran nga daghang regex implementations ang mahimong hinay kaayo, usahay uban sa runtime nga modako pag-ayo uban sa gidak-on sa input.

Sa samang higayon, ang mga pag-atake sa ReDoS labi ka delikado sa mga cloud-native ug CI/CDmga palibot nga gipadagan sa -driven, diin ang usa ka mahuyang nga regex sa usa ka API, gateway, o authentication flow makaapekto sa availability sa sukod. Tungod niini nga hinungdan, ang mga team kinahanglan nga motratar sa ReDoS isip usa ka tinuod nga risgo sa availability, dili lang usa ka niche edge case.

Mas importante, kini nga mga kahuyangan kanunay nga dili mamatikdan atol sa pag-develop, tungod kay ang tradisyonal nga mga pamaagi nagpunting sa syntax imbes nga pamatasan sa pagpatuman. Ingon usa ka sangputanan, ang dili episyente nga mga pattern sa regex dali nga makaabot sa produksiyon nga wala’y bisan unsang mga alerto.

Dinhi na mosulod ang mga modernong plataporma sa AppSec sama sa Xygeni. Pinaagi sa pag-embed sa mga security check direkta sa mga workflow sa pag-develop, makatabang kini sa pag-atubang niining mga isyu og sayo ug pag-prioritize sa mga risgo nga aktuwal nga maabot ug makaapekto, imbes nga makamugna lang og dugang kasaba.

Unsa ang ReDoS (Regular Expression DoS)?

Ang ReDoS (Regular Expression Denial of Service) usa ka kahuyangan nga mahitabo kung ang usa ka regex pattern hinungdan sa sobra nga backtracking, nga mosangpot sa exponential execution time.

Sa yanong pagkasulti, ang usa ka malisyosong input mahimong magpugos sa imong aplikasyon sa paggugol ug taas kaayong oras sa pag-evaluate sa usa ka regex, nga makababag sa sistema ug makapaubos sa performance.

Pananglitan, ang mga sumbanan nga adunay nested quantifiers sama sa:

mahimong dili kaayo episyente sa pagproseso sa pipila ka mga input, labi na kung tinuyo nga gihimo sa usa ka tig-atake.

Samtang kini daw usa ka edge case, kini katingad-an nga komon sa mga aplikasyon sa tinuod nga kalibutan, labi na sa validation logic, form inputs, ug API request handling.

Giunsa Pagtrabaho ang mga Pag-atake sa ReDoS

Ang usa ka ReDoS attack dili kinahanglan og advanced exploitation. Hinuon, kini moabuso sa matag-an nga regex engine behavior.

Makalilisang nga pagbalik

Ang tig-atake mo-target og regex nga makakuha og daghang matching paths. Dayon mohatag sila og input nga mopugos sa engine sa pagsuhid sa kadaghanan o tanang paths.

Input nga gihimo sa mga tig-atake

Kasagaran ipadala sa mga tig-atake ang:

  • Tag-as nga mga kuwerdas nga adunay gisubli nga mga karakter.
  • Mga input nga halos parehas, unya mapakyas sa katapusan.
  • Mga payload nga nag-focus sa labing dili klaro nga bahin sa pattern.

Pagdaot sa pasundayag

Tungod kay ang matag hangyo makasunog sa CPU, ang epekto dali nga mo-stack:

  • Mas taas nga latency sa mga endpoint.
  • Pagkahurot sa thread pool.
  • Ang event loop moundang sa single-threaded runtimes.

Kini nga mga pag-atake wala magkinahanglan og komplikado nga mga pag-atake. Hinuon, ilang gipahimuslan ang dili episyente nga pattern matching, nga naghimo kanila nga lisud mailhan kung ang imong tooling nagsusi lamang sa syntax o nahibal-an nga mga CVE.

redos

Epekto sa Tinuod nga Kalibutan sa mga Kahuyangan sa ReDoS

Ang ReDoS moabot sa "A" sa CIA triad: availability. Kini mahimong tan-awon nga usa ka isyu sa kalig-on, dili usa ka insidente sa seguridad, hangtod nga imong makonektar ang mga punto.

Paghinay sa API

Ang usa ka endpoint nga mogamit og vulnerable regex mahimong mo-spike sa CPU atol sa input validation, request routing, o auth checks.

Pagkawala sa serbisyo

Ubos sa load, ang usa ka ReDoS hotspot makahimo sa mga pod nga mag-restart, maka-degrade sa autoscaling, ug maka-trigger sa cascading failure.

Pagkahurot sa kahinguhaan

Ang ReDoS makakonsumo sa:

  • CPU sa mga app node.
  • Memorya tungod sa kahimtang sa pag-atras.
  • Mga thread sa trabahante nga nagbabag sa ubang mga hangyo.

Tungod kay ang ReDoS nag-target sa performance imbes nga data exposure, daghang mga team ang wala kaayo magtagad sa epekto niini. Bisan pa, ang availability usa ka kinauyokan nga bahin sa seguridad sa aplikasyon, ug ang mga pagkabalda dali nga mahubad ngadto sa risgo sa negosyo.

Ang Pagbungkag sa mga Pagbag-o Mao ang Tinuod nga Problema sa Pagsalig

Kon moingon ang mga developer nga wala silay salig sa autofix, kasagaran usa ka espesipikong butang ang ilang gipasabot: wala silay salig nga dili kini makaguba og usa ka butang.

Kanang problema sa pagsalig labing makita sa pagsulbad sa pagkaadik.

Ang usa ka vulnerable package mahimong adunay patched nga bersyon nga magamit, apan wala kana magpasabot nga luwas ang pag-upgrade. Ang patched release mahimong magtangtang sa usa ka pamaagi nga gigamit sa imong aplikasyon. Mahimo niini nga usbon ang ngalan sa usa ka API. Mahimo niini nga higpitan ang usa ka type contract. Mahimo niini nga usbon ang pamatasan sa usa ka paagi nga makapasar sa mga unit test apan hinungdan sa mga regression sa produksiyon. Sa daghang mga team, ang tinuud nga gasto sa remediation wala mag-apply sa patch. Gisusi niini ang blast radius.

Hunahunaa ang usa ka simpleng ehemplo sa Java. Ang codebase nagdepende sa usa ka librarya diin ang usa ka komon nga pamaagi anaa sa bersyon 1.x apan gitangtang sa bersyon 2.x.

Mga Pag-atake sa ReDoS sa Tinuod nga Kalibutan ug mga Insidente sa Seguridad

Ang ReDoS dili lang usa ka teoretikal nga kahuyangan. Kini gigamit na sa tinuod nga mga aplikasyon, nga nakaapekto sa kaylap nga gigamit nga mga librarya ug mga sistema sa produksiyon.

Ania ang pipila ka talagsaong mga pananglitan nga nagpasiugda sa epekto sa dili episyente nga mga sumbanan sa regex:

Kahuyang sa Moment.js ReDoS

Usa sa labing nailhan nga mga kahuyangan sa ReDoS nga naapektuhan Moment.js, usa ka kaylap nga gigamit nga JavaScript date library.

  • Ang dili maayo nga pagkadisenyo nga regex pattern hinungdan sa sobra nga backtracking
  • Ang mga tig-atake mahimong makapahinabog taas nga paggamit sa CPU gamit ang hinimo nga input
  • Ang mga aplikasyon nga naggamit sa Moment.js nahimong huyang sa mga kondisyon sa denial-of-service

Kini nga isyu nagpakita kon giunsa bisan ang mga kasaligang librarya makahimo sa pagpaila sa mga kahuyangan nga nakabase sa performance ngadto sa liboan ka mga aplikasyon.

Librarya sa Validator sa Node.js (validator.js)

Laing ehemplo nga nalambigit validator.js, kasagarang gigamit para sa pag-validate sa input.

  • Ang pipila ka mga gimbuhaton sa pag-validate nagsalig sa dili episyente nga regex
  • Ang mga makadaot nga input mahimong makapahinay pag-ayo sa pagpatuman
  • Naapektuhan niini ang mga API ug mga serbisyo sa backend nga nagsalig sa pag-validate sa input sa tiggamit

Tungod kay ang validator.js kaylap nga gigamit, ang epekto niini mikaylap sa daghang mga aplikasyon ug serbisyo.

Pagkawala sa Cloudflare (Pagkapakyas nga Gibase sa Regex)

Usa ka dakong insidente nga nalambigit Cloudflare, diin ang usa ka sayop nga regex pattern hinungdan sa usa ka dakong pagka-offset.

  • Ang usa ka regex nga gi-deploy sa produksiyon nagpahinabog sobra nga paggamit sa CPU
  • Ang mga sistema nahimong dili motubag sa tibuok kalibutan
  • Temporaryong naapektuhan ang dakong bahin sa internet

Bisan dili usa ka malisyoso nga pag-atake, kini nga insidente klaro nga nagpakita kung giunsa ang mga kakulangan sa regex mahimong adunay mga sangputanan sa tinuod nga kalibutan sa gilapdon.

Ngano nga ang Tradisyonal nga mga Himan sa Seguridad Wala Makagamit sa ReDoS

Kini ang seksyon sa pagkakabig tungod kay kini nagpatin-aw sa kal-ang nga gibati sa kadaghanan sa mga team: nagdagan ang mga scanner, dashboards fill, ug ang ReDoS makalusot gihapon.

Ang mga static nga himan nagpunting sa syntax

Daghang scanner ang maka-flag sa "delikado nga mga regex pattern," apan kasagaran kulang sila sa pagsalig kung ang pattern tinuod ba nga mapahimuslan sa imong konteksto.

Walay konteksto sa pagpatuman

Ang ReDoS mahitungod sa runtime behavior. Gipunting sa OWASP nga daghang mga implementasyon sa regex ang makaabot sa grabeng mga sitwasyon ug molihok nga hinay kaayo, usahay exponentially nga may kalabutan sa gidak-on sa input.
Kon ang usa ka himan dili gyud maghunahuna bahin sa porma sa input, mga kondisyon sa kapakyasan sa pagpares, o mga agianan sa pagpatuman, dili kini makamatikod sa risgo o malumos ka sa mga sayop nga positibo.

Walay pag-analisar sa pagka-epektibo

Ang usa ka regex mahimong "peligro sa teyorya" apan dili maabot sa praktis. Sa laing bahin, ang usa ka "gamay" nga validator sa usa ka publikong endpoint mahimong usa ka tinuod nga insidente. Kung walay konteksto, ang mga team mahimong dili motagad sa mga alerto o sobra nga pag-ayo.

Ang tradisyonal nga mga scanner kasagaran mapakyas sa pag-detect sa ReDoS tungod kay dili nila masusi kung giunsa molihok ang regex sa runtime o ubos sa malisyoso nga mga kondisyon sa input. Dinhi diin ang mga plataporma sama sa Xygeni makahimo og kalainan pinaagi sa paghiusa sa pag-analisa sa ebalwasyon sa risgo sa konteksto, nga nagtabang sa mga team nga masabtan kung ang usa ka kahuyangan ba gyud maabot ug adunay epekto.

Unsaon Pag-ila sa mga Kahuyangan sa ReDoS

Mahimo nimong mamatikdan ang ReDoS pinaagi sa kombinasyon sa disiplina sa disenyo ug pagsulay. Dugang pa, gusto nimo ang mga pagsusi nga padayon nga modagan, dili lang atol sa pagrepaso sa seguridad.

Luwas nga disenyo sa regex

Pagsugod sa mga sumbanan nga makapakunhod sa pagkadili klaro. Likayi ang nested quantifiers ug nagsapaw-sapaw nga mga alternatibo.

Pag-fuzz ug pagsulay

Sulayi ang mga regex pattern gamit ang:

  • Taas kaayo ang mga input.
  • Mga input nga hapit mapakyas nga ulahi nga napakyas.
  • Mga balik-balik nga token nga gidisenyo aron ma-trigger ang backtracking.

Static nga pagtuki

Gamita ang pag-analisa nga nagmarka sa nailhan nga peligroso nga mga konstruksyon ug mga sumbanan nga nahiuyon sa CWE-1333.

Pag-validate sa runtime

I-apply ang mga limitasyon sa gitas-on sa input ug mga timeout palibot sa regex evaluation kung mahimo. Giya sa Pag-validate sa Input sa OWASPe klarong nagpasidaan bahin sa ReDoS ug nagpasiugda sa kamahinungdanon sa pagtino sa minimum ug maximum nga gitas-on sa input.

Ang mga abanteng solusyon sa AppSec sama sa Xygeni labaw pa sa pag-ila sa mga sumbanan pinaagi sa pag-analisar sa code sa konteksto sa workflow ug pagtabang sa mga team nga mag-focus sa mga isyu nga lagmit importante sa tinuod nga mga senaryo, nga makapakunhod sa mga sayop nga positibo ug makapadali sa remediation.

Unsaon Paglikay sa mga Pag-atake sa ReDoS

Ang pagpugong usa ka kombinasyon sa mas luwas nga mga sumbanan, mas luwas nga mga input, ug mas luwas nga mga kapilian sa runtime.

Likayi ang mga nested quantifier

Ang nested repetition kasagarang makamugna og pinakagrabe nga mga pagbuto sa backtracking.

Limitahi ang gidak-on sa input

Kini ang pinakasimple ug labing kasaligan nga mitigasyon. Ibutang ang pinakataas nga limitasyon sa gitas-on para sa mga input nga moagi sa regex validation. Gipasiugda sa OWASP ang mga limitasyon sa gitas-on isip usa ka importanteng bahin sa luwas nga input validation.

Gamita ang luwas nga mga regex engine kung mahimo

Kon makapili ka sa makina, pilia ang usa nga gidisenyo aron malikayan ang grabeng pagbalik sa normal nga kahimtang. RE2 sa Google gipahimutang isip usa ka luwas nga alternatibo sa pag-backtrack sa mga regex engine.

I-validate ang mga input gamit ang layered checks

Ayaw pagsalig sa usa lang ka regex para sa tanang validation. Isagol:

  • mga lista sa gitugotan nga karakter,
  • estrikto nga pagsusi sa gitas-on,
  • ug mas simple nga mga sumbanan kada natad.

Ang pagpugong sa ReDoS nanginahanglan ug luwas nga mga pamaagi sa pag-coding ug padayon nga pag-validate sa tibuok siklo sa kinabuhi sa pag-uswag, ilabi na samtang nagkadako ang mga aplikasyon ug nagkadako ang mga dependency.

Giunsa Pagtabang sa Xygeni ang Pag-ila ug Pagpugong sa ReDoS

Ang Xygeni makatabang sa mga DevSecOps team nga makamatikod ug makapugong sa mga kahuyangan sa ReDoS pinaagi sa paghiusa sa daghang mga lut-od sa pag-analisar.

Ang panguna nga mga kapabilidad naglakip sa:

  • Pag-ila sa mga mahuyang nga regex pattern atol sa pag-develop
  • Pag-analisar sa mga agos sa datos ug mga agianan sa pagpatuman
  • Pag-ila sa mga kahuyangan nga mapahimuslan, dili lang mga teoretikal
  • Paghiusa sa CI/CD pipelines para sa padayon nga pag-scan
  • Magamit nga giya sa pag-ayo alang sa mga developer

Imbis nga pabug-atan ang mga team og mga alerto, gi-prioritize sa Xygeni ang mga kahuyangan nga aktuwal nga maabot ug maimpluwensyahan.

Kini nagtugot sa mga team sa pag-ayo sa tinuod nga mga isyu nga mas paspas, nga dili makapahinay sa pag-uswag.

Labing Maayong mga Pamaagi para sa mga DevSecOps Team

Seguridad sa pagbalhin-wala

Himoa ang mga pagsusi sa ReDoS nga bahin sa parehas nga rutina sama sa pagrepaso sa code ug mga pagsulay sa unit.

Awtomatikong i-scan

Paghimo og mga tseke sa matag pull request mao nga ang regex risk dili maghulat alang sa mga periodic nga pagrepaso.

Mga dependency sa monitor

Ang mga kahuyangan sa Regex makita usab sa mga dependency ug input parsing libraries, busa hupti nga higpit ang kalimpyo sa dependency.

Padayon nga balido ang mga input

I-apply ang mga limitasyon sa gitas-on ug mga lagda sa pag-input sa mga kilid, dayon i-validate pag-usab sulod sa mga kritikal nga serbisyo.

Pinaagi sa pag-embed sa seguridad direkta sa mga workflow sa pag-develop, mapugngan sa mga team ang mga kahuyangan nga nakabase sa performance sama sa ReDoS sa dili pa kini makaabot sa produksiyon.

Ang Paglikay sa ReDoS Magsugod sa Walay-Anino nga Pagtan-aw

Ang ReDoS kanunay nga wala tagda, apan kini adunay dakong epekto sa performance ug availability sa aplikasyon. Giisip sa OWASP ang ReDoS isip usa ka denial of service risk nga naggikan sa grabeng regex runtime behavior.
Kana nagpasabot nga kinahanglan nimo og labaw pa sa basic scanning. Kinahanglan nimo og konteksto, prayoridad, ug automation.

Kon imong trataron ang regex sama sa code nga mahimong mapakyas ubos sa input nga kontrolado sa tig-atake, mas sayo nimong madakpan ang ReDoS ug makapadala og mas luwas nga mga sistema. Uban sa Xygeni, ang mga team makapakunhod sa kasaba, maka-prioritize sa tinuod nga risgo, ug makapalig-on sa mga kontrol sa AppSec sa sulod. CI/CD Mga agianan sa trabaho.

Panapos

Ang mga kahuyangan sa ReDoS dali ra mailhan ug lisod mamatikdan kung wala ang husto nga konteksto.

Samtang ang tradisyonal nga mga himan nagpunting sa pag-ila sa mga isyu, ang modernong AppSec nanginahanglan og pagsabot kung unsang mga kahuyangan ang tinuod nga hinungdanon.

Busa, aron magpabiling abante, ang mga team nanginahanglan og visibility, prioritization, ug automation nga magtinabangay sa tibuok development lifecycle.

Dinhi makahimo og kalainan ang Xygeni. Pinaagi sa pag-focus sa mga risgo nga mapahimuslan, makatabang kini sa mga team nga makamatikod sa mga isyu og sayo, makunhuran ang kasaba, ug maseguro ang mga aplikasyon gikan sa pag-develop hangtod sa pag-deploy.

Sa katapusan, ang paghimo og luwas nga software karon nagpasabot og labaw pa sa pag-scan ug pagsagop og konteksto, real-time nga pamaagi sa seguridad.

Sugdi ang paghimo og luwas ug lig-on nga mga aplikasyon gamit ang real-time nga pag-ila ug seguridad sa konteksto.

Mga Pangutana nga Kanunayng Gipangutana (FAQ)

Unsa ang usa ka pag-atake sa ReDoS?

Ang ReDoS (Regular Expression Denial of Service) nga pag-atake usa ka klase sa kahuyangan diin ang dili episyente nga mga regex pattern mahimong mapahimuslan aron hinungdan sa sobra nga oras sa pagproseso, nga mosangpot sa pagkadaot sa performance o mga pag-crash sa aplikasyon.

Ngano nga delikado ang ReDoS sa mga modernong aplikasyon?

Ang mga pag-atake sa ReDoS makaapekto sa pagkaanaa sa aplikasyon pinaagi sa pag-ut-ot sa mga kahinguhaan sa CPU ug pagpahinay sa mga serbisyo. Sa mga palibot nga cloud-native, kini dali nga mograbe ngadto sa mga isyu sa performance sa tibuok sistema.

Unsaon sa mga developer pagpugong sa mga kahuyangan sa ReDoS?

Mahimong mapugngan sa mga developer ang ReDoS pinaagi sa paglikay sa komplikado nga mga regex pattern, paglimita sa gidak-on sa input, paggamit sa luwas nga mga regex engine, ug pag-integrate sa mga security check sa CI/CD pipelines.

Makamatikod ba ang tradisyonal nga mga himan sa seguridad sa ReDoS?

Kadaghanan sa tradisyonal nga mga himan naglisod sa pag-ila sa ReDoS tungod kay wala kini mag-analisar sa runtime behavior o exploiability. Ang mga abante nga solusyon sa AppSec naghatag og mas maayong pag-ila pinaagi sa pagtimbang-timbang kon giunsa pagpatuman ang code sa tinuod nga mga senaryo.

Giunsa pagtabang sa Xygeni ang pagpugong sa mga pag-atake sa ReDoS?

Ang Xygeni makamatikod sa mga huyang nga regex pattern, mag-analisar sa mga agianan sa pagpatuman, ug mag-prioritize sa mga risgo nga mapahimuslan. Kini mo-integrate sa CI/CD pipelines ug naghatag og magamit nga giya sa remediation sa mga developers.

About sa mga Author

Co-Founder ug CTO

Fatima Said espesyalista sa sulud nga una sa mga developer para sa AppSec, DevSecOps, ug software supply chain securityGihimo niya ang komplikado nga mga signal sa seguridad ngadto sa klaro ug magamit nga giya nga makatabang sa mga team sa pag-prioritize nga mas paspas, pagpakunhod sa kasaba, ug pagpadala sa mas luwas nga code.

 
mga himan sa pag-analisa sa komposisyon sa software sa sca
Unaha, ayoha, ug siguroha ang mga risgo sa imong software
Kuhaa ang Imong Libre nga Account.
Walay gikinahanglan nga credit card.

Seguraduha ang Imong Pagpalambo ug Paghatud sa Software

uban sa Xygeni Product Suite