API қауіпсіздігі

API қауіпсіздігі жұмыс уақытында мәселе болды. Ол міндетті түрде болуы керек емес

әрбір pull request Соңғы нүктені қосатын немесе өзгертетін нәрсе API шабуыл бетін өзгертеді. Көптеген API қауіпсіздік құралдары сол соңғы нүкте іске қосылып, трафикті алып жатқанша байқамайды. Сол кезде түзету енді кодты шолудағы бір жолды өзгерту емес, оқиғаға жауап беру туралы әңгіме болып табылады.

API қауіпсіздігі - бұл қолданбаның соңғы нүктелерін қалай ашатынындағы тәуекелдерді табу және жабу тәжірибесі: оларға кім қоңырау шала алады, қандай деректерді қайтарады және олар құжаттамада айтылғандарды орындай ма.

Бұл мәселе үшін жасалған құралдардың көпшілігі API-ді іске қосу уақытында, шабуылдаушы сияқты, сырттан тексереді. Бұл тәсіл жұмыс істейді, бірақ ол тек API орналастырылғаннан кейін ғана жұмыс істейді. Ксигени алдыңғы жолды таңдайды: бір сұраныс соңғы нүктеге жеткенге дейін бастапқы кодыңызды және API сипаттамаңызды оқиды.

API тестілеудің төрт тәсілі және әрқайсысы не жауап береді

Көптеген жетілген бағдарламалар мыналардың бірнешеуін іске қосады:

  • Статикалық тестілеу орналастыру алдында бастапқы код пен API сипаттамаларын талдайды. Ол «біз жаңа ғана нені аштық?» деген сұраққа жауап береді. Бұл мақала осы тәсілге бағытталған.
  • Динамикалық тестілеу (DAST) нақты трафикті жұмыс істеп тұрған API-ге жібереді және оның қалай жауап беретінін бақылайды. Ол «қазір не шынымен қолжетімді және пайдалануға болатын?» деп жауап береді. 
  • Бұлыңғыр беткі апаттарға және шеткі жағдайдағы ақауларға байланысты соңғы нүктелерге дұрыс емес немесе күтпеген кірісті жібереді. Ол «кіріс кезінде біз күтпеген қандай үзілістер болды?» деп жауап береді.
  • Қолмен енуді тексеру Автоматтандырылған құралдар жіберіп алған логикалық кемшіліктерді табу үшін адами пікірді қосады. Ол «ақылды шабуылдаушы нені біріктіреді?» деген сұраққа жауап береді.

Бұлардың ешқайсысы басқаларын алмастырмайды. Олар өмірлік циклдің әртүрлі кезеңдерінде әртүрлі сұрақтарға жауап береді, және көптеген бағдарламаларда біріншісі бар.

Неліктен API қауіпсіздік құралдарының көпшілігі қауіпті тым кеш көреді

Runtime 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 қауіпсіздігі бойынша тәуекелдерді анықтайды Үздік 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 қауіпсіздік бойынша ең үздік 10 санаты, CWE, соңғы нүктенің аутентификация күйі және қатысты деректердің сезімталдық жіктелуі де бар.

Тек соңғы нүктені атайтын жаңалық әзірлеушіні кез келген нәрсені түзетуді бастамас бұрын код базасын іздеуге мәжбүр етеді. Жолды атайтын жаңалық оларды бірден түзетуге жібереді.

Зерттеу нәтижелері JSON, CSV, Markdown және SARIF 2.1.0 форматында экспортталады, сондықтан олар келесіге түседісіздің командаларыңыз қазірдің өзінде жұмыс істейді. 

Өңдегіш, желі және экспозицияны енгізген код. Зерттеуге арналған билет емес.

Неліктен бұл басқа консольде емес, бір платформада тұрады

Xygeni API қауіпсіздігін бірге іске қосады SAST, SCA, Құпиялар қауіпсіздігі, IaC және ДАСТ бір платформа ішінде, өзара байланысты ASPMоны жеке құрал ретінде жіберудің орнына login және оның өзіндік артта қалуы.

Бұл маңызды, себебі статикалық және орындалу уақытындағы нәтижелер бір соңғы нүкте туралы әртүрлі сұрақтарға жауап береді және олар бөлек қарағанда бірге пайдалырақ. Static соңғы нүкте жіберілмес бұрын қауіпті екенін айтады. DAST іске қосылғаннан кейін ненің шынымен қолжетімді және пайдалануға болатынын растайды.

Оны екі консольге бөлу және өзара байланысты тәуекел екі байланыссыз кідіріске айналады. Ешкім оларды үйлестірмейді, ал құжатталмаған және расталмаған соңғы нүкте кезекте тұрмайды.

Нақты API шабуыл бетін қараңыз. API қауіпсіздігі келесідей қолжетімді: Enterprise Xygeni платформасына қосымша, және сканерлеу сіздің инфрақұрылымыңыздағы өз репозиторийлеріңізге қарсы орындалады.

FAQ

Қай соңғы нүктелер құпия деректерді өңдейтінін айта ала ма?

Иә. Xygeni соңғы нүкте параметрлері мен жауаптарында PII, PCI және PHI мәндерін белгілейді және осы жіктеуді нәтижелерді нақты экспозиция бойынша бағалау үшін пайдаланады.

Ол әрбір жерде жұмыс істей ала ма? pull request?

Иә. Инкрементальды сканерлеу тек өзгерген соңғы нүктелерді талдайды, ал ол шығаратын манифест келесі DAST сканерлеуін сол соңғы нүктелерге бағыттай алады, сондықтан статикалық және орындау уақытындағы тестілеу іс жүзінде не қозғалғанына сәйкес келеді.

Менің кодым ортамнан шығып кете ме?

Жоқ. Сканерлер сіздің жеке инфрақұрылымыңызда орындалады. Тек нәтижелер жүктеледі, тасымалдау кезінде және демалыс кезінде қорғалады.

API қауіпсіздігін қалай алуға болады?

API қауіпсіздігі келесідей қолжетімді: Enterprise қосымша. PoC сұраңыз, сонда ол сізбен бірге қамтылады.

sca-құралдары-бағдарламалық жасақтама-композиция-талдау-құралдары
Бағдарламалық жасақтама тәуекелдеріне басымдық беріңіз, оларды жойыңыз және қауіпсіз етіңіз
Тегін аккаунтыңызды алыңыз.
Несие картасы қажет емес.

Бағдарламалық жасақтаманы әзірлеу және жеткізуді қауіпсіз етіңіз

Xygeni өнім жиынтығымен бірге