Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 24:

Безопасность операционных систем и сетей. Trustworthy Computing

< Лекция 23 || Лекция 24: 1234 || Лекция 25 >

Trustworthy Computing (TWC) Initiative

Инициатива под таким названием (инициатива надежных и безопасных вычислений) объявлена в 2002 г. в историческом электронном письме основоположника корпорации Microsoft Билла Гейтса всем сотрудникам компании. Основная суть инициативы TWC заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов. Однако этим инициатива TWC не исчерпывается – смысл и цели ее гораздо шире и охватывают также экономические, юридические аспекты и "человеческий фактор".

Основные принципы инициативы TWC:

Безопасность (Security) – реализация и использование в любой программной системе действенных мер защиты от внешних атак; использование специальных методов разработки программ, направленных на достижение этой цели.

Сохранение конфиденциальности информации (Privacy) – использование программным обеспечением частной и корпоративной информации только с явного согласия пользователя и только для понятных ему законных целей; защита конфиденциальной информации от взлома в результате атаки.

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

Оперативность, законность и корректность бизнеса (Business Integrity) – оперативность работы группы сопровождения программного продукта и своевременные консультации пользователей по вопросам безопасности; корректность бизнеса компании – разработчика программного обеспечения.

Сама корпорация Microsoft с 2002 г. полностью реорганизовала бизнес-процессы разработки программного обеспечения, используя новую схему жизненного цикла для разработки безопасных программ – SDLC (Security Development Life Cycle).Принципы TWC воплощены во всех новых версиях продуктов Microsoft: Internet Explorer 7 и 8, Windows Vista и др.

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

Microsoft финансировала работы по обеспечению TWC и обучение TWC в университетах.

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

Одним из первых университетов, обучающих студентов ИТ-специальностей принципам TWC, является математико-механический факультет СПбГУ – более подробное изучение TWC в курсе проф. В.О. Сафонова "Архитектуры и модели программ и знаний" (4 курс) и изложение элементов TWC во всех других курсах проф. В.О. Сафонова: "Операционные системы и сети", "Java-технология", "Компиляторы".

Принципы разработки безопасных программных продуктов

Новая схема жизненного цикла для разработки безопасных программ, разработанная и применяемая компанией Microsoft, носит название Security Development Life Cycle (SDLC).Основная идея SDLC – учитывать требования безопасности в течение всего жизненного цикла разработки программ, начиная с самых ранних этапов. Схема SDLC приведена на рис. 24.2.

Схема Security Development Life Cycle (SDLC).

увеличить изображение
Рис. 24.2. Схема Security Development Life Cycle (SDLC).

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

Необходимо заранее анализировать и моделировать возможные угрозы и атаки на ПО и разрабатывать меры их отражения.

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

Необходимы специальные виды тестирования ПОsecurity testing, fuzzy testing (fuzzing) – тестирование подсистемы безопасности и тестирование на граничные или близкие к граничным значения параметров, имитирующее действия хакеров по подбору и взлому IP-адресов и других компонент компьютерной системы.

Необходимы эксперты по безопасности ПО (security buddies),участвующие в разработке в течение всего цикла.

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

Схема (формула) SD3C определяет основные принципы разработки безопасного программного обеспечения:

  • Secure in Design – применение принципов безопасного проектирования; учет возможных атак; реализация способов их отражения;
  • Secure by Default – включение установок безопасности по умолчанию;
  • Secure in Deployment – безопасное развертывание и инсталляция программного обеспечения;
  • Communication – постоянное взаимодействие группы сопровождения продукта с пользователями, быстрый выпуск новых версий продукта с исправленными ошибками безопасности; рекомендации по настройке безопасности.

Классификация угроз и атак (STRIDE)

По формуле STRIDE Microsoft предлагает классифицировать угрозы и атаки:

Spoofing – букв.: пародирование, розыгрыш – "подделка" под определенного пользователя; например, воспроизведение транзакции, выполняющей аутентификацию пользователя.

Tampering – Несанкционированное изменение данных с целью атаки; например, модификация аутентификационных файлов с целью добавления нового пользователя.

Repudiation – буквально означает категорическое несогласие, отрицание, отказ – отсутствие фиксации в системных журналах действий, которые могут привести к нарушению безопасности. В операционной системе драйвер может быть подвержен repudiation-угрозе, если он не выполняет журналирование (logging) действий, которые могут привести к нарушению безопасности. Например, драйвер видеоустройства, который не фиксирует запросы на изменение фокуса и уменьшение размеров изображения (что может привести к его искажению).

Information disclosure – несанкционированный доступ к конфиденциальной информации; например: Получение списка номеров кредитных карт клиентов банка.

Denial of service – Отказ в обслуживании; например: сознательное достижение эффекта излишней загрузки процессора, используя недостатки хеш-алгоритма.

Elevation of privilege – Увеличение привилегий (несанкционированное присваивание прав системного администратора). Пример: запуск привилегированной программы для выполнения Ваших команд.

Оценка атак на программное обеспечение

Еще одна формула – DREAD – рекомендуется для оценки внешних атак:

Damage Ущерб, нанесенный атакой.

Reproducibility – Воспроизводимость атаки: как часто она происходит и может ли быть воспроизведена (смоделирована).

Exploitability – здесь: квалификация (уровень); опыт и квалификация (хакера), необходимые для атаки.

Affected users – Против каких пользователей направлена атака.

Discoverability – Может ли атака быть обнаружена.

Борьба с атаками

Для борьбы с атаками могут быть предусмотрены следующие меры.

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

Ведение журнала аудита (audit log) – в него записывается время, пользователь и тип каждой попытки доступа к объекту. Журнал используется для восстановления при нарушении защиты и для выработки более действенных мер безопасности.

Периодическое сканирование системы на предмет "дыр" в системе безопасности. Выполняется в моменты, когда компьютер практически не используется (пример - сканирование на вирусы).

Проверки на:

  • Короткие или простые для угадывания пароли
  • Несанкционированные программы, устанавливающие другие имена пользователей
  • Несанкционированные программы в системных директориях
  • Неожиданно долгие по времени процессы
  • Неверную защиту директорий
  • Неверную защиту системных файлов данных
  • Опасные элементы в путях для поиска программ (ведущие к троянским программам)
  • Изменения в системных программах: проверки контрольных сумм.
< Лекция 23 || Лекция 24: 1234 || Лекция 25 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия