Безопасность
Оглавление
Цель проекта.
Политика полного разглашения.
Процесс аудита исходного кода.
"Безопасность по Умолчанию".
Использование криптографии.
Наблюдение за изменениями.
Доклад о проблемах безопасности.
Дополнительно.
Список проблем безопасности.
Цель
OpenBSD верит в прочную безопасность. Наша цель - занять в индустрии первое
место по безопасности (если этого ещё не произошло). Наша модель открытой
разработки программного обеспечения позволяет нам иметь более уверенный взгляд
на повышенную безопасность, чем тот, на который способны Sun, SGI, IBM, HP
или другие производители. Мы можем вносить такие изменения, которые эти
производители не сделали бы. Кроме того, поскольку OpenBSD экспортируется
вместе с криптографией, у нас есть возможность
криптографического решения в устранении проблем безопасности.
Полное разглашение
Как и большинство читателей
рассылки BUGTRAQ, мы поддерживаем полное разглашение проблем безопасности.
Среди множества операционных систем мы вероятно первые, кто использует такой
подход. Многие производители, даже свободного программного обеспечения, все
ещё пытаются скрыть что-либо от своих пользователей.
Информация, касающаяся безопасности распространяется очень быстро в кругах
взломщиков, однако, с нашим опытом, написание и выпуск исправления занимает
около часа работы. Таким образом, мы считаем, что полное разглашение проблем
поможет людям, которые действительно беспокоятся о безопасности.
Процесс аудита
В аудит команду входит от шести до двенадцати человек, которые продолжают
искать и исправлять ошибки безопасности. Мы проводим аудит с лета 1996г.
Процесс по улучшению безопасности охватывает все области системы, файл за
файлом мы анализируем каждый компонент программы. Мы не столько ищем ошибки
безопасности, сколько простые программные ошибки, и если спустя годы кто-то
обнаружит ошибку связанную с безопасностью, мы уже исправили её, так, как
это была просто ошибка. Изъяны были найдены почти в каждой области системы.
В течение нашего аудита были найдены совершенно новые категории проблем
безопасности, и часто исходной код, который уже прошёл аудит нуждался в
дополнительной проверке. Исходной код обычно проверяется несколько раз
разными людьми с разным опытом.
Некоторые члены из нашей аудит команды работали в Secure Networks,
компания занималась созданием Ballista - пакет программ для проверки
сетей на безопасность. (Secure Networks бала куплена Network Associates,
Ballista переименована в Cybercop Scanner.) Эта компания проводила множество
исследований в области безопасности и таким образом хорошо соответствует
позиции OpenBSD.
Другой аспект нашего процесса аудита - про-активность. Во многих случаях мы
обнаруживаем, что определение уязвимостей неактуально. В ходе постоянного
процесса аудита мы находим множество ошибок, стараемся их исправить, даже
если уязвимость не доказана. Мы исправляем одни ошибки и продолжаем искать
другие, чтобы исправить и их. Мы устранили множество простых и очевидных
ошибок невнимательного программирования и только по прошествии нескольких
месяцев обнаружили, что они действительно опасны. (Или, более вероятно, что
кто-то на BUGTRAQ
опубликует, что другие операционные системы уязвимы к `недавно обнаруженной
проблеме`, и тогда выяснится, что в OpenBSD эта ошибка уже была исправлена
ещё в прошлом релизе). В других случаях, мы застрахованы от реализации
множества пошаговых атак лишь потому, что мы исправили один из промежуточных
шагов.
Награда
Наш про-активный процесс аудита действительно оправдан. Заявления
подобно ``Эта проблема была устранена в OpenBSD приблизительно 6
месяцев назад'' стали обычным явлением на форумах обсуждения безопасности
подобных BUGTRAQ.
Наиболее интенсивная часть аудита происходила перед релизом OpenBSD 2.0,
а так же в течение перехода с 2.0 -> 2.1, в конце 1996 и первой половины
1997. Тысячи (да, именно тысячи) проблем безопасности были быстро устранены
в течение этого почти годового периода; ошибки подобно стандартным
переполнением буфера, слабостям реализации протокола, сбору информации,
и гонкам файловых систем. Большинство проблем безопасности, с которыми мы
столкнулись, были устранены перед релизом 2.1, и затем, намного меньше
исправлений необходимо было в следующем релизе 2.2. Мы больше не находим
так много ошибок, это простой факт их исчезновения. Однако недавно найденные
и исправленные проблемы безопасности, имеют тенденцию быть значительно более
сложными или неясными. Тем не менее, мы будем проводить аудит по ряду
причин:
- Иногда мы находим простые ошибки, которые мы пропустили ранее.
- Безопасность чем-то походит на гонку вооружений; лучшие нападающие
продолжат искать более сложный путь для реализации атаки, также будем и мы.
- Нахождение и исправление едва заметных недостатков в сложной программе
имеет много интересного.
Процесс аудита ещё не закончен, и как вы видите, мы продолжаем находить
и исправлять все новые и новые изъяны безопасности.
"Безопасность по Умолчанию"
Для того чтобы гарантировать, что начинающему пользователю нет надобности
становиться экспертом по безопасности (точка зрения, которой, похоже,
придерживаются другие производители) мы поставляем операционную систему в
режиме безопасности по умолчанию. Все сервисы, которые не являются жизненно
важными, запрещены. Когда пользователь/администратор более глубоко освоится
с этой системой, он обнаружит, что нужно разрешить работу некоторых демонов
и других частей системы. По мере изучения того, как запустить какую-то новую
службу, новичок, скорее всего, ознакомится с требованиями безопасности.
Это совершенный контраст со все возрастающим числом систем, которые
поставляются с NFS, mountd, web-серверами и другими запущенными по
умолчанию службами, в первые же минуты после инсталляции создающими
для своих пользователей проблемы безопасности.
Криптография
А так, как проект OpenBSD базируется в Канаде, у нас есть возможность
интеграции криптографии. Для получения дополнительной информации, читайте
страницы о том, что уже сделано с криптографией.
Наблюдение за изменениями
Так как мы выбрали про-активную позицию с безопасностью, мы непрерывно
находим и устраняем новые проблемы безопасности. Но не все эти проблемы
широко публикуются, потому что (как сказано ранее) многие из них не
подвержены к реализации атаки; много простых ошибок, которые мы устранили,
оказывается, имели последствия к нарушению безопасности, которые мы не
могли предсказать. Мы не имеем столько времени, чтобы делать эти исправления
доступными в вышеупомянутом формате.
Таким образом, здесь обычно незначительная часть всех исправлений из текущего
исходного кода OpenBSD. Мы гарантируем, что другие проблемы имеют минимальное
воздействие на безопасность и непригодны для реализации атаки. Если, мы
обнаружим, что проблема определённо имеет значение для безопасности,
исправление появится здесь очень быстро.
Люди действительно заинтересованные в безопасности, могут:
- Если вы понимаете проблемы безопасности, наблюдаете за
списком рассылки изменений в исходных текстах
и не спускаете глаз с вещей, которые связаны с безопасностью.
А так как, пригодность для реализации атаки для многих исправлений
не доказана, не ожидайте, что в commit сообщении будет сказано
"SECURITY FIX!". Если проблема доказана и серьёзна, исправление
появится здесь очень быстро.
- В дополнение к изменениям в исходных текстах, вы можете наблюдать за
списком рассылки объявлений, касающихся
безопасности, который уведомит вас о каждой проблеме безопасности,
которую группа OpenBSD определила как возможную угрозу, и сообщит вам
о том, как исправить проблему.
- Использовать текущее дерево исходных текстов и время от времени
пересобирать полную систему (тщательно прочитайте /usr/src/Makefile).
Пользователи могут быть уверены, что текущее исходное дерево всегда
имеет более улучшенную безопасность, чем предыдущие релизы. Однако,
строить вашу собственную систему из исходного текста не тривиально;
это почти 600МБ исходного текста, и обычно возникают проблемы при
переходе между главными релизами.
- Устанавливать бинарный снапшот для вашей архитектуры, которые создаются
довольно часто. Например, i386 снапшот обычно создаётся еженедельно.
Доклад о проблемах
Если вы обнаружили новую проблему безопасности, свяжитесь с
deraadt@openbsd.org.
Если вы желаете воспользоваться PGP (но, пожалуйста, пользуйтесь им
только при крайней необходимости, так как это неудобно) используйте этот
pgp ключ.
Дополнительно
Некоторое количество статей было написано членами группы OpenBSD,
об изменениях в защите, которые были предприняты в OpenBSD.
Доступны PostScript версии этих документов.
- A Future-Adaptable Password Scheme.
Usenix 1999,
Niels Provos,
David Mazieres.
статья и
слайды.
- Cryptography in OpenBSD: An Overview.
Usenix 1999,
Theo de Raadt,
Niklas Hallqvist,
Artur Grabowski,
Angelos D. Keromytis,
Niels Provos.
статья и
слайды.
- strlcpy and strlcat -- consistent, safe, string copy and concatenation.
Usenix 1999,
Todd C. Miller,
Theo de Raadt.
статья и
слайды.
- Dealing with Public Ethernet Jacks-Switches, Gateways, and Authentication.
LISA 1999,
Bob Beck.
статья и
слайды.
- Encrypting Virtual Memory
Usenix Security 2000,
Niels Provos.
статья и
слайды.
www@openbsd.org
Originally [OpenBSD: security.html,v 1.273 ]
$RuOBSD: security.html,v 1.16 2004/02/28 08:38:39 dfa Exp $
$Translation: security.html,v 1.55 2012/06/30 00:43:46 alex Exp $
$OpenBSD: security.html,v 1.43 2012/06/30 04:16:06 ajacoutot Exp $