API аюулгүй байдал

API аюулгүй байдал нь ажиллах үеийн асуудал байсан. Энэ нь заавал байх албагүй

бүр pull request Төгсгөлийн цэгийг нэмэх эсвэл өөрчлөх нь таны API халдлагын гадаргууг өөрчилдөг. Ихэнх API аюулгүй байдлын хэрэгслүүд тухайн төгсгөлийн цэг ажиллаж, аль хэдийн урсгалыг авч эхлэх хүртэл анзаардаггүй. Тэр үед засвар нь кодын хяналтад нэг мөрөөр хийх өөрчлөлт биш, харин ослын хариу үйлдлийн харилцан яриа юм.

API аюулгүй байдал гэдэг нь програм нь төгсгөлийн цэгүүдээ хэрхэн илчилж байгаатай холбоотой эрсдэлийг олж, хаах практик юм: хэн тэднийг дуудаж болох, ямар өгөгдөл буцааж өгөх, баримт бичигт заасан зүйлийг хийж байгаа эсэх.

Энэ асуудалд зориулж бүтээгдсэн ихэнх хэрэгслүүд нь халдагчтай адил API-г ажиллах үед гаднаас нь шалгадаг. Энэ арга нь үр дүнтэй боловч зөвхөн API байршуулсны дараа л ажиллана. Ксигени өмнөх замыг сонгоно: энэ нь нэг хүсэлт төгсгөлийн цэгт хүрэхээс өмнө таны эх код болон API тодорхойлолтыг уншдаг.

API-г турших дөрвөн арга ба тэдгээр нь юунд хариулдаг вэ

Ихэнх боловсорсон хөтөлбөрүүд дараахаас илүүг ажиллуулдаг:

  • Статик туршилт байршуулахаас өмнө эх код болон API үзүүлэлтүүдийг шинжилдэг. Энэ нь "бид саяхан юу илчилсэн бэ?" гэсэн асуултад хариулдаг. Энэ бол энэ нийтлэлд анхаарлаа хандуулж буй арга юм.
  • Динамик туршилт (DAST) ажиллаж байгаа API руу бодит урсгалыг илгээж, хэрхэн хариу үйлдэл үзүүлж байгааг ажигладаг. Энэ нь "одоо юунд хүрч болох, ашиглах боломжтой вэ?" гэж хариулдаг. 
  • Бужигнах гадаргуугийн ослууд болон захын тохиолдлын алдаануудад алдаатай эсвэл гэнэтийн оролтыг төгсгөлийн цэгүүдэд шиддэг. Энэ нь "оролтын дор бидний урьдчилан таамаглаагүй ямар эвдрэл гарсан бэ?" гэж хариулдаг.
  • Гараар нэвтрэх туршилт Энэ нь автоматжуулсан хэрэгслүүдийн алдсан логикийн алдааг олохын тулд хүний ​​​​үзэл бодлыг нэмдэг. Энэ нь "ухаалаг халдагч юуг гинжин хэлхээнд холбох вэ?" гэсэн асуултад хариулдаг.

Эдгээрийн аль нь ч бусдыг нь орлохгүй. Тэд амьдралын мөчлөгийн өөр өөр цэгүүдэд өөр өөр асуултанд хариулдаг бөгөөд ихэнх програмуудын хувьд эхнийх нь л байдаг.

API аюулгүй байдлын ихэнх хэрэгслүүд яагаад эрсдэлийг хэтэрхий оройтож хардаг вэ

Ажиллах үеийн API аюулгүй байдлын тест нь шууд програм руу урсгал илгээж, хэрхэн хариу үйлдэл үзүүлдэгийг нь хянадаг. Энэ нь хууль ёсны бөгөөд зайлшгүй давхарга юм. Мөн энэ нь бүтцийн хувьд хоцрогдолтой индикатор юм: ажиллах үеийн сканнер үүний талаар ямар нэгэн зүйл хэлэхээс өмнө төгсгөлийн цэг оршин тогтнож, байршуулагдаж, хүрч болохуйц байх ёстой. Сканнер ажиллуулахад хэр удаан хугацаа шаардагдсанаас үл хамааран олсон зүйл нь аль хэдийн ил болсон байдаг.

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

Статик API аюулгүй байдлын тест нь шалгалтыг эцсийн цэгийг тодорхойлсон газар руу шилжүүлснээр хоёр цоорхойг хаадаг: таны код болон таны API тодорхойлолт, байршуулахаас өмнө. Үүнтэй адил pull request төгсгөлийн цэгийг танилцуулж буй зүйл бол pull request энэ нь түүний эрсдэлийг илчилдэг.

Статик API аюулгүй байдал гэдэг нь үнэндээ юу гэсэн үг вэ

Xygeni нь таны API бараа материалыг хоёр эх сурвалжаас бүрдүүлдэг: таны аппликейшны эх код болон OpenAPI болон Swagger зэрэг API үзүүлэлтүүд.

Зөвхөн тусгайлан зориулсан бүртгэл нь хэн нэгний баримтжуулахаар санаж байсан төгсгөлийн цэгүүдийг харуулдаг. Зөвхөн код бүхий бүртгэл нь юу байгааг харуулдаг боловч үүнийг хэрхэн ашиглах ёстой байсныг заавал харуулдаггүй. Хоёуланг нь уншихад танд бүрэн дүр зургийг өгдөг: танай багууд баримтжуулсан төгсгөлийн цэгүүд болон хэн ч баримтжуулаагүй төгсгөлийн цэгүүд.

Энэ бараа материал нь бусад бүх зүйл дээр тулгуурладаг суурь юм:

  • Нийт илэрсэн API болон суурь үзүүлэлттэй харьцуулсан эрсдэлтэй хөрөнгийг хэмжсэн
  • HTTP аргаар задалсан төгсгөлийн цэгүүд
  • Үйлчилгээгээр бүлэглэсэн асуудлууд
  • Төгсгөлийн цэг бүр өөрийн гэсэн арга, зам, үйлчилгээ, модуль, баталгаажуулалтын төлөв болон эрсдэлийн оноотой

Таны инженерийн удирдагчид ганц ч тасалбар нээхгүйгээр таны API гадаргуугийн хэлбэрийг хардаг.

Xygeni-ийн олсон бүх төгсгөлийн цэгүүд нь арга, баталгаажуулалтын төлөв болон эрсдэлийн оноотойгоо хамт код болон тодорхойлолтоос бүрдсэн.

Production note API аюулгүй байдлын дэлгэцийн агшингаас AI Triage самбарыг тайрч ав.

OWASP API аюулгүй байдлын шилдэг 10-д багтсан

Олдворууд нь танай аюулгүй байдлын баг болон аудиторуудын аль хэдийн ашиглаж байгаа хүрээг харуулж байна. Xygeni нь OWASP API Security-ийн эрсдэлийг илрүүлдэг Шилдэг 10 (2023):

OWASP эрсдлийн Энэ нь практик дээр юу гэсэн үг вэ
API1 Эвдэрсэн объектын түвшний зөвшөөрөл Төгсгөлийн цэг нь өөр хэрэглэгч эсвэл түрээслэгчийн өгөгдлийг буцаадаг эсвэл өөрчилдөг
API2 Баталгаажаагүй төгсгөлийн цэгүүд Маршрут нь ямар ч баталгаажуулалтгүйгээр хүрч болно
API3 Хэт их өгөгдлийн илрэл Хариулт нь дуудагчийн харах шаардлагатай эсвэл харах ёстой хэмжээнээс илүү олон талбар буцаана
API3 Массын даалгавар Төгсгөлийн цэг нь хэзээ ч хүлээн авахаар төлөвлөөгүй талбаруудыг хүлээн авч, хэрэгжүүлдэг
API3 / API10 Хариултууд дахь мэдрэмтгий өгөгдөл PII, PCI эсвэл PHI нь үйлчлүүлэгч рүү илгээх ёсгүй төгсгөлийн цэгээс хүрдэг
API4 Үнийн хязгаар дутуу байна Төгсгөлийн цэг нь хүчирхийлэл эсвэл харгис хүчээр дуудахаас хамгаалалтгүй байдаг
API5 Эвдэрсэн функцийн түвшний эрхжүүлэлт Төгсгөлийн цэг нь дуудлага хийж буй хүн зөвшөөрөгдсөн эсэхийг шалгалгүйгээр давуу эрхтэй үйлдлийг гүйцэтгэдэг
API7 SSRF Халдагчийн өмнөөс хүсэлт гаргахын тулд API-г хуурч болно
API8 JWT-ийн буруу тохиргоо Токен баталгаажуулалт, гарын үсэг зурах эсвэл хугацаа дуусах хугацааг буруу тохируулсан байна
API8 CORS-ийн буруу тохиргоо Гарал үүслийн хөндлөнгийн дүрмүүд нь ашиглахад хангалттай зөвшөөрөгдсөн байдаг
API9 Зомби болон өнчин хүүхдүүдийн төгсгөлийн цэгүүд Хүрэх боломжтой хэвээр байгаа хуучирсан эсвэл мартагдсан маршрутууд болон хэний ч эзэмшдэггүй маршрутууд

Нэг ангилал нь санаатайгаар байхгүй байна. API6 буюу Мэдрэмтгий бизнесийн урсгалд хязгаарлалтгүй нэвтрэх нь бизнесийн үйл явц юуг зөвшөөрөх ёстойг ойлгохыг шаарддаг бөгөөд ямар ч статик анализатор үүнийг найдвартай илрүүлдэггүй. Өөрөөр мэдэгдэж буй аливаа борлуулагч танд шалгах хайрцаг зарж байна. Энэ нь таны аюул заналын загварчлал болон нэвтрэлтийн тестерүүдтэй хамт үлддэг.

Бүх олдворууд адилхан биш: Өгөгдлийн мэдрэмж ба хортой хослолууд

Олдворын хавтгай жагсаалт нь баталгаажаагүй эрүүл мэндийн шалгалтын төгсгөлийн цэгийг хэрэглэгчийн бүртгэлийг буцаадаг баталгаажаагүй төгсгөлийн цэгтэй адил авч үздэг. Эдгээр нь ижил асуудал биш бөгөөд тэдгээрийг оноодог эрэмбэлэх загвар нь танай багуудыг жагсаалтыг үл тоомсорлоход адилхан сургадаг.

Xygeni нь төгсгөлийн цэг бүрийн боловсруулдаг өгөгдлийг ангилж, хүсэлтийн параметрүүд болон хариултуудад PII, PCI болон PHI-г тэмдэглэж, үүнийг төгсгөлийн цэгийн баталгаажуулалтын төлөвтэй хослуулдаг.

Энэ нь мөн ижил төгсгөлийн цэг дээр байрласан олдворуудыг хооронд нь уялдуулж, тэдгээр нь нэгдэх үед ноцтой байдлыг нэмэгдүүлдэг. Хариу үйлдэл дэх PII алдагдлыг өөрөө ноцтой олдвор гэж үздэг. Төгсгөлийн цэг дээр баталгаажуулалт шаарддаггүй ижил алдагдлыг илрүүлэх нь чухал бөгөөд платформ нь холболтыг хэн нэгэн гараар анзаарахаар үлдээхийн оронд үүнийг ингэж үнэлдэг.

Зомби ба Өнчин төгсгөлийн цэгүүд: Код ба техникийн хоорондох зөрүү

Xygeni нь таны код болон API тодорхойлолтыг зэрэгцүүлэн уншдаг тул тэдгээрийн хаана нь зөрүүтэй байгааг олж хардаг. Энэ хазайлт нь гурван танигдахуйц хэв маягаар илэрдэг:

  • Баримтжуулаагүй төгсгөлийн цэгүүд. Тэд код дотор амьдардаг бөгөөд хэзээ ч техникийн тодорхойлолтод нэмэгдээгүй.
  • Зомбигийн төгсгөлийн цэгүүд. Тэдгээрийг хуучирсан эсвэл ашиглалтаас гарсан гэж тэмдэглэсэн бөгөөд тэдгээртэй холбогдох боломжтой хэвээр байна.
  • Өнчин төгсгөлийн цэгүүд. Одоогийн багт хэн ч тэднийг эзэмшдэггүй.

Эдгээрийн аль нь ч зөвхөн техникийн үзүүлэлтэд байхгүй, учир нь техникийн үзүүлэлт нь яг дутагдаж байгаа зүйл юм.

Мөрдөн шалгах тасалбар биш, харин таны үйлдэл хийж болох нотлох баримт

Олдвор бүр нь яг ямар хариуцагчийг зааж өгдөг: файл, класс, метод, алдааг үүсгэсэн тодорхой мөр, түүнтэй хамт гарч ирсэн зөрчлийн код. Мөн тус бүр өөрийн ноцтой байдал, OWASP API Security Top 10 ангилал, CWE, төгсгөлийн цэгийн баталгаажуулалтын төлөв, холбогдох өгөгдлийн мэдрэмжийн ангиллыг агуулдаг.

Төгсгөлийн цэгийг л нэрлэсэн нь хөгжүүлэгчийг ямар нэгэн зүйлийг засахаас өмнө кодын санг хайж олоход хүргэдэг. Мөрийг нэрлэсэн нь тэднийг тэр даруй засахад хүргэдэг.

Олдворууд нь JSON, CSV, Markdown болон SARIF 2.1.0 хэлбэрээр экспортлогддог тул тэдгээр нь ...-д байрлана.Танай багууд аль хэдийн ажиллаж байгаа. 

Илрэлтийг нэвтрүүлсэн зохицуулагч, шугам, код. Шалгах тасалбар биш.

Энэ яагаад өөр консол дээр биш, нэг платформ дээр амьдардаг вэ

Xygeni нь API Security-г зэрэгцээ ажиллуулдаг SAST, SCA, Нууцын аюулгүй байдал, IaC болон ӨДӨР нэг платформ дотор, харилцан хамааралтай ASPM, үүнийг өөрийн гэсэн хэрэгсэлтэй тусдаа хэрэгсэл болгон тээвэрлэхийн оронд login мөн өөрийн гэсэн ажлын ачаалалтай.

Энэ нь чухал учир нь статик олдворууд болон ажиллах үеийн олдворууд нь ижил төгсгөлийн цэгийн талаарх өөр өөр асуултуудад хариулдаг бөгөөд тэдгээр нь тусад нь биш харин хамтдаа илүү ашигтай байдаг. Статик нь төгсгөлийн цэгийг илгээхээс өмнө эрсдэлтэй гэж хэлдэг. DAST нь ажиллаж эхэлмэгц юунд хүрч болох, ашиглах боломжтойг баталгаажуулдаг.

Үүнийг хоёр консолд хувааж, хамааралтай эрсдэл нь хоорондоо холбоогүй хоёр хүлээгдэж буй зүйл болж хувирдаг. Хэн ч тэдгээрийг нэгтгэдэггүй бөгөөд баримтжуулаагүй болон баталгаажаагүй төгсгөлийн цэг нь дараалалд байхгүй.

Өөрийн жинхэнэ API халдлагын гадаргууг хараарай. API аюулгүй байдал нь дараах байдлаар боломжтой Enterprise Xygeni платформ дээр нэмэлт програм суулгасан бөгөөд скан нь таны дэд бүтэц доторх өөрийн репозиторуудын эсрэг ажилладаг.

тусламж

Энэ нь аль төгсгөлийн цэгүүд нь мэдрэмтгий өгөгдлийг боловсруулж байгааг хэлж чадах уу?

Тийм ээ. Xygeni нь төгсгөлийн цэгийн параметрүүд болон хариултуудад PII, PCI болон PHI-г тэмдэглэдэг бөгөөд уг ангиллыг ашиглан үр дүнг бодит өртөлтөөр нь эрэмбэлдэг.

Энэ нь бүх зүйл дээр ажиллаж чадах уу? pull request?

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

Миний код орчноосоо гарч байна уу?

Үгүй. Сканнердах нь таны өөрийн дэд бүтцэд ажилладаг. Зөвхөн үр дүнг байршуулж, тээвэрлэх явцад болон ажиллах үед хамгаална.

API аюулгүй байдлыг хэрхэн авах вэ?

API аюулгүй байдал нь дараах байдлаар боломжтой Enterprise нэмэлт. PoC хүсэхэд энэ нь тантай хамт хамрах болно.

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

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

Xygeni Product Suite-тэй хамт