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

Проект аудита исходных текстов 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 тоже просмотрены.

Чтобы подписаться на что-нибудь, пожалуйста, пошлите письмо на адрес jmb@FreeBSD.org.
Модуль Аудитор(ы) Обозреватели Статус
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

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

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

Ключ Имя аудитора/обозревателя и адрес Email
ab Aaron Bornstein aaronb@j51.com
ac Adrian Chadd adrian@psinet.net.au
ak Adam Kubicki apk@itl.waw.pl
am Albert Mietus gam@gamp.hacom.nl
avk Alexander V. Kalganov top@sonic.cris.net
bb Bob Bishop rb@gid.co.uk
bjn Brent J. Nordquist nordquist@platinum.com
bob Bob Willcox bob@luke.pmr.com
btm Brian T. Michely brianm@cmhcsys.com
cg Coranth Gryphon gryphon@healer.com
cl Chris Lambertus cmlambertus@ucdavis.edu
crh Charles Henrich henrich@crh.cl.msu.edu
dc Dan Cross tenser@spitfire.ecsel.psu.edu
dg* David Greenman davidg@FreeBSD.org
din Dinesh Nair dinesh@alphaque.com
dn David Nugent davidn@labs.usn.blaze.net.au
dob* David E. O'Brien obrien@NUXI.com
dz Danny J. Zerkel dzerkel@phofarm.com
ee* Eivind Eklund eivind@FreeBSD.org
eh Elijah Hempstone avatar@gandalf.bss.sol.net
ehu Ernest Hua hua@chromatic.com
ejc Eric J. Chet ejc@gargoyle.bazzle.com
gl Giles Lean giles@nemeton.com.au
gvr* Guido van Rooij guido@FreeBSD.org
gw Graham Wheeler gram@oms.co.za
imp* Warner Losh imp@FreeBSD.org
jb Jim Bresler jfb11@inlink.com
jh Jake Hamby jehamby@lightside.com
jha John H. Aughey jha@cs.purdue.edu
jk Jerry Kendall Jerry@kcis.com
jkh* Jordan K. Hubbard jkh@FreeBSD.org
jm Josef Moellers mollers.pad@sni.de
jmb* Jonathan M. Bresler jmb@FreeBSD.org
joe* Joe Greco jgreco@solaria.sol.net
ka Kalganov Alexander top@bird.cris.net
ki Kenneth Ingham ingham@i-pi.com
ky* Kazutaka YOKOTA yokota@zodiac.mech.utsunomiya-u.ac.jp
marc Marc Slemko marcs@znep.com
md* Matt Dillon dillon@best.net
mr Mike Romaniw msr@cuc.com
mrvm* Mark Murray mark@grondar.za
mu Mudge mudge@l0pht.com
or* Ollivier Robert roberto@keltia.freenix.fr
pb Peter Blake ppb@baloo.tcp.co.uk
peter* Peter Wemm peter@FreeBSD.org
phk* Poul-Henning Kamp phk@FreeBSD.org
pst* Paul Traina pst@FreeBSD.org
rb Reinier Bezuidenhout rbezuide@oskar.nanoteq.co.za
rd Rajiv Dighe rajivd@sprynet.com
rel Roger Espel Llima espel@llaic.univ-bpclermont.fr
rjk Richard J Kuhns rjk@grauel.com
rm Robin Melville robmel@nadt.org.uk
rs Robert Sexton robert@kudra.com
sc Sergei Chechetkin csl@whale.sunbay.crimea.ua
tao Brian Tao taob@risc.org
tdr Thomas David Rivers ponds!rivers@dg-rtp.dg.com
vk Vadim Kolontsov vadim@tversu.ac.ru
witr Robert Withrow witr@rwwa.com
xaa Mark Huizer xaa@stack.nl

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


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