Беҳтарин таҷрибаҳои амнияти API

Беҳтарин таҷрибаҳои амниятии API: Рӯйхати санҷиши таҳиягар

ХИБ; DR

Аксари вайронкуниҳои API ба иҷозатномаи вайроншуда бармегарданд, на ба истисмори экзотикӣ. Се аз панҷ категорияи беҳтарини 10-гонаи амнияти API-и OWASP хатогиҳои иҷозатнома мебошанд, ки аз ҷониби ... роҳбарӣ мешаванд. ТӮБ.

Шумо наметавонед он чизеро, ки намедонед вуҷуд дорад, таъмин кунед. Идоракунии нодурусти инвентаризатсия як категорияи хавфи OWASP бо номи худ аст ва он асоси ҳар як назорати дигар аст.

Пеш аз ҷойгиркунӣ, на баъд аз он, таъсири экспозицияро муайян кунед. Таҳлили статикии рамз ва мушаххасоти API нуқтаи ниҳоии шикастаро дар ... пайдо мекунад. pull request, барои арзиши як commit; озмоиши вақти иҷро ҳамон як масъаларо мустақиман бо арзиши ҳодиса пайдо мекунад.

Ин рӯйхати санҷишест, ки бояд пайваста иҷро карда шавад. Дар ҳар як pull request, на баррасии пеш аз ба кор андохтан: 10 амалия, аз инвентаризатсия ва иҷозатнома то маҳдудкунии нархҳо, ошкор кардани маълумоти посух ва эътимод ба шахсони сеюм.

Сатҳи ҳамлаи API-и шумо бо ҳар як афзоиш меёбад pull requestАксари дастаҳо танҳо вақте мефаҳманд, ки нуқтаи ниҳоӣ фош шудааст, ки он фаъол аст ва трафикро мегирад, ки ин маънои онро дорад, ки ислоҳе, ки як нафарро сарф мекард. commit Дар баррасӣ ҳоло гузориши ҳодиса арзиш дорад. Ин дастур беҳтарин таҷрибаҳои амниятии API-ро, ки воқеан дар истеҳсолот устуворанд, баррасӣ мекунад ва ҳамчун рӯйхати санҷишӣ, ки шумо метавонед имрӯз бар зидди пойгоҳи рамзи худатон кор кунед, ташкил карда шудааст, на рӯйхати принсипҳои абстрактӣ, ки касе онҳоро амалӣ намекунад.

Чаро беҳтарин таҷрибаҳои амнияти API ҳоло дигар хел ба назар мерасанд

API-ҳо қаблан ҳамчун бофтаи пайвасткунанда байни системаҳо буданд. Акнун онҳо интерфейси асосии қариб ҳама чиз мебошанд: барномаҳои мобилӣ, ҳамгироии шарикон, агентҳои зеҳни сунъӣ, микросервисҳои дохилӣ. Ин тағйирот он чизеро, ки беҳтарин таҷрибаҳои ҳифзи API бояд фаро гиранд, тағйир дод. Дигар барои ҳифзи API-е, ки шумо сабт кардаед, кофӣ нест; шумо бояд онҳоеро, ки дастаҳои шумо сохтаанд ва фаромӯш кардаанд, ки навиштанро фаромӯш кардаанд, ба назар гиред.

Ду рақам шарҳ медиҳанд, ки чаро ин муҳим аст. Амнияти OWASP API Top 10 мушкилоти вайроншудаи иҷозатномаро дар се аз панҷ категорияи асосии худ ҷой медиҳад, ки маънои онро дорад, ки аксари ҳодисаҳои API дар ҷаҳони воқеӣ ба якчанд намунаҳои пешгиришаванда бармегарданд, на ба рӯзҳои экзотикии сифр. Ва идоракунии нодурусти инвентаризатсия дар ҳамон рӯйхате ҷойгир аст, ки категорияи хатари номбаршудаи худаш номбар шудааст: дастаҳо тавассути API-ҳое, ки онҳо намедонистанд, ки ҳоло ҳам кор мекунанд, вайрон карда мешаванд.

Ин мавзӯъест, ки дар ҳар як банди зер оварда шудааст. Беҳтарин таҷрибаҳои хуби идоракунии API бо донистани он чизе, ки шумо доред, оғоз мешаванд, на танҳо бо ҳимояи он чизе, ки шумо барои сабт кардан дар ёд доштед.

Беҳтарин таҷрибаҳои амнияти API дар як нигоҳ

Пеш аз рӯйхати муфассал, ин нусхаи кӯтоҳ аст: чӣ бояд амалӣ карда шавад, он дар асл аз чӣ муҳофизат мекунад ва то чӣ андоза фаврӣ.

ТаҷҳизотОн чизе, ки аз он муҳофизат мекунадАфзалияти
Рамзгузории HTTPS/TLSДастгирии маълумот, ҳамлаҳои "мард дар миёна"талаб карда мешавад,
Тасдиқ (OAuth 2.0, JWT)Дастрасии беиҷозат, қаллобии шахсиятталаб карда мешавад,
Иҷозатномадиҳӣ ва назорати дастрасӣБаланд бардоштани имтиёзҳо, ихроҷи маълумотталаб карда мешавад,
Тасдиқи вурудҲамлаҳои тазриқӣ, дархостҳои нодурустталаб карда мешавад,
Инвентаризатсияи пурраи APIНуқтаҳои ниҳоии беҳуҷҷат ва кӯҳнашуда ошкор мондаандталаб карда мешавад,
Маҳдуд кардани нархҲамлаҳои бераҳмона, DDoS, сӯиистифодабаланд
Идоракунии калидҳои APIДуздии маълумотнома, истифодаи беиҷозатбаланд
Сабткунӣ ва мониторингҚоидавайронкуниҳои ошкорнашуда, вокуниши суст ба ҳодисаҳобаланд
Таҳлили статикӣ пеш аз ҷойгиркунӣПеш аз баррасии касе, экспозиция ба истеҳсолот фиристода мешавадбаланд
Санҷиши амниятӣ (SAST + ДАСТ)Осебпазириҳои номаълум, регрессияҳобаланд

Сатри "Ҳатмӣ"-ро ҳамчун хати асосии ғайримузокирашаванда барои ҳама гуна API, дохилӣ ё оммавӣ, баррасӣ кунед. Унсурҳои афзалиятноки "баланд" он чизест, ки барномаеро, ки мушкилотро дар ... муайян мекунад, ҷудо мекунад. pull request аз яке, ки дар гузориши ҳодиса пайдо мешавад.

Рӯйхати санҷиши беҳтарин таҷрибаҳои амниятии API

1. Пеш аз сохтани мудофиа, инвентаризатсияи пурраро тартиб диҳед

Шумо наметавонед нуқтаи ниҳоиеро, ки намедонед вуҷуд дорад, муҳофизат кунед. Ҳар як кӯшиши беҳтарини таҷрибаҳои ҳифзи API-ро бо инвентаризатсияи воқеӣ оғоз кунед: ҳар як нуқтаи ниҳоии он, усули он, роҳи он, хидмат ва модуле, ки ба он тааллуқ дорад ва оё он аутентификатсияро талаб мекунад. Инро аз рамзи сарчашма ва аз мушаххасоти API-и худ (OpenAPI, Swagger) якҷоя гиред, на танҳо аз ҳуҷҷатгузорӣ, зеро фосилаи байни ин ду маҳз дар ҷоест, ки нуқтаҳои ниҳоии фаромӯшшуда ва ятим пинҳон мешаванд.

Дар куҷо Xygeni мувофиқ аст: Амнияти API-и Xygeni ин инвентаризатсияро мустақиман аз рамзи сарчашмаи барномаи шумо ва мушаххасоти API-и шумо месозад ва нуқтаҳои ниҳоии сабткардаи дастаи шумо ва нуқтаҳои онҳоеро, ки ҳеҷ кас надидааст, пеш аз расидан ба истеҳсолот, нишон медиҳад.

2. Иҷрои иҷозатнома дар сатҳи объект ва функсия

Иҷозати вайроншуда дар сатҳи объект ва сатҳи функсия пайваста дар рӯйхати 10 беҳтарини амнияти API OWASP ҷой гирифтааст. Беҳтарин амалия ин "илова кардани аутентификатсия" нест, балки санҷидани он аст, ки оё дар ҳар як дархост... ин корбари мушаххас дастрасӣ иҷозат дода мешавад ин объекти мушаххас, на танҳо оё онҳо умуман ворид шудаанд. Тасдиқкунӣ ба он чизе, ки онҳо иҷозати ламс кардан доранд, посух медиҳад ва он бояд ҳар дафъа тафтиш карда шавад, на аз токени дуруст.

3. Ҳама чизеро, ки API мегирад, тасдиқ ва безарар гардонед

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

4. Ҳадди суръат ва дроссел аз рӯи тарҳ, на ҳамчун як фикри баъдӣ

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

5. Ба ҳар як посух ҳамчун ихроҷи эҳтимолии маълумот муносибат кунед

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

Дар куҷо Xygeni мувофиқ аст: Амнияти API Xygeni таъсири PII-ро мустақиман дар посухҳои API қайд мекунад ва мубодилаи аз ҳад зиёдро пеш аз фиристодан, на пас аз огоҳиҳои муштарӣ ё танзимкунанда, муайян мекунад.

6. Инвентаризатсияи дақиқ ва ҷории API-ро, аз ҷумла инвентаризатсияи кӯҳнашударо, нигоҳ доред

Номутаносиб инвентаризатсияи Менеҷмент бо як сабаб категорияи номбаршудаи худ дар рӯйхати OWASP аст: версияҳои API-и кӯҳнашуда ва муҳитҳои сабтнашудаи саҳнавӣ аксар вақт дастрасанд ва аксар вақт осебпазиранд, пас аз он ки касе онҳоро дар ёд дорад. Барномаи беҳтарини таҷрибаҳои идоракунии API бояд қатъ кардани истифода, на танҳо кашфиётро дар бар гирад.

7. Ба он чизе, ки API-и шумо аз ҷониби шахсони сеюм эътимод дорад, бодиққат назар кунед

Истифодаи ноамни API-ҳои тарафи сеюм хатари нодида гирифташуда аст. Таҳиягарон бештар ба маълумоти аз API-и дигар воридшуда нисбат ба маълумоти воридшудаи корбар, ки комилан баръакс аст, эътимод доранд; ҳамгироии тарафи сеюм то ҳол як манбаи беруна ва тасдиқнашуда аст ва бояд ба ҳамин тарз тасдиқ карда шавад.

8. Далелҳоро дар назди таҳиягарон гузоред, на танҳо огоҳиҳо

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

Дар куҷо Xygeni мувофиқ аст: Ҳар як ёфтаи амниятии API-и Xygeni ба коркардкунанда, файл, синф, усул ва сатре, ки онро муаррифӣ кардааст, ишора мекунад, аз ин рӯ, ислоҳ аз лаҳзаи пайдо шудани ёфта оғоз меёбад.

9. Пеш аз ҷойгиркунӣ, на баъд аз он, таъсири манфиро муайян кунед

Санҷиши API-и Runtime ба шумо мегӯяд, ки нуқтаи ниҳоӣ пас аз он ки он аллакай трафикро хидмат мекунад, фош мешавад. Таҳлили статикии рамз ва мушаххасоти API ҳамон фошшавиро дар ҳоле ки он ҳанӯз дар ... аст, пайдо мекунад. pull request, вақте ки таъмир як арзиш дорад commit ба ҷои вокуниш ба ҳодиса. Қавитарин таҷрибаҳои беҳтарини идоракунии API кашфи статикиро ҳамчун қабати аввал баррасӣ мекунанд ва санҷиши вақти иҷро ҳамчун санҷиши дуюм ва мукаммали он чизе, ки аллакай фаъол аст.

Дар куҷо Xygeni мувофиқ аст: Амнияти API Xygeni аз рӯи тарҳ статикӣ аст, рамз ва хусусиятҳоро пеш аз нашр таҳлил мекунад ва дар баробари он кор мекунад. Xygeni DAST барои фарогирии вақти иҷроиши барномаҳое, ки аллакай дар истеҳсолот ҳастанд.

10. Хатари API-ро дар ҳамон ҷое нигоҳ доред, ки хатари боқимондаи барномаи шумост

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

Дар куҷо Xygeni мувофиқ аст: Амнияти API дар паҳлӯ ҷойгир аст SAST, SCA, Асрорҳо, IaCва DAST дар як платформаи Xygeni, аз ин рӯ ёфтани API дар паҳлӯи рамз ва хатари вобастагӣ, ки онро тавлид кардааст, намоён аст, на дар алоҳидагӣ login.

Табдил додани рӯйхати санҷишҳо ба одат

Беҳтарин таҷрибаҳои амниятии API танҳо ҳамчун як амалияи пайваста кор мекунанд, на баррасии пеш аз ба кор андохтан. Дар ҳар як инвентаризатсия ва таҳлили статикӣ иҷро кунед. pull request, на як маротиба дар як семоҳа. Ба нуқтаи ниҳоии нав ва беҳуҷҷат ҳамон тавре муносибат кунед, ки ба вобастагии нав ва беҳуҷҷат муносибат мекунед: ҳамчун чизе, ки бояд фавран таҳқиқ карда шавад, на дар ниҳоят. Ва беҳтарин таҷрибаҳои ҳифзи API-и худро ҳамон тавре чен кунед, ки шумо ягон қисми дигари онро чен мекунед SDLC, аз рӯи он ки шумо мушкилотро то чӣ андоза барвақт дарк кардед, на танҳо аз рӯи он ки оё онро умуман дарк кардед.

Ҷавобҳои зуд: Саволҳо ва ҷавобҳои беҳтарини амнияти API

саволҷавоб
Беҳтарин амалияи амниятии API кадом аст?Тасдиқ ва иҷозати қавӣ, ки дар ҳар як нуқтаи ниҳоӣ татбиқ карда мешаванд, на танҳо дар онҳое, ки шумо бояд онҳоро ҳифз кунед.
Оё API-ҳои дохилӣ бояд HTTPS-ро истифода баранд?Бале. Ҳама трафики API-ро, аз ҷумла муоширати байни хидматҳо, на танҳо нуқтаҳои ниҳоии ба омма нигаронидашударо рамзгузорӣ кунед.
Оё калидҳои API барои амният кофӣ ҳастанд?Не. Калидҳои API барномаро муайян мекунанд, на корбарро. Барои аутентификатсияи воқеӣ онҳоро бо OAuth 2.0 ё JWT ҷуфт кунед.
БОЛА чист?Иҷозати сатҳи объект вайрон шудааст: API наметавонад тасдиқ кунад, ки корбар ба як захираи мушаххас иҷозат дорад. Он аз соли 2019 дар рӯйхати 10 беҳтарини амнияти API OWASP мақоми аввалро ишғол мекунад.
Калидҳои API-ро чанд маротиба бояд иваз кунам?Мунтазам, ҳар 60 то 90 рӯз ва фавран пас аз ҳама гуна созиши эҳтимолӣ.
Кадом рамзи ҳолат бояд бозгашти маҳдудкунандаро арзёбӣ кунад?429 Дархостҳои аз ҳад зиёд бо сарлавҳаи Retry-After ба муштарӣ мегӯяд, ки кай бояд дубора кӯшиш кунад.
Оё ман бояд вурудро дар сервер, ҳатто дар паси дарвоза, тасдиқ кунам?Ҳамеша. Новобаста аз он ки муштарии болооб ё дарвоза аллакай чиро тафтиш кардааст, дар қабати API тасдиқ кунед.
Чӣ тавр ман метавонам амнияти API-ро дар CI/CD?Тасдиқи аутентификатсия, иҷозатнома, тасдиқи вуруд ва маҳдудияти суръатро дар ҳар як санҷед pull request, на танҳо пеш аз нашр, ва онро автоматӣ кунед, на ба баррасии дастӣ такя кунед.

Таҷҳизоти асосӣ

  • Инвентаризатсия пеш аз дифоъ меояд. Шумо наметавонед иҷозатнома, маҳдудиятҳои суръат ё идоракунии маълумотро ба нуқтаи ниҳоӣ, ки шумо намедонед вуҷуд дорад, татбиқ кунед ва идоракунии нодурусти инвентаризатсия хатари номбаршудаи худ дар 10 амнияти API OWASP мебошад.
  • Иҷозатдиҳӣ, на танҳо аутентификатсия, ҷоест, ки аксари вайронкуниҳо рух медиҳанд. Се аз панҷ хатари асосии амниятии API OWASP нокомиҳои иҷозатнома мебошанд. Санҷидани шахсияти ӯ бо санҷидани он чизе, ки ба онҳо иҷозат дода шудааст, яксон нест.
  • Таҳлили статикӣ он чизеро, ки санҷиши вақти иҷро хеле дер анҷом медиҳад, муайян мекунад. Ёфтани таъсири экспозиция дар pull request як арзиш дорад commitЁфтани он дар истеҳсолот хароҷоти як ҳодисаро талаб мекунад.
  • Ҳар як вокуниш эҳтимолан ихроҷи маълумот аст. Фош кардани аз ҳад зиёди маълумот як одат аст, на як хатои нодир ва он то он даме, ки касе ба ҷои UI-и рендершуда посухҳои API-и хомро тафтиш накунад, ноаён аст.
  • Беҳтарин таҷрибаҳои амнияти API танҳо ҳамчун одати доимӣ кор мекунанд, дар ҳар pull request, на баррасии семоҳа ё рӯйхати санҷиши пеш аз ба кор андохтан.
  • Хатари API набояд дар як абзори алоҳида бошад. Беҳтарин таҷрибаҳои ҳифзи API, ки муфидтарин натиҷаҳоро дар API ҳамчун як қисми ҳамон тасвири хатар ба монанди рамз, вобастагӣ ва ... баррасӣ мекунанд. pipeline security, на консоли ҷудогона.

Саволҳои зиёд такрормешуда

Муҳимтарин таҷрибаҳои беҳтарини амнияти API кадомҳоянд?

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

Фарқи байни беҳтарин таҷрибаҳои амнияти API ва беҳтарин таҷрибаҳои умумии амнияти барномаҳо чист?

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

Оё санҷиши амнияти API бояд пеш аз ҷойгиркунӣ ё баъд аз он анҷом дода шавад?

Ҳарду, аммо нуқтаи баландтарини фишанг пеш аз он аст. Таҳлили статикии рамз ва мушаххасоти API дар ҳоле ки ҳанӯз ҳам аст, ошкор мешавад. pull requestСанҷиши вақти иҷро (DAST) сипас он чизеро, ки воқеан дастрас аст, пас аз фаъол шудани барнома тасдиқ мекунад. Танҳо такя ба санҷиши вақти иҷро маънои онро дорад, ки ҳар як ислоҳ нисбат ба зарурат гаронтар аст.

Инвентаризатсияи API бояд чанд вақт навсозӣ карда шавад?

Пайваста, беҳтараш дар ҳар як pull requestИнвентаризатсияе, ки як маротиба сохта шудааст ва ҳар семоҳа аз нав дида баромада мешавад, аз лаҳзаи фиристодани нуқтаи ниҳоии нав аллакай кӯҳна шудааст, ки ин маҳз камбудии истифодаи нодурусти идоракунии инвентаризатсия аст.

Оё беҳтарин таҷрибаҳои идоракунии API ба API-ҳои дохилӣ, на танҳо ба API-ҳои барои омма дастрас, татбиқ мешаванд?

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

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

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

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