Взлом сайта: простые советы по безопасности

    Активность хакеров никогда не сходит на нет. Например, только по данным одного хакерского сайта zone-h.org (см. раздел Onhold), взламываются ежедневно сотни сайтов. Вашего сайта там точно нет?

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

    Как осуществляется взлом сайта?



    Наиболее распространённые пути проникновения на сайт:
    • перебор простых паролей доступа к админке/ftp («имя домена», 12345, admin, test и т.п.) — большое число взломов, как ни странно, происходит именно так;
    • использование уязвимостей скриптов (CMS и модулей).

    Поясню на примере Joomla + CKForms. Чтобы не вводить в искушение, не публикую ссылку на описание, слишком уж просто им воспользоваться, но и найти несложно. Уязвимости в модуле CKForms позволяют выполнить SQL-инъекцию или PHP-инклюдинг, и, путём несложных манипуляций, получить доступ к админке. Использование уязвимости осуществляется через простой запрос в адресной строке браузера.

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

    Я принимал меры, но как взломали сайт?


    Как же на виртуальном хостинге хакер может получить доступ к другим сайтам, если все известные меры владельцем сайта предприняты? Ведь почти повсеместно доступ к площадкам сайтов разграничивается по логинам пользователей и, казалось бы, это должно обезопасить сайт от соседей.
    telnet
    Ограничимся одним случаем. Серьёзную опасность представляет запуск скриптов под модулем Apache, например mod_perl. Запуск скрипта в этом случае осуществляется под пользователем Apache, который имеет доступ к данным пользователей сайтов.
    Хакер, как описано выше, получает доступ к площадке одного сайта. Затем осуществляется размещение консольного скрипта, например cgi-telnet. И если права на конфигурационные файлы сайтов других пользователей выставлены в 644 (или тем более 777!), из консоли несложно прочитать содержимое файлов с паролями. Но! Только если запуск perl-скрипта осуществляется под пользователем Apache, т.е. под mod_perl (аналогичная ситуация с mod_php). При работе, например, под FastCGI — такой способ не даст доступа к файлам. Защититься от этого можно, устанавливая на критически важные файлы права 600 и используя FastCGI.

    Как можно получить доступ к управлению самим сервером?


    Приведу один распространённый пример для Linux-систем. Аналогично, сначала необходим доступ на площадку одного сайта.
    Есть несколько уязвимостей в ядре через нулевой указатель, которым подвержены десятки Linux-систем, например: Linux Kernel 'sock_sendpage()' NULL Pointer Dereference Vulnerability. Там же описаны и эксплоиты (осторожнее, это работает!).
    Несмотря на то, что данная проблема известна давно, есть множество непропатченных серверов, в том числе и в России. Самый простой способ защиты описан, например, здесь.
    Это не гарантирует 100% защиту, т.к. например при установке wine параметр mmap_min_addr может быть сброшен обратно в 0. Настоятельно рекомендуется использовать патчи, которые можно взять на странице, указанной выше, или в официальных источниках.
    Обсуждение по этому вопросу велось и на хабре.
    Ответственность за защиту от данных эксплоитов лежит на администраторе сервера.

    Последовательность действий по устранению последствий


    «Лечения» восстановлением из бекапа недостаточно, один раз взломав сайт, к Вам ещё вернутся. Что же делать владельцу сайта?
    • Постарайтесь сразу определить, какие именно файлы были заменены, это может быть как index.php, так и файлы шаблонов, изображений и т.п.;
    • Сделайте скриншоты последствий;
    • Обязательно оповестите хостинг-провайдера и согласуйте свои дальнейшие действия;
    • Сохраните в отдельный каталог файлы сайта, время модификации файлов в дальнейшем поможет Вам определить злоумышленика;
    • Восстановите из резервной копии сайт или обратитесь для этого к хостеру;
    • Скачайте логи ошибок и доступа к сайту или попросите хостера их предоставить, лучше скопировать их в отдельный каталог, чтобы не удалились при ротации логов;
    • Анализ времени изменения файлов и сопоставления с записями в логах позволяют определить характер используемой уязвимости и IP-адрес злоумышленника;
    • Обновите скрипты или (если это невозможно) откажитесь от использования уязвимых модулей;
    • Обязательно смените все пароли доступа.


    Преступление и наказание


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

    Отделом К города N возбуждено уголовное дело по ст.272 УК РФ «Неправомерный доступ к охраняемой законом компьютерной информации...» в отношении гражданина РФ по заявлению юридического лица (владельца сайта). В феврале 2010-го года был выполнен взлом сайта производства одной из российских дизайн-студий («самописный» скрипт), через найденную злоумышленником уязвимость в коде сайта. Целью взлома являлось размещение рекламных баннеров. Злоумышленник принёс свои письменные извинения владельцу сайта с просьбой досудебного урегулирования — кроме уголовной статьи ему грозит и отчисление из ВУЗа. Так сказать — в интересах следствия подробности не разглашаются.

    Если ущерб значительный, а IP-адрес «местный» (даже динамический и принадлежит Интернет-провайдеру), а не «китайского прокси» — можно с заявлением и имеющимися материалами обратиться по месту жительства в правоохранительные органы, а конкретно в отдел К. Следователи сами запросят у хостинг-провайдера официальное письмо с журналами и пояснениями ситуации, у Интернет-провайдера — кому был выделен IP-адрес. Компании обязаны предоставить эти сведения по запросу правоохранительных органов.
    Взломщику общение с правоохранительными органами доставит много неприятных часов, особенно если на компьютере остались следы противоправной деятельности, не говоря уже о возможном судебном преследовании.

    Краткие выводы


    Безопасность Вашего сайта — задача не только разработчика и хостера, который обязан обеспечить максимальную защищённость серверов, но и администратора сайта.
    Тривиальные советы владельцу сайта:
    • нигде не хранить учётные данные доступа;
    • использовать длинные комплексные пароли и нестандартные логины, периодически выполнять их смену;
    • своевременно обновлять скрипты с выходом обновлений;
    • при выборе компонента проверять на наличие незакрытых уязвимостей;
    • следить за правами на файлы скриптов и особенно критические файлы конфигурации;
    • средствами веб-сервера (например, .htaccess и .ftpaccess) разрешить доступ только с Вашего IP;
    • да, сохранять копирайты авторов скриптов надо, но по ним, а так же фрагментам адресной строки модулей, злоумышленники и ищут уязвимые сайты — смените хотя бы стандартные адреса обращения к скриптам;
    • периодически, в том числе внешними сервисами, проверять доступность конкретных разделов сайта;
    • иметь локальные бекапы сайтов.

    Оценив шансы по розыску злоумышленника — можно и нужно обратиться в правоохранительные органы.

    PS: статья не претендует на абсолютную полноту изложения и ориентирована не на IT-гуру, разумеется, при целенаправленном взломе конкретного сервера или сайта могут применяться другие средства. Рад буду дополнить по комментариям хабрасообщества, в том числе и другими примерами.
    И вкратце о действиях при взломе сайта.
    Share post

    Similar posts

    Comments 15

      +11
      спасибо, Кэп!
        0
        Пока законодательство бездействует будут происходить взломы. В квартиру к вам попытки проникнуть осуществляются гораздо реже, чем на сайт…
          –2
          Я привёл в статье пример успешного розыска хакера. Причём заявителем был не промышленный гигант и розыск осуществлялся органами внутренних дел.
          Так что в законодательство работает — тогда, когда реально найти злоумышленника. К сожалению, международная практика несколько хуже. Более того, есть множество способов скрыть свою деятельность, даже находясь на территории РФ — но это уже техническая проблема.
          +2
          Непонятно, почему минусуют… Да, статья у автора описывает многое из того, что присутствующие тут и так знают… Но ведь кроме присутствующих еще полно и другие. А огромное количество взломов лишний раз говорит о том, что люди даже о таких элементарных вещах просто забывают или не знают…
            –1
            Статья и ориентирована на простых пользователей, для гуру эти примеры и советы тривиальны (о чём в статье сказано открыто).
            Возможно, мной не так явно указана цель — немного напугать предупредить — насколько уязвимы сайты и просто осуществить взлом, и подтолкнуть к принятию конкретных активных мер по защите.
            Ну и показать, что хакеры не всегда остаются безнаказанными на конкретном примере — возможно, кого то это остановит от необдуманных действий.
            +1
            под FreeBSD на файлы, которые никогда не изменяются, можно поставить флаги schg, а разделы /var и /tmp можно смонтировать с флагами «noexec, nosuid»* — это значительно усложнит задачу взломщиков.
            обычно, когда скрипт имеет уязвимость, злоумышленники заливают файлы в папку /tmp, откуда могут запустить irc-бота, шелл и т.д.

            ну и конечно не не стоит пренебрегать регулярными обновлениями (предварительно нужно снять флаги schg!) и рекомендациями на установку прав на файлы авторами скриптов.

            * только при обновлении системы нужно перемонтировать в обычный режим
              –1
              Рекомендация абсолютно верная, но это уже больше на системных администраторов рассчитано. Пример эксплоита в Linux приведён скорее для ознакомления. В Linux рекомендации для администраторов — аналогичные. К слову, FreeBSD менее подвержена эксплоитам по очевидным причинам.
              Стоит дополнить рекомендациями для системных администраторов? Это скорее материал для отдельной статьи.

              0
              Отделом К города N возбуждено...
              Взломщик и жертва были из одного города? И какой по величине этот ваш N? Если там 100 тысяч человек, это одно, а если 15 миллионов, это чуть-чуть другое.
                0
                Города и даже области разные. В городе N более 800 жителей.
                В данном случае по имеющимся IP-адресам интернет-провайдер предоставил сведения, кто конкретно с них в указанное время выходил в Интернет — количество абонентов не имело никакого значения.
                0
                Как-то мало написано про сайты на windows-хостинге. Я бы даже сказал — НИЧЕГО не написано :)
                  0
                  Дело в том, что КОМТЕТ — не-windows-хостинг, и опыта в вопросе «как взламывают сайты на windows-хостинге» лично у автора статьи — немного.
                  Большая часть статьи вполне относится к любому типу серверов, в частности, советы, действия при взломе, как взламываются сайты через уязвимости и т.п.
                  0
                  Взламывают в 90% случаев если не больше, плохо написанный код. По этому стоит проверять его сканерами find-xss.net, scovetta.com, pixybox.seclab.tuwien.ac.at. А лучше всего acunetix.com он хоть и не подскажет где дырка, но точно скажет, что она есть.
                    0
                    В общем, советы по защите те же, только теперь вам стоит немного потратиться на человека, который за деньги проверит ваш сайт на наличие уязвимостей и сообщит вам результаты.

                    Хочу предложить Вам в помощь сайт для проверки защиты вашего ресурса — по сути фриланс биржа для людей обладающих умением взлома. От вас требуется разместить проект, указать тип уязвимости и бюджет. Дальше просто — ждать предложения выполнить проект от экспертов взлома. Проект молодой и ждёт своих клиентов!

                    hackmysite.ru/
                      0
                      Скорее всего, при использовании популярных CMS это сведётся к перебору незакрытых уязвимостей, поэтому достаточно следить за обновлениями CMS и плагинов и своевременно устанавливать их.
                      В случае использования самописного кода анализ будет очень дорог и гарантии, что будут обнаружены все уязвимости — никто не даст. В любом случае, такой сервис безусловно нужен.
                        0
                        Проект умер?

                      Only users with full accounts can post comments. Log in, please.