Вывод sensitive-информации в системный лог
Критичность: ВЫСОКИЙ | |
Способ обнаружения: DAST, SENSITIVE INFO |
Описание
iOS предоставляет приложениям возможность выводить информацию в системный журнал. Приложения могут отправлять информацию в журнал, используя следующие средства:
- NSLog макрос
- printf семейство функции
- NSAssert семейство функции
- Макросы
В процессе разработки приложения в финальную версию могут попасть участки кода с логированием чувствительной информации (пароли, личные данные, ключи шифрования)
Рекомендации
Изменение поведения макросов логирования в зависимости от типа сборки приложения
Пример кода:
#ifdef DEBUG
# define NSLog (...) NSLog(__VA_ARGS__)
#else
# define NSLog (...)
#endif
Применение фреймоврка OSLogPrivacy для разграничения вывода в зависимости от чувствительности денных
Пример кода:
@frozen struct OSLogPrivacy
...
Logger().info("User bank account number: \(accountNumber, privacy: .private)")