пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Хакинг и безопасность сайта

  1. Хакинг и безопасность сайта

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

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

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

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

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

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

 

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



Наиболее распространённые пути проникновения на сайт:
 

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

·       использование уязвимостей скриптов (CMS и модулей).


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

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

 

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


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

Ограничимся одним случаем. Серьёзную опасность представляет запуск скриптов под модулем 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-гуру, разумеется, при целенаправленном взломе конкретного сервера или сайта могут применяться другие средства. Рад буду дополнить по комментариям хабрасообщества, в том числе и другими примерами.
И вкратце о действиях при взломе сайта.

 

 


22.06.2017; 22:14
хиты: 165
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь