Безсерверні обчислення мають фундаментально змінені, як побудови команд розробки та розгортання додатків, що абстрагують шар інфраструктури, так інженери можуть зосередитися на логіці бізнесу та швидкості на ринку. Однак цей парадигм зсув також представляє нову поверхню атаки, з API, що діє як основний інтерфейс між клієнтами та хмарними функціями, такими як AWS Lambda, Функції Azure, або Google Cloud Функції. Забезпечуючи ці кінцеві точки більше не є після того, як - це основна вимога для виробництва додатків. Ця стаття розширюється на перевірених кращих практиках захисту від серверних API, покриття автентичності, захищеного зв'язку, обмеження швидкості, вводне валення, а також контроль безпеки, які потрібно реалізувати.

Розуміння моделі без серверів

У традиційному інфраструктурі безпеки спирається на мережеві периметри: брандмауери, VPN та загартовані сервери. Безсерверні інвертори, які моделі. Не існує стійких сервера, щоб затвердити; замість того, кожна функція інвокації є ефемерним, і хмарний провайдер керує середовищем за робочий час. Спільна модель відповідальності означає, що ви забезпечите свій код, дані та ідентичність - висихає провайдера, закріплює основний хост. API стають новим периметром. Кожен запит повинен розглядатися як потенційно шкідливий, і кожна функція повинна в повній мірі вправляти свій власний контекст. Такий підхід до особистості вимагає більш глибокого розуміння як автентифікації, авторизації, авторизації, авторизації, авторизації, цілісності та даних з цілісності та цілісності даних.

Основні загрози для безсерверних API

Перед тим як дайвінг у захисти, критично важливо розпізнати найбільш поширені вектори атак, які цільують без серверів кінцеві точки:

  • – SQL, NoSQL, OS команди, або LDAP ін'єкцій через несанітований вхід, переданий до функцій.
  • Broken trueation – Вимочіть або не відхиляється відступ, поганий ключ, управління або неправильно об'ємний доступ до токени.
  • Потребаний вплив даних – API, що повертає повний об’єкт, коли потрібні лише часткові дані, витікаючи чутливі поля.
  • Пошук служби (DoS) – Бурстові атаки, які вихлопні функції обмежені ліміти або запускаються витрати холоду.
  • Містаконфігурація – Надікількі ролі IAM, громадські відро, або відключені загибель, що випливають вашу інфраструктуру.

Кожен з цих загроз може бути пом'якшений з навмисним дизайном та інструментом, інтегрованим у ваш канал.

Кращі практики захисту ваших кінцевих точок

1. Впровадження сильних аутентифікації та авторизації

Кожен запит API до функції сервера не потрібно автентифікувати та авторизуватися. Використовуйте галузеві стандартні протоколи, такі як OAuth 2.0 ]OpenID Connect або problem JSON Web Tokens (JWT)]. Дійсно токени всередині кожної функції (або через API Gateway авторізатор) для забезпечення, що вони не були екстерійовані або були тамперовані. Для внутрішніх послуг використовуйте ключі API, що зберігаються в захищеному середовищі або секретні менеджери.

За базовою автентифікацією керування доступом на основі ролів (RBAC) або навіть , контроль доступу на основі даних (ABAC). Наприклад, AWS Lambda працює з документами користувачів, повинні перевірити вимоги JWT для перевірки ролі та права на абонента перед поверненням даних. Послуги, такі як AWS Cognito, Auth0, і Firebase Authentication забезпечують керовані шари ідентичності, які інтегруються безпосередньо з серверними рамами.

2. Забезпечити безпечне спілкування

Усі трафік API повинні бути зашифровані в транзиті. Використовуйте HTTPS (TLS 1.2 або 1.3)] виключно. Налаштуйте свій API Gateway або балансувальник навантаження для відхилення HTTP-запитів. Для доданої безпеки, втісніть , засвідчуйте шпильки на клієнтських додатках і переконайтеся, що ваші серверні функції тільки спілкуються з потоками служби над TLS. Уникайте жорсткого кодування або відключення перевірки сертифіката в розробці, - це загальний джерело з’їздів безпеки.

Якщо ваші функції спілкуються один з одним (наприклад, через автобуси або черги), зашифруйте цей трафік і перевірте їх. Більшість хмарних провайдерів дозволяють шифрування за замовчуванням для обміну міжсервісами, але перевірте, що налаштування вашого продукту заблокувати це.

3. Впровадження обмеження швидкості та дросель

Обмеження курсу захищає ваші API від зловживаючих користувачів і випадкового перебігу. На рівні API Gateway визначено ліміти для лопних ставок і стаціонарних запитів (наприклад, 100 запитів на хвилину за користувача). Використовуйте токени відро або розсувні алгоритми вікна, щоб дозволити випадкові прокладки трафіку, поки ще не захоплюючий атак.

Різні обмеження на основі статусу автентифікації. Анонімні користувачі можуть отримати 10 запитів / хв дросель, а автентичні користувачі отримують більш високий ліміт. Розглянемо використання ключів з планами використання в AWS API Gateway або , що обмежують правила] в Azure API Management. Додатково реалізовано ліміти конвацій]] на ваших серверних функціях, щоб запобігти атаку DoS від вичерпних ресурсів облікового запису.

Пам'ятайте, що в журналі та оповіщення про події, які можуть відрізняти між правовими потоками трафіку та шкідливими спробами.

4. Дійсно і санітарії Всі Вхідні

Ніколи не довіряють дані, що надходять від клієнта або служби upstream. Використовуйте бібліотеку перевірки схеми (наприклад, Joi, Pydantic або JSON Schema) на старті кожної функції. Від'єднати будь-який вхід, який не відповідає очікуваній формі. Для запитів SQL або NoSQL завжди використовуйте параметровані заяви або ORM, які автоматично вводяться в вхід. Пояснення білого списку дозволено символи для рядкових полів, і ніколи не оцінює введення користувача як код (не або ).

Додатково, вносити перевірку вмісту. Якщо кінцева точка очікує JSON, відхиляється запити з або непідтримувані типи MIME. Для завантаження файлів, валідувати MIME тип, розмір файлу та сканування для шкідливих програм, використовуючи спеціальні послуги, такі як AWS GuardDuty або сторонні сканери вірусів.

Додаткові заходи безпеки

Веб-додаткові брандмауери (WAFs)

Розгортання WAF перед вашим API Gateway для автоматичного фільтрування поширених атак, таких як ін'єкції SQL, скриптування крос-сайта (XSS), і IP-репутаційні загрози. Хмарні провайдери пропонують керовані WAF (AWS WAF, Azure WAF, Cloud Armor), які інтегрують з їх балансувальниками навантаження і CDN сервісами. Налаштуйте спеціальні правила набори для конкретних кінцевих точок вашого додатка, таких як блокування запитів з malformed JWTs або підозрілих параметрів запиту.

Комплексний моніторинг і локація

Випробувано непереборна для безпеки. Увімкніть детальні журнали для всіх запитів та функцій API. Використовуйте послуги, такі як AWS CloudTrail, Azure Monitor або Google Cloud Logging для захоплення, які доступали, коли, і з яких. Розв'язувати журнали в інструменті SIEM (наприклад, Splunk, ELKстека, Datadog) і налаштувати сповіщення для:

  • Повторний 401/403 відповіді (здатна сила брюта)
  • Спірки з функцією часу виконання або помилок
  • Доступ до незвичайних географій або IP- діапазонів
  • Функції, які обходяться API Gateway (пряма інвойсація URL)

Коррелатові колоди по шарам — бенгау, функції та сховища даних — слідувати ланцюжку повного атаки.

Управління залежностей та патчами

Серверні функції спираються на сторонні бібліотеки. Єдина вразлива залежність може порушити всю заявку. Використовуйте Аналіз складу програмного забезпечення (SCA)] інструменти (наприклад, Snyk, Trivy, залежноabot) у вашому трубопроводі CI/CD для сканування відомих вразливостей. Pin залежностей для конкретних версій, а не використання . Розглянемо використання AWS Lambda Layers або Azure Функціональні функції для розширення

Регулярно переглядайте та оновлювати функції runtimes та базових зображень (для безсерверного сервера контейнера). Встановити оновлення автоматичної залежності з тестами, щоб уникнути перервних змін. Для функцій з неоплаченими залежностями, ізолювати їх та застосувати додаткові компенсаційні елементи, такі як WAF або сувора перевірка введення.

Безпека мережі та Ізоляція

Під час роботи з серверами функції, що працюють в багатотонному хмарному середовищі, ви можете додати мережеві елементи керування. Функції місця, які обробляти конфіденційні дані (наприклад, платіжні дані, записи для здоров'я) всередині VPC] без доступу до Інтернету. Прикріпіть API Gateway, який проксі запити на приватний балансер навантаження або використовувати AWS PrivateLink або Azure Private Endpoint для безпечного обслуговування-сервісного зв'язку.

Використовуйте IP whitelisting для адміністративних кінцевих точок або внутрішнього інструменту. Налаштуйте групи безпеки та мережі ACL для обмеження вхідного трафіку тільки до необхідних портів та вихідних IP-адрес. Для функцій, які вимагають доступу до Інтернету (наприклад, викликаючи сторонні API), маршрутний трафік через NAT Gateway у контрольованому підмережі.

Реалізація безпеки в трубі CI/CD

Безпека повинна бути автоматизованою та інтегрованою рано в розробці. Введення воріт охорони] в трубопроводі CI/CD, що забезпечує наступне перед розгортанням:

  • Тестування безпеки статичних додатків (SAST) на коді функції для виявлення нерівностей.
  • Сканування залежностей при неправильному порушенні.
  • Інфраструктура-as-code (IaC) сканування (наприклад, , ]) для неправильного налаштування ролі IAM, відсутність шифрування, або публічного впливу.
  • Контроль та інтеграція тестів, які вводяться в автентичність, авторизація та логіку вводу.

Використовуйте ефемерні середовища (staging або preview розгортання) для запуску тестів безпеки на фактичні безсерверні кінцеві точки перед злиттям до виробництва. Розглянемо використання інструментів тестування безпеки API, таких як Postman] або ]]OWASP ZAP для імітаційних атак.

Висновок

Серверні обчислення пропонує неймовірну швидкість і масштабованість, але вона вимагає проактивної безпеки. За допомогою обробки API як нового периметра, що реалізує надійну автентифікацію і авторизації, закріплюючи шифрування, обертів шкідливого трафіку, суворо валідуючи вводи, і шарування в WAF, моніторинг і мережевих контрольних точок, ви можете захистити ваші кінцеві точки від більшості сучасних атак. Неперервна безпека як безперервний процес, вбудований в життєвий цикл розробки, не кінцевий пункт перевірки. Ваші користувачі і ваш бізнес залежать від нього.