Безбедност на API

Безбедноста на API е проблем при извршување. Не мора да биде

секој pull request што додава или менува крајна точка ја менува површината за напад на вашиот API. Повеќето безбедносни алатки на API не забележуваат сè додека таа крајна точка не е активна и веќе не презема сообраќај. Дотогаш, поправката повеќе не е промена од еден ред во прегледот на кодот, туку разговор за одговор на инцидент.

Безбедноста на API е практика на пронаоѓање и затворање на ризиците во начинот на кој апликацијата ги изложува своите крајни точки: кој може да ги повика, какви податоци враќаат и дали го прават она што е наведено во документацијата.

Поголемиот дел од алатките изградени за овој проблем го тестираат API-то за време на извршување, однадвор, на ист начин како што би го тестирал напаѓачот. Овој пристап функционира, но работи само откако ќе се распореди API-то. Xygeni ја следи претходната патека: го чита вашиот изворен код и вашата API спецификација пред едно барање да стигне до крајната точка.

Четирите начини за тестирање на API и што одговара секој од нив

Повеќето зрели програми работат со повеќе од едно од овие:

  • Статично тестирање анализира изворниот код и спецификациите на API пред распоредувањето. Одговорува на прашањето „што штотуку откривме?“. Ова е пристапот на кој се фокусира оваа статија.
  • Динамичко тестирање (DAST) испраќа реален сообраќај на API што работи и набљудува како тој реагира. Одговорува на прашањето „што е всушност достапно и експлоатирано во моментов?“ 
  • Заматување фрла деформиран или неочекуван влез на крајните точки до површински падови и дефекти на рабовите. Одговорува на прашањето „што се расипува под влез што не го очекувавме?“
  • Рачно тестирање на пенетрација Додава човечка проценка за да се пронајдат логички недостатоци што ги пропуштаат автоматизираните алатки. Одговорува на прашањето „што би споил еден паметен напаѓач?“

Ниту едно од овие не ги заменува другите. Тие одговараат на различни прашања во различни точки од животниот циклус, а јазот што го имаат повеќето програми е првиот.

Зошто повеќето алатки за безбедност на API го гледаат ризикот предоцна

Тестирањето на безбедноста на Runtime API испраќа сообраќај до апликација во живо и следи како таа реагира. Тоа е легитимен и неопходен слој. Исто така, по конструкција, е индикатор за задоцнување: крајната точка мора да постои, да биде распоредена и да биде достапна пред скенер за време на извршување да може да каже нешто за неа. Што и да пронајде, веќе било изложено без разлика колку долго било потребно скенирањето да се изврши.

Постои втора празнина под тој проблем со времето. Алатките за извршување можат да тестираат само она што знаат дека постои. Ако крајната точка никогаш не била документирана или спецификацијата на OpenAPI застарила во моментот кога некој испратил нова рута, скенерот за извршување нема начин да знае дека е таму. Тој ја тестира мапата, а не територијата.

Статичкото тестирање на безбедноста на API ги затвора двата празнини со поместување на проверката таму каде што е дефинирана крајната точка: вашиот код и вашата API спецификација, пред распоредувањето. Истото pull request што воведува крајна точка е pull request што го открива неговиот ризик.

Што всушност значи безбедноста на статичкиот API

Xygeni го гради вашиот инвентар на API од два извори: изворниот код на вашата апликација и вашите API спецификации, вклучувајќи ги OpenAPI и Swagger.

Инвентарот само со спецификации ги прикажува крајните точки што некој ги запомнил да ги документира. Инвентарот само со код покажува што постои, но не мора да значи како требало да се користи. Читањето на двата начина ви дава целосна слика: крајните точки што ги документирале вашите тимови и оние што никој не ги документирал.

Тој инвентар е основата врз која се гради сè друго:

  • Вкупно откриени API-ја и средства во ризик мерени во однос на основната линија
  • Крајни точки поделени по HTTP метод
  • Проблеми групирани по услуга
  • Секоја крајна точка со својот метод, патека, услуга, модул, состојба на автентикација и резултат на ризик

Вашите инженерски лидери ја гледаат формата на вашата API површина без да отворат ниту еден тикет.

Секоја крајна точка што ја пронајде Xygeni, со својот метод, состојба на автентикација и резултат на ризик, изградена заедно од код и спецификација.

Production note Исечете го панелот за тријажа со вештачка интелигенција од која било снимка од екранот за безбедност на API.

Мапирано на OWASP API Security Top 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 во параметрите на барањето и во одговорите, и ги спарува тоа со состојбата за автентикација на крајната точка.

Исто така, ги поврзува наодите што се појавуваат на истата крајна точка и ја зголемува сериозноста кога тие се зголемуваат. Протекување на лични податоци во одговор е сериозен наод само по себе. Истото протекување на крајна точка што не бара автентикација е клучно, а платформата го оценува на тој начин, наместо да ја остави врската некој да ја забележи рачно.

Зомби и сирачиња: Отстапувањето помеѓу кодот и спецификацијата

Бидејќи Xygeni го чита вашиот код и вашата API спецификација рамо до рамо, тој гледа каде тие не се согласуваат. Тоа отстапување се појавува како три препознатливи шеми:

  • Недокументирани крајни точки. Тие живеат во код и никогаш не беа додадени во спецификацијата.
  • Крајни точки на зомби. Тие се означени како застарени или повлечени, и сè уште се достапни.
  • Сирачиња крајни точки. Никој во сегашниот тим не ги поседува.

Ниту едно од овие не се појавува во инвентар само со спецификации, бидејќи спецификацијата е токму она што им недостасува.

Докази врз основа на кои можете да дејствувате, а не билет за истрага

Секое откритие укажува на точниот одговорен обработувач: датотеката, класата, методот и специфичниот ред што го вовел пропустот, со прикажаниот проблематичен код покрај него. Секој од нив ја содржи и својата сериозност, својата OWASP API Security Top 10 категорија, својот CWE, состојбата на автентикација на крајната точка и класификацијата на чувствителност на вклучените податоци.

Наод што само именува крајна точка го тера развивачот да пребарува низ базата на кодови пред да може да започне со поправање на нешто. Наод што ја именува линијата го доведува веднаш до поправањето.

Наодите се експортираат како JSON, CSV, Markdown и SARIF 2.1.0, па затоа се прикажуваат во т.ools во кои вашите тимови веќе работат. 

Обработувачот, линијата и кодот што ја воведоа изложеноста. Не е билет за истрага.

Зошто ова постои на една платформа, а не на друга конзола

Xygeni работи со API Security заедно со SAST, SCA, Безбедност на тајните, IaC ДЕСТ во рамките на една платформа, корелирани преку ASPM, наместо да се испорачува како посебна алатка со своја login и сопствениот заостаток.

Тоа е важно бидејќи статичките наоди и наодите за време на извршување одговараат на различни прашања за истата крајна точка, и тие се покорисни заедно отколку одделно. Статичкиот ви кажува дека крајната точка е ризична пред да се испрати. DAST потврдува што е всушност достапно и експлоатирано откако ќе се изврши.

Поделете го тоа на две конзоли и корелираниот ризик ќе стане два неповрзани заостанати задачи. Никој не ги усогласува, а крајната точка што е и недокументирана и неавтентифицирана не седи во ниту едната редица.

Видете ја вашата вистинска површина за напад на API. Безбедноста на API е достапна како Enterprise додаток на платформата Xygeni и ќе се изврши скенирање на вашите сопствени репозиториуми во вашата сопствена инфраструктура.

NAJČESTO POSTAVUVANI PRAŠANJA

Може ли да каже кои крајни точки обработуваат чувствителни податоци?

Да. Xygeni ги означува PII, PCI и PHI во параметрите и одговорите на крајните точки и ја користи таа класификација за да ги рангира наодите според реалната изложеност.

Може ли да работи на секој pull request?

Да. Инкременталното скенирање ги анализира само крајните точки што се промениле, а манифестот што го произведува може да го фокусира последователното DAST скенирање на истите тие крајни точки, така што статичкото и извршувањето на тестирањето остануваат усогласени со она што всушност се променило.

Дали мојот код ја напушта мојата околина?

Не. Скенирањата се извршуваат во вашата сопствена инфраструктура. Само резултатите се прикачуваат, се заштитуваат при пренос и во мирување.

Како да добијам API безбедност?

Безбедноста на API е достапна како Enterprise додаток. Побарајте PoC и тој ќе биде разгледан со вас.

алатки-за-анализа-на-композиции-на-sca-алатки
Дајте приоритет, санирајте и обезбедете ги вашите софтверски ризици
Добијте ја вашата бесплатна сметка.
Не е потребна кредитна картичка.

Обезбедете го вашиот развој и испорака на софтвер

со Xygeni Product Suite