Безопасность в Nemo.Travel: различия между версиями
(→Защищенная авторизация пользователей) |
(→Защита персональных данных) |
||
(не показаны 44 промежуточные версии 6 участников) | |||
Строка 1: | Строка 1: | ||
− | В системе | + | В системе бронирования {{NameSystemLink}} используются общепринятые механизмы безопасного хранения, передачи и использования данных. |
− | == | + | == Аутентификация и авторизация == |
− | + | === Безопасное хранение паролей === | |
− | |||
− | + | Пароль, который указывается при создании новых учетных записей через административную панель, является временным. При попытке первого входа в систему конечному пользователю будет предложено изменить пароль на отличный от введенного раннее. | |
− | В | + | В базе данных пароли хранятся в виде [https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 хешей], полученных по алгоритму SHA256 с добавлением случайной [https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BB%D1%8C_(%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F) "соли"]. Это является гарантией того, что ваш пароль не будет доступен для чтения ни злоумышленникам, ни сотрудникам {{NameSystemLink}}. |
− | + | В случае, если вы забыли пароль, вы можете воспользоваться функцией изменения пароля. В рамках нее на адрес вашей персональной электронной почты, указанный в разделе настроек '''Аккаунт менеджмент → Агенты и пользователи → Профили пользователей''', будет выслана ссылка для одноразовой попытки изменения пароля. | |
− | + | В нашей системе предусмотрена защита от подбора пароля перебором, но для максимальной безопасности вашего аккаунта рекомендуется использовать длинный уникальный пароль, содержащий не менее 8 символов, среди которых должны быть использованы цифры, строчные и заглавные буквы латинского алфавита. | |
− | + | === Двухэтапная аутентификация для сотрудников агентств === | |
− | |||
− | + | Аутентификация только по логину и паролю недостаточно безопасна, так как злоумышленник может получить ваш логин и пароль от вас напрямую, например, через [https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D1%88%D0%B8%D0%BD%D0%B3 фишинг]. | |
+ | При получении электронных писем от неизвестных вам отправителей проверяйте адреса ссылок, указанных в тексте письма. Не вводите ваш логин и пароль в формы на подозрительных сайтах, даже если они выглядят как сайты, привязанные к {{NameSystem}}. | ||
+ | |||
+ | Для обеспечения дополнительной защиты в нашей системе была добавлена возможность проводить двухэтапную аутентификацию для ваших сотрудников: | ||
+ | |||
+ | * Первый этап — ввод логина и пароля | ||
+ | * Второй этап — подтверждение через код, отправленный в виде SMS сообщения на номер мобильного телефона или в письме по адресу электронной почты | ||
+ | |||
+ | Для включения двухэтапной аутентификации нужно: | ||
+ | |||
+ | # Включить функциональность в разделе настроек '''Управление сайтом → Домены и протоколы''' пользователям с определенными правами. <br> Настройте параметр '''Использовать дополнительную защиту при авторизации для''': | ||
+ | #* ''Администраторов'' | ||
+ | #* ''Менеджеров агентства'' | ||
+ | #* ''Экспертов агентства'' | ||
+ | #* ''Менеджеров компаний'' | ||
+ | #* ''Экспертов компаний'' | ||
+ | #* Пользователей агентства'' | ||
+ | #* ''Пользователей компаний'' | ||
+ | # При последующем входе в систему этим пользователям будет предложено подтвердить адрес своей электронной почты или номер мобильного телефона через отправку одноразового кода. Данный шаг можно пропустить 5 раз, далее вход в систему будет невозможен без подтверждения указанных выше данных. | ||
+ | # В дальнейшем при входе с нового устройства (браузера) или IP-адреса необходимо будет пройти процедуру верификации, введя код, отправленный при этом на номер телефона или адрес электронной почты | ||
+ | |||
+ | Самостоятельно поменять ранее подтвержденный адрес электронной почты или телефон возможно только после входа в личный кабинет. При изменении этих данных необходимо будет верифицировать номер телефона или адрес электронной почты повторно. | ||
+ | |||
+ | {{Attention|Для подтверждения входа по SMS необходимо иметь подключенный модуль [[СМС_Трафик|SMS Traffic]].|}} | ||
+ | |||
+ | === Ограничения для аккаунтов сотрудников {{NameSystem}} === | ||
+ | |||
+ | Административные аккаунты сотрудников {{NameSystem}} максимально защищены. Авторизоваться с помощью них можно только с определенных IP-адресов и с прохождением обязательной процедуры двухэтапной аутентификации по номеру личного телефона или корпоративной почты. | ||
+ | У сотрудников {{NameSystem}} существуют ограничения на некоторые действия. К примеру, они не могут изменять правила ценообразования агентства. | ||
+ | |||
+ | === Протокол HTTPS === | ||
+ | |||
+ | Система {{NameSystem}} полноценно поддерживает работу веб-сайтов с использованием протокола HTTPS. Этот протокол обеспечивает безопасную передачу данных по открытым каналам связи, используя механизмы асимметричного шифрования. Для корректной работы по этому протоколу вы должны приобрести SSL-сертификат для домена вашего веб-сайта и передать его нашим системным администраторам. | ||
+ | |||
+ | Строго рекомендуется вводить персональные данные покупателей для оформления заказов или логин и пароль для прохождения аутентификации только по ссылкам, открытым по HTTPS протоколу. | ||
+ | |||
+ | === Авторизация === | ||
+ | |||
+ | Права пользователей определяются их ролью и дополнительными параметрами, установленными в административной части {{NameSystem}}. | ||
+ | |||
+ | Для выполнения всех действий в системе, которые могут прямо или косвенно нанести вред или финансовый ущерб, требуется авторизация. | ||
+ | |||
+ | == Защита персональных данных == | ||
+ | |||
+ | Для получения доступа к своим персональным данным или данным ранее заполненных профилей пассажиров, пользователь должен авторизоваться в системе и перейти в личный кабинет. | ||
+ | Для обеспечения безопасного хранения все персональные данные записываются в базу данных в зашифрованном виде. | ||
+ | Сотрудники {{NameSystem}} не имеют доступа к профилям пассажиров, созданных через личный кабинет другими пользователями системы. | ||
+ | |||
+ | Пользователь по собственному желанию может полностью удалить свой аккаунт из системы, после чего все его персональные данные и данные его профилей будет удалены из системы без возможности восстановления. | ||
+ | |||
+ | Ознакомиться с политикой компании в отношении обработки персональных данных можно на странице [[Политика компании в отношении обработки персональных данных]]. | ||
+ | |||
+ | == Защита данных о заказах == | ||
+ | |||
+ | Получить доступ к ранее сделанному заказу можно несколькими безопасными способами: | ||
+ | |||
+ | # Авторизоваться в системе (если заказ был сделан авторизованным пользователем) | ||
+ | # Ввести уникальный код доступа (обычно код отправляется на адрес электронной почты, указанный при бронировании) | ||
+ | # Вход через форму с указанием номера заказа и фамилии первого пассажира | ||
+ | # По секретной ссылке из QR-кода на маршрут-квитанции (если QR-код предусмотрен шаблоном документа) | ||
+ | |||
+ | В системе предусмотрена защита от подбора кода доступа и фамилии первого пассажира перебором. | ||
+ | |||
+ | Код доступа и фамилия первого пассажира хранятся в базе в виде SHA256 хеша с "солью" и, по аналогии с паролем, не могут быть восстановлены в исходный вид. | ||
+ | |||
+ | Все данные по заказу, заказчику, пассажирам, а также ссылка для QR-кода хранятся в базе данных в зашифрованном виде. | ||
+ | |||
+ | Получить доступ к маршрут-квитанциям и другим документам, относящимся к заказу, можно только после получения доступа к основному заказу (по методам описанным выше). | ||
+ | Все документы хранятся в базе в зашифрованном виде. | ||
+ | |||
+ | == Безопасность {{NameSystem}} как веб-приложения == | ||
+ | === Защита от инъекций === | ||
+ | Все входные данные валидируются как средствами JavaScript, так и на уровне сервера. Все запросы к базам данных в системе написаны с использованием плейсхолдеров и экранированием параметров, подставляемых в них. | ||
+ | === Защита от XSS === | ||
+ | Все данные перед вводом и выводом проверяются на предмет наличия JS-инъекций. Это гарантирует безопасность использования COOKIE в нашей системе. | ||
+ | Если злоумышленник всё же получает COOKIE из чужого браузера (к примеру, с помощью зараженного вирусами программного обеспечения), он не сможет ими воспользоваться для аутентификации в нашей системе под учетными записями ваших сотрудников. Их идентификаторы сессий привязаны к IP-адресам. | ||
+ | === Защита от CSRF === | ||
+ | В целях повышения надежности системы реализован механизм защиты от [https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D0%BB%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0 CSRF] атак. | ||
+ | |||
+ | Ограничены переходы по ссылкам (или автоматические перенаправления) со сторонних сайтов на страницы административной панели {{NameSystem}} или на страницы, выполняющие операции с заказами. | ||
+ | |||
+ | В этом случае у пользователя будет предварительно запрошено подтверждение о переходе. | ||
+ | |||
+ | === Проверка по IP === | ||
+ | Важные запросы от сторонних сервисов, например, от платежных шлюзов, проверяются на допустимость IP-адреса отправителя по "белому списку". Таким образом запрос практически невозможно подделать злоумышленникам. | ||
+ | Важные запросы от API пользователей, например, на выписку билетов, также проверяются по допустимым IP-адресам. | ||
+ | |||
+ | === Блокировки по IP === | ||
+ | В системе предусмотрены механизмы как ручной, так и автоматической блокировки злоумышленников по IP-адресу | ||
+ | === Логирование и мониторинг === | ||
+ | Все операции с заказами и действия пользователей системы логируются. Логи индексируются (для быстрого обращения к ним) и хранятся в базе данных в течение длительного времени. | ||
+ | |||
+ | Сокращенный вариант логов доступен для просмотра менеджеру агентства в административной панели. Полный вариант доступен только сотрудникам {{NameSystem}} и может быть предоставлен по запросу в техническую поддержку. | ||
+ | |||
+ | Обо всех критических программных ошибках и подозрительных действиях (которые могут трактоваться как попытка взлома) сотрудники {{NameSystem}} автоматически получают уведомления по электронной почте или на телефон 24x7. | ||
+ | |||
+ | ==См. также== | ||
+ | *[[Авторизованный пользователь]] | ||
+ | *[[Права доступа]] | ||
+ | *[[Менеджер агентства]] | ||
+ | *[[Пользователь]] | ||
+ | *[[Защищенное соединение]] | ||
+ | *[[Сертификат SSL]] | ||
+ | *[[Протокол]] |
Текущая версия на 14:25, 28 октября 2022
В системе бронирования Nemo.travel используются общепринятые механизмы безопасного хранения, передачи и использования данных.
Содержание
Аутентификация и авторизация
Безопасное хранение паролей
Пароль, который указывается при создании новых учетных записей через административную панель, является временным. При попытке первого входа в систему конечному пользователю будет предложено изменить пароль на отличный от введенного раннее.
В базе данных пароли хранятся в виде хешей, полученных по алгоритму SHA256 с добавлением случайной "соли". Это является гарантией того, что ваш пароль не будет доступен для чтения ни злоумышленникам, ни сотрудникам Nemo.travel.
В случае, если вы забыли пароль, вы можете воспользоваться функцией изменения пароля. В рамках нее на адрес вашей персональной электронной почты, указанный в разделе настроек Аккаунт менеджмент → Агенты и пользователи → Профили пользователей, будет выслана ссылка для одноразовой попытки изменения пароля.
В нашей системе предусмотрена защита от подбора пароля перебором, но для максимальной безопасности вашего аккаунта рекомендуется использовать длинный уникальный пароль, содержащий не менее 8 символов, среди которых должны быть использованы цифры, строчные и заглавные буквы латинского алфавита.
Двухэтапная аутентификация для сотрудников агентств
Аутентификация только по логину и паролю недостаточно безопасна, так как злоумышленник может получить ваш логин и пароль от вас напрямую, например, через фишинг. При получении электронных писем от неизвестных вам отправителей проверяйте адреса ссылок, указанных в тексте письма. Не вводите ваш логин и пароль в формы на подозрительных сайтах, даже если они выглядят как сайты, привязанные к Nemo.Travel.
Для обеспечения дополнительной защиты в нашей системе была добавлена возможность проводить двухэтапную аутентификацию для ваших сотрудников:
- Первый этап — ввод логина и пароля
- Второй этап — подтверждение через код, отправленный в виде SMS сообщения на номер мобильного телефона или в письме по адресу электронной почты
Для включения двухэтапной аутентификации нужно:
- Включить функциональность в разделе настроек Управление сайтом → Домены и протоколы пользователям с определенными правами.
Настройте параметр Использовать дополнительную защиту при авторизации для:- Администраторов
- Менеджеров агентства
- Экспертов агентства
- Менеджеров компаний
- Экспертов компаний
- Пользователей агентства
- Пользователей компаний
- При последующем входе в систему этим пользователям будет предложено подтвердить адрес своей электронной почты или номер мобильного телефона через отправку одноразового кода. Данный шаг можно пропустить 5 раз, далее вход в систему будет невозможен без подтверждения указанных выше данных.
- В дальнейшем при входе с нового устройства (браузера) или IP-адреса необходимо будет пройти процедуру верификации, введя код, отправленный при этом на номер телефона или адрес электронной почты
Самостоятельно поменять ранее подтвержденный адрес электронной почты или телефон возможно только после входа в личный кабинет. При изменении этих данных необходимо будет верифицировать номер телефона или адрес электронной почты повторно.
Внимание! Для подтверждения входа по SMS необходимо иметь подключенный модуль SMS Traffic.
Ограничения для аккаунтов сотрудников Nemo.Travel
Административные аккаунты сотрудников Nemo.Travel максимально защищены. Авторизоваться с помощью них можно только с определенных IP-адресов и с прохождением обязательной процедуры двухэтапной аутентификации по номеру личного телефона или корпоративной почты. У сотрудников Nemo.Travel существуют ограничения на некоторые действия. К примеру, они не могут изменять правила ценообразования агентства.
Протокол HTTPS
Система Nemo.Travel полноценно поддерживает работу веб-сайтов с использованием протокола HTTPS. Этот протокол обеспечивает безопасную передачу данных по открытым каналам связи, используя механизмы асимметричного шифрования. Для корректной работы по этому протоколу вы должны приобрести SSL-сертификат для домена вашего веб-сайта и передать его нашим системным администраторам.
Строго рекомендуется вводить персональные данные покупателей для оформления заказов или логин и пароль для прохождения аутентификации только по ссылкам, открытым по HTTPS протоколу.
Авторизация
Права пользователей определяются их ролью и дополнительными параметрами, установленными в административной части Nemo.Travel.
Для выполнения всех действий в системе, которые могут прямо или косвенно нанести вред или финансовый ущерб, требуется авторизация.
Защита персональных данных
Для получения доступа к своим персональным данным или данным ранее заполненных профилей пассажиров, пользователь должен авторизоваться в системе и перейти в личный кабинет. Для обеспечения безопасного хранения все персональные данные записываются в базу данных в зашифрованном виде. Сотрудники Nemo.Travel не имеют доступа к профилям пассажиров, созданных через личный кабинет другими пользователями системы.
Пользователь по собственному желанию может полностью удалить свой аккаунт из системы, после чего все его персональные данные и данные его профилей будет удалены из системы без возможности восстановления.
Ознакомиться с политикой компании в отношении обработки персональных данных можно на странице Политика компании в отношении обработки персональных данных.
Защита данных о заказах
Получить доступ к ранее сделанному заказу можно несколькими безопасными способами:
- Авторизоваться в системе (если заказ был сделан авторизованным пользователем)
- Ввести уникальный код доступа (обычно код отправляется на адрес электронной почты, указанный при бронировании)
- Вход через форму с указанием номера заказа и фамилии первого пассажира
- По секретной ссылке из QR-кода на маршрут-квитанции (если QR-код предусмотрен шаблоном документа)
В системе предусмотрена защита от подбора кода доступа и фамилии первого пассажира перебором.
Код доступа и фамилия первого пассажира хранятся в базе в виде SHA256 хеша с "солью" и, по аналогии с паролем, не могут быть восстановлены в исходный вид.
Все данные по заказу, заказчику, пассажирам, а также ссылка для QR-кода хранятся в базе данных в зашифрованном виде.
Получить доступ к маршрут-квитанциям и другим документам, относящимся к заказу, можно только после получения доступа к основному заказу (по методам описанным выше). Все документы хранятся в базе в зашифрованном виде.
Безопасность Nemo.Travel как веб-приложения
Защита от инъекций
Все входные данные валидируются как средствами JavaScript, так и на уровне сервера. Все запросы к базам данных в системе написаны с использованием плейсхолдеров и экранированием параметров, подставляемых в них.
Защита от XSS
Все данные перед вводом и выводом проверяются на предмет наличия JS-инъекций. Это гарантирует безопасность использования COOKIE в нашей системе. Если злоумышленник всё же получает COOKIE из чужого браузера (к примеру, с помощью зараженного вирусами программного обеспечения), он не сможет ими воспользоваться для аутентификации в нашей системе под учетными записями ваших сотрудников. Их идентификаторы сессий привязаны к IP-адресам.
Защита от CSRF
В целях повышения надежности системы реализован механизм защиты от CSRF атак.
Ограничены переходы по ссылкам (или автоматические перенаправления) со сторонних сайтов на страницы административной панели Nemo.Travel или на страницы, выполняющие операции с заказами.
В этом случае у пользователя будет предварительно запрошено подтверждение о переходе.
Проверка по IP
Важные запросы от сторонних сервисов, например, от платежных шлюзов, проверяются на допустимость IP-адреса отправителя по "белому списку". Таким образом запрос практически невозможно подделать злоумышленникам. Важные запросы от API пользователей, например, на выписку билетов, также проверяются по допустимым IP-адресам.
Блокировки по IP
В системе предусмотрены механизмы как ручной, так и автоматической блокировки злоумышленников по IP-адресу
Логирование и мониторинг
Все операции с заказами и действия пользователей системы логируются. Логи индексируются (для быстрого обращения к ним) и хранятся в базе данных в течение длительного времени.
Сокращенный вариант логов доступен для просмотра менеджеру агентства в административной панели. Полный вариант доступен только сотрудникам Nemo.Travel и может быть предоставлен по запросу в техническую поддержку.
Обо всех критических программных ошибках и подозрительных действиях (которые могут трактоваться как попытка взлома) сотрудники Nemo.Travel автоматически получают уведомления по электронной почте или на телефон 24x7.