Панель ошибок безопасности SDL (образец)

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

См. определения терминов в данном разделе.

Сервер

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

Панель сервера обычно не подходит, когда взаимодействие с пользователем является частью процесса эксплуатации. Если критическая уязвимость существует только в серверных продуктах и используется способом, который требует взаимодействия с пользователем и приводит к компрометации сервера, то уровень серьезности может быть понижен с критического до важного в соответствии с определением NEAT/data о необходимости обширного взаимодействия с пользователем, представленным в начале анализа серьезности для клиентов.

Сервер

Критически важно

Сводка по серверу: сетевые черви или неизбежные случаи, когда сервер «захвачен».

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

    • Удаленный анонимный пользователь

      • Примеры:

        • Несанкционированный доступ к файловой системе: произвольная запись в файловую систему

        • Выполнение произвольного кода

        • Внедрение SQL-кода (позволяющее провести выполнение кода)

    • Все нарушения доступа для записи (AV), AV для чтения, которые могут быть использованы, или целочисленные переполнения в удаленном анонимно вызываемом коде

Внимание

Сводка по серверу: нестандартные критические сценарии или случаи, когда существуют средства защиты, которые могут помочь предотвратить критические сценарии.

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

    • Анонимные

      • Постоянный DoS

        • Примеры:

          • Отправка одного вредоносного TCP-пакета приводит к синему экрану смерти (BSoD)

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

      • Временный DoS с усилением

        • Примеры:

          • Отправка небольшого количества пакетов, по причине которой система не работает в течение определенного периода времени

          • Веб-сервер (например, IIS) не работает в течение минуты или дольше

          • Один удаленный клиент, использующий все доступные ресурсы (сеансы, память) на сервере, устанавливая сеансы и оставляя их открытыми

    • Аутентифицирован

      • Устойчивый DoS против дорогостоящего объекта

        • Пример:

          • Отправка небольшого количества пакетов, вызывающих сбой службы для активов высокого значения в ролях сервера (сервер сертификатов, сервер Kerberos, контроллер домена), например, когда пользователь, прошедший аутентификацию в домене, может инициировать DoS-атаку на контроллер домена.

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

    • Удаленный пользователь, прошедший проверку

    • Локальный пользователь, прошедший проверку (Сервер терминала)

      • Примеры:

        • Несанкционированный доступ к файловой системе: произвольная запись в файловую систему

        • Выполнение произвольного кода

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

  • Раскрытие информации (целевое)

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

      • Примеры:

        • Раскрытие личной информации (PII)

          • Раскрытие PII (адреса электронной почты, номера телефонов, информация о кредитной карте)

          • Злоумышленник может собирать PII без согласия пользователя или скрытно

  • Спуфинг

    • Сущность (компьютер, сервер, пользователь, процесс) может маскироваться под конкретную сущность (пользователя или компьютер) по своему выбору.

      • Примеры:

        • Веб-сервер неправильно использует процедуру проверки подлинности сертификата клиента (SSL), чтобы злоумышленник мог быть идентифицирован как любой пользователь по его выбору

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

  • Незаконное изменение

    • Изменение любых данных «ценных активов» в обычном сценарии или сценарии по умолчанию, когда изменение сохраняется после перезапуска уязвимого программного обеспечения

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

      • Примеры:

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

        • Отравление кеша прокси в случае обычного или стандартного сценария

        • Изменение настроек ОС или приложения без согласия пользователя в обычном сценарии или сценарии по умолчанию

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

    • Примеры:

      • Отключение или обход брандмауэра без уведомления пользователей или получения согласия

      • Перенастройка брандмауэра и разрешение подключений к другим процессам

Умеренно
  • Отказ в обслуживании

    • Анонимные

      • Временный DoS без усиления при стандартной/обычной установке.

        • Пример:

          • Несколько удаленных клиентов потребляют все доступные ресурсы (сеансы, память) на сервере, устанавливая сеансы и оставляя их открытыми

    • Аутентифицирован

      • Постоянный DoS

        • Пример:

          • Пользователь Exchange, вошедший в систему, может отправить определенное почтовое сообщение и вызвать сбой сервера Exchange, и сбой не из-за записи AV, доступного для чтения AV или целочисленного переполнения.

      • Временный DoS с усилением при стандартной/обычной установке

        • Пример:

          • Обычный пользователь SQL Server выполняет хранимую процедуру, установленную каким-либо продуктом, и потребляет 100% ЦП в течение нескольких минут

  • Раскрытие информации (целевое)

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

      • Пример:

        • Целевое раскрытие анонимных данных

        • Целевое раскрытие факта существования файла

        • Целевое раскрытие номера версии файла

  • Спуфинг

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

      • Пример:

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

  • Незаконное изменение

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

      • Примеры:

        • Изменение файлов данных приложений или баз данных в определенном сценарии

        • Отравление прокси-кэша в контексте определенного сценария

        • Изменение настроек ОС/приложения без согласия пользователя в контексте определенного сценария

    • Временное изменение данных в обычном сценарии или сценарии по умолчанию, которое не сохраняется после перезапуска ОС/приложения-/сеанса

  • Гарантии безопасности:

    • Гарантия безопасности - это либо функция безопасности, либо другая функция / функция продукта, которую клиенты ожидают предложить защиту. Коммуникации содержат сообщения (явно или неявно) о том, что клиенты могут полагаться на целостность функции, и это делает ее гарантией безопасности. Бюллетени по безопасности будут выпущены за недостаток в гарантии безопасности, который подрывает уверенность или доверие клиента.

      • Примеры:

        • Процессы, запущенные с обычными привилегиями «пользователя», не могут получить привилегии «администратора», если пароль/учетные данные администратора не были предоставлены с помощью преднамеренно авторизованных методов.

        • Интернет-JavaScript, работающий в Internet Explorer, не может управлять какими-либо процессами в операционной системе хоста, если пользователь явным образом не изменил параметры безопасности по умолчанию.

Низкая
  • Раскрытие информации (нецелевое)

    • Сведения о среде выполнения

      • Пример:

        • Утечка случайной динамической памяти

  • Незаконное изменение

    • Временное изменение данных в контексте определенного сценария, которое не сохраняется после перезапуска ОС/приложения

Клиент

Обширные действия пользователя определяются как:

  • Взаимодействие с пользователем может происходить только в управляемом клиентом сценарии.

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

  • "Обширный" включает пользователей, которые вручную переходят на определенный веб-сайт (например, вводят URL-адрес) или нажимают на кнопки "да" или "нет".

  • "Не обширный" включает пользователей, щелкающих по ссылкам электронной почты.

  • Квалификатор NEAT (применяется только к предупреждениям). Очевидно, что UX:

    • Необходим (действительно ли пользователю нужно представить решение?)

    • Разъяснен (Предоставляет ли UX всю информацию, необходимую пользователю для принятия данного решения?)

    • Практичен (есть ли набор шагов, которые пользователи могут предпринять для принятия правильных решений как в благоприятных, так и в вредоносных сценариях?)

    • Проверено (было ли предупреждение проверено несколькими людьми, чтобы удостовериться, что они знают, как реагировать?)

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

Клиент

Критически важно

Сводка клиента:

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

  • Повышение привилегий (удаленное): возможность выполнять произвольный код или, чтобы получить больше привилегий, чем предполагалось

    • Примеры:

      • Несанкционированный доступ к файловой системе: запись в файловую систему

      • Выполнение произвольного кода без обширных действий пользователя

      • Все записывающие AV, используемые для чтения AV, переполнение стека или целочисленное переполнение в удаленно вызываемом коде (без обширных действий пользователя)

Внимание

Сводка клиента:

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

  • Повышение привилегий (удаленное)

    • Выполнение произвольного кода с обширными действиями пользователя

      • Все записываемые AV, эксплуатируемые для чтения AV, или целочисленные переполнения в удаленном вызываемом коде (с обширными действиями пользователя)

  • Повышение привилегий (локальное)

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

      • Все записи AV, уязвимые чтения AV или целочисленные переполнения в локальном вызываемом коде

  • Раскрытие информации (целевое)

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

    • Пример:

      • Несанкционированный доступ к файловой системе: чтение из файловой системы

      • Раскрытие PII

        • Раскрытие PII (адреса электронной почты, номера телефонов)

      • Сценарии домашнего телефона

  • Отказ в обслуживании

    • DoS повреждения системы требует переустановки системы и/или компонентов.

      • Пример:

        • Посещение веб-страницы вызывает повреждение реестра, из-за которого компьютер не загружается

    • атака Drive-by DoS

      • Критерии:

        • Система DoS, не прошедшая проверку подлинности

        • Экспозиция по умолчанию

        • Отсутствие функций безопасности по умолчанию или ограничения границ (брандмауэры)

        • Отсутствие взаимодействия с пользователем

        • Отсутствие следа аудита и наказаний

        • Пример:

          • Атака типа DoS или SMS на мобильный телефон из-за системы Drive-by Bluetooth

  • Спуфинг

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

      • Примеры:

        • Отображение в адресной строке браузера URL-адреса, отличного от URL-адреса сайта, который браузер фактически отображает, в стандартном/распространенном сценарии

        • Отображение окна над адресной строкой браузера, которое выглядит идентично адресной строке, но отображает поддельные данные в стандартном/распространенном сценарии

        • Отображение другого имени файла в строке «Вы хотите запустить эту программу?» диалоговое окно, как у файла, который будет фактически загружен в типовом/стандартном сценарии

        • Отображение «поддельного» запроса на вход для сбора учетных данных пользователя или учетной записи

  • Незаконное изменение

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

      • Примеры:

        • Отравление кэша веб-браузера

        • Изменение важных настроек ОС/приложения без согласия пользователя

        • Модификация пользовательских данных

  • Функции безопасности: взлом или обход любой предоставленной функции безопасности

    • Примеры:

      • Отключение или обход брандмауэра с информированием пользователя или получением согласия

      • Перенастройка брандмауэра и разрешение подключения к другим процессам

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

      • Обход проверки доступа

      • Обход Bitlocker; например, нешифрование части диска

      • Обход syskey, способ декодирования syskey без пароля

Умеренно
  • Отказ в обслуживании

    • Постоянный DoS требует холодной перезагрузки или вызывает синий экран/проверку ошибок.

      • Пример:

        • Открытие документа Word вызывает синий экран/проверку ошибок.

  • Раскрытие информации (целевое)

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

      • Примеры:

        • Целевое существование файла

        • Номер целевой версии файла

  • Спуфинг

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

      • Примеры:

        • Отравление кэша веб-браузера

        • Изменение важных настроек ОС/приложения без согласия пользователя

        • Модификация пользовательских данных

Низкая
  • Отказ в обслуживании

    • Временный DoS требует перезапуска приложения.

      • Пример:

        • Открытие HTML-документа приводит к сбою Internet Explorer

  • Спуфинг

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

      • Пример:

        • Пользователь должен перейти на «вредоносный» веб-сайт, щелкнуть кнопку в поддельном диалоговом окне, и тогда он становится подвержен уязвимости, связанной с другой ошибкой браузера

  • Незаконное изменение

    • Временное изменение любых данных, которое не сохраняется после перезапуска ОС/приложения.

    • Раскрытие информации (нецелевое)

      • Пример:

        • Утечка случайной динамической памяти

Определение терминов

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

анонимное
Любая атака, для завершения которой не требуется проверка подлинности.

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

по умолчанию/обычное
Любые функции, которые активны по умолчанию или охватывают более 10 процентов пользователей.

scenario
Любые функции, для включения которых требуется особая настройка или варианты использования, охватывают менее 10 процентов пользователей.

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

Критически
Уязвимость безопасности, которая будет оценена как самая высокая вероятность повреждения.

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

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

Низкая
Уязвимость безопасности, которая будет оценена как низкая вероятность повреждения.

целевое раскрытие информации
Умение намеренно выбирать (таргетировать) желаемую информацию.

временный DoS
Временный DoS представляет собой ситуацию, при которой выполняются следующие критерии:

  • Цель не может выполнять нормальные операции по причине атаки.

  • Ответ на атаку примерно такой же, как и размер атаки.

  • Цель возвращается к нормальному уровню функциональности вскоре после завершения атаки. Точное определение «в ближайшее время» следует оценивать для каждого продукта.

К примеру, сервер не отвечает, в то время как злоумышленник постоянно отправляет поток пакетов по сети, и сервер возвращается в нормальное состояние через несколько секунд после остановки потока пакетов.

временный DoS с усилением

Временный DoS с усилением представляет собой ситуацию, при которой выполняются следующие критерии:

  • Цель не может выполнять нормальные операции по причине атаки.

  • Ответ на атаку намного превосходит размер атаки.

  • После завершения атаки цель возвращается к нормальному уровню функциональности, но это занимает некоторое время (возможно, несколько минут).

Например, если вы можете отправить вредоносный 10-байтовый пакет и вызвать в сети ответ размером 2048 кБ, вы перегружаете полосу пропускания, усиливая эффект нашей атаки.

постоянный DoS

Постоянный DoS - это тот, который требует от администратора запуска, перезапуска или переустановки всей или части системы. Любая уязвимость, которая автоматически перезапускает систему, также является постоянным DoS.

Матрица отказа в обслуживании (сервер)

Аутентифицированная и анонимная атака Стандартные/общие против сценариев Временный DoS против постоянного Оценка
Аутентифицирован По умолчанию/Обычный Постоянный Умеренно
Аутентифицирован По умолчанию/Обычный Временный DoS с усилением Умеренно
Аутентифицирован По умолчанию/Обычный Временный отказ в обслуживании Низкая
Аутентифицирован Сценарий Постоянный Умеренно
Аутентифицирован Сценарий Временный DoS с усилением Низкая
Аутентифицирован Сценарий Временный отказ в обслуживании Низкая
Анонимные По умолчанию/Обычный Постоянный Внимание
Анонимные По умолчанию/Обычный Временный DoS с усилением Внимание
Анонимные По умолчанию/Обычный Временный отказ в обслуживании Умеренно
Анонимные Сценарий Постоянный Внимание
Анонимные Сценарий Временный DoS с усилением Внимание
Анонимные Сценарий Временный отказ в обслуживании Низкая

Заявление об отказе от ответственности за содержание

Эта документация не является исчерпывающей ссылкой на методики SDL в Корпорации Майкрософт. Дополнительная работа по обеспечению качества может выполняться командами разработчиков продукта (но не обязательно документируется) по своему усмотрению. В результате этот пример не должен рассматриваться как точный процесс, который корпорация Майкрософт следует для защиты всех продуктов.

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

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

© Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены.

Под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported