Панель навигации

Проект аудита исходных текстов FreeBSD


Главная Приложения Поддержка Документация Поставщики Поиск Карта Главная Главная

Общая информация

Last modified: 2004/04/08 07:46:43

Введение

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

Большой объём унаследованного кода и кода третьих разработчиков, входящего во FreeBSD, также позволяет пробелам в защите системы особенно легко оставаться незамеченными, пока не будет слишком поздно; хотя по настоящему серьёзной попытки пройтись по всем исходным текстам системы с упором на обеспечение безопасности, до этого момента не делалось, это будет достаточно большим проектом, а большинство разработчиков FreeBSD более чем заняты где-то еще. Однако мы должны изменить такое положение вещей, если хотим оставаться операционной системой, на которую люди могут положиться, и продолжать расти с ростом Internet и (я ожидаю) становиться все более подходящим окружением для других, не полностью защищённых систем. Полная безопасность это нечто, обеспечиваемое совместно местным администратором и поставщиком ОС, а мы как "поставщики ОС" должны с блеском справиться с задачей обеспечения безопасности.

Первым шагом основной группы разработчиков на пути к более серьезному отношению к вопросам обеспечения безопасности было включение офицера безопасности, Guido van Rooij, в основную группу, для того, чтобы этот "решающий голос" занимался безопасностью как основной задачей и представлял FreeBSD во всех важных списках рассылки, внешних по отношению к проекту. Он также позволит остальным в основной группе разработчиков гораздо более внимательно относиться к вопросам безопасности, когда они возникнут, и надеемся, что они не будут возникать так неожиданно, как это было несколько раз в прошлом.

Нашим вторым шагом будет осуществление этого аудита, попробовав методично пройтись по каждой строке исходного текста FreeBSD в поиске обычных ошибок выхода за границы буферов (sprintf()/strcpy() вместо snprintf()/strncpy() и тому подобное), менее обычных брешей в защите, кусков недостаточно защищённого кода, бесполезных строк комментариев для пересылки во freebsd-chat, ну и так далее.

Используя базу данных модулей как план, мы разобьем дерево исходных текстов на более обозримые части, поместив подписной лист на видном месте, так, чтобы все желающие смогли видеть, какие модули уже просмотрены, а какие нет. Также сейчас формируется группа людей, состоящая из "аудиторов" и "обозревателей" (большинство участников будут относиться к обеим категориям). Аудитор будет отвечать (может быть, совместно с другими аудиторами) за то, чтобы действительно пройти по коду, просматривая его на предмет наличия брешей в защите и/или ошибок. Как только будет накоплено достаточное количество патчей, означающих, что была найдена какая-то проблема, они будут посланы обозревателям, которые будут отвечать за просмотр изменений еще раз и, если аудитор не имеет привилегий коммиттера, внесение изменений в исходные тексты системы, когда и если они будут необходимы.

Требования:

Чтобы стать аудитором, вы должны иметь привилегии коммиттера на машине freefall.FreeBSD.org либо контакт с другим аудитором/обозревателем, который их имеет. Вы должны также работать с или иметь доступ к исходным текстам FreeBSD-current, так как все наши изменения будут делаться относительно этой ветки, а затем (по мере необходимости) переноситься обратно в ветви 2.1 и 2.2.

Что искать и каким общим правилам нужно следовать, достаточно сложно определить, поэтому я оформил их в Руководство по безопасности FreeBSD. Прочтите его прямо сейчас, если вы этого еще не сделали. Другими прекрасными источниками информации являются Secure Programming Checklist и Unix Security Checklist, доступные с сервера AUSCERT.

Подписной лист:

Вот подписной лист как он есть. В настоящее время он имеет *весьма* приблизительный вид, принимая во внимания что мы только начали, и как только все желающие укажут, аудит и обозрение каких модулей они готовы проводить, мы их сюда занесем. Если этого табличного формата по мере заполнения также станет недостаточно, мы сможем его изменить, перенести в другое место или придумаем что-нибудь еще :) Я оставил несколько строк для примера открытыми, к тому же вряд ли кто-нибудь захочет взять такие большие куски.

Всё в базе данных модулей представляет собой потенциальный объект для аудита - от такого маленького модуля, как "cat", до большого "lib"; самым важным является то, что люди могут брать куски не больше, чем они полагают в состоянии справиться. Если вы возьмете 15 кусочков на одну тарелку, но просмотрите только 5, вряд ли это будет хорошо, так как другие аудиторы будут полагать, что оставшиеся 10 тоже просмотрены.

Чтобы подписаться на что-нибудь, пожалуйста, пошлите письмо на адрес [email protected].
Модуль Аудитор(ы) Обозреватели Статус
bin ac ee* gvr* jh ka mu vk imp* jmb* md* gvr* Открыто
contrib cg gvr* Открыто
eBones mrvm* gvr* Открыто
games ab ee* xaa gvr* Открыто
init gl gvr* Открыто
lib ak bjn pst* dg* imp* jkh* gvr* Открыто
libc ee* mu gvr* Открыто
libexec crh ee* imp* mr witr gvr* Открыто
lkm dob* gvr* Открыто
sbin ee* imp* or* tao jmb* md* gvr* Открыто
secure dc mrvm* gvr* Открыто
telnetd ac dn imp* gvr* Открыто
usr.bin bob ee* jha jm ky* rb rd rjk vk md* gvr* Открыто
usr.sbin ee* ejc gl imp* jm marc rd md* gvr* Open

Ключи аудиторов/обозревателей

Это список людей, которые изъявили желание участвовать в проекте как аудиторы или обозреватели. К ним можно обратиться, послав письмо на адрес [email protected] в случае, когда нужно послать письмо всем аудиторам. Если вы хотите найти аудиторов или обозревателя, работающих в конкретной категории, скажем, usr.sbin, то вам нужно послать письмо в адрес audit-usr.sbin@FreeBSD.org.

Ключ Имя аудитора/обозревателя и адрес Email
ab Aaron Bornstein [email protected]
ac Adrian Chadd [email protected]
ak Adam Kubicki [email protected]
am Albert Mietus [email protected]
avk Alexander V. Kalganov [email protected]
bb Bob Bishop [email protected]
bjn Brent J. Nordquist [email protected]
bob Bob Willcox [email protected]
btm Brian T. Michely [email protected]
cg Coranth Gryphon [email protected]
cl Chris Lambertus [email protected]
crh Charles Henrich [email protected]
dc Dan Cross [email protected]
dg* David Greenman [email protected]
din Dinesh Nair [email protected]
dn David Nugent [email protected]
dob* David E. O'Brien [email protected]
dz Danny J. Zerkel [email protected]
ee* Eivind Eklund [email protected]
eh Elijah Hempstone [email protected]
ehu Ernest Hua [email protected]
ejc Eric J. Chet [email protected]
gl Giles Lean [email protected]
gvr* Guido van Rooij [email protected]
gw Graham Wheeler [email protected]
imp* Warner Losh [email protected]
jb Jim Bresler [email protected]
jh Jake Hamby [email protected]
jha John H. Aughey [email protected]
jk Jerry Kendall [email protected]
jkh* Jordan K. Hubbard [email protected]
jm Josef Moellers [email protected]
jmb* Jonathan M. Bresler [email protected]
joe* Joe Greco [email protected]
ka Kalganov Alexander [email protected]
ki Kenneth Ingham [email protected]
ky* Kazutaka YOKOTA [email protected]
marc Marc Slemko [email protected]
md* Matt Dillon [email protected]
mr Mike Romaniw [email protected]
mrvm* Mark Murray [email protected]
mu Mudge [email protected]
or* Ollivier Robert [email protected]
pb Peter Blake [email protected]
peter* Peter Wemm [email protected]
phk* Poul-Henning Kamp [email protected]
pst* Paul Traina [email protected]
rb Reinier Bezuidenhout [email protected]
rd Rajiv Dighe [email protected]
rel Roger Espel Llima [email protected]
rjk Richard J Kuhns [email protected]
rm Robin Melville [email protected]
rs Robert Sexton [email protected]
sc Sergei Chechetkin [email protected]
tao Brian Tao [email protected]
tdr Thomas David Rivers [email protected]
vk Vadim Kolontsov [email protected]
witr Robert Withrow [email protected]
xaa Mark Huizer [email protected]

* = Имеет права коммиттера CVS.


Главная   |   Контакты   |   Авторские права   |   © 1995-2005 The FreeBSD Project. All rights reserved.
Last modified: 2004/04/08 07:46:43