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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GFI LanGuard

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

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

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

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

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

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

Nessus

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

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

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

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

Symantec Security Check

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

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

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

XSpider

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

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

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

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

QualysGuard

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

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

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

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

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

Проверка на уязвимость сайта служит профилактирующей мерой против взлома сайта. По статистике с каждым годом увеличивается количество взломов сайтов. Повышенный интерес представляют сайты и блоги с большим количеством посетителей или публикующие на своих страницах свои успехи в заработке (финстрипы). Поэтому пренебрегать безопасностью своих проектов просто непозволительно.
Так как большая часть бесплатно распространяющихся 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. Это позволит избежать перехвата личных и конфиденциальных данных между сервером и пользователем.

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

Заключение

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

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

RPVS — во Франции также есть хакеры

Скромную заметку о этой программе я на днях отыскал на одном элитном
международном хакерском форуме. Программа однозначно из класса Must Have. Тем
более, что софтина имеет как консольный, так и графический интерфейс. Полное ее
название — Remote PHP Vulnerability Scanner. Этот сканер затачивался под
удаленное исследование сайтов написанных на PHP. Программа способна находить
такие уязвимости: XSS, SQL-Injection, уязвимости подключения файлов функциями
include() и fopen() и раскрытия инсталляционного пути. Программа работает как с
GET, так и POST запросами. Имеет несколько режимов работы и отличную скорость
сканирования. Принцип ее работы состоит в полном собрании линков с сайта, после
чего подставляют спецсимволы в переменные и проводится анализ на показанных PHP
ошибках и сигнатурах. Протестировав ее на одном из небольших сайтов, я получил
подробный отчет о найденных уязвимостях.

Rapport on http://test3.ru/

Number of made request: 24
vuln include: 0
vuln xss: 12
err fopen: 0
err inc: 0
err sql: 0
—————————————————-
Vuln XSS:
/?year=2006&month=02&day=6941337%22%27
/?year=6941337
%22%27&month=01
/?year=6941337
%22%27&month=02&day=05
/?year=2006&month=6941337
%22%27&day=05
/?year=6941337
%22%27&month=03
/?year=6941337
%22%27&month=02
/?year=6941337
%22%27&month=12

Vuln SQL:
/?id=6941337
%22%27
/?id=15&c=6941337
%22%27

Видишь, неплохой отчет. Автоматизация — отличный процесс, который неплохо
экономит время и нервы. Да, кстати, в сети есть вполне компилируемые исходники
этой чудо программы —
http://81.57.125.106/~slythers/rpvsv1.3-src.rar .

В некоторых случаях, когда масштабное сканирование не удается произвести, работу
можно полуавтомазировать с помощью такого софта как Mini-Browser (http://www.aignes.com)
и Advanced HTTP Header Constructor 1.2 (http://www.ru24-team.net).
Программы умеют многое и в любом случае тебе понадобятся, Mini-Browser позволяет
подделывать POST/GET запросы и кукисы, а также вытаскивать все ссылки на
странице. В программу встроен браузер (на движке ИЕ), что делает работу еще
удобнее. Ну а эстеты могут посмотреть на других вкладках исходник или лог
Клиент-Сервер. Advanced HTTP Header Constructor работает с HTTP-заголовками,
позволяет составлять/подделывать/отсылать POST и GET заголовки, а также многое
другое. Для установки нужен свежий Framework.

Acunetix Web Vulnerability Scanner 3 — Достойная замена XSpider

Когда-то просматривая каталог линков с astalavista.box.sk я и наткнулся на
эту программу. Ее описание мне пришлось по вкусу. По своим возможностям она даже
превосходит XSpider. Acunetix Web Vulnerability Scanner — cканер уязвимостей
вэб-сайтов, сканирует как комплексно так и профильно, то есть Cross site
scripting, SQL injection, cgi-test, CRLF Injection, Directory traversal,
Authentication hacking. Также в сканере присутствует очень интересный тип атаки
— Google hacking на определенный сайт. Этот тип атаки использует поисковые
системы для поиска уязвимостей, что очень полезно и оригинально. Сканер также
отлично определяет версии веб-сервера и его модули. Плюс в него встроены
различные перекодировщики и шифровальщик, HTTP снифер и средства подмены
заголовков. Этот софт обязательно должен поселится в джентльменском наборе
хакера. Так что не поленись, скачай и зацени! Плохо лишь одно, как и все
программные продукты подобного рода, этот софт стоит больших денег (1500$). Но
все лечится, защита там слабенькая. Тем более обновление доступно и в
trial-версии. Кто ищет, тот всегда найдет. Я нашел 🙂

Google – Величайший сканер уязвимостей

С помощью поисковых систем, на самом деле, очень удобно искать нужные
уязвимые скрипты. Нужно только вспомнить о эпидемии червячка Santy, который
искал в Google все бажные phpBB форумы. Подробнее о червячке можно почитать
здесь —
http://www.f-securлe.com/v-descs/santy_a.shtml . Также примеры реализации
подобных сканеров ты найдешь на сайте команды AntiSecurity (http://antisec.2×4.ru).
Так что при грамотном написании программы и хорошей уязвимости, хакер получает
контроль над огромным количеством сайтов.

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

RATS — Грубый Инструмент Ревизии для Защиты

RATS, Rough Auditing Tool for Security (Грубый Инструмент Ревизии для Защиты)
является утилитой ревизии защиты для C и C ++ кода. RATS просматривает исходный
текст, находя потенциально опасные обращения к функциям. Цель этого инструмента
— не окончательный поиск ошибки, а скорее обеспечение разумной отправной точки
для выполнения ручной ревизий защиты. Мой хороший знакомый уже давно пользуется
данной программой и очень доволен ее результатами. И еще конечно же радует
открытость ее исходного кода.

Также следует обратить внимание на аналогичный софт под названием ITS4 (http://www.securitylab.ru/_tools/its4-1.1.1.tgz).
Этот инструмент командной строки ищет уязвимости C и C ++ кода и работает на
платформах Windows и Unix. Есть еще одна полезная программа из данного класса —
Flawfinder (http://www.dwheeler.com/flawfinder/).
В отличие от ITS4, flawfinder имеет полностью открытое программное обеспечение
(распространяется согласно лицензии GPL).

BofCheck — Buffer Overflow, Environment Variables Overflow/Format String
Vulnerabilities Binary Tester

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

Qaudit — Perl приходит на помощь

Оказывается классные вещи можно написать на интерпретируемом языке Perl.
Qaudit.pl — сценарий для быстрой ревизии C и C ++ исходных файлов на наличие
переполнения буфера, ошибок форматной строки, запросов исполняемых вызовов,
переменных среды, и разных функций, которые часто имеют проблемы защиты. Лично я
не ожидал от скрипта таких возможностей 🙂 Кстати, на Perl написано множество
полезных программ, таких как cgi-сканеры, эксплоиты, и даже IDS системы!
Скачивай скриптик от сюда —

http://www.SecurityLab.ru/_exploits/other/qaudit.txt .

Между прочим

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

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

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

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

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

Теперь рассмотрим что нужно делать на каждом из этапов и какие инструменты для этого нужно использовать. Лучше не устанавливать все эти программы отдельно, а использовать уже готовую среду для тестирования на проникновение - 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 в одной из следующих статей.

Исправление

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

Выводы

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