Микроплащания за dVPN и тунелиране на данни
TL;DR
Нарастващият хаос от недокументирани приложни програмни интерфейси (API)
Случвало ли ви се е да имате чувството, че екипът ви от разработчици се движи толкова бързо, че оставя след себе си следа от цифрови трохи? Това е класически случай на „пусни продукта сега, документирай по-късно“, но това „по-късно“ обикновено никога не идва.
Реалността е такава, че повечето екипи по сигурността работят „на сляпо“. Според проучване на StackHawk за състоянието на сигурността на приложенията (AppSec) през 2024 г., едва 30% от екипите се чувстват уверени, че виждат цялата си повърхност за атака. Това оставя огромна празнина, в която съществуват и функционират т.нар. сенчести API-та (shadow APIs) – крайни точки, които са активни, но не фигурират в нито един Swagger файл.
- Скорост пред безопасност: Подложени на натиск, разработчиците пускат временни интерфейси за тестове и просто... забравят да ги изключат.
- Заобикаляне на защитата: Тъй като тези интерфейси не са „официални“, те често пропускат стандартната логика за удостоверяване (auth) или ограничаване на трафика (rate limiting).
- Изтичане на данни: Забравена крайна точка в търговско приложение може все още да има достъп до лична информация на клиенти (PII), чакайки само една елементарна IDOR атака. (Това означава Несигурна директна препратка към обект – вид уязвимост от типа BOLA, при която потребител може да получи достъп до чужди данни само чрез налучкване на идентификатор на ресурс).
Честно казано, виждал съм остарели крайни точки да остават активни месеци след приключване на „миграция“. Пълна каша е. Нека сега разгледаме как всъщност да открием тези „призраци“.
Разликата между „сенчести“, „зомби“ и „злонамерени“ API интерфейси
Представете си вашата API инфраструктура като къща, в която живеете от десет години. Познавате отлично предната врата и прозорците, но какво се случва с онова странно подпокривно пространство, за което предишните собственици забравиха да споменат?
В света на киберсигурността често поставяме всичко под общия знаменател „сенчести API“ (shadow APIs), но това е малко повърхностно. Ако искате наистина да разчистите бъркотията, трябва да знаете точно какъв „призрак“ преследвате.
- Сенчести API (Shadow APIs – Непреднамерените): Те обикновено се раждат от принципа „упс, забравих“. Разработчик в стартъп за здравеопазване създава бърза крайна точка (endpoint), за да тества нов портал за пациенти, и пропуска да я документира. Тя е активна, функционира, но не фигурира в официалния каталог.
- Зомби API (Zombie APIs – Забравените): Това са „възкръсналите“ версии. Представете си финтех приложение, което миналата година е преминало от версия v1 към v2. Всички са продължили напред, но v1 все още работи на някой сървър – без актуализации и уязвима за атаки тип „credential stuffing“ (кражба на самоличност чрез изтекли пароли).
- Злонамерени крайни точки (Rogue endpoints – Опасните): Тук нещата стават сериозни. Това са „задни врати“ (backdoors), съзнателно оставени от недоволен служител или външен хакер. Те заобикалят напълно мрежовите шлюзове (gateways), за да източват данни незабелязано.
Според изследователите от Edgescan, само през 2023 г. е отчетен масивен ръст от 25% на уязвимостите в API интерфейсите, продължавайки тенденцията за рекордно високи нива на риск всяка година. Това не е просто леко покачване, а истинска експлозия от заплахи.
Честно казано, откриването на „зомби“ API в стара система за търговия на дребно се усеща като намирането на бомба със закъснител. Не искате да чакате пробив в сигурността, за да осъзнаете, че версия 1.0 все още има достъп до вашата база данни.
И така, как всъщност да извадим тези заплахи на светло? Нека разгледаме инструментите за откриване (discovery tools).
Как да откриете това, за което дори не подозирате
Опитвали ли сте някога да намерите конкретен чорап в кош за пране, който прилича на черна дупка? Точно така се усеща търсенето на недокументирани крайни точки (endpoints) – с тази разлика, че „чорапът“ всъщност може да се окаже задна врата към вашата база данни.
Ако искате да спрете да действате „на сляпо“, имате два основни начина за „лов“. Първият е мониторинг на трафика. На практика вие наблюдавате мрежовия поток и следите какво преминава през вашите шлюзове (gateways). Инструменти като apigee са отлични за тази цел, тъй като позволяват мониторинг на трафика и събитията по сигурността, без да забавят работата на приложението ви. Това е чудесен метод да видите какво е активно в момента, но пропуска „тъмните“ крайни точки, които се активират веднъж месечно за специфична автоматизирана задача (cron job).
Вторият метод е откриване чрез анализ на кода. Тук сканирате своите хранилища в GitHub или Bitbucket, за да откриете къде разработчиците всъщност са дефинирали маршрутите (routes). Както посочват от StackHawk, сканирането на кода ви помага да откриете крайни точки преди те изобщо да са стигнали до реална работна среда (production).
- Дневници на трафика (Traffic logs): Най-добри са за проследяване на реалното потребление и засичане на необичайни пикове в приложения за здравеопазване или търговия на дребно.
- Статичен анализ: Открива скрити маршрути в изходния код, които не са били извиквани от месеци.
- Хибридното решение: Честно казано, използването и на двата метода е единственият сигурен път. За да работи това ефективно, ви е необходим централизиран API инвентар или каталог, който обединява данните от трафика и кода, за да имате единен източник на истина.
Според доклад на Verizon, пробивите, свързани с API, нарастват главоломно, тъй като нападателите пренасочват фокуса си от традиционните уеб приложения. (2024 Data Breach Investigations Report (DBIR) - Verizon) Ако не наблюдавате едновременно трафика и кода, вие на практика оставяте задния прозорец отключен.
Това не може да се прави ръчно. Виждал съм екипи, които се опитват да поддържат таблица с API-та в Excel – резултатът е пълен хаос още на втория ден. Трябва да интегрирате процеса по откриване (discovery) директно във вашия CI/CD пайплайн.
Когато се появи нова крайна точка, инструменти като APIsec.ai могат автоматично да я картографират и да сигнализират, ако тя обработва чувствителни данни като лична информация (PII) или данни за кредитни карти. Това е от критично значение за екипи във финтех сектора или електронната търговия, които трябва да спазват стандартите на PCI.
След като вече сте открили тези „призраци“, трябва да предприемете действия. В следващата част ще се потопим в това как реално да тествате тези крайни точки, без да сринете цялата система.
Усъвършенствани техники за тестване на съвременни приложни програмни интерфейси (API)
Откриването на недокументиран API е само половината от битката; истинското главоболие започва, когато се опитате да разберете дали той е наистина защитен. Стандартните скенери са отлични за откриване на лесни пропуски, но обикновено се провалят при сложната логика, която използват съвременните интерфейси.
Ако искате наистина да спите спокойни, трябва да преминете отвъд базовото фазинг тестване (fuzzing). Повечето пробиви в сигурността се случват поради логически дефекти, а не просто заради липсващи софтуерни корекции (patches).
- BOLA (Компрометирана оторизация на ниво обект): Това е абсолютният „крал“ на уязвимостите при API. Случва се, когато промените идентификатор (ID) в URL адреса – например заменяйки
/user/123с/user/456– и сървърът просто ви предоставя данните. Автоматизираните инструменти често пропускат това, защото не разбират „контекста“ на това кой какво трябва да вижда. - Масово присвояване (Mass Assignment): Виждал съм как това срива процеса на плащане в приложение за търговия. Разработчикът забравя да филтрира входящите данни и изведнъж потребителят може да изпрати скрито поле
"is_admin": trueпри актуализация на профила си. - Дефекти в бизнес логиката: Помислете за финтех приложение, в което се опитвате да преведете отрицателна сума пари. Ако API не провери математическата логика правилно, може всъщност да се окаже, че добавяте средства към сметката си.
Честно казано, улавянето на тези „хитри“ бъгове е причината много екипи да се насочват към специализирани услуги. Inspectiv е солиден пример в това отношение, съчетавайки експертно тестване с управление на програми за възнаграждение при открити бъгове (bug bounty), за да открие онези странни гранични случаи, които ботът никога няма да забележи.
Така или иначе, тестването е непрекъснат цикъл, а не еднократно действие. Следващата ни тема е защо поддържането на организиран опис на тези ресурси е от огромно значение за вашите правни екипи и екипите по съответствие (compliance).
Съответствие с регулациите и бизнес аспекти
Случвало ли ви се е да обяснявате на член на борда защо крайна точка тип „призрак“ е довела до огромна глоба? Това не е приятен разговор, особено когато одиторите започнат да ровят в инвентара на вашия специализиран софтуер.
Съответствието вече не е просто отмятане на полета в списък – става въпрос за това да докажете, че реално знаете какво работи във вашата инфраструктура. Ако не можете да го видите, не можете да го защитите, а регулаторите стават все по-строги в това отношение.
- Списъкът на одитора: Съгласно стандарта pci dss v4.0.1, вие сте длъжни да поддържате стриктен опис на целия персонализиран софтуер и приложно-програмни интерфейси (apis). Ако стара крайна точка в търговска система все още обработва данни от кредитни карти, без да е включена в списъка, това се счита за несъответствие.
- Законосъобразна обработка на данни: Според Член 30 от GDPR, трябва да документирате всеки начин, по който се обработват лични данни. Недокументирани apis в приложения за здравеопазване или финанси, които източват лична идентификационна информация (pii), са буквално магнит за тежки санкции.
- Бонуси при застраховането: Честно казано, наличието на чиста и документирана повърхност за атака на вашите apis може реално да помогне за намаляване на тези небесно високи премии за киберзастраховане. Застрахователите обичат да виждат, че имате контрол върху вашето „цифрово разрастване“.
Виждал съм екип във финтех компания да се бори със седмици, защото одитор откри v1 крайна точка, за която никой не си спомняше. Хаотично е и излиза скъпо. Както отбелязахме по-рано, откриването на това, за което дори не подозирате, че съществува, е единственият начин да бъдете крачка пред документацията.
След като разгледахме причините и бизнес рисковете, нека обобщим всичко с поглед към бъдещето на откриването на ресурси в мрежата.
В заключение
След всичко казано дотук, става пределно ясно, че сигурността на приложно-програмните интерфейси (API) вече не е просто „екстра“. Тя е буквално фронтовата линия, където повечето приложения биват подлагани на изпитание от хора, които определено нямат добри намерения.
Честно казано, няма как да поправите нещо, което не виждате. Ето как бих започнал аз процеса по разчистване на дигиталния хаос:
- Стартирайте сканиране за откриване (discovery scan) още тази седмица: Не го мислете твърде много. Просто пуснете автоматизиран инструмент – като тези, които обсъдихме – върху основните си хранилища (repos). Вероятно ще откриете някоя „тестова“ крайна точка от 2023 г., която все още е активна. Може и да ви прескочи сърцето, но е по-добре вие да я намерите, а не някой друг.
- Обучете разработчиците си върху OWASP API Top 10: Повечето инженери искат да пишат сигурен код, просто са твърде заети. Покажете им как един обикновен BOLA дефект (неоторизиран достъп до обекти) може да доведе до изтичане на цялата база данни с клиенти – това ще им повлияе много по-силно от всяка скучна презентация.
- Спрете да чакате пробив в сигурността: Да започнете да се интересувате от „сенчести“ (shadow) крайни точки едва след като личните данни (PII) се появят в тъмната мрежа (dark web), е изключително скъп начин за научаване на уроци. Непрекъснатото откриване на нови API активи трябва да бъде част от критериите за завършена задача (definition of done) във всеки спринт.
Виждал съм екипи в сферата на здравеопазването да откриват API-та „само за разработчици“, които случайно излагат на риск досиета на пациенти, защото са пропуснали официалния портал за автентикация. Зловещо е. Но както видяхме при Apigee, модерните платформи правят мониторинга на тези процеси много по-лесен, без това да се отразява на производителността на системата.
В крайна сметка, сигурността на приложно-програмните интерфейси е маратон. Просто продължавайте да „ловувате призраци“ в мрежата и ще бъдете по-напред от 70% от останалите. Бъдете внимателни в дигиталното пространство.