РЕДАКТИРОВАТЬ: Извините, мой вопрос явно не был ясен. Я не хочу сообщать о попытках атак на сервер изнутри; у нас уже есть системы, которые регистрируют. записывать и сообщать об этой деятельности.
Я очень хотел сообщить об атаках интернет-провайдеру злоумышленника или чему-то еще.
Исходный вопрос:
Наши сайты невосприимчивы к SQL-инъекции (AFAIK!), Но, конечно, мы все еще регулярно становимся мишенями.
Есть ли способ автоматизировать отчетность о попытках атак - обратный поиск DNS и т. Д.?
Хотя я думаю, что это имеет смысл только в том случае, если в целом это принесет пользу сообществу.
Я полагаю, что то же самое и со всеми другими атаками, которые мы видим - зондирование широко открытых BBS, MySQL, PHPAdmin и т. Д.
Пожертвуйте свои журналы SANS! У них есть клиент для большинства брандмауэров, который извлекает журналы и отправляет их в базу данных DShield.
Либо все поняли что-то еще, либо я понял, но насколько я понимаю, вы пытаетесь сообщить о людях, пытающихся внедрить SQL, своим интернет-провайдерам.
Обычно это тупик, и вам лучше просто заблокировать пользователей, пытающихся атаковать, поскольку большинство компьютеров, выполняющих атаки, обычно не принадлежат `` хакеру '', и вместо этого они могут быть скомпрометированными машинами или кем-то, кто злоупотребляет веб-сайтом который предлагает бесплатное сканирование уязвимостей или что-то подобное.
У большинства интернет-провайдеров есть адрес электронной почты abuse@ispname.com, чтобы сообщать о таких вещах. Если вы можете отменить поиск имени интернет-провайдера по IP, я бы отправил информацию туда.
Я понимаю, что с помощью SQL-инъекции с сайтов: (а) у вас есть несколько веб-форм, (б) есть серверная часть SQL, (в) вы используете методы, которые предотвращают неправильную интерпретацию пользовательского ввода как SQL (параметризованные запросы, и т.д.)
Но все же вы хотели бы обнаруживать попытки SQL-инъекции. Хорошо.
Один из стандартных способов попробовать SQL-инъекцию - это попытаться найти поле ввода, которое включается в SQL-запрос, с помощью вставки строки. Например:
snprintf (buf, Dimensionof (buf), "ВЫБРАТЬ предел_калории ИЗ user_diets ГДЕ user_firstname = '% s' И user_surname = '% s'", имя, фамилия);
куда фамилия и Имя нефильтрованные входные данные из веб-формы. В этом примере пользователь может указать имя Имязнак равноJohnny'
, фамилиязнак равно'-';DROP DATABASE;--
Результат sprintf:
ВЫБЕРИТЕ ограничение калорий из user_diets, ГДЕ user_firstname = 'Johnny' 'AND user_surname =' '-'; DROP DATABASE; - '
Поскольку '' (две одинарные кавычки) в SQL интерпретируется как экранированный ', который является частью строки, мы «взломали» ограничитель строки в предполагаемом исходном операторе. Это позволяет нам преобразовать то, что позже должно было быть строкой, фамилия, в команду.
Короче говоря, ищите людей, которые вводят поля, которые:
Кроме того, вы можете рассмотреть ту же эвристику после, например, декодирования ввода UTF-8. Или декодирование UTF-8 дважды. Тестировщик на проникновение будет думать об ошибках, которые могут быть в вашем коде, поэтому они будут пробовать вводить данные, которые кажутся бессмысленными - например, одинарные кавычки в двойной кодировке UTF-8.
Также ищите "
и другие последовательности HTML-сущностей.
Вы можете выполнить поиск на arxiv.org и найти несколько статей, в которых подробно описаны определенные виды атак: межсайтовый скриптинг, SQL-инъекция, изменение URL. Чтение некоторых статей приведет вас к большему.
Играя в адвоката дьяволов, почти всегда бессмысленно тратить время на сообщения об этих машинах. Большинство атак исходят от зомби-машин, о которых пользователь даже не подозревает. Таким образом, даже если вы сообщите об этом их интернет-провайдеру, а его интернет-провайдер отключит их соединение до тех пор, пока они не очистят свою машину, они, скорее всего, снова заразятся позже, или даже если они этого не сделают, тот факт, что вы удалили 1 машину-зомби из Интернета, является бессмысленное достижение.
Единственный раз, когда я бы сказал, что стоит сообщать об этих попытках, это если машина является частью размещенной сети, такой как ThePlanet. Удаление скомпрометированного сервера из Интернета - это большое дело, особенно если владелец сервера может даже не осознавать, что он скомпрометирован. Другое отличие - это масштаб атак, на которые способен сервер по сравнению с домашним компьютером.
afrinic.net, apnic.net, arin.net, jpnic.net, krnic.net, lacnic.net, ripe.net или twnic.net имеют веб-сайты, на которых вы можете выполнить поиск whois. Я обычно начинаю с американского (arin) NIC. Вы также можете скачать whois-клиент. Я использую GNU JWHOIS. Все нормально. Кроме того, можно также получить некоторую информацию, используя PING -a -n 1 команда. Например: 6.127.6.109.rev.sfr.net