Хакерите често се насочват не към източника на данни, а към самия API.
Използването на интерфейси за програмиране на приложения (API) рязко нарасна. Организациите сега разчитат на множество API за ефективно изпълнение на ежедневните функции. Това нарастване на използването на API постави API на радара на хакерите, което ги подтикна да измислят иновативни начини за използване на уязвимостите на API.
Защо сигурността на API е от решаващо значение и какво можете да направите, за да управлявате рисковете за сигурността на API? Нека разберем.
Защо трябва да се съсредоточите върху сигурността на API?
API са от решаващо значение в съвременните мобилни, SaaS и уеб приложения. Организациите използват API в насочени към клиенти, партньори и вътрешни приложения. Като API излагат логиката на приложението и чувствителни данни като лична информация (PII), хакерите непрекъснато се опитват да получат достъп до API. Хакнатите API често водят до пробиви на данни, причинявайки финансови и репутационни щети на организациите.
Според Palo Alto Networks и ESG изследвания, 92 процента от анкетираните компании са преживели инцидент със сигурността, свързан с API през 2022 г. От тези компании 57 процента компании са имали множество инциденти със сигурността, свързани с API. Въпреки това е изключително важно да се подобри сигурността на API, за да се предотвратят атаки на API.
Ето няколко начина да ви помогнем да сведете до минимум общите рискове за сигурността на API и да защитите чувствителните данни.
1. Внедрете сигурно удостоверяване и оторизация
Удостоверяването означава, че заявка за достъп до API ресурс идва от легитимен потребител и упълномощаването гарантира, че потребителят има разрешен достъп до заявения API ресурс.
Внедряване на защитени защитено API удостоверяване а упълномощаването е първата линия на защита срещу неоторизиран достъп до вашите API ресурси.
Ето основните методи за удостоверяване за API.
API ключ
При този метод за удостоверяване клиентът ще има API ключ, който знаят само клиентът и API сървърът. Когато клиент изпрати заявка за достъп до API ресурс, ключът се прикачва към заявката, за да позволи на API да разбере, че заявката е легитимна.
Има проблем с метода за удостоверяване на ключа на API. Хакерите могат да получат достъп до API ресурси, ако се сдобият с API ключа. Така че е изключително важно да шифровате API заявките и API отговорите, за да попречите на хакерите да откраднат API ключове.
Потребителско име и парола
Можете да приложите метода с потребителско име и парола за удостоверяване на API заявки. Но имайте предвид, че хакерите използват различни трикове за хакване на пароли. Клиентите на API също могат да споделят своите потребителски имена и пароли с ненадеждни страни. Така че методът с потребителско име и парола не предлага оптимална сигурност.
Взаимен TLS (mTLS)
При метода за взаимно TLS удостоверяване както крайните точки на API, така и клиентите имат TLS сертификат. И те се удостоверяват взаимно с помощта на тези сертификати. Поддържането и налагането на TLS сертификати е предизвикателство, така че този метод не се използва широко за удостоверяване на API заявки.
JWT удостоверяване (JSON уеб токен)
В този метод за удостоверяване на API, JSON уеб токени се използват за удостоверяване и оторизиране на API клиенти. Когато клиент изпрати заявка за влизане, включително потребителско име, парола или друг тип идентификационни данни за влизане, API създава шифрован JSON уеб токен и изпраща токена на клиента.
След това клиентът ще използва този JSON уеб токен в следващите заявки за API, за да се удостовери и упълномощи.
OAuth2.0 с OpenID Connect
OAuth предлага услуги за оторизация, позволявайки на потребителите да се удостоверяват, без да споделят пароли. OAuth2.0 се основава на понятието токен и често се използва с OpenID Connect механизъм за удостоверяване. Този API метод за удостоверяване и оторизация обикновено се използва за защита на API.
2. Прилагане на ролеви контрол на достъпа
Role-Based Access Control (RBAC), който използва сигурността принцип на най-малката привилегия, определя нивото на достъп до ресурс въз основа на ролята на потребителя.
Внедряването на ролеви контрол на достъпа гарантира, че само упълномощени потребители ще имат достъп до данни според техните роли. Никой няма да има неограничен достъп до всички API ресурси.
3. Шифровайте всички заявки и отговори
API трафикът често включва чувствителна информация, като идентификационни данни и данни. Уверете се, че целият мрежов трафик (особено всички входящи API заявки и отговори) е криптиран с помощта на SSL/TSL криптиране. Шифроването на данни не позволява на хакерите да разкрият потребителски идентификационни данни или друг тип чувствителни данни.
4. Използвайте API Gateway
Ако не използвате API шлюз, ще трябва да вградите код в приложението, така че да може да каже на приложението как да обработва API повиквания. Но този процес изисква повече работа по разработка и може да увеличи рисковете за сигурността на API.
Използвайки API шлюзове, компаниите могат да управляват API извиквания от външни системи чрез централен шлюз извън програмния интерфейс на приложението.
Нещо повече, API шлюзовете също така улесняват управлението на API, подобряват сигурността на API и подобряват скалируемостта и достъпността.
Популярните API шлюзове включват API шлюз на Amazon, Azure API Gateway, Oracle API шлюз, и Конг шлюз.
5. Налагане на ограничаване на скоростта
Ограничението на скоростта на API ви позволява да зададете лимит на заявките за API или извикванията, които клиентът може да направи към вашия API. Налагането на ограничения на скоростта на API може да ви помогне да предотвратите Разпределени атаки за отказ на услуга (DDoS)..
Можете да ограничите API заявките за секунда, минута, час, ден или месец. И имате различни опции за прилагане на ограничения на скоростта на API:
Когато внедрите Hard Stop, вашите клиенти ще получат грешка 429, когато достигнат своя лимит. В Soft Stop вашите клиенти ще имат кратък гратисен период за извършване на API извиквания след изтичане на ограничението за скорост на API. Можете също така да приложите Throttled Stop, позволявайки на вашите клиенти да правят API заявки, след като лимитът е надвишен, но с по-бавна скорост.
Ограничаването на скоростта на API минимизира заплахите за сигурността на API и намалява разходите в задния край.
6. Ограничете излагането на данни
Уверете се, че отговорите на заявка за API не връщат повече данни от това, което е уместно или необходимо. Ако извикването на API е за пощенски код, то трябва да предостави само пощенския код, а не пълния адрес.
Показването на възможно най-малко в отговорите на API подобрява и времето за реакция.
7. Валидиране на параметри
API заявките изискват редица входни параметри. За всяка заявка за API, вашата API рутина трябва да потвърди присъствието и съдържанието на всеки параметър. Това защитава целостта на вашия API и предотвратява обработката на злонамерени или неправилно въведени данни.
Никога не трябва да заобикаляте проверките за валидиране на параметри.
8. Следете активността на API
Направете план за наблюдение и регистриране на API дейности. Това може да ви помогне да откриете подозрителни дейности на участници в заплаха много преди да могат да навредят на вашия API сървър или вашите API клиенти. Започнете да регистрирате всички API повиквания и отговори.
Различни инструменти, като напр Сематекст, Дотком-монитор, или Челно, ви помага да наблюдавате своя API в реално време.
9. Редовно проверявайте сигурността на API
Не превръщайте тестовете за сигурност на API само в част от процеса на разработка на API. Вместо това проверявайте последователно сигурността на вашия API на живо. Това ще помогне на вашия екип по сигурността да идентифицира грешна конфигурация на сигурността и уязвимости на API, които вашият екип за разработка може да е пропуснал по време на фазата на внедряване на API.
Освен това вашият екип по сигурността трябва създайте план за реакция при инцидент за справяне с всеки инцидент със сигурността на API.
Управлявайте рисковете за сигурността на API, за да защитите ценни данни
Тъй като организациите все повече внедряват API в своите процеси на дигитална трансформация, участниците в заплахите непрекъснато търсят уязвимости на API, които да използват. След като получат достъп до вашия API, те могат да откраднат чувствителни данни. Така че трябва да подобрите сигурността на API, за да минимизирате рисковете за сигурността на API.