RFC: 5424
Оригинал: The Syslog Protocol
Предыдущие версии: RFC 3164
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: StLeutnant

8. Вопросы безопасности

8.1. UNICODE

Настоящий документ предписывает использовать кодировку UTF-8 при заполнении поля PARAM-VALUE. Также предлагается преимущественно её использовать и при заполнении поля MSG. В связи с этим возникают некоторые вопросы безопасности, касающиеся UNICODE. Всем разработчикам и операторам рекомендуется прочитать UNICODE TR36 для ознакомления с этими вопросами, чтобы избежать изложенных в нем технических проблем при реализации ТРЕБУЮЩЕЙСЯ для приложений Syslog "кратчайшей формы" кодировки. Тем не менее, возможность путаницы визуально одинаковых символов все ещё сохраняется. Настоящий документ пытается свести к минимуму последствия визуальной подмены символов, допуская кодировку UNICODE только в тех местах, где она необходима и ожидаема. Во всех других местах ТРЕБУЕТСЯ применять US-ASCII. Кроме того, поля PARAM-VALUE и MSG не должны рассматриваться как первичный источник идентифицирующей информации, чтобы в дальнейшем снизить риски, связанные с визуальной подменой символов.

8.2. Управляющие символы

Настоящий документ не накладывает каких-либо обязательных ограничений на содержимое полей MSG и PARAM-VALUE. Таким образом, эти поля могут содержать любые управляющие символы, включая NUL (%d00 ABNF).

В некоторых языках программирования (прежде всего, C и C++) символ NUL (%d00 ABNF) традиционно имеет специальное назначение, применяясь в качестве завершающего символа строки. В большинстве реализаций этих языков предполагается, что строка, использующаяся в качестве значения переменной, заканчивается на первом же встреченном NUL. В первую очередь, это ограничение относится к библиотекам времени выполнения таких языков, но часто переносится на программы и скриптовые языки, написанные на них. Таким образом, символы NUL должны рассматриваться с большой осторожностью и использоваться надлежащим образом. Злоумышленник может намеренно вставлять символы NUL, чтобы скрыть информацию, находящуюся после них. Неправильное обращение с символами NUL также может привести к тому, что криптографические контрольные суммы, передаваемые внутри сообщения, станут недействительными.

Многие популярные текстовые редакторы также написаны на языках с этим ограничением. При записи текстовых файлов целесообразно кодировать символы NUL, записывая их с помощью экранирующих последовательностей. Если сохранить текст, содержащий символы NUL без кодирования, то файл может стать нечитаемым.

Другие управляющие символы также могут вызывать проблемы. Например, злоумышленник может намеренно вставлять символы BACKSPACE, чтобы сделать нечитаемыми какие-либо части сообщения Syslog. Аналогичные проблемы существуют почти для всех управляющих символов.

Наконец, поврежденные последовательности UTF-8 могут быть использованы злоумышленником для инъекции управляющих символов ASCII.

Настоящая спецификация позволяет приложениям Syslog переформатировать полученные управляющие символы. Среди прочего, риски безопасности, связанные с управляющими символами, были важной движущей силой, стоящей за принятием такого решения. Источникам сообщений рекомендуется принять во внимание, что использование любой другой кодировки, кроме ASCII и UTF-8, может привести к повреждению сообщения получателем, пытающимся отфильтровать управляющие символы ASCII.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.