Date: Tue, 9 Feb 2010 09:57:55 GMT From: pluknet <pluknet@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: www/143695: ru/security/security.sgml: MFen 1.151 -> 1.209 Message-ID: <201002090957.o199vte2060178@www.freebsd.org> Resent-Message-ID: <201002091000.o19A0ARe003809@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 143695 >Category: www >Synopsis: ru/security/security.sgml: MFen 1.151 -> 1.209 >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-www >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Tue Feb 09 10:00:10 UTC 2010 >Closed-Date: >Last-Modified: >Originator: pluknet >Release: >Organization: >Environment: >Description: The "http://www.freebsd.org/ru/security/" page contains a much outdated Security information in Russian. The attached patch brings the Russian Security page up to date. Some links are (still) going to English www version (e.g. www/security/charter.html) I plan to submit more PRs to make those links follow to Russian www. Link integrity, style, etc are locally compile/look-tested. >How-To-Repeat: >Fix: Patch attached with submission follows: --- www.orig/ru/security/security.sgml 2010-02-07 19:06:53.000000000 +0300 +++ www/ru/security/security.sgml 2010-02-09 12:52:06.000000000 +0300 @@ -4,7 +4,7 @@ $FreeBSD: www/ru/security/security.sgml,v 1.18 2006/08/19 21:25:55 hrs Exp $ $FreeBSDru: frdp/www/ru/security/security.sgml,v 1.33 2004/09/21 07:31:12 den Exp $ - Original revision: 1.151 + Original revision: 1.209 --> <!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [ @@ -13,6 +13,7 @@ <!ENTITY title "Информационная безопасность FreeBSD"> <!ENTITY % navinclude.support "INCLUDE"> <!ENTITY advisories.html.inc SYSTEM "advisories.html.inc"> +<!ENTITY % developers SYSTEM "../../en/developers.sgml"> %developers; ]> <html> @@ -20,110 +21,110 @@ <h2>Введение</h2> - <p>Эта веб-страница создана для того, чтобы помочь как начинающим, так и + <p>Эта веб-страница предназначена для помощи начинающим и опытным пользователям в области информационной безопасности FreeBSD. Во FreeBSD вопросы безопасности воспринимаются весьма серьёзно и постоянно - работают над тем, чтобы сделать ОС защищённой настолько, насколько это + идет работа над тем, чтобы сделать ОС защищённой настолько, насколько это вообще возможно.</p> - <p>Здесь вы найдёте информацию или ссылки на информацию о том, как защитить - вашу систему от различных типов атак, с кем связаться, если вы - нашли недочёт в системе безопасности и так далее. Сюда также включён - раздел, в котором описаны различные способы, прибегнув к которым, системный - программист может с большей вероятностью избегнуть дыр в защите.</p> - - <h2>Содержание</h2> <ul> - <li> <a href="#sec">Информация об Офицере информационной безопасности + <li><a href="#how">Как и куда сообщать о проблеме информационной + безопасности FreeBSD</a></li> + <li><a href="#sec">Информация об Офицере информационной безопасности FreeBSD</a></li> + <li><a href="#pol">Политика обработки информации</a></li> + <li><a href="#sup">Поддерживаемые релизы FreeBSD</a></li> + </ul> - <li> <a href="#pol">Политика отработки информации</a></li> - - <li> <a href="#adv">Бюллетени безопасности FreeBSD</a></li> - - <li> <a href="#ml">Информация о списках рассылки, посвящённых - информационной безопасности FreeBSD</a></li> + <h2>Дополнительные ресурсы, посвященные информационной безопасности</h2> - <li><a href="#tat">Советы и рекомендации по обеспечению безопасности + <ul> + <li><a href="&enbase;/security/charter.html">Устав Офицера и службы + информационной безопасности</a></li> + <li><a href="advisories.html">Список бюллетеней информационной безопасности FreeBSD</a></li> + <li><a href="&base;/doc/ru/books/handbook/security-advisories.html"> + Чтение сообщений информационной безопасности FreeBSD</a></li> + </ul> + + <a name="how"></a> + <h2>Как и куда сообщать о проблеме информационной безопасности FreeBSD</h2> - <li><a href="#spg">Рекомендации по безопасному программированию</a></li> + <p>Все проблемы информационной безопасности FreeBSD следует направлять на + адрес <a href="mailto:secteam@FreeBSD.org">службы информационной + безопасности FreeBSD</a> или, если необходим более высокий уровень + конфиденциальности, в зашифрованном в PGP виде на адрес <a + href="mailto:security-officer@FreeBSD.org">службы Офицера информационной + безопасности</a>, используя <a href="&enbase;/security/so_public_key.asc"> + ключ PGP Офицера информационной безопасности</a>. Как минимум, все + сообщения должны содержать:</p> - <li><a href="#misc">Прочая информация, касающаяся безопасности</a></li> + <ul> + <li>Описание уязвимости.</li> + <li>Какие версии FreeBSD предположительно затронуты, по возможности.</li> + <li>Любые состоятельные пути обхода проблемы.</li> + <li>Примеры кода, по возможности.</li> </ul> + <p>После сообщения этой информации с вами свяжется Офицер информационной + безопасности или представитель службы информационной безопасности.</p> + + <h3>Спам-фильтры</h3> + + <p>В связи с высоким уровнем спама основные контактные почтовые адреса + по информационной безопасности подвергаются фильтрации спама. Если Вы + не можете связаться с Офицерами информационной безопасности FreeBSD или + со службой информационной безопасности из-за спам-фильтров (или + предполагаете, что ваш адрес был отфильтрован), пожалуйста, отправьте + письмо на <tt>security-officer-<em>XXXX</em>@FreeBSD.org</tt> с заменой + <em>XXXX</em> на <tt>3432</tt> вместо использования обычных адресов. + Обратите внимание, что этот адрес будет периодически меняться, поэтому + следует проверять здесь последний адрес. Сообщения на этот адрес будут + перенаправлены службе Офицера информационной безопасности FreeBSD.</p> <a name=sec></a> <h2>Офицер информационной безопасности FreeBSD и служба информационной безопасности FreeBSD</h2> - <p>Для того, чтобы лучше координировать обмен информацией с сообществом, - занимающимся вопросами безопасности, во FreeBSD имеется точка для - соответствующих коммуникаций: Офицер информационной безопасности - FreeBSD.</p> - - <p>Если вы хотите обратиться в Проект FreeBSD по поводу возможной проблемы в - информационной безопасности, то вы должны <a - href="mailto:security-officer@FreeBSD.org">написать письмо Офицеру - информационной безопасности</a> с описанием того, что вы нашли и - характером нарушения безопасности, с которым вы столкнулись.</p> - <p>Для того, чтобы Проект FreeBSD мог оперативно реагировать на сообщения об уязвимостях, почтовый алиас Офицера информационной безопасности - соответствует четырём персонам: Офицер информационной безопасности, - заместитель Офицера информационной безопасности и два члена - Основной группы разработчиков. Таким образом, сообщения, посланные в адрес + соответствует трем персонам: Офицер информационной безопасности, + заместитель Офицера информационной безопасности и один член + Основной группы разработчиков. Таким образом, сообщения, посланные на адрес почтового алиаса <a href="mailto:security-officer@FreeBSD.org"> <security-officer@FreeBSD.org></a>, доставляются следующим лицам:</p> <table> <tr valign="top"> - <td>Jacques Vidrine <a - href="mailto:nectar@FreeBSD.org"><nectar@FreeBSD.org></a></td> - + <td>&a.cperciva; <a + href="mailto:cperciva@FreeBSD.org"><cperciva@FreeBSD.org></a></td> <td>Офицер информационной безопасности</td> </tr> - <tr valign="top"> - <td>Chris Faulhaber <a - href="mailto:jedgar@FreeBSD.org"><jedgar@FreeBSD.org></a></td> - + <td>&a.simon <a + href="mailto:simon@FreeBSD.org"><simon@FreeBSD.org></a></td> <td>Заместитель Офицера информационной безопасности</td> </tr> - <tr valign="top"> - <td>Robert Watson <a + <td>&a.rwatson <a href="mailto:rwatson@FreeBSD.org"><rwatson@FreeBSD.org></a></td> - - <td>Член Основной группы разработчиков FreeBSD, представитель группы по - выпуску релизов,<br> + <td>Представитель Основной группы разработчиков FreeBSD, представитель + группы по выпуску релизов,<br> представитель Проекта TrustedBSD, эксперт по архитектуре системной безопасности</td> </tr> - - <tr valign="top"> - <td>Warner Losh <a - href="mailto:imp@FreeBSD.org"><imp@FreeBSD.org></a></td> - - <td>Представитель Основной группы разработчиков FreeBSD, Офицер - безопасности в отставке</td> - </tr> </table> <p>Офицер информационной безопасности поддерживается <a - href="mailto:security-team@FreeBSD.org">Службой безопасности FreeBSD - <security-team@FreeBSD.org></a>, группой коммиттеров, которую он - выбирает сам.</p> - - <p>Пожалуйста, используйте <a - href="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/public_key.asc">PGP-ключ - Офицера информационной безопасности</a> для шифрования своих сообщений, - направляемых ему, когда это требуется.</p> + href="&enbase;/administration.html#t-secteam" >Службой безопасности + FreeBSD</a> <a + href="mailto:secteam@FreeBSD.org"><secteam@FreeBSD.org></a>, + небольшой группой коммиттеров, которую он выбирает сам.</p> <a name="pol"></a> - <h2>Политика отработки информации</h2> + <h2>Политика обработки информации</h2> <p>Как общее правило, Офицер безопасности FreeBSD предпочитает полное раскрытие информации об уязвимости после достаточного перерыва на @@ -132,9 +133,8 @@ затронутыми командами.</p> <p>Офицер безопасности <em>будет</em> уведомлять одного или большее - количество <a href="mailto:admins@FreeBSD.org">администраторов кластера - FreeBSD</a> об уязвимостях, которые подвергают ресурсы Проекта FreeBSD - непосредственной опасности.</p> + количество администраторов кластера об уязвимостях, которые подвергают + ресурсы Проекта FreeBSD непосредственной опасности.</p> <p>Офицер безопасности может привлечь дополнительных разработчиков FreeBSD или внешних разработчиков к обсуждению предоставленной информации об @@ -144,7 +144,7 @@ уязвимости, и все привлечённые эксперты будут действовать в соответствии с указаниями Офицера безопасности. В прошлом привлекались эксперты с большим опытом работы с высокосложными компонентами операционной системы, включая - FFS, подсистема VM и стек сетевых протоколов.</p> + FFS, подсистему VM и стек сетевых протоколов.</p> <p>Если уже выполняется процесс выпуска релиза FreeBSD, то инженер, ответственный за выпуск релиза, может также быть оповещён об имеющейся @@ -157,7 +157,8 @@ <p>Офицер безопасности FreeBSD поддерживает тесные рабочие отношения со многими другими организациями, включая сторонних разработчиков, имеющих - с FreeBSD общий код (проекты OpenBSD и NetBSD, Apple и другие разработчики, + с FreeBSD общий код (проекты OpenBSD, NetBSD и DragonFlyBSD, Apple и + другие разработчики, программное обеспечение которых основано на FreeBSD, а также разработчики Linux), и организации, которые отслеживают уязвимости и случаи нарушения информационной безопасности, такие, как CERT. Зачастую уязвимости выходят @@ -168,7 +169,7 @@ пожалуйста, явно укажите это в своих сообщениях.</p> <p>Сообщающие должны тщательно и явно указать любые свои требования - относительно отработки сообщённой информации.</p> + относительно обработки сообщённой информации.</p> <p>Если сообщающий об уязвимости заинтересован в координации процесса раскрытия с ним и/или другими разработчиками, это должно быть явно указано @@ -180,78 +181,122 @@ следовать предлагаемому плану по её раскрытию, для того, чтобы дать пользовательскому сообществу максимально эффективную защиту.</p> - <p>Сообщающие должны иметь в виду, что Проект FreeBSD является проектом с - открытым кодом, и информация о любом изменении в дереве исходного кода - FreeBSD доступна всем. Если предложен план по раскрытию уязвимости, то - он должен принимать во внимание как официальный выпуск бюллетеня по - безопасности, патча и информации об обновлении, а также изначальное - включение исправлений в дерево исходного кода FreeBSD. Обязателен - временной промежуток между включением исправлений в дерево и созданием - и выпуском официальных объявлений, патчей, двоичных обновлений, так как - для их создания используется система управления исходным кодом.</p> - <p>Сообщения могут быть защищены с помощью PGP. Если это нужно, то ответы также будут защищены посредством PGP.</p> - <a name=adv></a> - <h2>Бюллетени безопасности FreeBSD</h2> + <a name="sup"></a> + <h2>Поддерживаемые релизы FreeBSD</h2> - <p>Служба информационной безопасности FreeBSD выпускает бюллетени + <p>Офицер информационной безопасности FreeBSD выпускает бюллетени безопасности для нескольких разрабатываемых веток FreeBSD. Это <em>Ветки -STABLE</em> и <em>Ветки Security</em>. (Бюллетени не выпускаются для <em>Ветки -CURRENT</em>.)</p> <ul> - <li><p>Обычно здесь присутствует только одна ветка -STABLE, хотя в процессе - перехода от одной основной линии разработки к другой (например, с FreeBSD - 4.x на 5.x) имеется временной интервал, в котором существуют две ветки - -STABLE. Тэги ветки -STABLE носят имена типа <tt>RELENG_4</tt>. - Соответствующие версии носят названия типа <tt>FreeBSD - 4.6-STABLE</tt>.</p></li> + + <li><p>Тэги ветки -STABLE носят + имена типа <tt>RELENG_7</tt>. Соответствующие сборки носят + названия типа <tt>FreeBSD 7.0-STABLE</tt>.</p></li> <li><p>Каждому релизу FreeBSD поставлена в соответствие ветка безопасности - (Security Branch). Метки веток безопасности именуются как - <tt>RELENG_4_6</tt>. Соответствующие построенные версии носят названия - типа <tt>FreeBSD 4.6-RELEASE-p7</tt>.</p></li> + (Security Branch). Тэги веток безопасности именуются как + <tt>RELENG_7_0</tt>. Соответствующие сборки носят названия + типа <tt>FreeBSD 7.0-RELEASE-p1</tt>.</p></li> </ul> - <p>Каждая ветка поддерживается службой безопасности ограниченное время, - обычно до 12 месяцев после релиза. Ожидаемые времена жизни для - поддерживаемых в настоящее время веток даны ниже. В колонке - <em>Ожидаемое время жизни</em> указана ближайшая дата, по истечение - которой ветка будет брошена. Пожалуйста, учтите, что эти сроки в будущем - могут быть увеличены, но только исключительные обстоятельства могут - привести к отказу от поддержки ветки раньше указанной даты.</p> + <p>Проблемы, затрагивающие Коллекцию портов FreeBSD, описываются в <a + href="http://vuxml.FreeBSD.org/">документе FreeBSD VuXML</a>.</p> + + <p>Каждая ветка поддерживается Офицером безопасности в течение + ограниченного времени. Ветки разделены на типы, которые определяют срок + жизни, как показано ниже.</p> + + <dl> + <dt>Раннее внедрение (Early Adopter)</dt> + <dd>Релизы, выпускаемые из ветки -CURRENT, будут поддерживаться Офицером + безопасности как минимум в течение 6 месяцев после выхода.</dd> + <dt>Обычный (Normal)</dt> + <dd>Релизы, выпускаемые из ветки -STABLE, будут поддерживаться Офицером + безопасности как минимум в течение 12 месяцев после выхода и в течение + дополнительного времени (если потребуется), достаточного, чтобы + следующий релиз был выпущен по крайней мере за 3 месяца до истечения + срока поддержки предыдущего Обычного релиза. + </dd> + <dt>Расширенный (Extended)</dt> + <dd>Отобранные релизы (обычно, каждый второй релиз и последний релиз из + каждой ветки -STABLE) будут поддерживаться Офицером безопасности как + минимум в течение 24 месяцев после выхода и в течение дополнительного + времени (если потребуется), достаточного, чтобы следующий Расширенный + релиз был выпущен по крайней мере за 3 месяца до истечения срока + поддержки предыдущего Расширенного релиза. + </dd> + </dl> + + <a name="supported-branches"></a> + + <p>Ниже приводятся текущее назначение и ожидаемое время жизни для + поддерживаемых в настоящее время веток. В колонке + <em>Ожидаемое окончание срока жизни</em> указана ближайшая дата, по истечении + которой будет прекращена поддержка ветки. Пожалуйста, учтите, что эти + даты могут быть сдвинуты в будущее, но только исключительные обстоятельства + могут привести к отказу от поддержки ветки раньше указанной даты.</p> <table class="tblbasic"> <tr> <th>Ветка</th> <th>Релиз</th> - <th>Ожидаемое время жизни</th> + <th>Тип</th> + <th>Дата выхода</th> + <th>Ожидаемое окончание срока жизни</th> </tr> - <tr> - <td>RELENG_4</td> + <td>RELENG_6</td> + <td>n/a</td> <td>n/a</td> - <td>31 октября 2004</td> + <td>n/a</td> + <td>30 ноября 2010</td> </tr> - <tr> - <td>RELENG_4_8</td> - <td>4.8-RELEASE</td> - <td>31 марта 2004</td> + <td>RELENG_6_4</td> + <td>6.4-RELEASE</td> + <td>Расширенный</td> + <td>28 ноября 2008</td> + <td>30 ноября 2010</td> </tr> - <tr> - <td>RELENG_4_9</td> - <td>4.9-RELEASE</td> - <td>31 октября 2004</td> + <td>RELENG_7</td> + <td>n/a</td> + <td>n/a</td> + <td>n/a</td> + <td>последний релиз + 2 года</td> + </tr> + <tr> + <td>RELENG_7_1</td> + <td>7.1-RELEASE</td> + <td>Расширенный</td> + <td>4 января 2009</td> + <td>31 января 2011</td> + </tr> + <tr> + <td>RELENG_7_2</td> + <td>7.2-RELEASE</td> + <td>Обычный</td> + <td>4 мая 2009</td> + <td>31 мая 2010</td> + </tr> + <tr> + <td>RELENG_8</td> + <td>n/a</td> + <td>n/a</td> + <td>n/a</td> + <td>последний релиз + 2 года</td> </tr> - <tr> - <td>RELENG_5_2</td> - <td>5.2-RELEASE</td> - <td>31 июля 2004</td> + <td>RELENG_8_0</td> + <td>8.0-RELEASE</td> + <td>Обычный</td> + <td>25 ноября 2009</td> + <td>30 ноября 2010</td> </tr> </table> @@ -259,405 +304,25 @@ рекомендуется произвести обновление до одной из поддерживаемых версий, указанных выше.</p> - <p>Как и все направления разработки, исправления в защите системы сначала - испытываются в ветке <a - href="&enbase;/doc/ru_RU.KOI8-R/books/handbook/cutting-edge.html#CURRENT"> - FreeBSD-current</a>. После нескольких дней некоторого тестирования - исправления переносятся в поддерживаемые ветки FreeBSD-stable и - выпускается очередной бюллетень.</P> - - <p>Немного статистики по бюллетеням, выпущенным в течение 2002 года:</p> - - <ul> - <li>44 бюллетеня с проблемами различной степени опасности касались - базовой системы.</li> - - <li>12 бюллетеней описывали уязвимости, касающиеся только FreeBSD. - Остальные 32 бюллетеня являлись проблемами, общими как минимум с одной - из других ОС (часто по причине использования одного и того же кода).</li> - - <li>Было выпущено 6 замечаний по безопасности, которые касались 95 проблем - в дополнительных приложениях сторонних разработчиков, входящих в - Коллекцию Портов.</li> - </ul> - <p>Бюллетени рассылаются в следующие списки рассылки FreeBSD:</p> - <ul> <li>FreeBSD-security-notifications@FreeBSD.org</li> <li>FreeBSD-security@FreeBSD.org</li> <li>FreeBSD-announce@FreeBSD.org</li> </ul> - <p>Бюллетени всегда подписываются с помощью <a - href="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/public_key.asc">PGP-ключа</a> - Офицера Безопасности и помещаются, вместе с соответствующими исправлениями, - в наш <a - href="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/index.html">архив</a>. На - момент написания этого текста вышли следующие бюллетени (заметьте, что этот - список может быть устаревшим на несколько дней - самые последние бюллетени - находятся на <a - href="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/"> - FTP-сервере</A>):</P> - - &advisories.html.inc; - - <a name=ml></a> - <h2>Информация о списках рассылки, посвящённых безопасности FreeBSD</h2> - - <p>Если вы администрируете или эксплуатируете некоторое количество систем - FreeBSD, вам полезно быть подписанным на один или несколько из следующих - списков рассылки:</p> - - <table> - <tr> - <td><a - href="http://lists.freebsd.org/mailman/listinfo/freebsd-security"> - freebsd-security</a></td> - - <td>Обсуждение общих вопросов безопасности</td> - </tr> + <p>Список выпущенных бюллетеней можно найти на странице <a + href="advisories.html">FreeBSD Security Advisories</a>.</p> - <tr> - <td><A - HREF="http://lists.freebsd.org/mailman/listinfo/freebsd-security-notifications"> - freebsd-security-notifications</A></td> - - <td>Уведомления, касающиеся безопасности (модерируемый список - рассылки)</td> - </tr> - </table> - - - <A NAME=spg></A> - <H2>Рекомендации по безопасному программированию</H2> - <P></P><UL> - -<LI>Никогда не доверяйте никаким входным данным, будь то аргументы командной - строки, переменные окружения, конфигурационные файлы, входящие пакеты - TCP/UDP/ICMP, имена хостов, аргументы функций и так далее. Если размер - полученных данных является фактором, контролируемым извне, то программа - или функция должна эти данные проверять при копировании. Особо стоит - обратить внимание на следующие моменты: - <P></P><UL> - -<LI>strcpy() и sprintf(), применяемые к данным, размер которых неизвестен. - Используйте strncpy и snprintf(), когда размер известен (или выполняйте - какие-то другие формы проверки границ данных, когда их длина неизвестна). - В частности, никогда не используйте функции gets() или sprintf(), точка. - Если вы все же будете это делать, мы вас проклянем. - <P></P></LI> - -<LI>Если вы осуществляете проверку ввода пользователя на то, чтобы он не - содержал неверные символы, НЕ проверяйте наличие неправильных символов. - Вместо этого просто проверяйте, что во входном потоке содержатся ТОЛЬКО - разрешенные символы. Общий принцип: запрет всего, что явно не разрешено. - <P></P></LI> - -<LI>Прочтите страницы Справочника по функциям strncpy() и strncat(). - Удостоверьтесь, что вы правильно понимаете их работу!!! Функция strncpy() - может не добавлять терминирующий \0, когда как strncat() это делает. - <P></P></LI> - -<LI>Отслеживайте использование функций strvis() и getenv(). При использовании - strvis() легко получить неправильную целевую строку, а getenv() - может вернуть результатом строчки, намного превышающие то, что ожидает ваша - программа. Использование этих функций является одним из основных методов - выполнения атак на систему, при которой установка необычных значений - переменных окружения приводит к изменению значения стека и переменных - внутри программы. Если ваша программа использует переменные окружения, - будьте осторожны. Будьте сверхосторожны! - <P></P></LI> - -<LI>Каждый раз при использовании вызовов open() или stat() спросите себя: - "Что, если это - символическая ссылка?" - <P></P></LI> - -<LI>Всегда используйте mkstemp() вместо mktemp(), tempnam(), и тд. Также - в общем будьте осторожны при работе в /tmp, имея в виду, что в /tmp - очень мало атомарных операций: - <UL> - <LI>Создание каталога. Оно может быть удачным или с ошибкой.</LI> - <LI>Открытие файла O_CREAT | O_EXCL</LI> - </UL> - Если вы используете mkstemp(), то вышеуказанные случаи обрабатываются - корректно. Поэтому все временные файлы должны быть созданы с - использованием mkstemp() для гарантии того, что нет совпадения имен и - все права доступа выставляются верно. - <P></P></LI> - -<LI>Если атакующий может посылать пакеты от имени другой произвольной - системы, то он получает полный контроль над данными, которые мы получаем - и <B>НИКАКИМ</B> из них мы не должны доверять. - <P></P></LI> - -<LI>Никогда не полагайтесь на то, что конфигурационный файл имеет - правильный формат или что он сгенерирован соответствующей утилитой. Не - доверяйте пользовательскому вводу, который касается имен терминалов и - не думайте, что в вводимых строках не будет подстрок '/' или '../../../', - если есть хоть какой-то шанс, что они будут использованы в качестве - маршрута к файлу. Не доверяйте <B>НИКАКИМ</B> путям, которые ввел - пользователь, когда вы работаете с правами суперпользователя. - <P></P></LI> - -<LI>Ищите бреши и недочеты в способе хранения данных. Все временные - файлы должны иметь права 600 для того, чтобы быть защищенными от - любопытных глаз. - <P></P></LI> - -<LI>Не просто ищите обычные подозрительные места в программах, которые - выполняются с повышенными привилегиями. Просмотрите код строчку за - строчкой в поиске возможных в этих случаях переполнений, так как имеется - гораздо больше способов вызвать переполнение буфера, чем просто используя - strcpy() со товарищи. - <P></P></LI> - -<LI>Если вы где-то понизили привилегии, это вовсе не значит, что в программа - не подвержена атакам. Атакующий может поместить соответствующий код в - стек, чтобы вернуть привилегированный режим перед выполнением - /bin/sh.</LI></UL> - <P></P></LI> - -<LI>Управляйте значением uid. Меняйте привилегии как можно быстрее, и - меняйте их на самом деле. Переключение между euid и uid НЕ достаточно. - Используйте setuid() везде, где это возможно. - <P></P></LI> - -<LI>Никогда не выводите содержимого конфигурационного файла при возникновении - ошибок. Достаточно номера строки и может быть, позиции в строке. Это - нужно делать для всех библиотек и любой программы с установленными битами - suid/sgid. - <P></P></LI> - -<LI>Советы для тех, кто проверяет имеющийся код на наличие проблем - с безопасностью:<P></P> -<UL> - -<LI>Если вы не уверены в правильности ваших исправлений, пошлите их - обозревателю, с которым у вас уже есть договоренность на просмотр вашего - кода. Не выполняйте коммит кода, в котором вы не уверены, так как - нарушение работы чего-либо из-за исправлений во имя безопасности приводит - в некоторое замешательство. - <P></P></LI> - -<LI>Те, у кого нет привилегий на CVS для выполнения операции commit, должны - понимать, что обозреватель с такими привилегиями должен просмотреть - изменения. Этот человек должен просмотреть и включить окончательную версию - в дерево CVS. - <P></P></LI> - -<LI>При посылке изменений для просмотра, всегда используйте diff в форматах - context или unidiff - в этих случаях изменения могут быть легко переданы - программе patch(1). Не посылайте просто файлы полностью. Файлы diff - гораздо легче читать и вносить изменения из них в исходные тексты (особенно - когда может иметь место много изменений в разных местах). Все изменения - должны делаться в ветке -current. - <P></P></LI> - -<LI>Всегда тестируйте ваши изменения непосредственно (например, компилируя - и запуская затрагиваемые программы) перед тем, как послать их обозревателю. - Никому не нравится получать нерабочий код для обозрения, что обычно - означает, что посылающий туда даже не заглядывал (что ещё более усиливает - недоверие к человеку). Если вам нужен вход на машину с конкретной версией, - которой у вас нет - просто спросите. У нас имеются ресурсы именно с - таким назначением. - <P></P></LI> - -<LI>Замечание для коммиттеров: не забудьте перенести патчи из ветки -current - в соответствующие места ветки -stable. - <P></P></LI> - -<LI>Не нужно без необходимости переписывать код в соответствии с вашим - стилем/вкусом - это только затруднит работу обозревателя. Делайте это, - если только на то имеются веские причины.</LI></UL> - <P></P></LI> - -<LI>Обратите внимание на программы, которые выполняют сложные манипуляции - с обработчиками сигналов. Многие подпрограммы в различных библиотеках - недостаточно реентерабельны, чтобы делать это корректно. - <P></P></LI> - -<LI>Особое внимание уделите использованию realloc() - эта функция чаще всего - используется неправильно. - <P></P></LI> - -<LI>При использовании буферов фиксированного размера используйте sizeof() - во избежание несоответствия, когда размер буфера меняется, а код, который - его использует, нет. Например: - <pre> - char buf[1024]; - struct foo { ... }; - ... -ПЛОХО: - xxx(buf, 1024) - xxx(yyy, sizeof(struct foo)) -ХОРОШО: - xxx(buf, sizeof(buf)) - xxx(yyy, sizeof(yyy)) - </pre> - Будьте внимательны при использовании sizeof() с указателями, когда вы - на самом деле хотите выяснить размер данных, к которым относится указатель! - <P></P></LI> - -<LI>Каждый раз, когда вы видите "char foo[###]", проверьте каждое - использование массива foo, чтобы удостовериться, что он не может быть - переполнен. Если вы не можете избежать переполнения (а такие случаи могут - иметь место), то, по крайней мере, выделяйте память под буфер операцией - malloc, чтобы никто не смог получить доступ к стеку. - <P></P></LI> - - <li>Всегда закрывайте файловые дескрипторы, как только это можно сделать - - это делает более вероятным сброс содержимого буфера стандартного - ввода/вывода. В библиотечных процедурах всегда устанавливайте параметр - close-on-exec для любых открываемых файловых дескрипторов. - <p></p></li> - </ul> - - <p>Полезным инструментом аудита является порт its4, находящийся в каталоге - /usr/ports/security/its4/. Это автоматизированный аудитор кода на языке C, - который выявляет потенциальные проблемы в коде. Это полезная однопроходная - утилита, но на неё не стоит полагаться, а полный аудит должен включать - проверка всего кода человеком.</p> - - <p>За дополнительной информацией о технике безопасного программирования - и посвящённым этому вопросу ресурсах обратитесь к странице <A - HREF="http://www.shmoo.com/securecode/">How to Write Secure Code</A>.</P> - - <A NAME=tat></A> - <H2>Советы и рекомендации по безопасности FreeBSD</H2> - - <P>Вот некоторые действия, которые вы должны предпринять, чтобы защитить - FreeBSD или фактически любую &unix;-систему:</p> -<UL> - -<LI>Отключение потенциально опасного программного обеспечения<BR><P></P> - - Имеется большое количество программного обеспечения, которое для - использования специфических ресурсов запускается с правами особого - привилегированного пользователя, для чего на выполнимые файлы устанавливается - бит set-uid. Примерами таких программ являются UUCP и PPP, которые - используют последовательный порт, или sendmail, который работает с почтовой - очередью и привязывается к привилегированному сетевому порту. Если вы не - используете UUCP, вовсе не обязательно иметь ее в системе, и его можно - просто убрать. Конечно, это требует хорошего знания того, что может быть - выброшено, а что нет, и хорошее представление о том, захотите ли вы иметь - эту функциональность в будущем.<BR><P></P> - - Вы можете обнаружить, что некоторые утилиты недостаточно полезны для того, - чтобы иметь их в системе с риском для безопасности, например, swapinfo. - Если вы уберете бит set-uid с выполнимого файла (с помощью команды - 'chmod ug-s filename'), вы сможете воспользоваться swapinfo, работая как - пользователь root. Однако это является не такой уж хорошей идеей, если, - убрав все биты set-uid, вам придется все время работать как - root.<BR><P></P> - - Удалите не только программы, которыми вы не пользуетесь, но и сервисы, - которые вы не хотите или которые вам не нужно предоставлять. Это может быть - сделано путем редактирования файлов <TT>/etc/inetd.conf</TT> и - <TT>/etc/rc.conf</TT> с отключением в нем всех неиспользуемых - сервисов.<P></P></li> - -<LI>Исправление программного обеспечения, в котором имеются проблемы с - безопасностью (или как быть на один шаг впереди кракеров)<BR><P></P> - - Подпишитесь на различные <A HREF="#ml">списки рассылки по безопасности - FreeBSD</A>, чтобы получать известия об ошибках в безопасности и - исправления. Вносите исправления немедленно.<P></P></li> - -<LI>Создание архивных копий для восстановления системы в случае нарушения - безопасности<BR><P></P> - - Всегда имейте архивную копию и чистую версию операционной системы - (например, на CD-Rom). Проверьте, что архивные копии не содержат данных, - поврежденных или измененных в результате атаки.<P></P></li> - -<LI>Установка программного обеспечения для отслеживания состояния - системы<BR><P></P> - - Программы типа tcp wrappers и tripwire (оба находятся среди - пакаджей/портов) могут помочь проводить мониторинг работы системы. Это - облегчает обнаружение попыток взлома. Также читайте результаты работы - скриптов из /etc/security, которые запускаются ежедневно и посылают свои - сообщения по электронной почте пользователю root.<P></P></li> - -<LI>Обучение людей, работающих в системе<BR><P></P> - - Пользователи должны знать, что они делают. Им должно быть сказано, чтобы - они никому не передавали свои пароли и делали их трудными для отгадывания. - Дайте им понять, что безопасность системы/сети отчасти находится в - их руках.<P></P></li> -</UL> - -<P>Имеется также документ FreeBSD Security How-To, в котором даются - некоторые подробные советы по усилению безопасности вашей системы. Вы - можете найти его по адресу <A HREF="http://www.FreeBSD.org/~jkb/howto.html"> - http://www.FreeBSD.org/~jkb/howto.html</A>.</P> - -<P>Обеспечение безопасности - это динамичный процесс. Следуйте последним - разработкам в этой области.</P> - -<A NAME=misc></A> -<H2>Что делать, если вы обнаружили нарушение безопасности</H2> - -<UL> -<LI><B>Определите серьезность нарушения безопасности</B><BR> - Какие привилегии получил атакующий? Получил ли он доступ с привилегиями - системного администратора? Или атакующий получил только доступ на уровне - обычного пользователя?</LI> - -<LI><B>Определите, было ли изменено состояние системы (ядро или - пользовательская часть)</B><BR> - - Какое программное обеспечение было изменено? Было ли установлено новое - ядро? Были ли модифицированы какие-либо системные программы (такие, как - telnetd, login, и тд.)? Если вы полагаете, что атакующий мог сделать какие - угодно изменения в ОС, вы можете переустановить операционную систему с - безопасного носителя.</LI> - -<LI><B>Определите, как был осуществлен взлом</B><BR> - - Был ли взлом осуществлен через хорошо известную ошибку в безопасности? Если - это так, установите соответствующие патчи. Был ли взлом осуществлен из-за - неправильной конфигурации? Или это была новая ошибка? Если вы думаете, - что это было неизвестная ошибка, вы должны предупредить <A - HREF="mailto:security-officer@FreeBSD.org">Офицера Безопасности - FreeBSD</A>.</LI> - -<LI><B>Устранение дыры в безопасности</B><BR> - Для устранения проблемы установите новое программное обеспечение или патчи - к старому. Отключите всех пользователей, бюджеты которых были - взломаны.</LI> - -<LI><B>Другие ресурсы</B><BR> - <A HREF="http://www.cert.org">CERT</A> также предоставляет - <A HREF="http://www.cert.org/nav/recovering.html">подробную информацию</A> - о том, что нужно предпринять в случае нарушения безопасности системы.</LI> -</UL> - - <H2>Другие источники информации, касающиеся безопасности</H2> - - <UL> - <LI><A href="http://www.cerias.purdue.edu/coast/archive/index.html">Архив - COAST</A> содержит гигантскую коллекцию материалов, посвященных - безопасности.</LI> - - <LI><A href="http://www.cerias.purdue.edu/infosec/hotlist/">Center for - Education and Research in Information Assurance and Security (CERIAS)</A> - является местом, с которого следует начинать поиск материалов - по безопасности. Здесь находятся сотни полезных ссылок. Всё, что вы - хотели знать о безопасности... и больше.</LI> - - <LI>Различные группы CERT, такие как <A href="http://www.cert.org"> - http://www.cert.org</A> и <A href="http://www.auscert.org.au"> - http://www.auscert.org.au</A>.</LI> - - <LI>Списки рассылки, такие как <A - HREF="http://www.securityfocus.com/forums/bugtraq/intro.html">Bugtraq</A> - и <A HREF="http://list.nfr.com/forum/firewall-wizards.html">Firewall - Wizards</A>.</LI> - </UL> + <p>Бюллетени всегда подписываются с использованием <a + href="&enbase;/security/so_public_key.asc">PGP-ключа</a> + Офицера Безопасности и помещаются, вместе с соответствующими + исправлениями, на web-сервер <a + href="http://security.FreeBSD.org/">http://security.FreeBSD.org/</a> + в поддиректории <a + href="http://security.FreeBSD.org/advisories/">advisories</a> и <a + href="http://security.FreeBSD.org/patches/">patches</a>.</p> &footer - - </body> +</body> </html> >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002090957.o199vte2060178>