Как проверить, что веб-сервер регистрируется для Внедрения SQL?

Существует много метрик, которые Вы могли контролировать.

Некоторые общие метрики:

  • Использование "кучи" + пермское использование Генерала
  • Использование ЦП для каждого процесса
  • Количество Полного GCs в течение данного времени
  • Отношение между временем работы JVM и временами GC

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

Более специализированный:

  • Количество доступов
  • Количество доступных и занятых потоков
  • Количество доступного и занятого DB (или другой бэкенд) соединения

Я изображаю часть в виде графика этих чисел с pnp4nagios в нашей системе контроля. Это не разработано для создания отчетов, но Вы могли также использовать графики для создания отчетов

1
задан 11 April 2013 в 05:58
3 ответа

Если в журналах вашего веб-сервера регистрируются параметры запроса, выполните поиск известного SQL (например, SELECT ) в журналах.

Если они не регистрируют запрос параметры, то вы вряд ли что-нибудь найдете в журналах, скорее вам придется искать шаблоны - например, повторяющийся URL-адрес, который обычно не повторяется.

1
ответ дан 4 December 2019 в 00:43

Я использовал эту командную строку Linux для определения возможных SQL-инъекций:

egrep -i '\bUNION\b|\bSELECT\b|\bCHAR\b' $access_log

Вы также можете добавить другие ключевые термины, но это те, которые я нашел в своих журналах.

Чтобы сгенерировать список ошибочных IP-адресов, придумайте более интересный вариант:

egrep -i '\bUNION\b|\bSELECT\b|\bCHAR\b' $access_log | sed -n 's/\([0-9\.]\+\).*/\1/p' | sort | uniq -c

Подсчитывает ошибочные IP-адреса по количеству экземпляров:

    335 160.153.153.31
   1197 175.138.67.67
    508 76.72.165.79
    208 92.60.66.184
    111 95.143.64.185
1
ответ дан 4 December 2019 в 00:43

Я использую тот же подход, что и Кен, но предпочитаю awk .

$ access_logs='/var/log/httpd/*access*log*'
$ grep -E -hi '\bUNION\b|\bSELECT\b|\bCHAR\b' $access_logs | awk '{print $1}' | sort | uniq -c | sort -nr | head

Чтобы получить список 10 лучших IP-адресов. Это также будет искать все старые журналы доступа, сжатые с помощью gzip с помощью logrotate .

-1
ответ дан 4 December 2019 в 00:43

Теги

Похожие вопросы