49
Сергей Рыжиков генеральный директор компании «1С-Битрикс» Что мы знаем о производительности и безопасности интернет-проекта или как вылечить зуб, если неизвестно какой болит?

DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Embed Size (px)

Citation preview

Page 1: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Сергей Рыжиковгенеральный директор

компании «1С-Битрикс»

Что мы знаем о производительности и безопасности интернет-проекта или как

вылечить зуб, если неизвестно какой болит?

Page 2: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Безопасность интернет-проектов

Page 3: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Большая часть современных сайтов - набор запчастей

низкий уровень стандартной разработки

отсутствие единой концепции безопасности

несколько аккаунтов для одного пользователя

не обновляемое ПО, особенно после модификации

Сайты сегодня – набор запчастей

Page 4: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Индивидуальные разработчики думают о безопасности сайтов в самую последнюю очередь.

Клиенты не готовы платить за безопасность интернет-проектов.

Подразумевается, что разработчик должен этим заниматься, но у него не остается ни времени, ни бюджета.

О безопасности сайта думают в последнюю очередь!

Page 5: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Хостинг часто не защищен

Зачастую уровень администрирования серверов и хостинга критически низкий

Редко используются системы автоматического мониторинга

Page 6: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Веб-сайт - часть корпоративной инфраструктуры.

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

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

Безопасность сайта

Page 7: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

• Перед выпуском модуля идет обязательное тестирование разработчиками на внутренних серверах с разными базами данных, операционными системами и версиями PHP

• Отдел тестирования проверяет на соответствие бизнес-функциональности и наличие ошибок

• Отдел безопасности проверяет на наличие уязвимостей

• Модуль поступает в бета-тестирование клиентам и партнерам

Разработчики работают в компании по 5-8 лет, но все равно допускают ошибки в безопасности. Почему?

Цикл разработки

Page 8: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Психология хакера и разработчика

Психология хакера и разработчика принципиально отличаются

Профессиональным веб-разработчик становится только через 3-5 лет и при активном контроле со стороны специалиста по веб-безопасности.

Как мыслит разработчик… … и как мыслит хакер

Page 9: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Студенты, ИТ специалисты начального уровня

пробуют силы на первых попавшихся сайтахнет понимания последствий для жертвынет осознания юридической личной ответственностиредко зарабатывают на хакерстве как на бизнесе

Профессиональные специалисты

прекрасный технический багажникогда не светятся в тусовках, не кривляютсяделают только на заказ и только за деньгиактивно работают на службы безопасности

крупных компаний

Категории хакеров

Соотношение разработчиков к хакерам 1:100

Page 10: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Индивидуальная проверка проектов специалистами по веб-безопасности

Большой объем работыПостоянные изменения вносимые в интернет-проекты

Нехватка специалистов

Отсутствие сформированной практики аудитов

Платный аудит безопасности

Page 11: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Web Application Firewall (Проактивный фильтр защиты от атак)Веб-антивирусПроверка качества внедрения и аудит безопасности кодаАутентификация и система составных паролей Технология защиты сессии пользователяАктивная реакция на вторжениеКонтроль целостности системыЗащита от фишингаШифрование данныхГрупповые политики безопасности Защита при регистрации и авторизацииЖурнал событий

Комплекс «Проактивная защита» Инструменты безопасности

Page 12: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

• XSS - cross site scripting (СSS)• SQL инъекции• PHP Including• часть атак, связанных с обходом

каталогов

Экранирует приложение от наиболее активно используемых атакФиксирует попытки атаки в журналеИнформирует администратора о случаях вторжения

Проактивный фильтр распознает большинство опасных угроз и блокирует вторжения на сайт.

Проактивный фильтрWeb Application FireWall

Page 13: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

В платформу «1С-Битрикс» встроена система противодействия заражениям сайтов, которая:

выявляет в html-коде потенциально опасные участкиопределяет большинство заражений сайтаведет «белый список» для отсечения ложно положительных срабатываний

Веб-антивирус ни в коем случае не является заменой персонального антивируса!

Веб-антивирус

Page 14: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

«Панель безопасности»

Оценка уровней безопасности веб-проекта

Page 15: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Аудит безопасности

Позволяет не только предотвратить эксплуатацию уязвимости, но и устранить ее источник.

Проверка показывает в отчете потенциальные уязвимости в коде и усиливает защиту сайта от взлома.

Page 16: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Ваши сотрудники авторизуются на сайте, используя свой логин, пароль и цифровой ключ со своего персонального брелка. Ключ используется только один раз и для каждой авторизации пользователя генерится новый набор цифр.

Технология одноразовых паролей (One Time Password - OTP) с использованием брелков Aladdin eToken PASS позволяет быть однозначно уверенным, что на сайте авторизуется именно тот человек, которому выдали брелок.

Корректность работы электронных ключей eToken PASS для системы «1С-Битрикс: Управление сайтом 8.0» подтверждается соответствующим сертификатом компании Aladdin, выданным на основании серии испытаний.

Технология одноразовых паролей

Page 17: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Готовое мобильное веб-приложение BitrixOTP, которое включено в модуль «Проактивной защиты», может быть бесплатно загружено с сайта клиента.

BitrixOTP опубликовано в Apple App Store и Android Market.

Веб-приложение для генерацииодноразовых паролей (OTP)

Page 18: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Сессия пользователя – это ключевой объект атаки на веб-сайт с целью получения сессии авторизованного пользователя

В повышенных режимах безопасности сессия будет полностью меняться раз в несколько минут (в зависимости от настройки)

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

Технология защитыавторизованных сессий

Page 19: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Обеспечивает защиту от DDoS атак на веб-приложения, от автоматизированных роботов, которые извлекают контент, спамят и всячески подстраиваются под посетителей

Контроль активности

Page 20: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Полная поддержка работы по SSL.

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

Зачастую разделяются режимы работы пользователей и администратора.

Новые параметры позволят использовать несколько режимов работы с сайтом для пользователей при установленном SSL сертификате.

Шифрование данных

Page 21: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Журнал вторжений

В журнале вторжений ведется запись попыток внедрения SQL, атак через XSS и внедрения PHP.

Page 22: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Защита административных разделов по IP

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

Page 23: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Стоп-листы

Стоп-лист ограничивает доступ посетителей к содержимому сайта. Все пользователи, которые попытаются зайти на сайт с IP адресами, включенными в стоп-лист, будут блокированы.

Page 24: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

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

Механизм расчета контрольных сумм всего проектаРаздельное вычисление для статических страниц и кода с возможностью видеть, когда менял обычный пользователь и когда менял веб-разработчикПароль проверки не хранится на сайтеФайл контрольных сумм можно отдельно сохранить у себя для проверки

Контроль целостности системы

Page 25: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Защита от фишинга

Ф шинг (англ. phishing, от password — пароль и и́�fishing — рыбная ловля, выуживание) — вид интернет-мошенничества, целью которого является получение доступа к конфиденциальным данным пользователей — логинам и паролям. Это достигается путем проведения массовых рассылок электронных писем от имени популярных брендов, например, от имени социальных сетей (Facebook, ВКонтакте), банков (Ситибанк, Альфа-банк), прочих сервисов (Rambler, Mail.ru)

Фишинг — одна из разновидностей социальной инженерии, основанной на незнании пользователями основ сетевой безопасности

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

Page 26: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Групповые политики безопасности

Выполняется проверка на длину пароля и на вхождение в пароль определенных групп символов (латинские буквы, цифры, знаки препинания)

Page 27: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Подтверждение регистрации по email

Поддержка авторизации OpenID и LiveID

Детальная настройка CAPTCHA

Вывод CAPTCHA после N неуспешных авторизаций

Регистрация и авторизация

Page 28: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

В журнал заносятся события, связанные с авторизацией и регистрацией пользователей. Детально настраиваются фиксируемые события.

Журнал событий

Page 29: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Вы должны быть уверены в защищенности и надежности сайта

Page 30: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Производительность интернет-проектов

Page 31: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Производительность веб-проекта

Производительность проекта зависит от трех составляющих:

• Конфигурация сервера или настройки хостинга и его общая производительность

• Настройки платформы, которые влияют на производительность (автокеширование, html-кеш, параметры поиска)

• Качество разработки, интеграции с платформой, которая выполняется веб-разработчиком

Page 32: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Конфигурация сервера

Устранение банальных ошибок конфигурирования может увеличить производительность в 10 раз.

Page 33: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Производительность PHP

До 60% рабочего времени веб-сервера тратят на повторную компиляцию PHP-кода перед исполнением.

Ключевой способ снизить нагрузку на процессор – использовать компиляторы PHP-кода.

PHP-прекомпиляторы:

eAccelerator - http://www.eaccelerator.net/Alternative PHP Cache - http://pecl.php.net/package/apc Zend Performance Suite - http://www.zend.com/

Turck MMCache - http://turck-mmcache.sourceforge.net/ PHP Accelerator - http://www.php-accelerator.co.uk/ AfterBurner Cache - http://www.bwcache.bware.it/

Page 34: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Время исполнения PHP

Загруженная файловая система существенно снижает производительность PHP-приложений.

Page 35: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Качество разработки

• Низкий уровень знаний разработчиков• Использование API функций отключает мозг• Неправильное использование API крайне тяжело

выявляется

Примеры из жизни:•меню сайта запрограммировано так, что выполняло 5000 запросов к БД•в шаблон страницы встроено обращение к GISMETEO прямо из PHP-кода

Page 36: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Система отладки

Page 37: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Высоконагруженные проекты

• большая посещаемость проекта в среднесуточном выражении;

• высокие пиковые нагрузки;

• невозможность кешировать страницы в силу сложной бизнес-логики;

• большие интерактивные проекты: форумы, блоги, журналы;

• индивидуальные страницы для отдельных пользователей;

• большие объемы данных;

• недостаточность аппаратных ресурсов по отношению к предыдущим факторам.

Высоконагруженные веб-проекты – это комплексное сочетание целого ряда факторов:

Page 38: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Так как же «лечить зуб»?

Как это решали мы

Page 39: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Система онлайн-обученияи сертификация веб-разработчиков

Page 40: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Специальные тарифные планы у хостеров

Page 41: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Сертификация хостинг-провайдеров

Page 42: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Инструменты отладки

Page 43: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Результаты

Эти методы не работали.

• Качество тарифных планов хостинга постоянно меняется.

• Пользователи/клиенты не могут проконтролировать качество конфигурации, качество настройки платформы и качество разработки.

• У разработчиков на это не хватает времени или квалификации.

Page 44: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Монитор производительности

Page 45: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Виртуальная машина VMware

Полностью настроенный и протестированный виртуальный сервер для работы PHP-приложений.

Page 46: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Нагрузочное тестирование

Нагрузочное тестирование - обязательный этап в завершении настройки.

Нагрузочное тестирование является важнейшей процедурой подготовки крупного проекта к открытию.

Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на выбранном оборудовании.

Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10 раз и сделать его устойчивым к стрессовым нагрузкам.

Page 47: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Пример

Page 48: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Веб-кластер

Основные задачи, которые решает веб-кластер:

Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры)

Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры)

Балансирование нагрузки, трафика, данных между несколькими серверами.

Создание целостной резервной копии данных для MySQL.

Page 49: DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасности интернет-проекта" Сергей

Спасибо за внимание!Вопросы?

@rsv_bitrix