Yoda

Устранение критических уязвимостей магазинов

9 сообщений в этой теме

В последнее время, многие авторы шаблонов, начали поголовно практиковать пагубную технику встраивания целых кусков чужого кода в свои шаблоны, без разбора полетов. В связи с этим, по моим данным, около 10-15% популярных шаблонов и содержат в себе потенциальные уязвимости. 

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

 

Поэтому давайте сделаем наши магазины безопаснее вместе.

 

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

 

https://perishablepress.com/6g/

Для продвинутых пользователей, там все достаточно ясно-понятно. Для новичков, я бы рекомендовал добавить в .htaccess  хотя бы это:

<IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} (eval\() [NC,OR]
    RewriteCond %{QUERY_STRING} (javascript:)(.*)(;) [NC,OR]
    RewriteCond %{QUERY_STRING} (base64_encode)(.*)(\() [NC,OR]
    RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC,OR]
    RewriteCond %{QUERY_STRING} (<|%3C)(.*)script(.*)(>|%3) [NC,OR]
    RewriteCond %{QUERY_STRING} (\\|\.\.\.|\.\./|~|`|<|>|\|) [NC,OR]
    RewriteCond %{QUERY_STRING} (boot\.ini|etc/passwd|self/environ) [NC,OR]
    RewriteCond %{QUERY_STRING} (\'|\")(.*)(drop|insert|md5|select|union) [NC]
    RewriteRule .* - [F]
</IfModule>

Встраивать эту конструкцию необходимо после строки  

RewriteEngine On

После добавления, рекомендую запустить Xenu's

И проверить доступность всех ссылок вашего магазина.

Если появятся страницы с кодом 404 или 500, проведите анализ и удалите исключения из списка, которые мешают нормальному отображению страниц.

 

Подробное описание у меня в блоге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, toporchillo сказал:

Конкурент не скачает вашу товарную базу

А если:

1. Негодяй оказался среди доверенных людей.

2. Или кто-то из клиентов, получающих ключ, сливает его негодяю.

 

Есть ли возможность организации доступа:

1. по нескольким ключам?

2. и мониторинга доступа?

3. с привязкой ключа к ip-адресу сервера клиента?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, toporchillo сказал:

Меняете ключ в настройках модуля

Смена ключа не решает описаный проблемный вариант.

 

Доступ, разумеется, можно ограничить средствами сервера.

Зачем нужна ваша фишка с ключом? Что она решает?:)

Ну кроме этого, естесственно:

8 часов назад, toporchillo сказал:

я улучшаю безопасность

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша мысль ясна. По вашим ответам, максимально приближенным к реальности, напрашивается следующие выводы:

  • Заявленное повышение безопасности по факту не более чем маркетинговый ход, никак оную не повышающий. Обычное решение, позволяющее кастомизировать линк для выгрузки. Которое может создать определенные сложности при случайной смене оператором последовательности добавляемых символов ("ключ").
  • Т.к. линк один и неиндивидуален для каждого из клиентов, секретным его называть нельзя.
  • Тем более это нельзя называть защитой от DDoS-атак, как эффективных, так и малоэффективных. Если "особо упоротый" конкурент располагает информацией о наличии данного линка (и с учётом описанного вами алгоритма формирования линка), его тупо можно сбрутить. В данном случае брутфорс будет считаться DDoS-атакой?  У вас есть защита от брутфорса?

P.S. Александр, я с уважением отношусь к вашим трудам и неоднократно советовал ваши модули пользователям. Я не люблю, когда пытаются дезинформировать пользователей. А разрекламированная вами "фишка" никак не влияет на безопасность, она равносильна плановой смене пароля на админку.
P.P.S. Можете задосить меня тапками, ну или скриншотами с канала Discovery, на ваш выбор:)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, toporchillo сказал:

Назовите адрес вашего интернет-магазина.

В любом из моих магазинов вы получите, в первом варианте - 403 или 404, во втором... ничего не получите, даже после 1000 запросов.

Почему? Если бы я ждал, пока вы из пальца высосите проблему, а потом её героически как бы решите, я просто терял бы время.

1 час назад, toporchillo сказал:

дергать главную страницу

О главной странице речи не было. Дёргать тоже не предлагал. Предлагал перестать дёргать и сделать качественное решение.

1 час назад, toporchillo сказал:

Если ... то магазин защищен от обоих сценариев атаки.

Вы сейчас о каких сценариях пишите?

Если сценарии из первого сообщения, то ваше решение никоим образом не отразится на безопасности ИМ, и выше я написал почему.

Если из последнего, то да, магазин защищен от двух частных случаев чего-то такого, что атакой называть язык не поворачивается. ПС ежедневно атакуют мои сайты:)

1 час назад, toporchillo сказал:

Защита от брутфорса должна реализовываться на уровне сети

Таки от брутфорса или от DDoS?

1 час назад, toporchillo сказал:

dinox, упомянул мой "маркетингговый код"

Ход, а не код. Похвала динокса, равно как и грамоты и ордена выдаваемые им, никоим образом не отражается на безопасности ИМ.

Моя система ценностей очень сильно отличается от вашей. Поэтому прошу, и одновременно приношу извинения за сказанное, не кичитесь псевдоавторитетами которые, благодаря

1 час назад, toporchillo сказал:

поборнику безопасности Йоде

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

 

P.S.

1 час назад, toporchillo сказал:

Командир liveopencart.ru

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

P.P.S.

1 час назад, toporchillo сказал:

И только Модератор форума

Он понял, и давно свои мысли изложил. А вы всё никак не остыните. Отдохните чтоль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Gerik
      Здравствуйте уважаемые друзья, коллеги!
      Вчера получил сообщение такого рода 
      "Chrome будет помечать сайты, работающие по HTTP, как небезопасные"
       
      Хотелось бы знать Ваше мнение по этому поводу:
      кто и где покупал сертификаты SSL ?
      стоит ли вообще заморачиваться с этой темой, по крайней мере пока  может проще гуглом не пользоваться
      с чем придется столкнуться с переходом на https ?
      да и вообще, кто помощью, кто советом поможет 
    • Автор: RHCk
      Тема создана для описания основ безопасности CMS Opencart.
      Если что-то упустил, пишите.
       
      0. ВАЖНО! Перед началом любых экспериментов делаем бэкап файлов и базы сайта!!!
      1. Установка
      1.1 При установке меняем префикс базы данных на другой - например "ос_" на "sn_" (и помним об этом).
      1.2 Логин для админки НЕ должен быть admin! Пароль админки должен быть сложным, который содержит как минимум заглавные, строчные символы и цифры. Для этого пользуем генераторы паролей (они есть практически в любом менеджере паролей, также бывают отдельными программами). Онлайн генераторы от @savage4pro - тут и здесь.
      1.3 После установки или обновления CMS обязательно удаляем каталог install.
      1.4 Очень часто взлом и заражение ИМ происходит через соседей (устаревшие или не обновленные CMS в одном аккаунте с ИМ). Важно помнить - в одном аккаунте один магазин.
       
      2. Настройка CMS
      2.1 После установки отключаем вывод ошибок на "морду" магазина (Система -> Настройки -> Редактировать -> Вкладка Сервер -> Раздел Безопасность -> Ключ шифрования -> С помощью генераторов из п-та 1.2 генерируем новый (длина 1024).
      2.2 Там же отключаем вывод ошибок на "морду" магазина (Система -> Настройки -> Редактировать -> Вкладка Сервер -> Раздел Обработка ошибок -> Показывать ошибки -> НЕТ). Включать вывод ошибок нужно по необходимости - установка нового модуля, изменение функционала и т.д. (помним про п-кт 0).
      2.3 Часто, перед покупкой или установкой модулей, разработчики предлагают проверить соответствие вашего хостинга требованиям модуля. В корневой каталог сайта копируется info.php, заходим по адресу <сайт>/info.php видим инфу, определяемся с модулем и удаляем файл info.php, дабы не оставлять подсказку разным негодяям.
      2.4 Пользователям, на сайтах которых настроен обмен, следует проверить недоступность снаружи следующих адресов:
      domain.com/system/storage/cache/exchange1c/import.xml domain.com/system/storage/cache/exchange1c/offers.xml domain.com/system/storage/cache/exchange1c/orders.xml 2.5 ВАЖНО! Присутствующие на сайте тяжелые скрипты (если имеются), такие как парсеры, генераторы карт и прайс-листов, и т.д., не должны быть доступны всем подряд извне.
       
      3. Настройка хостинга
      3.1 Средствами .htaccess можно ограничить доступ в админку вводом дополнительных логина и пароля (.htpasswd) и возможностью входа только с определенного IP-адреса. Перед этим важно не забыть получить статический IP-адрес у своего интернет-провайдера. Если будет интерес, можно сделать подробное описание этого метода.
      Видел модуль, добавляющий капчу от Гоши в форму авторизации админки. Штука полезная, ибо усложняет процесс сбручивания пароля разными кулхацкерами.
      3.2 При установке CMS, добавлении функционала, установке модулей (предоставления доступа к файлам CMS разработчикам модулей и т.д.) требуется доступ к хостингу по FTP (SFTP). Для таких случаев создаем отдельные учётные записи на хостинге, с доступом только к необходимым ресурсам. Требования к учётной записи те же, что и в пункте 1.2.
      ВАЖНО! После проведения работ обязательно отключаем доступ по FTP. Об этом забывают 90% будущих Рокфеллеров.
      3.3 В .htaccess должен присутствовать запрет на чтение файлов/каталогов(папок) с "." (точкой) в начале имени:
      RedirectMatch 403 /\..*$  
      4. Периодические мероприятия
      4.1 ВАЖНО! Необходимо регулярно делать бэкапы. Чем чаще делаются бэкапы, тем меньши информации будет потеряно в случае форс-мажора. Есть шутка "Админы делятся на две группы - на тех, кто не делает бэкапы и тех, кто уже делает".
      Бэкап файлов делаем с помощью FileZilla (или архивируем хостингом, а забираем ей же). Бэкап базы делаем с помощью Sypex Dumper 2.
      4.2 ВАЖНО! Категорически нельзя складывать бэкапы в каталог (папку) сайта! Поэтому все бэкапы (архивы бэкапов) забираем с хостинга. Место для хранения бэкапов подбирается из расчета хранения 10 архивов: 1 ежемесячный, 3 еженедельных, 6 ежедневных.
      4.3 ВАЖНО! Регулярно меняйте пароли (не реже раза в три месяца) ко всем учётным записям (админка, ftp и т.д.) и базам данных! Пароль к базе данных хранится в двух файлах config.php (из корня и в папке admin) в следующей записи:
      define('DB_PASSWORD', '7EJCE9vIAEfGExueZ3vn'); где 7EJCE9vIAEfGExueZ3vn - есть пароль. 4.4 ВАЖНО! Регулярно проверяем кроневой каталог и папки cache и download на предмет посторонних файлов. Особое внимание уделяем файлам, в которых присутствуют закодированные base64 элементы.
      В коренвом каталоге сайта должны быть только следующие файлы:
       
      В планах:
       
      P.S. Данная инструкция была написана при поддержке @savage4pro и @Yoda.
      P.P.S. #opencartsecurity #безопасностьвопенкарт #хуйнаныр
    • Автор: StavEXpert
      Тут выносилась на обсуждение очень интересная идея.
      Как по мне - так очень нужная весчь. И первый же коммент про аналог Wordfence для WP вполне интересный...
      Идею "этой поделки" все-таки забросил или нет?
      Может есть какие-то альтернативы?
    • Автор: RHCk
      Всем привет!
       
      Немного наброшу о безопасности. Читать здесь.
      Статья будет полезна всем.
      Чуть более будет полезна тем, кто сначала покупает модули, а потом расспрашивает о них.
      Крайне полезна комрадам, которые думают "сейчас поставлю nulled, а как взлетит, сразу куплю".
      Ну и для тех, кто ищет небесплатной помощи на fl и т.д. (кстати, интересный момент заметил, напишите fl в русской раскладке).
       
      P.S. C компанией Ревизиум немного работал, писал об этом здесь (ессессно не реклама, мало ли)
    • Автор: Yoda
      # SEO URL Settings RewriteEngine on #@ Обрезаем //////////// #@ Нужны дополнительные тесты #@ RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,} [NC] #@ RewriteRule ^(.*) $1 [R=301,L] #@ Обрезаем //////////// RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/ RewriteRule ^index\.html$ / [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ / [R=301,L] RewriteCond %{HTTP_HOST} ^www.site.com$ [NC] RewriteRule ^(.*)$ https://site.com/$1 [R=301,L] RewriteCond %{HTTPS_HOST} ^www.site.com$ [NC] RewriteRule ^(.*)$ https://site.com/$1 [R=301,L] RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://site.com/$1 [R=301,L] RewriteBase / RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] Шпаргалочка для редиректа на https протокол с урезанием всякого хлама - пусть полежит до лучших времен
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу