Съвременният интернет е невъзможен без съществуването на API – интерфейси, посредством който различни приложения могат да комуникират помежду си.
От една страна, това е огромен позитив: коренно противоположни системи могат да работят заедно, От друга: това е огромно предизвикателство за сигурността, те са навсякъде, често са зле защитени и съдържат огромни количества данни и огромна част от бизнесите дори не не само не знаят колко API-та поддържат и дали те изобщо имат някаква форма на защита. Това ги прави една от любимите мишени на хакерите.
Защо да защитя API-тата си
Интерфейсите дават директен достъп до четене и писане на огромно количество чувствителна информация. На практика тяхното предназначение изисква да имат достъп до сърцето на една организация и цялата информация за нея.
Затова, за един бизнес, който поддържа подобни услуги, това означава, че през тях хакер може да:
- да открадне на чувствителна информация като се сдобие с нерегламентиран достъп (който понякога дори не изисква автентникация)
- извърши неоторизирани трансакции и да промени критични данни
- да спре достъпа до услуги, като претовари на сървърите, на които работят те
- да инжектира зловреден код
- да получи неоторизиран достъп до други вътрешни системи
- да нанесе репутационни щети, правни последици и глоби
Само един пример: през януари 2024 г. от социалната медия Spoutible бяха източени лични данни на над 200 хил. потребителя именно заради липсата на защита на една от основните ѝ API услуги.
Как да защитите API-тата си
След всичко изброено по-горе, основният въпрос е какво да направите, за да защитите API услугите, които поддържате? По-лесно е, от колкото си мислите.
Ето няколко практически съвета:
- Организирайте. Изгответе списък с API услуги, които поддържате. За целта можете да използвате автоматизирани инструменти за откриване, но по-добре е да съберете списъка от разработчиците, с които работите и да опишете кое API каква автентникация изисква и достъп до какви данни и какви операции по тях позволява
- Възприемете подход на нулево доверие (zerto-trust) и третирайте всяка заявка към API като потенциално злонамерена, независимо от произхода ѝ.
- Въведете силна автентификация и оторизация за всяка API услуга. Без изключения.
- Задайте разумни ограничения на броя заявките към API, които могат да се осъществяват за единица време. Например, има ли нужда API услуга за потребителска информация да позволява повече от 60 заявки в час?
- въведете надеждна система за създаване на версии за вашите API услуги, за да можете, когато бъдат открити уязвимости (а такива ще бъдат открити), да деактивирате по-старите итерации.
- обучавайте своите разработчици, тъй като повечето уязвимости в API произтичат от липсата на осведоменост за сигурността.
- внедрете инструменти за мониторинг и поведенчески анализ и редовно penetration тестове.
И не забравяйте – киберсигурността изисква постоянство и многопластов подход, така че всички тези стъпки трябва да вървят ръка за ръка.