xss-эмзэг байдал-sast-хэрэгсэл

XSS эмзэг байдал: Хэрхэн SAST Хэрэгслүүд нь тэдгээрийг урьдчилан сэргийлж чадна

Сайт хоорондын скрипт (XSS) нь халдагч этгээдэд вэб хуудсанд хортой скрипт оруулах боломжийг олгодог эмзэг байдал бөгөөд скриптүүд нь дараа нь өөр хэрэглэгчийн хөтөч дээр тэнд байгаа мэт ажилладаг. Энэ нь тогтмол жагсаалтад багтдаг. OWASP шилдэг 10, мөн энэ нь халдагчид сессийн өгөгдлийг хулгайлах, бүртгэлийг булаах эсвэл програмын өөрийн хэрэглэгчдийн итгэлийг чимээгүйхэн үгүй ​​хийх хамгийн түгээмэл аргуудын нэг хэвээр байна.

SAST хэрэгслүүд нь эдгээр эмзэг байдлыг эрт илрүүлэх хамгийн үр дүнтэй аргуудын нэг бөгөөд XSS-ийг код үйлдвэрлэлд орохоос өмнө нэвтрүүлдэг яг ямар хэв маягийг эх кодоор нь сканнердах явдал юм. Энэ нийтлэлд: XSS-ийн хамгийн түгээмэл гурван төрөл, тэдгээр нь бодит кодод хэрхэн харагддаг, хэрхэн SAST хэрэгслүүд (нэмээд хэд хэдэн код бичих дадал) нь тэдгээрийг тээвэрлэхээс өмнө хаадаг.

XSS-ийн эмзэг байдал гэж юу вэ, яагаад анхаарах ёстой вэ?

XSS эмзэг байдал нь програм нь хэрэглэгчийн URL хаягийг бичиж, буулгаж эсвэл дамжуулж байгаа итгэмжлэгдээгүй оролтыг авч, зохих ёсоор баталгаажуулалгүйгээр эсвэл зугтахгүйгээр хуудсанд буцааж оруулах үед үүсдэг. Ийм зүйл тохиолдвол халдагч ердийн текстийн оронд скриптийг нууцаар оруулж болох бөгөөд хөтөч ялгааг нь мэдэх аргагүй: энэ нь зүгээр л хуудасны үлдсэн хэсэгтэй адил итгэлцэл, зөвшөөрлөөр ажиллуулдаг.

Энэ нь XSS-ийг аюултай болгодог зүйл боловч үндсэн алдаа нь ихэвчлэн жижиг байдаг. Ариутгаагүй ганц оролтын талбар нь халдагчдад сессийн күүки хулгайлах, нэвтэрсэн бүртгэлийг булаах, хэрэглэгчдийг фишинг хуудас руу чимээгүйхэн чиглүүлэх, товчлуурын даралтыг бүртгэх эсвэл зочны үзсэн контентыг дахин бичих боломжийг олгодог бөгөөд эдгээр бүх үйлдлийг таны серверт шууд хүрэлгүйгээр хийх боломжтой. Эмзэг байдал нь хөтөч таны програмын өөрийн гаралтад хэрхэн итгэдэгт бүрэн оршино.

Тийм ч учраас XSS нь OWASP-ийн шилдэг 10 жагсаалтад маш олон удаа гарч ирдэг: энэ нь нарийн төвөгтэй ашиглалтын гинж шаарддаггүй, зөвхөн нэг л орхигдсон оролт шаарддаг бөгөөд дэлбэрэлтийн радиус нь нөлөөлөлд өртсөн хуудсыг ачаалсан хэрэглэгч бүрт хүрдэг.

XSS халдлагын нууцыг тайлах: Хамгийн түгээмэл гурван төрөл

1. Хадгалагдсан XSS: Байнгын аюул занал

Хадгалсан XSS нь хортой скриптийг сервер дээр байнга суулгадаг тул дараа нь нөлөөлөлд өртсөн хуудсыг үзсэн хэрэглэгч бүрийн хувьд автоматаар ажилладаг.

Хадгалсан XSS эмзэг байдал нь хортой скриптүүдийг сервер дээр (жишээ нь, мэдээллийн санд) байнга хадгалж, хэрэглэгч нөлөөлөлд өртсөн хуудсанд хандах бүрт гүйцэтгэх үед үүсдэг.

Жишээ нь: хүчингүй хэрэглэгчийн оролтыг хүлээн авдаг тайлбар талбар:

<script>alert('Stored XSS')</script>

2. Тусгасан XSS: Яг тэр мөчид хүргэгдсэн

Тусгасан XSS нь ганцхан бүтээгдсэн холбоос дотор байрладаг бөгөөд скрипт нь хохирогч үүн дээр дарсны дараа л ажилладаг бөгөөд ихэвчлэн фишинг эсвэл нийгмийн инженерчлэлээр дамжуулан ажилладаг.

Тусгасан XSS нь хортой скриптүүдийг URL хаягуудад суулгаж, хэрэглэгч холбоостой харьцах үед гүйцэтгэгдэх үед үүсдэг бөгөөд энэ нь ихэвчлэн фишинг эсвэл нийгмийн инженерчлэлээр дамждаг.

Жишээ нь:

https://example.com/search?q=<script>alert('Reflected XSS')</script>

3. DOM дээр суурилсан XSS: Хөтөч дээр нуугдсан халдлагууд

DOM дээр суурилсан XSS нь серверт огт хүрдэггүй бөгөөд хортой скрипт нь хуудасны агуулгыг буруу зохицуулдаг JavaScript-ээр дамжуулан бүхэлдээ клиент талын ажиллагааг гүйцэтгэдэг.

Энэ төрөлд хортой скриптүүд нь Document Object Model (DOM)-г удирдахын тулд клиент талын JavaScript-ийн эмзэг байдлыг ашигладаг.

Жишээ нь: Ариутгаагүй хэрэглэгчийн оролтыг динамикаар харуулдаг JavaScript хэсэг:

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 эмзэг байдлыг олох болон засах хоёрын хоорондох зайг арилгадаг. Хэрхэн хийх вэ гэвэл:

  • Code Security (SAST): XSS болон бусад тарилгын алдааг бичсэн байдлаар нь анхдагч талын кодыг сканнердаж, байршуулахаас өмнө илрүүлдэг. OWASP Benchmark дээр Xygeni-SAST XSS илрүүлэлт дээр хуурамч эерэг хамгийн бага дүнтэйгээр 100% жинхэнэ эерэг харьцааг харуулдаг.
  • Хиймэл оюун ухааны автомат засвар: Хөгжүүлэгчдэд бэлэн засваруудыг ашиглан тэмдэглэгдсэн XSS эмзэг байдлыг шууд засч, pull request Таны кодын суурьтай нийцсэн аюулгүй хувилбартай тул гараар нөхөөс хийх шаардлагагүй.
  • Хортой програм хангамжийн хамгаалалт: Нээлттэй эхийн багцад нуугдаж буй эмзэг хэв маяг нь таны анхны талын кодын хяналтаас гадуур гарахгүйн тулд хамаарал болон гуравдагч талын сангуудыг оруулсан эсвэл эвдэрсэн кодыг хянадаг.
  • IDE болон CI/CD Интеграци: Код бичигдэх үед IDE дээр асуудлуудыг шууд тэмдэглэж, тэмдэглэнэ pull requests GitHub, GitLab, Bitbucket, Azure DevOps, болон Jenkins дээр автоматаар ажилладаг тул эмзэг кодыг анхнаасаа нэгтгэдэггүй.

Уян хатан програмуудыг бүтээх: Сайт хоорондын скриптийг ашиглахгүй байх зөвлөмжүүд

Аппликейшнуудаа цаашид аюулгүй байлгахын тулд эдгээр туршлагыг хамт хэрэгжүүлээрэй SAST хэрэгсэл:

  • Хэрэглэгчийн оролтыг ариутгах: Бат бөх ариутгал хийхийн тулд DOMPurify гэх мэт сангуудыг ашиглаарай.
  • Кодлох гаралтууд: Хөтөч дээр харуулахаасаа өмнө динамик өгөгдлийг үргэлж кодчил.
  • Контентын аюулгүй байдлын бодлогыг (CSP) хэрэгжүүлэх: Скриптийн гүйцэтгэлийг итгэмжлэгдсэн эх сурвалжаар хязгаарлах.
  • Кодын аудитыг үе үе биш, тасралтгүй болгох: Гараар хянах хуваарь гаргахын оронд Xygeni-г ажиллуулна уу 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 (скрипт нь серверийг огт оролцуулалгүйгээр аюулгүй бус клиент талын JavaScript-ээр дамжуулан хөтөч дээр бүрэн ажилладаг).

Can SAST хэрэгслүүд DOM дээр суурилсан XSS-ийг барьж байна уу?

Тийм ээ, орчин үеийн SAST хэрэгслүүд нь зөвхөн сервер талын код төдийгүй DOM дээр суурилсан XSS-ийг үүсгэдэг аюултай хэв маягийг (DOM руу шууд бичигдсэн ариутгаагүй оролт гэх мэт) клиент талын JavaScript-ийг сканнерддаг.

XSS нь нийтлэг эмзэг байдал хэвээрээ юу?

Тийм ээ. XSS нь OWASP-ийн шилдэг 10-т байнгын бүртгэл хэвээр байгаа бөгөөд голчлон нэг л орхигдсон оролтын талбар нь бүхэл бүтэн програмын хэрэглэгчдийг ил гаргахад хангалттай байдагтай холбоотой юм.

Яаж байна SAST XSS-ээс урьдчилан сэргийлэх вэб програмын галт хана (WAF)-аас өөр хэрэгсэл үү?

A SAST Хэрэгсэл нь байршуулахаас өмнө таны эх кодын эмзэг хэв маягийг олдог тул алдаа хэзээ ч илгээгддэггүй. WAF нь аль хэдийн ажиллаж байгаа програмын өмнө байрладаг бөгөөд ажиллах үед хортой хүсэлтийг хаахыг оролддог бөгөөд энэ нь аюулгүй байдлын тор болохоос үндсэн кодын засвар биш юм.

sca-tools-програм хангамжийн-бүтцийн-шинжилгээний-хэрэгсэл
Програм хангамжийн эрсдэлээ эрэмбэлэх, засах, аюулгүй болгох
Үнэгүй бүртгэлээ аваарай.
Зээлийн картын шаардлагагүй.

Програм хангамжийн хөгжүүлэлт болон хүргэлтээ аюулгүй байлгаарай

Xygeni Product Suite-тэй хамт