MFen:
security/security.sgml 1.151 --> 1.209 PR: www/143695 Submitted by: pluknet <pluknet@gmail.com>
This commit is contained in:
parent
3c04044927
commit
f11f7e1f5a
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=35382
1 changed files with 177 additions and 512 deletions
|
@ -1,18 +1,19 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD: www/ru/security/security.sgml,v 1.17 2005/10/05 20:59:57 simon Exp $
|
||||
$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" [
|
||||
<!ENTITY base CDATA "..">
|
||||
<!ENTITY date "$FreeBSD: www/ru/security/security.sgml,v 1.17 2005/10/05 20:59:57 simon Exp $">
|
||||
<!ENTITY date "$FreeBSD: www/ru/security/security.sgml,v 1.18 2006/08/19 21:25:55 hrs Exp $">
|
||||
<!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="#adv">Бюллетени безопасности FreeBSD</a></li>
|
||||
|
||||
<li> <a href="#ml">Информация о списках рассылки, посвящённых
|
||||
информационной безопасности FreeBSD</a></li>
|
||||
|
||||
<li><a href="#tat">Советы и рекомендации по обеспечению безопасности
|
||||
FreeBSD</a></li>
|
||||
|
||||
<li><a href="#spg">Рекомендации по безопасному программированию</a></li>
|
||||
|
||||
<li><a href="#misc">Прочая информация, касающаяся безопасности</a></li>
|
||||
<li><a href="#pol">Политика обработки информации</a></li>
|
||||
<li><a href="#sup">Поддерживаемые релизы FreeBSD</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Дополнительные ресурсы, посвященные информационной безопасности</h2>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>31 октября 2004</td>
|
||||
<td>n/a</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_5_2</td>
|
||||
<td>5.2-RELEASE</td>
|
||||
<td>31 июля 2004</td>
|
||||
<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_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>
|
||||
<p>Список выпущенных бюллетеней можно найти на странице <a
|
||||
href="advisories.html">FreeBSD Security Advisories</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>
|
||||
|
||||
<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>
|
||||
|
|
Loading…
Reference in a new issue