Как и большинство программистов, я стараюсь максимально точно программировать свои приложения, но это мы знаем, что не гарантирует безопасность на 100%. Поэтому я считаю, что также целесообразно иметь методы мониторинга, если мы можем подвергнуться нападению. Так что это мой вопрос.
(Мои сайты сделаны с PHP и MySQL)
В случае внедрения SQL я думаю, что это можно сделать двумя способами, но если есть другие способы, я также хотел бы их узнать.
Анализ журналов доступа/ошибок. Кто-нибудь есть или знает сценарий, который адекватно анализирует журналы доступа (apache) для обнаружения возможных атак? И сообщите администратору автоматически со всеми подробностями.
Анализ параметров HTTP в реальном времени. Это будет скрипт, который анализирует в реальном времени содержимое, переданное GET/POSt, и уведомляет (например, по электронной почте) администратору веб-сайта
Например, я не очень разбираюсь в атаках SQLi, но я думаю, что это обычное для строк "SELECT", "UINON",... (Others?), Чтобы появляться в строках запроса и параметрах.
Таким образом, мы можем проанализировать атаку и посмотреть, удастся она или нет, а затем предпринять последующие действия.
Спасибо за внимание!
Отредактировано:
Я создал простую систему для анализа файлов доступа Apache access_log и передачи результатов по электронной почте. Что подробно описано в этом вопросе:
Linux bash для итерации файлов apache access_log и отправки почты
Кроме того, еще один использует AWK. Единственный ресурс, который я нашел, связан с этим:
https://www.unix.com/shell-programming-and-scripting/248420-sql-injection-detection.html
(Но я не смог сделать это в моем случае)
О, парень.
Хорошо, с чего начать?
Во-первых, помните, что плохие хакеры обычно финансово мотивированы. Вы знаете, что ваш сайт был введен, если вы однажды утром просыпаетесь до красного сообщения об ошибке от Chrome или Firefox, и вы все равно открываете его, чтобы найти, что ваш сайт теперь входит в число наиболее популярных мест, где можно найти бесплатные круизы и виагру онлайн.
Сайты, которые хорошо оценивают SEO, скорее всего, будут взломаны, чем сайты, которые этого не делают. Больше пользователей означает больше воздействия. Защищенные паролем сайты не могут быть взломаны так часто, но сама защита паролем необязательно означает добавленную безопасность. Если вы уязвимы, вы уязвимы, и вам нужно быть на высоте.
Прежде всего, не забудьте фильтровать переменные. Никогда не доверяйте всему, что приходит из браузера. ЭТО ВСЕ ПОДТВЕРЖДАЮ. Это означает фильтрацию всего, что считается супер-глобальным, GET POST, REQUEST и т.д. Я бы даже не доверял сессиям, честно говоря. Отфильтруйте все. Подробнее об этом можно узнать здесь: http://php.net/manual/en/function.filter-var.php
Что-то еще, о чем нужно подумать, это загрузка файлов. Плохие парни любят загружать файлы и захватывать ваш сервер. Наиболее распространенным методом является использование файлов, замаскированных под изображения. Вы захотите переделать все изображения, которые входят. GD Works, но мне нравится Imagick лучше, лично, больше вариантов. Подробнее об этом здесь: http://php.net/manual/en/book.imagick.php. Вы также захотите убедиться, что ваш сайт не может загружать изображения или любые другие типы файлов со страниц, которые вы явно не обозначают форму или загружают страницы. Вы были бы шокированы тем, как часто я вижу сайты, которые могут загружаться из индекса, это безумие.
Другой метод, который вы можете развернуть для этого, - это использовать ваш php ini для установки глобального include и открыть любой файл в массиве $ _FILES, который входит. Откройте первый миллион пробелов в файле и сканируйте его для зарезервированных слов PHP, и unix shell scripting. Если вы найдете его, убить загрузку, выйти или умереть, что бы вы там ни делали.
У Apache есть настройка для судебных журналов. Судебные журналы будут захватывать все материалы GET и POST, но проблема с ним и причина, по которой он не отображается по умолчанию, заключается в том, что ваш журнал становится большим и быстрым. Вы можете прочитать здесь: https://httpd.apache.org/docs/2.4/mod/mod_log_forensic.html
Наконец, вы захотите оценить свой сайт для уязвимостей инъекций и межсайтового скриптинга. Межсайтовый скриптинг - это не проблема, которую он когда-то был, учитывая способ создания браузеров в наши дни. Все те маленькие детали, которые делают жизнь сложнее для нас, как разработчиков, делают нас более безопасными.
Но вы хотите проверить уязвимости SQL, особенно если вы пишете код с нуля. Есть несколько достаточно плагинов для Chrome, которые упрощают ручное тестирование.
Для Firefox есть скрипт https://addons.mozilla.org/en-US/firefox/addon/scrippy/?src=search
Надеюсь, это поможет. Удачи.
Sites that score well with SEO are more likely to be hacked than sites that do not. More users means more exposure.
Большинство атак совершаются роботами, которые ищут все виды уязвимостей, информацию о веб-сайте и т. Д. Таким образом, все веб-сайты являются объективными, но мы можем использовать эти атаки в качестве аудита безопасности. Это мы ждем уведомлений и проверяем, что могло произойти в атаке. Большое спасибо за все эти замечания по безопасности. Без сомнения, имеет большое значение.
Поэтому я считаю, что также целесообразно иметь методы мониторинга, если мы можем подвергнуться нападению.
Самая большая трата времени.
ЛЮБОЙ сайт получает "атакует" 100% времени. Есть свободно доступные сценарии, которые позволяют любому глупому школьнику сканировать весь интернет, случайно исследуя сайты. Вы будете скучать уже на следующий день после очистки этих журналов вашей системы обнаружения.
На вашем месте я бы инвестировал в защиту. Другие векторы, чем вы могли придумать. Для примера все недавние нарушения, которые я был свидетелем, были выполнены путем кражи паролей ftp, хранящихся на ПК для веб-мастеров. И я могу заверить вас, что существует гораздо больше векторов атак, чем тупое внедрение SQL. Это простейшая вещь для защиты от нее, с двумя простыми правилами: