Неправильна конфігурація безпеки

Неправильна конфігурація безпеки

Одне налаштування CORS — і будь-який сайт може прочитати обліковий запис.

Що таке Неправильна конфігурація безпеки?

Код правильний, а API все одно небезпечний, бо важливе для безпеки налаштування залишено в небезпечному стані. Цього разу це CORS: API віддзеркалює в Access-Control-Allow-Origin будь-яке значення Origin, яке надсилає той, хто викликає, і встановлює Access-Control-Allow-Credentials у true, повідомляючи браузерам, що будь-який сайт може читати його відповіді разом із сесійним cookie відвідувача. Ви озброїте сторінку з винагородою, яка пересилає відповідь API облікових записів на ваш сервер, а потім обмежите дозволені походження явним списком на сервері. Повторення атаки покаже, що CORS застосовує браузер, а не сервер.

Що ви дізнаєтесь у Неправильна конфігурація безпеки

Неправильна конфігурація безпеки — Кроки навчання

  1. API, зручний для браузера

    Corvexa — застосунок для особистих фінансів: люди пов'язують із застосунком свій банківський рахунок і відстежують витрати, а вебзастосунок Corvexa читає їхній обліковий запис з API Corvexa просто в браузері. Сьогодні Боб націлився на Corvexa. Йому потрібні дані облікових записів клієнтів, які можна здобути фішингом і перепродати. У нього є власний одноразовий обліковий запис Corvexa, і він починає з публічної документації для розробників, щоб побачити, як API доступний із браузера.

  2. Дозволено будь-який сайт

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

  3. Зробіть запит від імені сайту зловмисника

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

  4. API погоджується

    Подивіться на заголовки відповіді, які API надіслав разом із даними облікового запису.

  5. Сторінка-приманка

    Боб створює на вигляд нешкідливу сторінку, яку розмістить на власному сайті: банер із винагородою Corvexa. Ліворуч вона відображається в браузері, а праворуч у редакторі відкрито її вихідний код. Сама по собі вона лише показує пропозицію на $50.

  6. Озбройте сторінку

    Тепер Боб додає пейлоад. Для відвідувача банер виглядатиме так само, але сторінка непомітно викличе API облікових записів Corvexa із браузера відвідувача й надішле все, що отримає у відповідь, на власний сервер Боба. Оскільки API дозволяє походження сайту Боба разом з обліковими даними, решту робить cookie відвідувача.

  7. Як відбувається крадіжка

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

  8. Надішліть приманку

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

  9. Винагорода в поштовій скриньці

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

  10. Відкрийте посилання

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

Охоплення стандартів безпеки

OWASP API Top 10

  • API8:2023 Security Misconfiguration

CWE

  • CWE-942 Permissive Cross-domain Policy with Untrusted Domains
  • CWE-1188 Initialization of a Resource with an Insecure Default

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security