Безопасность операционных систем и сетей. Trustworthy Computing
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.
На схеме приведены традиционные этапы жизненного цикла и стрелками показаны дополнения к ней, которые вносятся 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) – в него записывается время, пользователь и тип каждой попытки доступа к объекту. Журнал используется для восстановления при нарушении защиты и для выработки более действенных мер безопасности.
Периодическое сканирование системы на предмет "дыр" в системе безопасности. Выполняется в моменты, когда компьютер практически не используется (пример - сканирование на вирусы).
Проверки на:
- Короткие или простые для угадывания пароли
- Несанкционированные программы, устанавливающие другие имена пользователей
- Несанкционированные программы в системных директориях
- Неожиданно долгие по времени процессы
- Неверную защиту директорий
- Неверную защиту системных файлов данных
- Опасные элементы в путях для поиска программ (ведущие к троянским программам)
- Изменения в системных программах: проверки контрольных сумм.