Недостатнє логування й моніторинг
Хтось прочитав запис. Ваші журнали не показують, хто.
Що таке Недостатнє логування й моніторинг?
Це збій виявлення, а не збій доступу. Коли запит авторизований, жоден контроль доступу його не відхилить, тож зловживання здатен виявити лише журнал аудиту. Ви скористаєтеся дійсним токеном агента підтримки, щоб прочитати дату народження, національний ідентифікаційний номер і залишки на рахунках клієнта без жодного звернення, яке стояло б за запитом. Потім вас питають, який агент прочитав цей запис, а ви не можете відповісти. Виправлення записує виконавця, об'єкт доступу, дію, звернення, IP-адресу джерела й часову позначку в сховище лише для дозапису та сповіщає про читання без звернення.
Що ви дізнаєтесь у Недостатнє логування й моніторинг
- Розпізнавайте недостатнє логування й моніторинг як збій виявлення: чутливий доступ записують без достатнього контексту або не відстежують, тож зловживання лишається непоміченим і його неможливо відтворити
- Розумійте, що авторизований доступ (дійсні облікові дані, використані зловмисно) здатні виявити лише журнал аудиту й сповіщення, адже жоден контроль доступу його не відхилить
- Відрізняйте недостатнє логування й моніторинг від вад контролю доступу, розкриття даних і обмеження частоти запитів: тут одне авторизоване читання дозволене, а бракує не блокування чи ліміту, а можливості встановити виконавця й побачити доступ
- Застосовуйте виправлення: надсилайте незмінну подію аудиту (виконавець, об'єкт доступу, дія, звернення або причина, IP-адреса джерела, часова позначка) у сховище лише для дозапису й сповіщайте про підозрілий доступ, як-от читання чутливого запису без звернення
- Розумійте, що виправлення — це виявлення та підзвітність, а не запобігання: легітимне читання лишається дозволеним і далі повертає 200, а його зловживання можна простежити й виявити сповіщенням
Недостатнє логування й моніторинг — Кроки навчання
-
Агент із доступом
Norvane — цифровий банк. Його агенти підтримки цілий день шукають дані клієнтів, щоб опрацьовувати звернення, і користуються внутрішньою консоллю, яка працює на основі API з даними клієнтів. Боб — один із таких агентів, і він продає все, до чого може дотягнутися. Шахрайське угруповання заплатило йому за повний набір даних однієї особи, тож він вибрав клієнтку Norvane з великим залишком на рахунку, щодо якої в нього немає жодного звернення і жодної причини заглядати в її дані. Його доступ справжній, а токен дійсний, тому сервер не відхилить жодної його дії. Він відкриває консоль агента, щоб витягти її запис.
-
Ендпоінт пошуку
Пошук клієнта повертає повний профіль, і токен агента Боба має право викликати цей ендпоінт. Кожен запит на пошук клієнта має посилатися на звернення, яке агент опрацьовує, але сам API його не вимагає.
-
Витягніть запис
Боб викликає ендпоінт пошуку для клієнтки, дані якої йому заплатили викрасти, з токеном агента й без звернення. Це один звичайний на вигляд запит, такий самий, який він робить десятки разів на день для справжніх звернень, і саме тому він не впадатиме в око.
-
Усе про одну людину
Токен працює. Сервер повернув повний запис клієнтки.
-
Перевірка знань
-
Який агент це прочитав?
Ви відповідаєте за журналювання аудиту й моніторинг API з даними клієнтів Norvane. Персональні дані клієнтки викрали й використали для шахрайства, а потрапити до шахраїв вони могли лише зсередини Norvane. Служба довіри й безпеки надіслала вам лист із питанням, на яке не може відповісти самотужки.
-
Прочитайте журнал застосунку
Перш ніж братися за код, ви перевіряєте, що API справді записав. Командою tail виведіть кінець журналу застосунку і шукайте все, що пов'язує пошук з агентом або з клієнткою, чиї дані витекли.
-
Відповісти неможливо
Це все, що API записав про ці пошуки.
-
Відкрийте обробник пошуку
Відкрийте обробник пошуку клієнта й подивіться, що він записує, коли обробляє запит.
-
Знайдіть ваду
Обробник перевіряє токен агента, читає запис клієнта й повертає повний профіль. Єдиний рядок, який він записує, — той, що ви щойно бачили: примітка про те, що пошук відбувся, без жодного контексту, який зробив би її записом аудиту.
Охоплення стандартів безпеки
OWASP API Top 10
- API10:2019 Insufficient Logging & Monitoring
CWE
- CWE-778 Insufficient Logging
- CWE-223 Omission of Security-relevant Information
CIS Controls
- CIS 8 Audit Log Management
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
- DE.AE Adverse Event Analysis