С- Битрикс Разработчикам - Трактовка результатов сканера безопасности. Коллеги, рад приветствовать Вас! С момента запуска сканера безопасности в версии security 1. За это время его рекомендации увидело около 1. Увы, как показывает статистика подавляющее большинство либо игнорирует его рекомендации, либо не знает, что с ними делать.
Файлы будут по умолчанию сохраняться во временной директории по умолчанию на сервере, если только не задано другое место директивой upload. Директория по умолчанию сервера может быть изменена через установку переменной окружения TMPDIR в.
Именно поэтому я решил более детально описать тесты и каким образом трактовать их результаты. Я постараюсь описать лишь наиболее часто встречающиеся угрозы или угрозы, вызывающее наибольшее количество вопросов. Осторожно, ниже обильное количество хардкора. Локальное сканирование.
Как вы знаете из предыдущего поста Сканер безопасности - верный друг и помощник. Сканер разделен на две части - локальную и внешнюю.
И найдите там строчку upload? Вы можете редактировать php.ini? Как правильно изменить путь к папке в jQuery File Upload? При этом общая схема работы хостинга не изменится, и дополнительная настройка не понадобится. Как изменить версию PHP в панели cPanel, а также как управлять Настройка версии PHP и ini-файла в cPanel. Например: / dir / upload :/usr/ tmp. Пользовательские настройки PHP важны, если Вы хотите ограничить потребление системных ресурсов. Например, на Linux: /dir/upload:/usr/tmp.
Возвращает путь к директории, где PHP по умолчанию хранит временные And then running: php test.
Локальная - ответственна за проверки, которые невозможно/нецелесообразно выполнить “снаружи”, например, настройки сайта или исполнение php/python/perl/etc скриптов в директории хранения загружаемых файлов гораздо эффективнее проверять именно изнутри. Все проверки сгруппированы по типу (настройки окружения, настройки php, настройки сайта и т. Настройки окружения. Директория хранения файлов сессий доступна для всех системных пользователей. Вы можете лицезреть сообщение об этой угрозе, когда директория хранения файловых сессий php (session. Это хороший повод задать ему вопрос и потребовать внести правки в конфигурацию, таким образом дабы сессионные файлы каждого пользователя были отделены друг от друга, и на эти директории были установлены корректные файловые права.
Пользователям выделенных серверов это менее критично, но все же рекомендовано, причем что у вашего администратора это займет не более 1. Предположительно в директории хранения сессий находятся сессии других проектов. Подобное сообщение можно встретить, если несколько сайтов используют одну директорию для хранения сессий. Очень часто это можно встретить при использовании выделенных серверов, когда есть N сайтов и все они хранят свои сессии где- нить в /tmp/php. Начиная с версии main 1. При такой конфигурации сессии получаются “сквозные”, т.
A и сайт B: a) Мы регистрируемся на сайте B, получаем ID пользователя 7; b) Теперь зайдя на сайт A с ID сессии от сайта B, мы окажемся авторизованными под пользователем с ID 7, но сайта A, улавливаете? А что если пользователь с ID 7 на сайте A администратор? PHP/Python/Perl/etc скрипты исполняются в директории хранения загружаемых файлов.
Используя API Битрикс, пользователь сайта не может загрузить . Но к сожалению, как в пользовательском коде, так и в коде разработчиков Маркетплейс все еще встречается “кастомная” загрузка файлов, которая может позволить загрузить файлы с потенциально опасными расширениями. Именно поэтому лучше исключить эту возможность, корректно сконфигурировав ваш веб- сервер.
Apache в директории хранения загружаемых файлов. Аналогично предыдущему, только вектор атаки через загрузку файлов направлен на загрузку . Например такой: < Files ~ . По настройкам PHP зачастую не возникает вопросов, кроме двух: Разрешено чтение файлов по URL (URL wrappers)Это разумеется один из тез пунктов, за который на меня зол не один разработчик.
Но природа PHP такова, что никогда не знаешь с какой стороны получишь поддых: ) И если мы хотим повысить безопасность нашего сайта - allow. Увы XSS атаки наиболее распространены, и получить пользовательские cookies это самый простой их вектор (сейчас все чаще XSS нападение используется для CSRF атак). Поэтому необходимо использовать любую возможность для уменьшения рисков. Флаг http. Only рекомендуется указывать как минимум для ID сессии, для этого достаточно в настройках php указать: session. По моему мнению требует объяснений лишь одна: Ограничен список расширений исполняемых файлов. Т. к. Сканер безопасности сообщит вам, если в вашем кастомизированном списке содержаться не все необходимые расширения. Пользователи. Эти проверки появились только в security 1.
Основная их цель - проверить все ли привилегированные пользователи используют MFA, у всех ли установлен пароль достаточной сложности и т. Увы, на текущий момент по политическим соображениям включена только одна: У некоторых пользователей административной группы установлен слабый пароль. Сканер безопасности берет список пользователей из административной группы и пытается подобрать пароль к ним методом перебора по словарю. В случае успеха будет выведен список пользователей, которым необходимо установить более сложный пароль.
Зачастую слабый пароль у пользователей административной группы оказывается в следствии того, что изначально они небыли администраторами, т. Для nginx необходимо убрать директиву autoindex, она выглядит примерно так: location / . Увы, случаи неконтролируемого доступа к критически важным сервисам (например, memcached) - совсем не редкость. Это важный момент, т. Если вы пользуетесь shared- хостингом - это отличный повод для разговора с ним: ) Если у вас не кластерная архитектура проекта, то правильнее всего использовать unix- сокет, когда у вас memcached используется для кластера - корректные настройки firewall + SASL. Инъекция PHP- CGI параметров из строки запроса. Тут все достаточно просто: ) Есть уязвимость в php: CVE- 2.
Она позволяет как читать файлы вашего сайта ( /some. Рекомендуется незамедлительно обновить версию php, либо не использовать php- cgi вовсе. Неправильно сконфигурирована связка Nginx + php- fpm. Сколько не бейся над этой темой, но в интернете все еще достаточно много ужасных How. To’шек по настройке связки nginx + php- fpm, в которых ни слова не сказано о том, что php- fpm с конфигами по умолчанию и локейшн в nginx примерно следующего содержания: location ~* \. К примеру, обратившись к аватару пользователя таким образом: /upload/main/f.
EXIF или конце PNG). Наиболее распространенными вариантами решения является либо указание в php. Открыт доступ к служебным . Не стоит их радовать, ограничив доступ к ним (а лучше отключив/закрыв авторизацией, т. Наиболее распространенные: Apache mod.
Например: http: //apache. И PHP- FPM Status Page (pm. Найдены временные файлы. При редактировании файлов на сервере по SSH или при использовании DCVS могут создаваться временные копии текущих файлов, в которых может содержаться важная информация (например, все еще актуальные данные о подключении к БД).
Внешнее сканирование отобразит вам список всех таких файлов, которые необходимо удалить и понять причину их появления. Так же, возможно, стоит ограничить доступ к таким файлам на уровне веб- сервера. Найдены опасные файлы. Так же достаточно часто встречаются сайты на которых остались какие- то файлы после отладки, установки и т. Например: bitrixsetup. Внешнее сканирование сообщит вам список найденных файлов, которые в обязательном порядке (!) необходимо удалить.
Доступны настройки Php. My. Admin. Еще одна частая проблема - доступны настройки Php. My. Admin (папочка setup в новых версиях). Увы, они как минимум позволяют прочесть текущую конфигурацию Php.
My. Admin + в них постоянно находятся новые уязвимости. Внешнее сканирование сообщит вам, куда нужно смотреть; )Публичный доступ к файлам контроля версий. Как ни странно - публичный доступ к служебным каталогам DCVS все еще достаточно актуальное явление. Зачастую это крайне опасно для вашего сайта - необходимо в срочном порядке закрыть доступ к таким каталогам (.
В идеале необходимо пользоваться экспортом в вашей DCVS. Разумеется, внешнее сканирование сообщит вам куда необходимо смотреть: )Проверяемый сайт отвечает на хост по умолчанию. Это пожалуй одна из самых распространенных ошибок конфигурации для выделенных серверов. Суть проблемы заключается в том, что сайт отвечает на любой Host в заголовке запроса, в следствие чего, например, если $. Для решения этой угрозы, например, в nginx достаточно добавить сервер по умолчанию с перенаправлением на основной домен, например, такой (domain.
Внешнее сканирование укажет список таких файлов, которые необходимо удалить и впредь использовать встроенную в Битрикс админскую страницу с выводом phpinfo()Включен Automatic MIME Type Detection для Internet Explorer. По умолчанию в Internet Explorer включен mime- сниффинг (MIME Type Detection in Windows Internet Explore, IE8 Security Part VI: Beta 2 Update), что никак не идет на пользу безопасности пользователей вашего сайта. В двух словах, если в заголовке ответа Content- Type сказано . Благо начиная с IE8 этим поведением можно управлять при помощи заголовка X- Content- Type- Options. Самый простой пример эксплуатации этого - загрузка файла без расширения. Допустим, у нас есть скрипт позволяющий загружать только картинки, но сохраняющий их без расширения.. Загружаем через него файл test.
GIF8. 9. prompt('XSS on ' + document. Допустим будет доступна по адресу: http: //1. Для начала проверяем как его обработает IE1. HTTP/1. 1 2. 00 OK. Accept- Ranges: bytes. Connection: keep- alive.
Content- Length: 8. Content- Type: application/octet- stream. Date: Sun, 2. 7 Oct 2. GMT. ETag: . А теперь с заголовком . В скором времени набор тестов во внешнем сканировании будет еще расширен. Всем безопасных проектов и если у вас есть какие- либо вопросы - спрашивайте пожалуйста: ).