Программы для вебмастеров проверка на уязвимость. Сканирование на уязвимости: как проверить устройство и обезопасить себя от потенциальных угроз. RPVS — во Франции также есть хакеры

Программы для вебмастеров проверка на уязвимость. Сканирование на уязвимости: как проверить устройство и обезопасить себя от потенциальных угроз. RPVS — во Франции также есть хакеры

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

Тестирование безопасности включает очень много различных инструментов и задач. В этой статье мы постараемся охватить все аспекты поиска уязвимостей на сайте. С помощью этой инструкции вы сможете сохранить свой ресурс в безопасности.

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

  • Разведка - поиск и сборка информации о вашей сети или серверах;
  • Сканирование - на этом этапе нужно проверить сайт на уязвимости опираясь на собранную информацию;
  • Эксплуатация - этот шаг необязательный и не всегда нужный тестировщикам на проникновение. Это необходимо, если вам нужно показать реальную опасность уязвимостей;
  • Исправление - на этом этапе нужно исправить все найденные уязвимости на вашем сайте.

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

Разведка

То, что это ваша система ничего не значит, вам все равно нужно узнать какую информацию о ней могут узнать другие люди. Для этого можно применять несколько инструментов:

nmap - это один из самых популярных инструментов для сканирования сетей. С помощью него вы можете посмотреть какие сервисы запущены на сервере веб-сайта, какие порты они используют их версии, и даже версию операционной системы. Чтобы посмотреть открытые порты на своей машине выполните такую команду в терминале Kali Linux:

nmap -sS 192.168.91.249

Здесь 192.168.91.249 - это ip адрес вашего сайта. Это команда только выведет открытые порты и названия сервисов. Вы можете получить более подробную информацию, например, уже на этом этапе можно собрать много информации о системе. Например, здесь вы можете видеть, что на машине запущен SSH сервер, веб-сервер, службы обмена файлами Samba и прокси сервер на порту 3128. Все они могут быть потенциально уязвимы.

Сканер Nmap позволяет копнуть глубже, с помощью более интенсивного сканирования. Для этого используйте опцию -A:

nmap -A 192.168.91.62

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

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

  • whois - с помощью этого сервиса вы можете узнать общедоступную информацию о домене, регистратора, владельца и другую контактную информацию;
  • recon-ng - полезный инструмент для анализа, который поставляется вместе с Kali Linux;
  • Maltego Chlorine - это очень популярный инструмент с открытым исходным кодом, предназначенный для сбора информации с открытых источников;
  • Netcraft - полезный инструмент, позволяющий найти поддомены сайта;
  • hackertarget.com/reverse-ip-lookup - позволяет узнать какие еще сайты работают на вашем ip адресе.

После того, как вы завершили сбор информации на этапе разведки, нужно перейти к сканированию, непосредственно выполнить поиск уязвимостей на сайте Kali Linux.

Сканирование

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

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

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

WPScan - это проект с открытым исходным кодом, написанный на Ruby специально для сканирования WordPress. Он очень прост в использовании и может быть полезным для сайтов, которые используют большое количество плагинов или не обновляются. Утилите не нужен исходный код, она выполняет сканирование удаленно.

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

Burp Suite - это очень мощная программа для поиска уязвимостей на сайте или в веб приложениях. Этот инструмент работает только через веб-браузер. Утилита позволяет проверить все формы, которые есть на сайте, проверить отправку разных заголовков, посмотреть ответы и запросы браузера, выполнить активное сканирование URL, выполнить статический анализ кода JavaScript, а также выполнить поиск XSS уязвимостей на сайте. Это отличный инструмент, но он может показаться сложным.

https://youtu.be/M_h_absC5yE

SQLMap - программа для поиска sql уязвимостей сайта. Вы можете найти все возможные места, где могут быть выполнены SQL инъекции. Например, если вы предполагаете, что в параметре id может быть sql инъекция, используйте такую команду:

sqlmap -u http://example.com/?id=1 -p id

Программа будет выполнять тестирование для различных типов баз данных, поэтому вы можете указать только нужную:

sqlmap --dbms=MySQL -u http://example.com/?id=1 -p id

С помощью этой команды вы можете проверить различные поля, и указывать различные параметры, такие как базы данных, таблицы или пароли.

Эксплуатация

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

  • SQLMap - очень эффективный инструмент для поиска sql уязвимостей и их эксплуатации;
  • Burp Suite - инструмент для поиска XSS уязвимостей и эксплуатации;
  • Metasploit - эксплуатация уязвимостей в системе.

Metasploit - это целая среда для проведения тестирования на проникновение, в которой содержится множество готовых эксплойтов. Вы можете найти эксплойты для установленных плагинов или обнаруженных на первом этапе сервисов. Мы более подробно рассмотрим как пользоваться Metasploit в одной из следующих статей.

Исправление

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

Выводы

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

Процесс под названием сканирование уязвимостей представляет собой проверку отдельных узлов или сетей на потенциальные угрозы.

А необходимость проверить безопасность возникает у ИТ-специалистов достаточно часто – особенно, если речь идёт о крупных организациях, обладающих ценной информацией, которая может понадобиться злоумышленникам.

Не стоит пренебрегать таким сканированием и администраторам небольших сетей – тем более что в 2017-м году серьёзным атакам со стороны запущенных хакерами масштабных вирусов-шифровальщиков подверглись сотни тысяч компьютеров.

Применение сканеров уязвимости

Для сканирования сетей на слабые места в системах их безопасности специалисты по информационной безопасности применяют соответствующее программное обеспечение.

Такие программы называются сканерами уязвимости.

Принцип их работы заключается в проверке приложений, которые работают на компьютерах сети, и поиске так называемых «дыр», которыми могли бы воспользоваться посторонние для получения доступа к важным сведениям.

Грамотное использование программ, способных обнаружить уязвимость в сети, позволяет ИТ-специалистам избежать проблем с украденными паролями и решать такие задачи:

  • поиск попавшего на компьютер вредоносного кода;
  • инвентаризация ПО и других ресурсов системы;
  • создание отчётов, содержащих информацию об уязвимостях и способах их устранения.

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

Механизмы сканирования

Сканирование на уязвимости выполняется при помощи двух основных механизмов – сканирования и зондирования.

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

Эту методику называют «логическим выводом», а её принципы заключаются в выполнении следующих шагов:

1. Идентификация портов, открытых на каждом из устройств в сети;

2. Сбор заголовков, связанных с портами и найденных в процессе сканирования;

3. Сравнение полученных заголовков со специальной таблицей, содержащей правила определения уязвимостей;

4. Получение выводов о наличии или отсутствии в сети проблем с безопасностью.

Процесс под названием «зондирование» представляет собой методику активной проверки, позволяющую практически со стопроцентной гарантией убедиться в том, есть ли в сети уязвимости или нет.

Она отличается сравнительно небольшой по сравнению со сканированием скоростью, однако в большинстве случаев является более точной.

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

Главным преимуществом второго варианта является не только подтверждение тех проблем, которые могут быть обнаружены простым сканированием, но и обнаружение проблем, поиск которых невозможен с помощью пассивной методики. Проверка выполняется с помощью трёх механизмов – проверки заголовков, активных зондирующих проверок и имитации атак.

Проверка заголовков

Механизм, название которого на английском языке звучит как «banner check» , состоит из целого ряда сканирований и даёт возможность получить определённые выводы на основе данных, передаваемых программе-сканеру в ответ на его запрос.

Примером такой проверки может стать сканирование заголовков с помощью приложения Sendmail , позволяющее и определить версии программного обеспечения, и убедиться в наличии или отсутствии проблем.

Методика считается самой простой и быстрой, но имеет целый ряд недостатков:

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

Между тем, несмотря на определённые минусы и отсутствие гарантии обнаружения «дыр» в системе, процесс проверки заголовков можно назвать не только первым, но и одним из главных этапов сканирования. Тем более что его использование не нарушает работу ни сервисов, ни узлов сети.

Активные зондирующие проверки

Методика, известная ещё и как «active probing check», основана не на проверках версий ПО в заголовках, а на анализе и сравнении цифровых «слепков» программ с информацией об уже известных уязвимостях.

Принцип её работы немного похож на алгоритм антивирусных приложений , которые предполагает сравнение отсканированных фрагментов с вирусными базами.

К той же группе методик относится и проверка даты создания сканируемого ПО или контрольных сумм, позволяющая убедиться в подлинности и в целостности программ.

Для хранения сведений об уязвимостях применяются специализированные базы данных, содержащие ещё и сведения, позволяющие устранить проблему и снизить риск угрозы постороннего доступа к сети.

Эта информация иногда применяется и системами анализа защищённости, и программным обеспечением, в задачи которого входит обнаружение атак. В целом, методика активных зондирующих проверок, применяемая такими крупными компаниями как ISS и Cisco, работает значительно быстрее других способов – хотя реализовать её труднее, чем проверку заголовков.

Имитация атак

Ещё один метод на английском языке называется «exploit check» , что можно перевести на русский как «имитация атак» .

Выполняемая с его помощью проверка тоже является одним из вариантов зондирования и основана на поиске дефектов программ с помощью их усиления.

Методика имеет такие особенности:

  • некоторые «дыры» в безопасности нельзя обнаружить до тех пор, пока не сымитировать настоящую атаку против подозрительных сервисов и узлов;
  • программы-сканеры проверяют заголовки программного обеспечения во время фальшивой атаки;
  • при сканировании данных уязвимости обнаруживаются значительно быстрее, чем в обычных условиях;
  • имитируя атаки, можно найти больше уязвимостей (если они были изначально), чем при помощи двух предыдущих методик – при этом скорость обнаружения достаточно высокая, однако пользоваться таким способом не всегда целесообразно;
  • ситуации, которые не позволяют запускать «имитацию атак», делятся на две группы – угроза появления проблем с обслуживанием проверяемого программного обеспечения или принципиальная невозможность атаковать систему.

Нежелательно пользоваться методикой, если объектами проверки являются защищённые сервера с ценной информацией.

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

В этом случае желательно воспользоваться другими способами проверки – например, активным зондированием или проверкой заголовков.

Между тем, в списке уязвимостей есть и такие, которые не получится обнаружить без попыток сымитировать атаки – к ним относят, например, подверженность атакам типа «Packet Storm» .

По умолчанию, такие методы проверки отключены в системе.

Пользователю придётся включать их самостоятельно.

К программам-сканерам, которые используют третий метод сканирования на уязвимости, относят системы типа Internet Scanner и CyberCop Scanner . В первом приложении проверки выделяются в отдельную категорию «Denial of service» . При использовании любой функции из списка программа сообщает об опасности выхода из строя или перезагрузки сканируемого узла, предупреждая о том, что ответственность за запуск сканирования лежит на пользователе.

Основные этапы проверки уязвимостей

Большинство программ, выполняющих сканирование на уязвимости, работает следующим образом:

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

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

3. Подтверждает найденные уязвимости, применяя специальные методики – имитацию определённого типа атак, способных доказать факт наличия или отсутствия угрозы.

4. Генерирует отчёты на базе собранных при сканировании сведений , описывая уязвимости.

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

Отличия в работе разных программ

Некоторые сканеры разделяют уязвимости по уровню угрозы.

Например, система NetSonar делит их на сетевые, способные воздействовать на роутеры, поэтому более серьёзные, и локальные, влияющие на рабочие станции.

Internet Scanner разделяет угрозы на три степени – низкую, высокую и среднюю.

Эти же два сканера имеют ещё несколько отличий.

С их помощью отчёты не только создаются, но и разбиваются на несколько групп, каждая из которых предназначена для конкретных пользователей – от администраторов сети до руководителей организации.

Причём, для первых выдаётся максимальное количество цифр, для руководства – красиво оформленные графики и диаграммы с небольшим количеством деталей.

В составе создаваемых сканерами отчётов есть рекомендации по устранению найденных уязвимостей.

Больше всего такой информации содержится в данных, которые выдаются программой Internet Scanner, выдающей пошаговые инструкции по решению проблемы с учётом особенностей разных операционных систем.

По-разному реализован в сканерах и механизм устранения неисправностей. Так, в сканере System Scanner для этого существует специальный сценарий, запускаемый администратором для решения проблемы. Одновременно происходит создание второго алгоритма, который может исправить сделанные изменения, если первый привёл к ухудшению работы или выходу из строя отдельных узлов. В большинстве других программ-сканеров возможность вернуть изменения назад не существует.

Действия администратора по обнаружению уязвимостей

Для поиска «дыр» в безопасности администратор может руководствоваться тремя алгоритмами.

Первый и самый популярный вариант – проверка сети на наличие только потенциальных уязвимостей. Она позволяет предварительно ознакомиться с данными системы, не нарушая работу узлов и обеспечивая максимальную скорость анализа.

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

Способ №3 предполагает использование всех трёх механизмов (причём, с правами и администратора, и пользователя) и попытку устранить уязвимости на отдельных компьютерах. Из-за низкой скорости и риска вывести из строя программное обеспечение применяют этот метод реже всего – в основном, при наличии серьёзных доказательств наличия «дыр».

Возможности современных сканеров

Основными требованиями к программе-сканеру, обеспечивающей проверку системы и её отдельных узлов на уязвимости, являются:

  • Кроссплатформенность или поддержка нескольких операционных систем. При наличии такой особенности можно выполнять проверку сети, состоящей из компьютеров с разными платформами. Например, с несколькими версиями Windows или даже с системами типа UNIX.
  • Возможность сканировать одновременно несколько портов – такая функция заметно уменьшает время на проверку.
  • Сканирование всех видов ПО, которые обычно подвержены атакам со стороны хакеров. К такому программному обеспечению относят продукцию компании Adobe и Microsoft (например, пакет офисных приложений MS Office).
  • Проверку сети в целом и отдельных её элементов без необходимости запускать сканирование для каждого узла системы.

Большинство современных сканирующих программ имеют интуитивно понятное меню и достаточно легко настраиваются в соответствии с выполняемыми задачами.

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

После получения отчётов сканер позволяет администратору запускать исправление угроз.

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

Сканеры уязвимостей сети

Ассортимент программ-сканеров на современном рынке ПО достаточно большой.

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

Для оценки возможностей таких приложений стоит рассмотреть характеристики и особенности пяти самых популярных вариантов.

GFI LanGuard

Производитель GFI Software считается одним из лидеров на мировом рынке информационной безопасности, а его продукция входит в рейтинги самых удобных и эффективных при проверке на уязвимости программ.

Одним из таких приложений, обеспечивающих безопасность сети и отдельных компьютеров, является GFI LanGuard, к особенностям которого относят:

  • быструю оценку состояния портов в системе;
  • поиск небезопасных настроек на компьютерах сети и запрещённых для установки программ, дополнений и патчей;
  • возможность сканирования не только отдельных компьютеров и серверов, но и входящих в систему виртуальных машин и даже подключённых смартфонов;
  • составление по результатам сканирования подробного отчёта с указанием уязвимостей, их параметров и способов устранения;
  • интуитивно понятное управление и возможность настройки автоматической работы – при необходимости, сканер запускается в определённое время, а все исправления выполняются без вмешательства администратора;
  • возможность быстрого устранения найденных угроз, изменения настроек системы, обновления разрешённого ПО и удаления запрещённых программ.

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

Эта особенность и другие преимущества GFI LanGuard позволяют ему находиться на верхних строчках рейтингов программ для поиска сетевых уязвимостей.

При этом стоимость использования сканера сравнительно небольшая и доступна даже небольшим компаниям.

Nessus

Программу Nessus впервые выпустили 20 лет назад, но только с 2003-го года она становится платной.

Монетизация проекта не сделала его менее популярным – благодаря эффективности и скорости работы каждый шестой администратор в мире применяет именно этот сканер.

К преимуществам выбора Nessus относят:

  • постоянно обновляемую базу уязвимостей;
  • простую установку и удобный интерфейс;
  • эффективное обнаружение проблем с безопасностью;
  • использование плагинов, каждый из которых выполняет свою задачу – например, обеспечивает сканирование ОС Linux или запускает проверку только заголовков.

Дополнительная особенность сканера – возможность использования тестов, созданных пользователями с помощью специального программного обеспечения. В то же время у программы есть и два серьёзных недостатка. Первый – возможность выхода из строя некоторых программ при сканировании с помощью метода «имитации атак», второй – достаточно высокая стоимость.

Symantec Security Check

Программа Security Check является бесплатным сканером компании Symantec.

Среди её функций стоит отметить поиск не только уязвимостей, но и вирусов – включая макровирусы, трояны и интернет-черви. Фактически, приложение состоит из 2 частей – сканера Security Scan, обеспечивающего безопасность сети, и антивируса Virus Detection.

К преимуществам программы относят простую установку и возможность работы через браузер. Среди минусов отмечают невысокую эффективность – универсальность продукта, позволяющая ему искать ещё и вирусы, делает его не слишком подходящим для проверки сети. Большинство пользователей рекомендует применять этот сканер только для дополнительных проверок.

XSpider

Сканер XSpider выпускается компанией Positive Technologies, представители которой утверждают, что программа не только обнаруживает уже известные уязвимости, но способна найти ещё не созданные угрозы.

К особенностям приложения относят:

  • эффективное обнаружение «дыр» в системе;
  • возможность удалённой работы без установки дополнительного программного обеспечения;
  • создание подробных отчётов с советами по устранению проблем;
  • обновление базы уязвимостей и программных модулей;
  • одновременное сканирование большого количества узлов и рабочих станций;
  • сохранение истории проверок для дальнейшего анализа проблем.

Также стоит отметить, что стоимость использования сканера более доступна по сравнению с программой Nessus. Хотя и выше, чем у GFI LanGuard.

QualysGuard

Сканер считается многофункциональным и позволяет получить подробный отчёт с оценкой уровня уязвимости, времени на их устранение и уровень воздействия «угрозы» на бизнес.

Разработчик продукта, фирма Qualys, Inc., поставляет программу сотням тысяч потребителей, в том числе и половине крупнейших компаний мира.

Отличием программы является наличие облачного хранилища базы данных и встроенного набора приложений, что позволяет не только повысить безопасность сети, но и снизить расходы на её приведение различным требованиям.

Программное обеспечение позволяет сканировать корпоративные веб-сайты, отдельные компьютеры и сеть в целом.

Результатом сканирования становится отчёт, автоматически отсылаемый администратору и содержащий рекомендации по устранению уязвимостей.

Выводы

С учётом широкого ассортимента приложений для сканирования сети и её узлов на уязвимости, существенно облегчается работа администратора.

Теперь от него не требуется самостоятельно запускать все механизмы сканирования вручную – достаточно просто найти подходящее приложение, выбрать способ проверки, настроить и воспользоваться рекомендациями полученного отчёта.

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

SQL инъекция - это один из самых доступных способов взлома сайта.
Суть таких инъекций – внедрение в данные (передаваемые через GET, POST запросы или значения Cookie) произвольного SQL кода. Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно.

Как вычислить уязвимость, позволяющую внедрять SQL инъекции?

Довольно легко. Например, есть тестовый сайт test.ru . На сайте выводится список новостей, с возможностью детального просомтра. Адрес страницы с детальным описанием новости выглядит так: test.ru/?detail=1 . Т.е через GET запрос переменная detail передаёт значение 1 (которое является идентификатором записи в табице новостей).

Изменяем GET запрос на?detail=1" или?detail=1" . Далее пробуем передавать эти запросы серверу, т.е заходим на test.ru/?detail=1 " или на test.ru/?detail=1 ".

Если при заходе на данные страницы появляется ошибка, значит сайт уязвим на SQL инъекции.

Пример ошибки, возникающей при проверке уязвимости

Возможные SQL инъекции (SQL внедрения)
1) Наиболее простые - сворачивание условия WHERE к истиностному результату при любых значениях параметров.
2) Присоединение к запросу результатов другого запроса. Делается это через оператор UNION.
3) Закомментирование части запроса.

Практика. Варианты взлома сайта с уязвимостью на SQL внедрения

Итак, у нас есть уже упоминавшийся сайт test.ru . В базе хранится 4 новости, 3 из которых выводятся. Разрешение на публикацию новости зависит от парметра public (если параметр содержит значение 1, то новость публикуется).

Список новостей, разрешённых к публикации

При обращении к странице test.ru/?detail=4 , которая должна выводить четвёртую новость появляется ошибка – новость не найдена.
В нашем случае новость существует, но она запрещена к публикации.

Но так как мы уже проверяли сайт на уязвимость и он выдавал ошибку БД, то пробуем перебирать возможные варианты запросов.
В адресной строке плюс (+) выполняет роль пробела, так что не пугайтесь

Тестирую следующие варианты:
test.ru/?detail=4+OR+1
test.ru/?detail=4+--
test.ru/?detail=4+UNION+SELECT+ *+FROM+news+WHERE+id=4

В итоге удача улыбнулась и два запроса (первый и третий) вернули нам детальное описание четвёртой новости

Разбор примера изнутри

За получение детального описания новости отвечает блок кода:
$detail_id=$_GET["detail"];
$zapros="SELECT * FROM `$table_news` WHERE `public`="1" AND `id`=$detail_id ORDER BY `position` DESC";

Мало того, что $detail_id получает значение без какой либо обработки, так ещё и конструкция `id`=$detail_id написана криво, лучше придерживаться `id`="$detail_id" (т.е сравниваемое значение писать в прямых апострофах).

Глядя на запрос, получаемый при обращении к странице через test.ru/?detail=4+OR+1

SELECT * FROM `news` WHERE `public`="1" AND `id`=4 OR 1 ORDER BY `position` DESC

Становится не совсем ясно, почему отобразилась 4-ая новость. Дело в том, что запрос вернул все записи из таблицы новостей, отсортированные в порядке убывания сверху. И таким образом наша 4-ая новость оказалась самой первой, она же и вывелась как детальная. Т.е просто совпадение.

Разбираем запрос, сформированный при обращении через test.ru/?detail=4+UNION+SELECT+*+FROM+news+WHERE+id=4 .

Тут название таблицы с новостями (в нашем случае это news) бралось логическим перебором.
Итак, выполнился запрос SELECT * FROM `news` WHERE `public`="1" AND `id`=4 UNION SELECT * FROM news WHERE id=4 ORDER BY `position` DESC . К нулевому результату первой части запроса (до UNION) присоединился результат второй части (после UNION), вернувшей детальное описание 4-ой новости.

Защита от SQL инъекций (SQL внедрений)

Защита от взлома сводится к базовому правилу «доверяй, но проверяй». Проверять нужно всё – числа, строки, даты, данные в специальных форматах.
Числа
Для проверки переменной на числовое значение используется функция is_numeric(n);, которая вернёт true, если параметр n - число, и false в противном случае.
Так же можно не проверять значение на число, а вручную переопределить тип. Вот пример, переопределяющий значение $id, полученное от $_GET["id_news"] в значение целочисленного типа (в целое число):
$id=(int)$_GET["id_news"];
Строки
Большинство взломов через SQL происходят по причине нахождения в строках «необезвреженных» кавычек, апострофов и других специальных символов. Для такого обезвреживания нужно использовать функцию addslashes($str);, которая возвращает строку $str с добавленным обратным слешем (\) перед каждым специальным символом. Данный процесс называется экранизацией.

$a="пример текста с апострофом " ";
echo addslashes($a); //будет выведено: пример текста с апострофом \"

Кроме этого существуют две функции, созданные именно для экранизации строк, используемых в SQL выражениях.
Это mysql_escape_string($str); и mysql_real_escape_string($str);.

Первая не учитывает кодировку соединения с БД и может быть обойдена, а вот вторая её учитывает и абсолютно безопасна. mysql_real_escape_string($str); возвращает строку $str с добавленным обратным слешем к следующим символам: \x00, \n, \r, \, ", " и \x1a .

Магические кавычки

Магические кавычки – эффект автоматической замены кавычки на обратный слэш (\) и кавычку при операциях ввода/вывода. В некоторых конфигурациях PHP этот параметр включён, а в некоторых нет. Для того, что бы избежать двойного экранизирования символов и заэкранизировать данные по-нормальному через mysql_real_escape_string($str);, необходимо убрать автоматические проставленные обратные слеши (если магические кавычки включены).

Проверка включённости магических кавычек для данных получаемых из GET, POST или Куков организуется через функцию get_magic_quotes_gpc(); (возвращает 1 – если магические кавычки включены, 0 – если отключены).

Если магические кавычки вкючены (т.е обратные слеши добавляеются) и такое встречается чаще, то их нужно убрать. Это делается через функцию stripslashes($str); (возвращает строку $str без обратных слешей у кавычек и прямых апострофов).

В закючении привожу код с полной экранизацией строк для записи в БД

If(get_magic_quotes_gpc()==1)
{
$element_title=stripslashes(trim($_POST["element_title"]));
$element_text=stripslashes(trim($_POST["element_text"]));
$element_date=stripslashes(trim($_POST["element_date"]));
}
else
{
$element_title=trim($_POST["element_title"]);
$element_text=trim($_POST["element_text"]);
$element_date=trim($_POST["element_date"]);
}

$element_title=mysql_real_escape_string($element_title);
$element_text=mysql_real_escape_string($element_text);
$element_date=mysql_real_escape_string($element_date);

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

Проверка на уязвимость сайта служит профилактирующей мерой против взлома сайта. По статистике с каждым годом увеличивается количество взломов сайтов. Повышенный интерес представляют сайты и блоги с большим количеством посетителей или публикующие на своих страницах свои успехи в заработке (финстрипы). Поэтому пренебрегать безопасностью своих проектов просто непозволительно.
Так как большая часть бесплатно распространяющихся CMS (WordPress, Joomla и др.) содержат различные уязвимости (дыры), поэтому безопасность сайтов на этих CMS недостаточна. Проверка на уязвимость сайта просто необходима и ее следует проводить регулярно.

Нужно всегда проверять свой сайт (после изменений в коде или очередного обновления cms) на уязвимость на специальных сервисах (find-xss.net ) или с помощью программ (XSpider , MaxPatrol — платные) тем более это не займет так много вашего времени, а пользы может принести немало. Бесплатная программа SQLFury проводит тест-проверка на уязвимость сайта от SQL инъекций.

Основные возможности программы-сканера SQLFury :

Поддержка баз данных

  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • Oracle

Извлечение данных из базы

  • Определяет версию базы данных
  • Определяет пользователя базы данных
  • Определяет всех пользователей из базы данных
  • Определяет имя базы данных
  • имена всех баз данных
  • имена таблиц
  • имена колонок

Атаки с помощью SQL инъекций являются одним из наиболее распространенных видов атак на сайты. Программа SQLFury первая бесплатная программа для возможности проверить сайт на уязвимость, причем очень быстрая (по ней примерно можно узнать и время загрузки проверяемого сайта). Для работы программы требуется установка приложения Adobe Air, поэтому работает на всех системах. Сделал портабельную версию программы, стало удобно пользоваться.

Еще один бесплатный инструмент для проверки сайта на уязвимость от SQL инъекций- плагин для Firefox- SQL Injection 1.2 . Плагин позволяет проверить весь контент на страницах, на наличие SQL инъекций. Рекомендуется всем проверится и если не пройдете тест, то срочно нужно подумать о безопасности своего сайта.

Проблема безопасности вебсайтов ещё никогда не стояла так остро, как в 21 веке. Конечно, это связано со всеобъемлющим распространением сети Интернет практически во всех отраслях и сферах. Каждый день хакеры и специалисты по по нескольку новых уязвимостей сайтов. Многие из них тут же закрываются владельцами и разработчиками, а какие-то остаются как есть. Чем и пользуются злоумышленники. А ведь с помощью взломанного сайта можно нанести большой вред как его пользователям, так и серверам, на которых он размещён.

Типы уязвимостей сайтов

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

  • XSS. Каждый сайт обладает небольшими формами. С их помощью пользователи вводят данные и получают какой-либо результат, проводят регистрации или отправляют сообщения. Подстановкой в эти формы специальных значений можно спровоцировать выполнение определённого скрипта, что может вызвать нарушение целостности сайта и компрометирование данных.
  • SQL-инъекция. Очень распространённый и эффективный способ получить доступ к конфиденциальным данным. Происходить это может либо через адресную строку, либо через формы. Процесс проводится путем подстановки значений, которые могут не отфильтровываться скриптами и выполнять запросы в базу данных. А при должных знаниях это может вызвать нарушение безопасности.
  • HTML-ошибки. Практически то же самое, что и XSS, но внедряется не скрипт-код, а HTML.
  • Уязвимость сайтов, связанная с размещением файлов и каталогов в местах по умолчанию. Например, зная структуру веб-страниц, можно добраться до кода административной панели.
  • Недостаточная настройка защиты операционной системы на сервере. Если таковая уязвимость присутствует, то у злоумышленника появляется возможность выполнить произвольный код.
  • Плохие пароли. Одна из самых очевидных уязвимостей сайтов — использование слабых значений для защиты своей учётной записи. Особенно, если она с правами администратора.
  • Используется при замене данных из памяти, вследствие чего можно внести свои коррективы. Встречается при задействовании несовершенного программного обеспечения.
  • Замена страниц веб-ресурса. Воссоздание точной копии сайта, зайдя на который пользователь может не заподозрить подвоха и ввести свои личные данные, через некоторое время переходящие злоумышленнику.
  • Отказ в обслуживании. В основном под этим термином понимают атаку на сервер, когда он получает большое количество запросов, которые не может обработать и попросту «падает» или же становится не способным обслужить настоящих пользователей. Уязвимость же заключается в том, что фильтр по IP не настроен должным образом.

Поиск уязвимостей сайта

Специалисты по безопасности проводят особый аудит веб-ресурсов на наличие ошибок и недочётов, способных привести к взлому. Такая проверка сайта называется пентестинг. В процессе анализируется исходный код, используемые CMS, наличие уязвимых модулей и много других интересных проверок.

SQL-инъекция

Этот тип проверки сайта устанавливает, фильтрует ли скрипт полученные значения при составлении запросов в базу данных. Провести простейшее тестирование можно и вручную. Как найти уязвимость SQL на сайте? Сейчас будет рассмотрено.

К примеру, имеется некий сайт мой-сайт.рф. На его главной странице есть какой-либо каталог. Зайдя в него, можно обнаружить в адресной строке что-то наподобие мой-сайт.рф/?product_id=1. Есть вероятность, что это и есть запрос в базу. Для поиска уязвимостей сайта сначала можно попробовать подставить в эту строку одинарную кавычку. В итоге должно быть мой-сайт.рф/?product_id=1". Если при нажатии клавиши "Ввод" на странице появилось сообщение об ошибке, то уязвимость имеется.

Теперь можно использовать различные варианты подбора значений. Применяются операторы объединения, исключения, комментирования и многие другие.

XSS

Данный тип уязвимости может быть двух видов — активный и пассивный.

Активный подразумевает внедрение участка кода в базу данных или прямо в файл на сервере. Он более опасен и непредсказуем.

Пассивный режим предусматривает заманивание жертвы на определённый адрес сайта, содержащего вредный код.

С помощью XSS злоумышленник может украсть Cookies. А в них могут содержаться важные данные пользователя. Ещё более ужасными последствиями обладает кража сессии.

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

Автоматизация процесса поиска

В сети можно найти массу интересных сканеров уязвимостей сайта. Какие-то поставляются отдельно, какие-то идут в комплекте с несколькими подобными и объединены в один общий образ, наподобие Kali Linux. Далее будет представлен обзор наиболее популярных средств для автоматизации процесса сбора информации об уязвимостях.

Nmap

Самый простой сканер уязвимостей сайта, который может показать такие подробности, как операционная система, используемые порты и сервисы. Типичный пример применения:

nmap -sS 127.0.0.1, где вместо локального IP нужно подставить адрес реального тестируемого сайта.

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

Вот несколько ключей nmap для более пристрастного сканирования:

  • -A. Агрессивное сканирование, которое вывалит очень много информации, но может занять значительное время.
  • -O. Пытается определить операционную систему, задействованную на сервере.
  • -D. Подменит IP адреса, с которых производится проверка, чтобы при просмотре логов сервера невозможно было определить, откуда произошла атака.
  • -p. Диапазон портов. Проверка сразу нескольких служб на наличие открытых.
  • -S. Позволит указать нужный IP адрес.

WPScan

Данная программа для сканирования сайта на уязвимость входит в дистрибутив Kali Linux. Ориентирован на проверку веб-ресурсов на системе управления контентом WordPress. Написана она на Ruby, поэтому запускается примерно так:

ruby ./wpscan.rb --help. Эта команда покажет все доступные ключи и литеры.

Для запуска простой проверки можно использовать команду:

ruby ./wpscan.rb --url какой-то-сайт.ру

В общем WPScan - довольно простая в использовании утилита для проверки своего сайта на "ВордПресс" на уязвимости.

Nikto

Сайта на уязвимости, которая также имеется в дистрибутиве Kali Linux. Обладает богатым функционалом при всей своей простоте:

  • сканирование по протоколам с HTTP и HTTPS;
  • обход многих встроенных инструментов обнаружения;
  • множественное сканирование портов, даже в нестандартном диапазоне;
  • поддержка использования прокси-серверов;
  • имеется возможность реализации и подключения плагинов.

Для запуска nikto нужно, чтобы в системе был установлен perl. Простейший анализ выполняется так:

perl nikto.pl -h 192.168.0.1.

Программе можно «скормить» текстовый файл, в котором перечислены адреса веб-серверов:

perl nikto.pl -h file.txt

Данная утилита поможет не только специалистам по безопасности для проведения пентестов, но и администраторам сетей и ресурсов для поддержания работоспособности сайтов.

Burp Suite

Очень мощный инструмент для проверки не только сайтов, но мониторинга любой сети. Обладает встроенной функцией модификации передаваемых запросов на тестируемый сервер. Умный сканер, способный в автоматическом режиме искать по нескольку типов уязвимостей сразу. Имеется возможность сохранить результат текущей деятельности, а затем возобновить её. Гибкость, позволяющая не только использовать сторонние плагины, но и писать свои.

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

SQLmap

Наверное, самый удобный и мощный инструмент для поиска SQL и XSS уязвимостей. Список его достоинств можно выразить так:

  • поддержка практически всех видов систем управления базами данных;
  • умение использовать шесть основных способов определения и применения SQL-инъекций;
  • режим перебора пользователей, их хешей, паролей и других данных.

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

Затем адрес страниц передаётся программе, и она проводит проверку. При успешном определении уязвимости утилита может сама её и использовать, получая полный доступ к ресурсу.

Webslayer

Небольшая утилита, которая позволяет провести атаку перебором. Может «брутфорсить» формы ресурса, сессии, параметры сайта. Поддерживает многопоточность, что отлично сказывается на производительности. Также может рекурсивно подбирать пароли во вложенных страницах. Имеется поддержка прокси.

Ресурсы для проверки

В сети присутствует несколько инструментов для проверки уязвимости сайтов онлайн:

  • coder-diary.ru. Простой сайт для тестирования. Достаточно ввести адрес проверяемого ресурса и нажать «Проверить». Поиск может занять длительное время, поэтому есть возможность указать адрес своей электронной почты для того, чтобы по завершении проверки результат пришёл прямо в ящик. В базе сайта имеется около 2500 известных уязвимостей.
  • https://cryptoreport.websecurity.symantec.com/checker/. Онлайн-сервис проверки наличия сертификата SSL и TLS от компании Symantec. Требуется только адрес проверяемого ресурса.
  • https://find-xss.net/scanner/. Проект сканирует отдельный файл PHP сайтов на уязвимости или их архив в формате ZIP. Можно указать типы проверяемых файлов и символы, по которым экранируются данные в скрипте.
  • http://insafety.org/scanner.php. Сканер для тестирования сайтов на платформе "1С-Битрикс". Простой и понятный интерфейс.

Алгоритм проведения проверки на уязвимости

Любой специалист по сетевой безопасности выполняет проверку по простому алгоритму:

  1. Сначала он вручную или с помощью автоматизированных инструментов анализирует, имеются ли на сайте уязвимости. Если да, то он определяет их тип.
  2. В зависимости от разновидности присутствующей уязвимости выстраивает дальнейшие ходы. Например, если известна CMS, то подбирается соответствующий метод атаки. Если же это SQL-инъекция, то подбираются запросы в базу данных.
  3. Главной задачей является получение привилегированного доступа к административной панели. Если же такового добиться не удалось, может стоит попробовать формы и подделку адреса с внедрением в него скрипта с последующей передачей жертве.
  4. Если какая-либо атака или проникновение удалось, то начинается сбор данных: имеются ли ещё уязвимости, какие недочёты присутствуют.
  5. На основе полученных данных специалист по безопасности сообщает владельцу сайта о существующих проблемах и способах их устранения.
  6. Уязвимости устраняются его руками или с привлечением сторонних мастеров.

Тем, кто самостоятельно занимается разработкой собственного сайта, помогут это простые советы и рекомендации.

Входящие данные нужно фильтровать таким образом, чтобы скрипты или запросы не могли запуститься автономно или отдать данные из базы.

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

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

Чаще проверять журналы сервера на наличие подозрительных вхождений или действий.

Проверить собственный сайт несколькими сканерами и сервисами.

Правильная настройка сервера — залог его стабильной и безопасной работы.

По возможности нужно использовать сертификат SSL. Это позволит избежать перехвата личных и конфиденциальных данных между сервером и пользователем.

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

Заключение

Статья получилась объёмная, однако даже её не хватит для описания в подробностях всех аспектов сетевой безопасности. Для того чтобы справиться с задачей защиты информации, придётся изучить немало материалов и инструкций. А также освоить кучу инструментов и технологий. Можно обратиться за советом и помощью к профессиональным компаниям, которые специализируются на проведении пентестов и аудита веб-ресурсов. Хотя такие услуги и выльются в неплохую сумму, все же безопасность сайта может быть гораздо дороже как в экономическом плане, так и в репутационном.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows