የጣቢያ ክሮስ ስክሪፕት (XSS) አንድ አጥቂ ተንኮል አዘል ስክሪፕቶችን ወደ ድረ-ገጽ እንዲያስገባ የሚያስችል ተጋላጭነት ሲሆን ስክሪፕቶቹ በሌላ ተጠቃሚ አሳሽ ውስጥ እንደነበሩ ሆነው እንዲሰሩ ያስችላቸዋል። በተከታታይ ደረጃ ተሰጥቶታል OWASP ከፍተኛ 10እና አጥቂዎች የክፍለ ጊዜ መረጃን የሚሰርቁበት፣ መለያዎችን የሚጠሉበት ወይም የመተግበሪያውን እምነት በራሱ ተጠቃሚዎች በጸጥታ የሚያበላሹበት በጣም የተለመዱ መንገዶች አንዱ ሆኖ ይቀጥላል።
SAST መሳሪያዎች እነዚህን ተጋላጭነቶች ቀደም ብለው ለመያዝ በጣም ውጤታማ ከሆኑ መንገዶች አንዱ ናቸው፣ XSS እንዲያልፍ የሚያደርጉትን ትክክለኛ ቅጦች ለማወቅ የምንጭ ኮድን በመቃኘት፣ ያ ኮድ ምርት ላይ ከመድረሱ በፊት። በዚህ ጽሑፍ ውስጥ፡ ሦስቱ በጣም የተለመዱ የXSS ዓይነቶች፣ በእውነተኛ ኮድ ውስጥ ምን እንደሚመስሉ እና እንዴት እንደሚመስሉ SAST መሳሪያዎች (እና ጥቂት የኮድ አወጣጥ ልምዶች) ከመላካቸው በፊት ይዘጓቸዋል።
የXSS ተጋላጭነቶች ምንድን ናቸው እና ለምን ትኩረት መስጠት አለብዎት?
የXSS ተጋላጭነቶች የሚከሰቱት አንድ መተግበሪያ ያልታመነ ግብዓት ሲወስድ፣ ተጠቃሚው በዩአርኤል ውስጥ የሚተይበው፣ የሚለጥፈው ወይም የሚያልፍ ነገር ሲወስድ እና መጀመሪያ በትክክል ሳያረጋግጥ ወይም ሳያመልጥ ወደ ገጽ ሲመልሰው ነው። ይህ በሚሆንበት ጊዜ፣ አንድ አጥቂ ተራ ጽሑፍ ከመጻፍ ይልቅ ስክሪፕትን በድብቅ ማስገባት ይችላል፣ እና አሳሹ ልዩነቱን ለመለየት ምንም መንገድ የለውም፡ ልክ እንደሌላው የገጹ ክፍል ተመሳሳይ እምነት እና ፈቃድ ይዞ ያስኬደዋል።
ይህ ነው የስር ሳንካው ብዙውን ጊዜ ትንሽ ቢሆንም XSS አደገኛ የሚያደርገው። አንድ ያልተጸዳ የግቤት መስክ አንድ አጥቂ የክፍለ ጊዜ ኩኪዎችን እንዲሰርቅ እና የገባ መለያ እንዲጠልፍ፣ ተጠቃሚዎችን በጸጥታ ወደ ፊሺንግ ገጽ እንዲያዞር፣ የቁልፍ ጭነቶችን እንዲመዘግብ ወይም ጎብኚ የሚያየውን ይዘት እንደገና እንዲጽፍ ያስችለዋል፣ ሁሉም አገልጋዮችዎን በቀጥታ ሳይነካ። ተጋላጭነቱ ሙሉ በሙሉ አሳሹ የመተግበሪያዎን ውጤት እንዴት እንደሚታመን ላይ ይኖራል።
ለዚህም ነው XSS በ OWASP Top 10 ውስጥ ብዙ ጊዜ የሚታየው፤ የተራቀቀ የብዝበዛ ሰንሰለት አያስፈልገውም፣ አንድ ችላ የተባለ ግብዓት ብቻ ነው፣ እና የፍንዳታው ራዲየስ የተጎዳውን ገጽ ለሚጭን እያንዳንዱ ተጠቃሚ ይዘልቃል።
የXSS ጥቃቶች የተገለሉባቸው፡ በጣም የተለመዱት ሦስቱ ዓይነቶች
1. የተከማቸ XSS፡ የማያቋርጥ ስጋት
የተከማቸ XSS በአገልጋዩ ላይ ተንኮል አዘል ስክሪፕት በቋሚነት ይተክላል፣ ስለዚህ በኋላ ላይ የተጎዳውን ገጽ ለሚመለከት እያንዳንዱ ተጠቃሚ በራስ-ሰር ይቃጠላል።
የተከማቹ የXSS ተጋላጭነቶች የሚከሰቱት ተንኮል አዘል ስክሪፕቶች በአገልጋዩ ላይ በቋሚነት ሲከማቹ (ለምሳሌ፣ በውሂብ ጎታ ውስጥ) እና አንድ ተጠቃሚ የተጎዳውን ገጽ ሲደርስ ሲፈጸሙ ነው።
ለምሳሌ: ያልተረጋገጡ የተጠቃሚ ግብዓቶችን የሚቀበል የአስተያየት መስክ፡
2. የተንጸባረቀ XSS: በወቅቱ ደርሷል
የተንጸባረቀ XSS በአንድ የተቀረጸ አገናኝ ውስጥ ይኖራል፣ ስክሪፕቱ የሚሄደው ተጎጂው አንዴ ጠቅ ሲያደርገው ብቻ ነው፣ ብዙውን ጊዜ በፊሺንግ ወይም በማህበራዊ ምህንድስና በኩል።
የተንጸባረቀ XSS የሚከሰተው ተንኮል አዘል ስክሪፕቶች በዩአርኤሎች ውስጥ ሲካተቱ እና አንድ ተጠቃሚ ከአገናኙ ጋር ሲገናኝ ሲፈጸም ሲሆን፣ ይህም በተለምዶ በፊሺንግ ወይም በማህበራዊ ምህንድስና በኩል የሚቀርብ ነው።
ለምሳሌ:
https://example.com/search?q=
3. በDOM ላይ የተመሠረተ XSS፡ በአሳሹ ውስጥ የተደበቁ ጥቃቶች
በDOM ላይ የተመሠረተ XSS አገልጋዩን በጭራሽ አይነካውም፤ ተንኮል አዘል ስክሪፕት ሙሉ በሙሉ የደንበኛ-ጎንን ያስፈጽማል፣ ይህም የገጽ ይዘትን በአግባቡ አያስተናግድም በጃቫስክሪፕት።
በዚህ አይነት፣ ተንኮል አዘል ስክሪፕቶች የሰነድ ነገር ሞዴል (DOM)ን ለማዛባት በደንበኛ-ጎን ጃቫስክሪፕት ውስጥ ያሉ ተጋላጭነቶችን ይጠቀማሉ።
ለምሳሌ: ያልተጸዳ የተጠቃሚ ግብዓትን በተለዋዋጭነት የሚያቀርብ የጃቫስክሪፕት ቁርጥራጭ፦
var input = location.hash.substring(1);
document.getElementById("output").innerHTML = input; // Vulnerable
ከእነዚህ ቅጦች ውስጥ ስንት በራስዎ የኮድቤዝ ውስጥ እንዳሉ ለማወቅ ጓጉቻለሁ? የXygeni's SAST የተከማቸ፣ የተንጸባረቀ እና በDOM ላይ የተመሰረተ የXSS አደጋን በራስ-ሰር ይቃኛል፣ ከመድረሳቸው በፊት pull request.
እንዴት SAST መሳሪያዎች XSSን በትራኮቹ ያቁሙ
የማይንቀሳቀስ የመተግበሪያ ደህንነት ሙከራ (SAST) መሳሪያዎች በሶፍትዌር ልማት የህይወት ዑደት መጀመሪያ ላይ የXSS ተጋላጭነቶችን ለመለየት እጅግ ጠቃሚ ናቸው (SDLC).
ቁልፍ ጥቅሞች
በልማት መጀመሪያ ላይ ችግሮችን ያግኙ
SAST መሳሪያዎች መተግበሪያው ከመሰማራቱ በፊት ለአደጋ ተጋላጭ የሆኑ ቅጦችን ለማግኘት የምንጭ ኮድ ይቃኛሉ።
የተጠቆመ ተጋላጭነት ምሳሌ፦
document.getElementById("output").innerHTML = userInput; // Vulnerable
አስተማማኝ አማራጭ፦
document.getElementById("output").textContent = sanitize(userInput); // Secure
መላውን የኮድቤዝ ትንተና
ዘመናዊ SAST መሳሪያዎች ብጁ ኮድን ብቻ አይተነትኑም፤ እንዲሁም ጥገኛዎችን እና የሶስተኛ ወገን ቤተ-መጻሕፍትን ይቃኛሉ፣ የተደበቁ አደጋዎችን ይለያሉ።
ያለምንም እንከን ከ ጋር ያዋህዱ CI/CD
SAST መሳሪያዎች በ ውስጥ የ XSS ተጋላጭነቶችን በራስ-ሰር ይቃኛሉ pull requests እና ደህንነቱ ያልተጠበቀ ኮድ እንዳይዋሃድ ያቁሙ።
በጣም አስፈላጊ በሆኑት ነገሮች ላይ አተኩር
SAST መሳሪያዎች የብዝበዛን እና የተጋላጭነቶችን ክብደት በመገምገም ጥገናዎችን ቅድሚያ ይሰጣሉ፣ ይህም ቡድኖች በጣም ወሳኝ ጉዳዮችን በመጀመሪያ እንዲፈቱ ያስችላቸዋል።
Xygeni ከ XSS ጋር በሚደረገው ውጊያ እንዴት እንዲያሸንፉ ይረዳዎታል
Xygeni የXSS ተጋላጭነትን በማግኘት እና በትክክል በመጠገን መካከል ያለውን ክፍተት ለመዝጋት የማይንቀሳቀስ ትንተና፣ በAI የሚመራ ማስተካከያ እና የአቅርቦት ሰንሰለት ታይነትን ያጣምራል። እንዴት እንደሆነ እነሆ፡
- Code Security (SAST): የXSS እና ሌሎች የመርፌ ጉድለቶችን እንደተገለጸው የመጀመሪያ ወገን ኮድ ይቃኛል፣ ከማሰማራቱ በፊት ይይዛቸዋል። በOWASP ቤንችማርክ ላይ፣ Xygeni-SAST በ XSS ምርመራ ላይ 100% እውነተኛ አዎንታዊ መጠን እና አነስተኛ የውሸት አወንታዊ ውጤቶችን ያገኛል።
- የAI ራስ-ሰር ጥገና፦ በገንቢ ዝግጁ ጥገናዎች የተጠቆሙ የXSS ተጋላጭነቶችን ወዲያውኑ ያስተካክላል፣ pull request ከኮድቤዝዎ ጋር የተጣጣመ ደህንነቱ የተጠበቀ አማራጭ ሲኖር፣ በእጅ የሚስተካከል ነገር አያስፈልግም።
- የማልዌር መከላከያ፦ በክፍት ምንጭ ጥቅል ውስጥ የተደበቀ ተጋላጭ የሆነ ንድፍ ከመጀመሪያው ወገን የኮድ ግምገማዎ እንዳያልፈው ጥገኝነቶችን እና የሶስተኛ ወገን ቤተ-መጻሕፍትን ይከታተላል።
- አይዲኢ እና CI/CD ውህደት: ኮዱ ሲጻፍ ጥቆማዎች በቀጥታ በIDE ውስጥ ይታያሉ፣ እና ማብራሪያዎችንም ይሰጣሉ pull requests በራስ-ሰር በ GitHub፣ GitLab፣ Bitbucket፣ Azure DevOps እና Jenkins ላይ ስለሚሰራጭ ተጋላጭ ኮድ በመጀመሪያ ደረጃ አይዋሃድም።
የመቋቋም አቅም ያላቸውን አፕሊኬሽኖች ይገንቡ፡- የጣቢያ አቋራጭ ስክሪፕት እንዳይሰራ ለማድረግ ጠቃሚ ምክሮች
አፕሊኬሽኖችዎን የበለጠ ደህንነት ለመጠበቅ፣ እነዚህን ልምዶች ከጎንዎ ይተግብሩ SAST መሳሪያዎች፡-
- የተጠቃሚ ግብዓቶችን ማፅዳት፡ ጠንካራ የጽዳት ስራን ለማከናወን እንደ DOMPurify ያሉ ቤተ-መጻሕፍትን ይጠቀሙ።
- የኢንኮድ ውጤቶችን፡ ሁልጊዜ ተለዋዋጭ ውሂብን በአሳሹ ውስጥ ከማስቀመጥዎ በፊት ኢንኮድ ያድርጉ።
- የይዘት ደህንነት ፖሊሲዎችን (CSPs) ተግባራዊ ማድረግ፡ የስክሪፕት አፈፃፀምን ለታመኑ ምንጮች ይገድቡ።
- የኮድ ኦዲቶችን ቀጣይነት ያለው፣ በየጊዜው የሚደረግ ሳይሆን፣ ያድርጉ፡ በእጅ የሚሰጡ ግምገማዎችን ከማቀድ ይልቅ የXygeni'sን ያሂዱ SAST እንደ ቅኝት pre-commit መንጠቆ ወይም በቀጥታ በእርስዎ ውስጥ CI/CD pipeline (GitHub፣ GitLab፣ Bitbucket፣ Azure DevOps፣ Jenkins)፣ ስለዚህ እያንዳንዱ commit በራስ-ሰር ይመረመራል፣ እና ደህንነቱ ያልተጠበቀ ኮድ ወደ ውህደት አይደርስም።
አፕሊኬሽኖችዎን ከ XSS ለመጠበቅ ዝግጁ ነዎት?
የXSS ተጋላጭነቶች የመተግበሪያዎን ደህንነት አደጋ ላይ ሊጥሉ አይገባም። እንዴት እንደሚሰሩ መረዳት፣ እነሱን መያዝ SAST መሳሪያዎች፣ እና ደህንነቱ የተጠበቀ የኮድ አወጣጥ ልምዶችን መከተል አጥቂው ክፍተቱን እስኪያገኝ ድረስ ተጋላጭነትዎን ወደ ዜሮ ሊቀንስ ይችላል።
At ዚጌኒእነዚህን ተጋላጭነቶች ቀደም ብለን ለመያዝ፣ በእርግጥ አስፈላጊ የሆኑትን ቅድሚያ ለመስጠት እና ከእርስዎ ጋር እንዳይገናኙ ለማድረግ የተፈጠርን ነን። pipelineሙሉ በሙሉ።
ማሳያ አሳይወይም ኮድዎን ዛሬውኑ በነፃ መቃኘት ይጀምሩ።
በየጥ
የXSS ተጋላጭነት ምንድን ነው?
XSS (ክሮስ-ሳይት ስክሪፕት) አንድ አጥቂ ተንኮል አዘል ስክሪፕትን ወደ ድረ-ገጽ እንዲያስገባ የሚያስችል ተጋላጭነት ሲሆን ከዚያም በሌላ ተጠቃሚ አሳሽ ውስጥ ልክ እንደ ህጋዊ ጣቢያው አካል ሆኖ ይሰራል።
ሦስቱ ዋና ዋና የ XSS ዓይነቶች ምንድናቸው?
የተከማቸ XSS (ስክሪፕቱ በአገልጋዩ ላይ ይቀመጣል እና ለእያንዳንዱ ጎብኚ ይሰራል)፣ የተንጸባረቀ XSS (ስክሪፕቱ በአገናኝ ውስጥ የተካተተ እና ያ አገናኝ ጠቅ ሲደረግ ብቻ ነው የሚሰራው) እና በDOM ላይ የተመሠረተ XSS (ስክሪፕቱ ሙሉ በሙሉ በአሳሹ ውስጥ ደህንነቱ በተጠበቀ የደንበኛ-ጎን ጃቫስክሪፕት በኩል ይሰራል፣ አገልጋዩን ጨርሶ ሳያካትት)።
ይችላልን SAST መሳሪያዎች በDOM ላይ የተመሠረተ XSSን ይይዛሉ?
አዎ ዘመናዊ SAST መሳሪያዎች ተመሳሳይ ደህንነታቸው ያልተጠበቀ ቅጦችን (እንደ በቀጥታ ወደ DOM የተፃፈ ያልጸዳ ግቤት) ለማግኘት የደንበኛ-ጎን ጃቫስክሪፕትን ይቃኛሉ፣ ይህም በDOM ላይ የተመሠረተ XSS፣ በአገልጋይ-ጎን ኮድ ብቻ አይደለም።
XSS አሁንም የተለመደ ተጋላጭነት ነው?
አዎ። XSS በ OWASP Top 10 ውስጥ ቀጣይነት ያለው ግቤት ሆኖ ቀጥሏል፣ በአብዛኛው የአንድን መተግበሪያ ተጠቃሚዎች በሙሉ ለማጋለጥ አንድ ችላ የተባለ የግቤት መስክ ብቻ ስለሚያስፈልግ።
እንዴት ነው ሀ SAST ለXSS መከላከያ ከዌብ አፕሊኬሽን ፋየርዎል (WAF) የተለየ መሳሪያ?
A SAST መሳሪያው ከማሰማራቱ በፊት በምንጭ ኮድዎ ውስጥ ተጋላጭ የሆነውን ንድፍ ያገኛል፣ ስለዚህ ሳንካው በጭራሽ አይላክም። WAF አስቀድሞ እየሄደ ባለ መተግበሪያ ፊት ለፊት ተቀምጦ ተንኮል አዘል ጥያቄዎችን በአሂድ ጊዜ ለማገድ ይሞክራል፣ የደህንነት መረብ ነው፣ ለስር ያለው ኮድ ማስተካከያ አይደለም።







