Недостатки безопасности в коде с помощью инструмента veracode - PullRequest
2 голосов
/ 26 июля 2011

Я запустил мое приложение для обеспечения безопасности в инструменте veracode.И всякий раз, когда инструмент находит какую-либо запись в журнале, он обнаруживает ошибку в коде
И ошибка говорит ниже цитата

Неправильная нейтрализация вывода для журналов

Описание

Вызов функции может привести к атаке подделки журнала.Запись неанизированных пользовательских данных в файл журнала позволяет злоумышленнику подделывать записи журнала или внедрять вредоносный контент в файлы журнала.Поврежденные файлы журнала могут использоваться для отслеживания следов атакующего или в качестве механизма доставки для атаки на утилиту просмотра или обработки журнала.Например, если веб-администратор использует браузерную утилиту для просмотра журналов, возможна атака с использованием межсайтовых сценариев. **

В моих журналах я печатаю xml, полученный из другого интерфейсаТам нет GUI, связанный с приложением, так как я могу нейтрализовать этот недостаток.

Пожалуйста, дайте мне знать, если это не тот форум, чтобы поднять этот вопрос.Спасибо

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Таким образом, есть две проблемы с сетью при сбросе ненадежных данных в файлы журналов.

Во-первых, разделение записей (аналогично разделению заголовков HTTP).Ненадежный ввод вставляет разрыв строки (или аналогичный, в зависимости от формата файла журнала), за которым следуют полностью поддельные записи.

Во-вторых, если вы просматриваете журналы в веб-браузере с только что сброшенным текстом журналав, то вы открыты для атак XSS.Это, например, использовалось, чтобы выяснить, какие браузерные скрипты используются детишками (Opera была довольно популярной).

Итак, рассматривайте журналы как другие форматы, подверженные атакам с использованием инъекций (HTML, XML, SQL, HTTP заголовкитак далее).Вы должны убедиться, что вы добавляете белый список возможных символов.Вы можете написать методы для этого и очистить входные данные перед каждым вызовом журнала.Лучше написать регистратор, который выводит безопасный текст для любого ввода (даже если он содержит специальные символы, управляющие символы, недопустимые суррогатные пары и т. Д.).

1 голос
/ 29 июля 2011

Это все хорошее руководство.Существуют также прямые ссылки на конкретную информацию о недостатках из OWASP и других источников в представлении Triage Flaws на платформе Veracode.

1 голос
/ 26 июля 2011

Проблема, по-видимому, неанимированные предоставленные пользователем данные.Вы должны очистить входящие данные, чтобы предотвратить такие вещи, как инъекция SQL или атаки сценариев, заменив значимые символы, & -> & и т. Д.

Вы также должны сделать очевидным, что запись журнала содержит внешние,и, возможно, искажает или вводит в заблуждение данные.Возможно, что-то столь же простое, как

String logText = "User " + userID + "supplied: >>" + userData + "<<";

Таким образом, становится ясно, что принадлежит вам, а что - от внешнего пользователя.

...