Чому і як захистити кінцеву точку API?

Як ви захищаєте свій API?

Зараз епоха вибуху цифрової економіки, і величезні обсяги даних передаються через API. Бізнес, ігри, освіта, погода, наука, мистецтво. . . ти назвав це; все працює на API. У світі, який так фундаментально залежить від API, напрочуд мало уваги приділяється безпеці.

Для розробників достатньо стандартних значень їхніх фреймворків; або ще гірше, коли не використовуються фреймворки, вони думають, що дотримуються правил безпеки. Для системних адміністраторів вони покладаються на безпеку за умовчанням, яку пропонує їхня інфраструктура чи постачальник послуг.

Зовсім не гарне видовище, якщо ви запитаєте мене.

Джерело: developer.ibm.com

Зайве говорити, що на кону багато чого, що ми усвідомлюємо лише коли щось справді жахливий відбувається.

Але все по порядку. 🙂

Навіщо захищати кінцеві точки API?

Це має бути безглуздим завданням, чи не так?

Нам потрібно захистити кінцеві точки, тому що, ну, від цього залежить бізнес.

Хоча це досить вагомий аргумент сам по собі, я хочу трохи розширити точку зору та висвітлити інші пов’язані, але однаково смертоносні наслідки.

Втрата бізнесу 📉

Це очевидне. Якщо комусь вдасться возитися з вашими кінцевими точками API, це призведе до повної зупинки. Порушення безпеки також може зайняти багато часу, щоб відновитися, що означає самогубство в бізнесі. Хоча це правда, що більшість підприємств, ймовірно, не постраждають від години або двох простоїв, для деяких це неприпустимо.

Уявіть, що обмін валют не працює на кілька хвилин!

Проблеми відповідності

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

Втрата репутації

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

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

Завищені рахунки за інфраструктуру 💰

Коли ваш API працює в інфраструктурі, він споживає ресурси (здебільшого пропускну здатність, ЦП і пам’ять). Наприклад, якщо API не захищено належним чином і зловмисники можуть взаємодіяти з ним, вони можуть змусити API продовжувати виконувати багато безглуздої роботи (наприклад, виконувати важкі запити до бази даних), що може призвести до ураження збільшувати свої рахунки з певних причин.

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

  Заборонити іншим редагувати важливі частини спільного файлу Word

Моральний дух команди

Отже, ви можете подумати, що команда, яка допустила ці компроміси, втратить через них моральний дух. Ну, не зовсім. Можливо, компроміси виникли через слабку безпеку інфраструктури, що розчарує розробників, або навпаки.

Якщо це станеться достатньо довго, у вас буде культура, якій ви пошкодуєте, що дозволили їй розвинутися.

Виграш конкурента

Отже, припустимо, було порушення, але фактичних втрат не було. Проте ваші конкуренти скористаються цим інцидентом, щоб створити свій власний API і стверджувати, наскільки безпечнішим є їхній (навіть якщо це не так!). Ще раз бажаю успіхів у спробах переконати ринок. 🙂

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

Найкращі методи захисту кінцевих точок API

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

HTTPS завжди 🔒

Якщо ваші кінцеві точки API дозволяють користувачам API спілкуватися через http або інші незахищені протоколи, ви наражаєте їх на великий ризик. Паролі, секретні ключі та дані кредитної картки можуть бути легко викрадені атака “людина посередині”.або аналізатор пакетів може читати їх як звичайний текст.

Тому завжди робіть https єдиним доступним варіантом. Незалежно від того, наскільки тривіальною може здаватись кінцева точка, підключення через http навіть не повинно бути варіантом. Сертифікат TLS не коштує багато; ви можете купити всього за 20 доларів США в Магазин SSL.

Одностороннє хешування пароля

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

Єдиним запропонованим варіантом є асиметричні (або «односторонні») алгоритми шифрування для зберігання паролів. Таким чином ні зловмисник, ні будь-який розробник чи системний адміністратор у компанії не зможуть прочитати паролі клієнтів.

Надійна автентифікація 💪

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

У той же час, ще одна дуже хороша практика — установити термін дії токенів кожні, скажімо, 24 години, щоб їх потрібно було оновлювати. Таким чином, навіть якщо ваш маркер стане витоком, є ймовірність, що 24-годинний термін зменшить вплив злому.

Застосувати обмеження швидкості

Якщо у вас немає API, яким щохвилини користуються мільйони людей, було б дуже гарною ідеєю встановити обмеження на кількість викликів, які клієнт може зробити до API за певний проміжок часу.

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

  Як використовувати розширення Action та Share на iPhone та iPad

Підтвердити введення

Це звучить як безглуздий крок, але ви здивуєтеся, скільки API полюбиться на це. Перевірка вхідних даних означає не лише перевірку правильності формату вхідних даних, а й відсутність несподіванок. Простим прикладом є SQL-ін’єкція, яка може знищити ваші бази даних, якщо ви дозволите рядкам запиту проходити без перевірки або майже без неї.

Іншим прикладом є перевірка розміру запиту POST і повернення належного коду помилки та повідомлення клієнту. Спроба прийняти та проаналізувати смішно великі вхідні дані призведе лише до підриву API.

Застосуйте фільтрацію IP-адрес, якщо це можливо

Якщо ви любите послуги B2B і ваші API використовуються компаніями з певних місць, подумайте про додавання додаткового рівня безпеки, який обмежує IP-адреси, які мають доступ до вашого API. Для кожного нового місця та нового клієнта IP-адресу потрібно перевіряти на відповідність вхідному запиту.

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

Інструменти для посилення захисту API

Чи є інструменти, які можуть допомогти нам сканувати вразливості, або навіть краще, запропонувати першу лінію захисту, коли справа доходить до захисту API?

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

Metasploit це надзвичайно популярна платформа з відкритим вихідним кодом для тестування на проникнення веб-додатків і API. Він може сканувати ваш API за кількома різними параметрами та проводити вичерпний аудит безпеки на наявність різних рівнів уразливостей.

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

Хоча основного фреймворку з відкритим вихідним кодом загалом достатньо, є чудові платні продукти, створені на основі Metasploit, які варті уваги. Професійний план чудовий, якщо вам потрібна підтримка преміум-класу та ви будете поглиблено використовувати фреймворк, але, як правило, він не потрібен, якщо ваша команда достатньо досвідчена.

AppTrana

Спеціальний захист API AppTrana Функції пропонують комплексне рішення на основі оцінки ризиків для захисту від широкого спектру загроз API, включаючи топ-10 OWASP API, DDoS-атаки на основі API та бот-атаки, вбудовані загрози, витік даних тощо. З необмеженим автоматизованим скануванням API за допомогою ручного перо- тестування, він постійно відстежує вашу оцінку ризику для посилення безпеки.

API-захист AppTrana забезпечує найкомплексніше рішення з поєднанням виявлення ризиків, виявлення загроз API, політики позитивної безпеки API, політики DDoS-спеціальних API, модулів спеціального API-боту та функцій виявлення API.

Його виявлення API забезпечує повну видимість викликів API, включаючи недокументовані та тіньові API, щоб зрозуміти вашу поверхню атаки API. Цей спеціальний захист API збирає інформацію про користувачів, поведінку використання API, активність загроз, карти викликів API тощо, щоб продемонструвати статус захисту за допомогою аналітики в реальному часі.

Використовуючи Indusface AppTrana, ви можете генерувати індивідуальні політики щодо API, щоб блокувати зловживання, орієнтовані на API, у режимі реального часу.

  15 найкращих безкоштовних відео столярів для ПК

Cloudflare

Не тільки CDN, але Cloudflare пропонують безліч функцій безпеки, таких як WAF, обмеження швидкості, захист від DDoS, які будуть важливими для захисту вашого API від онлайн-загроз.

Invicti

Invicti поставляється з USP «сканування на основі доказів». Простіше кажучи, часто можливе, що нестандартні умови мережі або деякі менш відомі дії API тлумачаться як лазівки в безпеці, які пізніше виявляються неправильними.

Це витрачає ресурси, оскільки всі повідомлені вразливості потрібно сканувати повторно вручну, щоб підтвердити, що вони не є помилковими. Invicti каже, що цей інструмент може надати вам достатньо вагомі докази концепції для звітів, усуваючи сумніви щодо знайдених слабких ланок.

Маючи в списку клієнтів такі компанії, як Sony, Religare, Coca-Cola, Huawei тощо, ви можете бути впевнені, що ці люди роблять щось правильно. 🙂

SoapUI Pro

Створено SmartBear, SoapUI Pro це інтуїтивно зрозумілий і простий спосіб створення тестів API та отримання точних звітів на основі даних про них. Він також акуратно інтегрується з вашим конвеєром CI/CD, гарантуючи, що жодні нові доповнення коду не ставлять під загрозу безпеку вашого API.

SoapUI може працювати з Swagger, OAS та іншими популярними стандартами API, що значно скорочує час на початок роботи. З такими клієнтами, як Microsoft, Cisco, MasterCard, Oracle тощо, і планами від 659 доларів на рік, це гідний інструмент для більш безпечних API.

Окта

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

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

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

Це полегшує централізоване адміністрування API і дозволяє захистити ресурси API. Okta зосереджується на безпеці, дозволяючи вам захистити доступ між різними мікросервісами.

Висновок

Є відсутність дефіциту інструментів безпеки API, доступних на ринку, незалежно від того, чи є вони з відкритим вихідним кодом, безкоштовні чи комерційні, або будь-яка їх комбінація.

Спробуйте кілька з них зі списку та подивіться, що найкраще відповідає вашим вимогам.