Безопасность Web ресурса и Google на службе у хакера [Защити свой интернет ресурс]…

  
    Каждый пользователь интернета задавался вопросом, как Anonymous'ам  и другим представителям хак-сообщества удается похищать данные или выводить из строя крупнейшие веб-сайты, принадлежащие крупнейшим в мире организациям? Благодаря свободному распространению в интернете инструментов для взлома каждый пользователь может почувствовать себя гуру взлома....
    В данной статье мы решили показать насколько легко и просто это сделать.
    В то время как Анонимусы и другие интернет-хактивисты выбирают свои цели в знак протеста, мы подберем любой сайт, который имеет уязвимость.
    Шаг №1: Определение цели
     Для начала воспользуемся поисковой системой Google для поиска "жертвы", (вся мощь данной поисковой системы позволяет нам находить уязвимости, проводить поиск по определенному типу данных, и многое другое). Данный вариант использования поисковика называется Google Hacking, а уязвимость, по которой будем искать, называется Dork.

        /* В хакерском мире Гуглю называют ОРАКУЛОМ ... Судите сами супер поиск, новомодные фишки почты,турбоускорители интернета, нет рекламы... К гуглю обращаются милионы пользователей на разных языках за помощью, на них работают самые мощные программисты.  */ (комментарий пользователя Sten:  на форуме http://dama-pik.ru/forum/)

    В интернете существуют списки данных дорков, поэтому изобретать что-то новое не приходится….
    Примеры Dork'ов для поиска интернет магазинов:
shop.php?id= 
shop.php?pid= 
product_id= 
product.php?id=

    Пример текста который должен присутствовать на сайте:
    intext:"We accept the following credit cards"
    Также можем отсеять поиск только для сайтов определенной страны, для этого указываем в строке поиска ключевое слово site: например
    site:.uk
    Например меня интересует сайт подходящий под данные условия…
    inurl:"ID=" & intext:"We accept visa" & site:.us
    Собственно что мы имеем… Google выдал нам буржуйские сайты, на которых присутствует система оплаты visa :) в адресе которых имеется параметр ID=
    В данном случае ID указывает скрипту номер страницы, которую необходимо показать пользователю.
    Если верить обсуждениям на различных тематических форумах, то некоторым особо талантливым хацкерам, удается похищать реквизиты платежных карт (находятся сайты которые хранят такие данные в незашифрованном виде хотя хранить их на сайте запрещено)…
   
    Шаг №2: Проверка  на наличие уязвимостей
    Работа с данными, хранящимися в базе данных сайта, осуществляется посредством структурного языка запросов SQL.
Проверим данный сайт на уязвимость, поставим вместо  ID=1
    ID=1'
   
     Появилась ошибка… Это свидетельствует о том что данные в скрипте page.php не проверяются и у злоумышленника есть возможность похитить базу данных сайта путем добавления своего кода. Так называемая SQL-инъекция – техника внедрения в исходный SQL-запрос определенного кода, не нарушающего структуры самого запроса, с целью получения доступа к данным, содержащимся в БД.
    Для автоматизации этих действий будет использована программа Havij
   
    Если учесть тот факт, что некоторые пользователи, на различных сайтах, используют один и тот-же адрес почтового ящика и пароль, то взломщик похитивший базу данных пользователей получает в распоряжение почтовый ящик с перепиской, сможет получить привязанные к ним учетные записи от Skype, ICQ, сайтов знакомств и т. д. (или продаст валидные ящики спамерам:).
    Если хакером изначально был выбран какой-то конкретный сайт, и сложно определить уязвим данный ресурс или нет, злоумышленник воспользуется сканером уязвимостей, самый популярный называется Acunetix.
    Acunetix, была разработана британской компанией и до сих пор используется как инструмент для веб-разработчиков для тестирования сайтов, которые они создают. Однако хакерское сообщество взяло данный инструмент на вооружение и использует его для выявления существующих уязвимых мест.
     А теперь, перейдем к методам защиты сайта
     от SQL-инъекции: 

     1. Проверяйте, данные которые вводит пользователь,  на наличие в них вредоносного кода. Для этого необходимо ограничивать длину полей там, где это возможно. Обрабатывайте специальными функциями все данные, получаемые от пользователя методами POST, GET, также возможно Cookies и Header. При использовании PHP функции mysql_real_escape_string() (экранирует слешами запрещенные символы типа ‘, ”), Htmlspecialchars() (преобразует запрещенные html дескрипторы). Проверяйте запросы к базе данных на наличие пользовательских SQL-конструкций.
     Также здесь можно проверять тип вводимых значений, например, с помощью intval() для численных значений.
     2. Ограничивайте пользователей в правах на доступ к базе данных. Чем меньше прав будет у пользователя, тем меньше вреда будет в случае внедрения SQL-инъекции.
    …+ минимально что должен выполнить администратор сайта, это установить надежный пароль от FTP, не хранить пароль в FTP-клиенте. Изменить стандартный адрес входа в админ-панель сайта и phpMyAdmin (в случае похищения логина и пароля, злоумышленник не сможет ими воспользоваться).
    Если сайт создан на CMS (например Joomla, WordPress и. т.д.) необходимо обновить до последней версии, по возможности скрыть стандартные надписи типа версия CMS, устанавливать только проверенные компоненты…
    Не храните на сайте различных тестовых версий скриптов, дампов базы данные, файлы типа password.txt, test1.php и прочее. Такие файлы легко будут обнаружены сканером Acunetix, или проиндексированы поисковыми системами и доступны всем…