Порадник

ZAP: безкоштовний сканер безпеки і 10 типових перевірок

· 3 хв читання

ZAP (Zed Attack Proxy, часто його називають OWASP ZAP) - це безкоштовна програма з відкритим кодом, яка перевіряє сайти на типові помилки в захисті. Сайт проєкту називає її найпоширенішим у світі сканером вебзастосунків. Цей текст пояснює, що таке ZAP і що він перевіряє. CzynszOK запускає сканування ZAP у режимі baseline за кожної зміни коду на своїх публічних сторінках; що ще ми запускаємо за кожної зміни, описано в дописі про наші перевірки.

Що таке ZAP

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

Сканування baseline й активне

Сканування baseline коротке й пасивне. За замовчуванням воно хвилину обходить сайт, чекає завершення аналізу відповідей і повідомляє результат. За документацією ZAP у цьому режимі не виконує жодних справжніх атак, тож підходить для автоматичних процесів, зокрема на робочих сайтах. Він бачить лише те, що показують відповіді сервера: відсутні заголовки, прапорці cookie, повідомлення про помилки.

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

10 типових перевірок

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

  1. Не встановлено заголовок Content-Security-Policy (10038). Цей заголовок каже браузеру, звідки сторінка може завантажувати скрипти, тож чужий код вставити важче.
  2. Немає захисту від вбудовування у фрейм (10020). Без нього хтось може вставити Вашу сторінку в невидимий фрейм і підштовхнути до кліку (клікджекінг).
  3. Немає X-Content-Type-Options (10021). Тоді браузер може вгадувати тип файлу й сприйняти дані як скрипт.
  4. Не встановлено Strict-Transport-Security (10035). Цей заголовок вимагає зашифрованого зʼєднання, навіть коли хтось вводить адресу без https.
  5. Cookie без прапорця HttpOnly (10010). Такий cookie може прочитати скрипт на сторінці, тож украсти сесію легше.
  6. Cookie без прапорця Secure (10011). Тоді він може подорожувати незашифрованим зʼєднанням.
  7. Cookie без атрибута SameSite (10054). Браузер додає його до запитів з чужих сайтів, що допомагає атакам CSRF.
  8. Немає токенів захисту від CSRF у формах (10202). Форму без них можна підробити з іншого сайту.
  9. Сервер видає версію програмного забезпечення в заголовку Server (10036). Це підказка для того, хто шукає відомі вразливості в конкретній версії.
  10. Вразлива бібліотека JavaScript (10003). Сторінка завантажує стару версію бібліотеки з відомою вразливістю.

Звіт ZAP буває довгим, але читати його варто зі спокійною головою: сповіщення - це підказка, а не вирок. Частина сповіщень не стосується конкретного сайту, а частина є свідомим рішенням. Це оцінює людина.

Що це означає для Вас

Якщо Ви підключаєте банк через застосунок, ZAP - один з інструментів, якими можна перевірити, чи немає на його сайті елементарних помилок. Він не замінює огляду коду чи тесту на проникнення. На сторінці Безпека ми описуємо лише те, що можемо довести сьогодні, а CzynszOK запускає сканування ZAP у режимі baseline на публічних сторінках, а не на екранах після входу. Що відбувається з даними з Вашого банку, читайте в Політиці конфіденційності.

Найчастіші запитання

Чи безкоштовний ZAP?

Так. Сайт проєкту описує його як безкоштовне програмне забезпечення з відкритим кодом.

Чи може сканування ZAP зашкодити сайту?

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

Чи означає чистий звіт ZAP, що сайт безпечний?

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

Чи можна сканувати чужий сайт?

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

Czynsz OK? Перевірте за кілька хвилин.

Підключаєте банк, вписуєте оренду з оголошення, отримуєте сертифікат із QR-кодом. Без PDF і без аналітика.

Перевірити оренду