Безопасность интернет-приложений #1 / Риски и угрозы [Технострим]

Безопасность интернет-приложений #1 / Риски и угрозы [Технострим]

Введение

Обзор раздела: В этом разделе преподаватель объясняет, что будет рассматриваться в курсе и почему безопасность информационных систем является важной темой.

Что будет рассмотрено в курсе

  • Курс будет о безопасности интернет-приложений, мобильных приложений и веб-приложений.
  • Курс состоит из 7 или 8 занятий, которые будут проходить каждую неделю.
  • Одно из занятий будет посвящено автоматизации тестирования.

Как получить зачет

  • Для получения зачета нужно посещать все семинары и выполнять задания на них.

Почему безопасность информационных систем важна

  • Безопасность информационных систем стала очень актуальной темой, так как все больше денег и активности переходят в цифровую область.
  • Увеличение количества инцидентов связанных с компьютерной безопасностью приводит к ущербу для пользователей и компаний.
  • Преподаватель показывает график хакерских атак последних двадцати лет и топ-5 инцидентов связанных с компьютерной безопасностью за последний год.

Безопасность информационных систем

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

Что такое безопасность информационных систем

  • Система считается безопасной, если она обладает четырьмя свойствами: конфиденциальностью, целостностью, доступностью и аутентификацией.
  • Актив или asset - это любой объект, который находится под защитой.

Четыре свойства безопасности информационных систем

  • Конфиденциальность - это свойство, которое позволяет сохранять в тайне информацию, которая должна быть секретной.
  • Целостность - это свойство, которое позволяет сохранять данные в неизменном виде.
  • Доступность - это свойство, которое позволяет пользователям получать доступ к данным и ресурсам в нужное время.
  • Аутентификация - это процесс проверки подлинности пользователя или системы.

Активы

  • Актив или asset - это любой объект, который находится под защитой.
  • Примеры активов: данные, программное обеспечение, аппаратное обеспечение и т.д.

Угрозы и оценка рисков

Обзор раздела: В этом разделе говорится об уязвимостях в системах безопасности, угрозах и оценке рисков.

Изучение системы

  • Уязвимость - это ошибка в системе, которая может нарушить ее безопасность.
  • Перед тем как начать мероприятия по обеспечению безопасности, нужно изучить систему и понять ее устройство.
  • Для защиты или слома задачи необходимо изучить систему и найти уязвимые места.

Модель угроз

  • Чтобы понять, как защитить систему, нужно построить модель угроз.
  • Каждая угроза определяется компонентами до активов, ассетами и потоками данных между ними.
  • Существует несколько типов угроз: spoofing (подмена данных), piling (перехват данных), replay attack (повторное использование запросов), отказ компонента или всей системы и повышение привилегий в системе.

Оценка рисков

  • Каждая угроза выражается в некотором риске, их нужно уметь сравнивать и выстраивать по приоритету.
  • Существуют разные системы оценки рисков, которые помогают повысить опасность системы.

Введение

Обзор раздела: В этом разделе говорится об основных понятиях информационной безопасности.

Основные понятия

  • Информационная безопасность - это защита информации от несанкционированного доступа, использования, раскрытия, изменения или уничтожения.
  • Аутентификация - это процесс проверки подлинности пользователя или системы.
  • Шифрование - это процесс преобразования информации в непонятный для посторонних вид.

Управление доступом

Обзор раздела: В этом разделе говорится об управлении доступом к информации.

Управление доступом

  • Управление доступом - это процесс контроля доступа к информации.
  • Ролевая модель - это модель управления доступом, в которой права доступа определяются на основе роли пользователя.
  • Мандатное управление доступом - это модель управления доступом, в которой права доступа определяются на основе полномочий.

Угрозы и оценка рисков

Обзор раздела: В этом разделе говорится об уязвимостях в системах безопасности, угрозах и оценке рисков.

Изучение системы

  • Нужно изучить систему и найти уязвимые места.

Модель угроз

  • [](

Оценка рисков и меры безопасности

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

Оценка рисков

  • Риск оценивается по 5 параметрам: потенциальный урон, воспроизводимость, эксплуатируемость, количество пользователей, которые пострадают при реализации угрозы.
  • Риск оценивается по 10 бальной шкале.
  • Оценки складываются и получается число, которое можно использовать для сравнения и принятия решений.

Меры безопасности

Контроль доступа

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

Управление сессиями

  • Сессия - это понятие, неотрывно связанное с контролем доступа. Мероприятия по управлению сессиями являются частью мер безопасности, которые должны быть реализованы в информационной системе.

Контроль над входными данными

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

Обработка ошибок

  • Контроль над входными данными и обработка возникающих ошибок - это еще одна мера безопасности, которую нужно реализовать в информационной системе.

Заключение

  • Оценка рисков и применение мер безопасности помогают повысить уровень безопасности информационной системы.

Обработка ошибок и меры безопасности

Обзор раздела: В этом разделе рассматривается важность обработки ошибок и мер безопасности при построении систем.

Обработка ошибок

  • Ошибки, которые происходят в системе, должны быть предусмотрены и обработаны.
  • Необработанные ошибки могут привести к нарушению работы приложения и утечке информации о внутреннем устройстве системы.
  • Пример: если мы не отловим ошибку при проверке пароля пользователя, то можем выдать сессию пользователю, который не прошел проверку.

Меры безопасности

  • Данные должны быть классифицированы по степени секретности, важности и ценности.
  • Каждый тип данных должен иметь свой набор мер безопасности.
  • Принцип наименьшего привилегия: каждому компоненту должен быть назначен только тот набор прав, который нужен для его функционирования.
  • Для обеспечения безопасности данных при хранении и передаче следует использовать адекватные криптографические методы.

Общие термины информационной безопасности

Обзор раздела: В этом разделе рассказывается о том, каким образом можно обеспечить безопасность приложения.

Кастомные и стандартные реализации

  • Специалисты должны знать, что кастомные реализации могут содержать недочеты, которые сложно протестировать.
  • Разработчики должны знать, какой алгоритм выбрать в зависимости от ситуации и где найти правильную реализацию.

Принципы безопасной разработки

  • Разработчики должны знать два принципа безопасной разработки: "безопасность по дизайну" и "безопасность глубину".
  • "Безопасность по дизайну" означает, что при проектировании системы нужно учитывать аспекты безопасности.
  • "Безопасность глубину" означает, что для каждой потенциальной угрозы должна быть больше одной меры безопасности.

Инструменты безопасности браузера

Обзор раздела: В этом разделе рассказывается о том, какие инструменты предоставляет браузер для обеспечения безопасности приложения.

Origin policy

  • Главный принцип безопасности браузера - это origin policy.
  • Origin policy говорит о том, что доступ к данным загруженным с определенного origin могут иметь только те скрипты, которые загружены с такого же origin.

Приложение в браузере

Обзор раздела: В этом разделе рассказывается о том, как работает приложение в браузере и какие инструменты предоставляет Android для обеспечения безопасности приложений.

Работа приложения в браузере

  • При работе с формой на сайте происходит post запрос.
  • Для проверки пароля используются tashtego и система проверки паролей.

Инструменты Android для обеспечения безопасности приложений

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

Политика Same-Origin

Обзор раздела: В этом разделе рассказывается о политике Same-Origin и ее важности для безопасности пользователей.

Same-Origin Policy

  • Same-Origin Policy - это правило, которое позволяет скрипту загруженному с определенного origin читать данные только с того же origin.
  • Это правило обеспечивает безопасность данных пользователя при использовании приложений.
  • Существует несколько типичных уязвимостей, которые могут нарушить политику Same-Origin и стать проблемой для безопасности пользователей.
  • Для большинства типов запросов политика Same-Origin выполняется по умолчанию, но есть исключения.
  • Некоторые ресурсы, такие как статические страницы, могут быть загружены из других источников. Однако JavaScript не может читать эти ресурсы.
  • Существует технология Cross-Origin Resource Sharing (CORS), которая позволяет скрипту запрашивать данные с других origin.

Режим CORS

  • Режим CORS используется для чтения данных с других origin.
  • Для использования CORS необходимо разрешение от сервера, к которому обращается скрипт.
  • Браузер делает preflight запрос на сервер для проверки разрешения на чтение данных с другого origin.
  • Если сервер разрешает запрос, браузер делает настоящий запрос и получает данные.
  • Если сервер не разрешает запрос, браузер не делает запрос и возвращает ошибку.

Заключение

  • Разработчики могут использовать заголовок Access-Control-Allow-Origin для управления доступом к данным с других origin.
  • Кастомные заголовки могут быть переданы через опциональный заголовок Access-Control-Allow-Headers.
  • Использование звездочки в Access-Control-Allow-Origin позволяет любому пользователю получить доступ к данным с других origin без ограничений.

Безопасность куков и сессий

Обзор раздела: В этом разделе рассматривается безопасность куков и сессий, а также способы защиты данных пользователя.

Куки

  • Куки - это кусочек данных, который сохраняется в браузере.
  • Сессии - это длинная строка, которая используется для идентификации пользователя.
  • Куки могут быть настроены по умолчанию для определенных доменов или путей.
  • Флаг secure указывает, что куки должны передаваться только по защищенному соединению.

Защита данных

  • Для защиты данных пользователей можно использовать несколько методов: добавление специальных атрибутов при сохранении кук, указание времени хранения кук и ограничение доступа к ним.
  • Флаг SameSite позволяет контролировать отправку кук на другие сайты.

Механизмы безопасности браузера

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

Заголовки контента и безопасность

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

Конкурс Security Policy

  • Самый навороченный механизм - конкурс Security Policy.
  • Это позволяет перечислить ресурсы, которые можно загружать на странице.

Ограничение загрузки ресурсов

  • Браузер может ограничивать загрузку ресурсов из других источников.
  • Это может помочь предотвратить кражи кликов.

Указание типа данных

  • Разработчик страницы может явно указать браузеру, какой тип данных возвращает запрос.
  • Это важно для безопасности, так как разные типы данных могут быть интерпретированы по-разному.

Перерыв

Перерыв на 10 минут.

Автотест и обсуждение Android

Обсуждение механизмов безопасности Android.

Механизмы безопасности Android

  • Android предоставляет приложения для обеспечения их безопасности.
  • Из этого будут вытекать хорошие практики написания кода.

Android Security Module

В этом разделе рассматривается безопасность приложений на платформе Android. Обсуждаются угрозы, связанные с интентами и пермишенами.

Различия между явными и неявными интентами

  • Каждое приложение выполняется в sandbox, что означает, что каждое приложение изолировано на уровне операционной системы.
  • Операционная система определяет, давать ли доступ к ресурсам устройства (например, хранилищу или отправке SMS), основываясь на разных факторах.
  • Интенты могут быть явными или неявными. Явные интенты указывают класс, который будет обрабатывать запрос. Неявные интенты могут вызывать проблемы безопасности.
  • При передаче данных через интент возникает риск перехвата данных зловредным приложением.

Управление доступом к данным

  • Для предотвращения угроз связанных с интентами используются permissons и intent filters.
  • Android предоставляет способы управления доступом к данным, такие как permissons и signature-based permissions.
  • Приложения могут запрашивать данные друг у друга, если они подписаны одним и тем же ключом.

Заключение

  • В целом, на платформе Android существует два типа угроз: создание зловредных интентов и получение данных от зловредных приложений.

Механизмы обеспечения безопасности в Android

Обзор раздела: В этом разделе рассмотрены механизмы обеспечения безопасности в Android-приложениях.

Контроль доступа к данным

  • Контент-провайдер должен соблюдать определенные меры безопасности при работе с данными, которые даются наружу.
  • Для контроля изменений данных необходимо использовать механизм перми си.

Исполнение Java Script

  • Включение исполнения Java Script может привнести уязвимости в приложение.
  • В Android есть фича, которая позволяет отключить и включить Java Script - Mass of Chance.

Угрозы безопасности в Android приложении

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

Нарушение безопасности

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

Вредоносные приложения

  • Эксплуатация уязвимостей в Android приложении более трудоемка, чем в случае с вредоносным приложением.
  • Google выпиливает до 4000 вредоносных приложений ежемесячно.

Заключение

Обзор раздела: В этом разделе были рассмотрены возможности нарушения безопасности Android-приложений и механизмы защиты от них.

Безопасность приложений Android

Обзор раздела: В этом разделе рассматривается безопасность приложений на платформе Android. Разработчики должны учитывать требования безопасности, чтобы защитить данные пользователей и предотвратить возможные атаки.

Ограничения доступа к данным

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

Работа с файловой системой

  • Секретные данные не должны храниться в хранилищах, которые допускают доступ третьих приложений.
  • Нельзя записывать или читать файлы из файловой системы с контролируемой третьей стороной.
  • Имена файлов должны быть контролированы входными параметрами.

Заключение

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

Работа с файлами и механизмы безопасности

Обзор раздела: В этом разделе рассказывается о работе с файлами в Android, а также о механизмах безопасности, которые необходимо учитывать при разработке приложений.

Работа с файлами

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

Механизмы безопасности

  • Для обеспечения безопасности Android-приложений необходимо учитывать следующие механизмы: работу с интентами, контент-провайдеры и пермишены.
  • При работе со своим браузером нужно минимизировать использование JavaScript.
  • Все данные, передаваемые между приложением и сервером, должны передаваться по защищенному каналу.
  • Для шифрования данных в Android используется протокол SSL.

Заключение

  • Необходимо учитывать механизмы безопасности при разработке Android-приложений, чтобы избежать возможных уязвимостей.

Ошибки сертификата и безопасность приложений

Обзор раздела: В этом разделе рассказывается о том, как игнорирование ошибок сертификата может привести к уязвимостям в безопасности приложений. Также представлены источники информации для изучения вопросов безопасности.

Ошибки сертификата и уязвимости

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

Источники информации по безопасности

  • Open-source проект OWASP (The Open Web Application Security Project) содержит много материалов по вопросам безопасности приложений.
  • Mozilla Developer Network содержит секцию "Правильная защита", которая рассказывает о крутых фичах браузеров и других аспектах безопасности.
  • Статья про Android Security Module содержит интересную информацию о безопасности в Android.
  • Для автоматизации поиска уязвимостей можно использовать различные инструменты, такие как игры и программы.

Описание курса

Обзор раздела: В этом разделе представлено краткое описание того, что будет рассмотрено в оставшееся время курса.

Основные темы курса

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

Лекция №1 "О программе курса. Риски и угрозы" Курс "Безопасность интернет-приложений" Технополис Mail.Ru Group, СПбПУ Петра Великого Другие лекции курса: http://bit.ly/39WwfsY Слайды лекции: http://bit.ly/2FwDV7g 📝ПОДРОБНЕЕ О КУРСЕ: Описание и программа: http://bit.ly/305RQek Цель курса — изучение основ анализа безопасности интернет-приложений, получение навыков разработки архитектуры программного обеспечения с учетом требований безопасности. 👨‍💻ВМЕСТЕ С ЭТИМ КУРСОМ РЕКОМЕНДУЕМ ИЗУЧИТЬ: Курс "Разработка на Java" http://bit.ly/1QUmj1W Курс "Основы мобильной разработки" http://bit.ly/1LYYV6w #программирование ___________________________ ТЕХНОСТРИМ - образовательный канал для IT специалистов. 💡 ПОДПИСЫВАЙСЯ, ЕСЛИ ТЕБЕ ИНТЕРЕСНО УЗНАТЬ: ✔ как наши преподаватели – топовые специалисты Mail.Ru Group руководят разработкой в таких проектах, как Почта, ВКонтакте, Облако, Maps.me, Одноклассники, и решают сложные задачи каждый день ✔ реальные примеры из практики с анализом их достоинств и недостатков ✔ современные технологии, которые применяются в проектах-лидера Рунета ✔ о митапах, мастер-классах, вебинарах и других мероприятиях, которые проводятся на базе вузов и Mail.Ru Group. 🔥 Нажмите здесь для подписки ‣ http://www.youtube.com/TPMGTU?sub_con... Все наши лекции проходят в ведущих вузах страны: МГУ, МГТУ, МФТИ, МИФИ, СПбПУ. ___________________________ 📚 ТЫ СТУДЕНТ? Вступай в наши образовательные проекты и участвуй в чемпионатах. Лучшие студенты получают возможность стажировки в Mail.Ru Group. Отбор - каждые полгода! Технопарк при МГТУ им. Баумана ‣ https://park.mail.ru Техносфера при МГУ им. Ломоносова ‣ https://sphere.mail.ru Технотрек при МФТИ ‣ https://track.mail.ru Техноатом при МИФИ ‣ https://technoatom.mail.ru Технополис при СПбПУ ‣ https://polis.mail.ru Игросфера при ВГУ ‣ https://vgu.sphere.mail.ru Игросфера при ПГУ ‣ https://pgu.sphere.mail.ru Чемпионаты для программистов ‣ https://cups.mail.ru Сообщество в ВК ‣ https://vk.com/mrgforedu Амбассадоры Mail.ru Group ‣ https://ambassador.mail.ru