<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF100-101%3A%D0%9C%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>LXF100-101:Мнение - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF100-101%3A%D0%9C%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF100-101:%D0%9C%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&amp;action=history"/>
		<updated>2026-05-13T07:47:55Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF100-101:%D0%9C%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=7389&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF100-101:%D0%9C%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5&amp;diff=7389&amp;oldid=prev"/>
				<updated>2009-03-23T05:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: Мнение: '''Джереми Эллисон'''&lt;br /&gt;
&lt;br /&gt;
==Извела меня кручина…==&lt;br /&gt;
&lt;br /&gt;
Для моего кода это был не самый удачный месяц. Проекту&lt;br /&gt;
''Samba'', за который я отвечаю, пришлось объявить о нескольких уязвимостях. К несчастью, некоторые из них содержатся в&lt;br /&gt;
коде, который писал я сам. Когда такое случается, я всегда копаюсь в&lt;br /&gt;
своей душе. Нет ничего хуже, чем узнать, что тысячи людей тратят время на поиски заплаток, а причина — твой проект. В подобных случаях я&lt;br /&gt;
задумываюсь: не пора ли завязать с программированием и посвятить&lt;br /&gt;
остаток дней мирной стезе менеджера, исследуя коды других вместо&lt;br /&gt;
создания собственного?&lt;br /&gt;
&lt;br /&gt;
Проект ''Samba'' не юн: первичный код создавался пятнадцать лет&lt;br /&gt;
назад. Тогда мы и не слыхивали о таких современных проблемах безопасности, как переполнение целого (сумма двух целых чисел может&lt;br /&gt;
оказаться меньше, чем любое из слагаемых, из-за выхода за разрядную сетку процессора) или кучи (перезапись невыделенной памяти,&lt;br /&gt;
позволяющая злоумышленнику перехватить управление программой).&lt;br /&gt;
Мы знали о переполнении буфера (запись в буфер количества данных,&lt;br /&gt;
превышающего его емкость) и о DDoS-атаках, но 1992 год был проще и&lt;br /&gt;
дружелюбнее к разработке сетевых программ. Большинство установок&lt;br /&gt;
''Samba'' проводилось в сетях, изолированных от Интернета, технически&lt;br /&gt;
грамотными администраторами.&lt;br /&gt;
&lt;br /&gt;
Ошибки в системе безопасности, обнаруживаемые сегодня, намного сложнее и изощренней. И относимся мы к ним намного серьезнее. В&lt;br /&gt;
те ранние дни мы работали с людьми, знающими, как компилировать&lt;br /&gt;
исходный код. Ответная реакция на «дыры» наступала через считанные&lt;br /&gt;
часы. Первая попытка саботировать ''Samba'' через эксплойт нулевого&lt;br /&gt;
дня была направлена в наш список рассылки без всякого предупреждения. '''Эндрю Триджелл''' [Andrew Tridgell] (автор первой ''Samba'') пришел в&lt;br /&gt;
ярость и сработал на рывок, чтобы уже следующее сообщение в списке&lt;br /&gt;
было заплаткой для этой проблемы. И это ему удалось. Тогда мы редко получали эксплойты нулевого дня, открыто отправленные в списки&lt;br /&gt;
рассылки. Плохие парни держат их в секрете для своих собственных&lt;br /&gt;
противозаконных целей, а хорошие парни практикуют наилучший подход, принятый в наши дни – отправка уведомлений непосредственно&lt;br /&gt;
разработчикам ''Samba'' (security@samba.org) и сотрудничество с нами&lt;br /&gt;
по координации уведомлений о проблеме и поиска путей ее решения.&lt;br /&gt;
&lt;br /&gt;
Ныне ответная реакция значительно медленнее, даже при том, что&lt;br /&gt;
на нашей внутренней кухне мы обычно находим решение за несколько&lt;br /&gt;
часов; тормозит нас свой же успех. Чтобы с полной ответственность выпустить заплатку, мы согласуем наши действия с огромным количеством поставщиков, которые продают и перепродают наш код. У большинства из них есть свои графики выхода заплаток и команды по&lt;br /&gt;
безопасности, которые оценивают предложенные решения и согласовывают, когда именно объявить об уязвимостях по всему миру.&lt;br /&gt;
&lt;br /&gt;
Кто обнаруживает наши ошибки? Сейчас наблюдается соотношение&lt;br /&gt;
пятьдесят на пятьдесят между внутренним аудитом и специалистами&lt;br /&gt;
по безопасности из мира Open Source и внешними специалистами пo безопасности, которые зарабатывают на жизнь, получая контракты благодаря своему умению отыскивать уязвимости в открытых проектах.&lt;br /&gt;
Заметив «дыру» в безопасности, мы сразу же проверяем всю кодовую&lt;br /&gt;
базу на предмет похожих проблем или аналогичных практик написания&lt;br /&gt;
кода, способных в будущем стать причиной проблем, и переписываем&lt;br /&gt;
или удаляем их. Так получается дольше, но зато намного надежнее в&lt;br /&gt;
конечном итоге. Взглянув на код ''Samba'', вы найдете, что стандартные&lt;br /&gt;
функции, известные своей ненадежностью, просто не поддадутся компиляции в случае добавления к нашему коду. Набор автоматических макросов предупреждает о любом использовании известных «вредоносных»&lt;br /&gt;
функций. Мы не можем полагаться на автоматику по части защиты: все&lt;br /&gt;
пока что существующие уязвимости нашей системы безопасности подразумевают использование некоего допущения в одной части кода, вызывающего появление уязвимости в другой, якобы отдельной части кода,&lt;br /&gt;
которая на самом деле является взаимозависимой. И злоумышленники,&lt;br /&gt;
и исследователи уязвимостей в наши дни очень поумнели.&lt;br /&gt;
&lt;br /&gt;
Проще ли обнаруживать и бороться с ошибками в системе безопасности программ с открытым кодом, чем в проприетарных программах?&lt;br /&gt;
По моему ощущению – да. Возможность изучить намерения автора,&lt;br /&gt;
посмотрев его код и комментарии, очень помогает увидеть, где идея&lt;br /&gt;
не соответствует коду. Там-то и скрываются проблемы безопасности.&lt;br /&gt;
Надежнее ли открытый исходный код, чем проприетарный код? И на&lt;br /&gt;
это я бы тоже ответил «да». Одно лишь количество выявленных уязвимостей ни о чем не говорит: примерно половина сбоев в системе безопасности обнаруживается в ходе наших внутренних проверок кода, или&lt;br /&gt;
просто кто-то просматривает код и думает: «ага, вот оно…» Что бы мы&lt;br /&gt;
ни обнаружили, мы обязаны сообщать об этом нашим контрагентам и&lt;br /&gt;
оповещать о сбое в системе безопасности. Это штука болезненная, но&lt;br /&gt;
поскольку все наши процессы открыты, мы не можем позволить себе&lt;br /&gt;
роскошь тихонечко, молчком, исправить ошибку в надежде, что никто&lt;br /&gt;
ничего не заметит. А вот проприетарные производители могут себе эту&lt;br /&gt;
роскошь позволить, и не пользоваться ею было бы безумием, и я уверен, что они и пользуются. Проприетарные производители цепляются&lt;br /&gt;
за любую возможность, конкурируя с замечательным свободным ПО.&lt;br /&gt;
&lt;br /&gt;
===ПроСИм, проСИм===&lt;br /&gt;
&lt;br /&gt;
''Samba'' все еще пишется на ''C''. Мы рассматривали возможность перехода на ''C++'', но это не поможет решить наши проблемы с безопасностью.&lt;br /&gt;
На самом деле, если скрыть взаимозависимости в классах объектов, то&lt;br /&gt;
отслеживать эти ошибки, возможно, станет еще труднее. Перевод кода&lt;br /&gt;
на управляемый язык, например, ''Java'' или ''C#.NET'', мог бы сократить&lt;br /&gt;
наши проблемы с безопасностью, но заодно снизил бы производительность – а именно она для многих является решающим фактором&lt;br /&gt;
в выборе ''Samba''. Не случайно ни один из конкурирующих серверов&lt;br /&gt;
''CIFS'' не написан в управляемом коде. У нас ушло бы от шести месяцев&lt;br /&gt;
до года на то, чтобы переписать все и выйти на тот же самый уровень&lt;br /&gt;
функциональности, вероятно, снизив производительность. Но у нас&lt;br /&gt;
для этого нет ни времени, ни людей. Если кто-то из вас занимается&lt;br /&gt;
созданием хорошего свободного сервера ''CIFS'', я бы предложил вам&lt;br /&gt;
создать его на управляемом языке – в качестве эксперимента. Если он&lt;br /&gt;
станет работать так хорошо, как я надеюсь, мы выбросим свой код и&lt;br /&gt;
присоединимся к вам.&lt;br /&gt;
&lt;br /&gt;
Чтобы ''Samba'' шла в ногу с современными требованиями, мы постоянно переписываем и переделываем основные части кода. Наш грядущий релиз, ''Samba 3.2'', имеет очень мало общего с оригиналом 1992&lt;br /&gt;
года и использует современные технологии управления памятью, дабы&lt;br /&gt;
избежать переполнения кучи, буфера и утечки памяти, причем большинство этих проблем были обнаружены командой ''Samba'' при внутреннем пользовании. Мы сами используем ''Samba'' для обслуживания файлов. Зализывая свои раны, мы врачуем и других.&lt;br /&gt;
&lt;br /&gt;
Я по-прежнему чувствую себя скверно из-за допущенных ошибок,&lt;br /&gt;
но пробую утешиться, предлагая их как учебный пример при приеме на&lt;br /&gt;
работу в Google. Если кто-то не видит ошибки, это всегда поднимает&lt;br /&gt;
мне настроение, но в то же время служит большим минусом для претендента. Так или иначе, новые сотрудники должны уметь писать код&lt;br /&gt;
лучше меня… (!) Код открыт для изучения, так что учтите мои ошибки,&lt;br /&gt;
чтоб не пришлось согласовывать время объявления о «дырах». Такого познавательного опыта лучше не иметь. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>