Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
7 Июнь 2010

Защита сайта от взлома

posted in SEO, Программирование |

site-security-small

На выходные экспериментировал с SQL иньекциями сайтов двух производителей сайтов в Новосибирске (не буду говорить кто именно — почему, поймёте чуть позже), результатами своих изысканий был сильно удивлён — не имея какой то специальной подготовки, обладая практически нулевыми знаниями в этой области, я в течение дня, с помощью только гугла взломал 45 сайтов.

Взломал — конечно сильно сказано, но хэши админских учёток от бэкофиса этих CMS в данный момент проходят процесс дешифрации (8 штук уже готовы).

Началось всё с телефонного звонка — мой друг, порекомендовал меня в качестве SEO оптимизатора одной производственной фирме — встретились, обговорили условия — хлопнули по рукам. Далее интереснее — ознакомился я с движком сайта, и пришел в полнейший ужас — в общем ЭТО движком у меня язык не поднимался назвать. Стиль программирования вообще пугающий — «группа школьников экспериментирующая на поприще создания сайтов», почитал договор — улыбнуло… Узнав сколько было выложено денег за этот «сайт» — сильно удивился !

В общем решили с заказчиком, что прежде, чем заниматься какой либо поисковой оптимизацией —

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

Далее я решил проверить бывший «движек» на предмет уязвимостей — зашел на сайт фирмы, ваяющей на таком «движке» — портфолио оказалось довольно внушающее, сграбил линки, открыл статейку по SQL Injections и начал эксперименировать … В конце рабоче дня 45 хэшей было запущено на декодирование 🙂

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

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

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

1. В за конченом проекте рекомендую вырубить все служебные сообщения (ошибки, предупреждения) — хороший источник служебной информации облегчающий взлом (например с помощью них легко выкупается абсолютный путь проекта на серваке).
2. Взять за правило проверять ВСЕ «входящие» переменные — цифровые сразу переводить в нужный тип intval(), (int), floatval(), (float), строковые фильтровать — такая педантичность практически исключает возможность иньекций.
3. Переменные в MYSQL запросов помещать в кавычки, «id=’$id'». Cтроковые переменные предварительно обрабатывать функцией mysql_real_escape().
4. Отдельное внимание уделить вопросам безопасности через .htaccess — запрет просмотра папок, по возможности доступ к админке с определенных IP адресов / областей.
5. Так же не помешает взять за правило во все папки бросать пустой index.html (если нет не пустого).
6. Не оставляйте «мусор» в доступных местах — старые php файлики, чего хуже — переименованные в какие нибудь .bak, .old и т.д.)
7. НИКОГДА и НИГДЕ не храните пароли в открытом виде — как минимум md5() хэширование ! А лучше перед md5() добавьте свою изюминку 🙂 например побитный XOR или тупо: прибавить по единичке к коду символа, добавить пару символов — хакер, потратив несколько дней на раскодировку md5 хэша, сильно удивиться когда раскодированный пароль не подойдёт.
8. Не используйте тривиальные названия таблиц/полей. Напр. табличка users с полями login и password сильно облегчат жизнь хакеру 🙂
9. Аккуратно используйте права на файлы, папки. Право на запись — потенциальное уязвимое место для того же php шелла — папки 755, фалы 644 !
10. Не менее аккуратно используйте права юзеров СУБД. Например привилегия работы с файлами file_priv несомненно ускорит взлом. (в 99% случаев такие привилегии абсолютно не нужны), ну и не ленитесь для каждого сайта создавать своего юзера с соответствующими правами.
11. Внимательно изучите настройки сервера по умолчанию (magic_quotes и прочие не помешают).
Ну и напоследок пару банальных:
12. НИГДЕ не используйте лёгких паролей (ftp, ssh, и т.д. и т.п.) — добавьте в пароль хотя бы один спец.символ, циферку и буковку, ну и выдерживайте длину хотя бы 6-8 символов.

13. Используйте резервные копии (как БД, так и файловые) — желательно ежедневно, автоматически и конечно же куда нибудь на географически удалённый источник.

// добавлено после взлома моего сайта

14. Скидываете ежедневные полные логи доступа на сторонний сервер (например на мыло, либо на другой сервак по ftp) — имхо лучше на мыло, т.к. даже в случае взлома злоумышенник получит только почтовый адрес.

15. Поставьте в крон скрипт, контролирующий изменения файлов — сверяющий контрольные суммы (md5) всех файлов (за исключением заданной маски) и отправляющий отчёт на мыло в случае нахождения изменений (не нашел готового — на днях сваяю). Так же можно поставить скриптик поиска веб-шеллов (но ИМХО уже перебор т.к. первого скрипта вполне достаточно).

16. Используйте кодирование своих исходных php файлов — злоумышленнику будет труднее внедрить свою инъекцию.

Так же «в догонку» могу порекомендовать пару скриптиков, которые запихиваются в крон и постоянно «палят» и в случае чего кричат «алярм» на мыло или SMS кидают. (имхо должны быть уже готовые варианты не знаю — можно погуглить на эту тему. В принципе, не трудно написать с нуля):
1. Анализ логов на предмет попыток взлома (напр. операторы select, union и т.д)
2. Изменение контрольных сумм в файловой структуре, а так же таблиц БД

Надеюсь ничего не пропустил…
Какие будут ваши рекомендации/пожелания ?

P.S.

Выкладываю некоторые ИМХО интересные ссылочки по теме, найденные мной в процессе:

и кое что из того, что давно искал и встретил на ачате

P.S.S.

Кому интересно — могу провести аудит на предмет информационной безопасности Вашего сайта. Выходите на связь — договоримся.

У нас 28 комментариев на запись “Защита сайта от взлома”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 10.07.2010, awidor said:

    Ребя объясните мне зачем взламывать ресурс — т.е. зачем этим занимаются — конкуренты что ли или шутники неродивые — что это им дает

  2. 2 On 13.07.2010, Публикация информации о сайтах Интернета said:

    Публикация информации о сайтах Интернета

  3. 3 On 11.08.2010, evgen said:

    хорошая статья, я бы уделил важное значение фильтрации данных

  4. 4 On 29.09.2010, MoJo said:

    Автор, ты ещё не сделал крон скрипт, контролирующий изменения файлов — сверяющий контрольные суммы (md5) всех файлов (за исключением заданной маски) и отправляющий отчёт на мыло в случае нахождения изменений?
    если сделал, то скинь,plz, на мыло: andrewkp@mail.ru или по аське: 251064379
    Заранее спасибо.

  5. 5 On 30.09.2010, GTAlex said:

    Сделал — Скрипт отслеживания изменений в файлах

  6. 6 On 20.02.2011, Игорь said:

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

  7. 7 On 04.07.2011, Слава said:

    Я пользуюсь вот таким скриптом: http://dle-news.ru/modules/1058-zeos-antivirus.html
    Автор, а где увидеть Ваш скрипт?

  8. 8 On 04.07.2011, Слава said:

    Я пользуюсь вот таким скриптом: http://dle-news.ru/modules/1058-zeos-antivirus.html
    Автор, а где увидеть Ваш скрипт???

  9. 9 On 13.12.2011, Arseny said:

    Недавно открылся сервис мониторинга от взлома nazamok.com Поможет за сутки обнаружить на сайте размешение ссылок, скриптов и ифреймов с рекламой или вирусом. Крайне полезная вещь для всех вебмастеров и оптимизаторов.

  10. 10 On 22.03.2012, Konstantine said:

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

  11. 11 On 23.06.2012, Костя Ш said:

    «скрипт, контролирующий изменения файлов — сверяющий контрольные суммы (md5) файлов и отправляющий отчёт на мыло» — Для тех, кто не хочет / не может возиться с настройкой/отладкой/поддержкой такого скрипта, есть сервис: http://filesafe.anek.ws/ который предлагает сделать это за весьма умеренную плату.

  12. 12 On 31.08.2012, Сергей said:

    Спасибо, узнал много нового!

    «скрипт, контролирующий изменения файлов — сверяющий контрольные суммы (md5) файлов и отправляющий отчёт на мыло»
    Скажите пожалуйста, в каком случае это может сработать? Каковы примерно действия (намерения) хакера?

  13. 13 On 27.10.2016, Андрейка said:

    Как пару лет юзаю двигатель SLAED, проблем с безопасностью не возникало. Кенты хакеры пробовали пробить за баблос, неделю мучились, так и не смогли. Кричат что там всё серьёзно, на уровне системы не пробить. Рылись в дырах сервера, пока не нашли. Спасибо за статью, будем защищаться!

Оставить комментарий