-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathsecurity.html
314 lines (275 loc) · 20 KB
/
security.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
<!doctype html>
<html lang=ru>
<meta charset=utf-8>
<title>OpenBSD: Безопасность</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/security.html">
<style>
h3 {
color: var(--red);
}
</style>
<h2 id=OpenBSD>
<a href="index.html">
<i>Open</i><b>BSD</b></a>
Безопасность
</h2>
<hr>
<p>
Используйте ссылки ниже, если интересуетесь безопасностью конкретного релиза.
<p>
<a href="https://openbsd.org/errata20.html">2.0</a>,
<a href="https://openbsd.org/errata21.html">2.1</a>,
<a href="https://openbsd.org/errata22.html">2.2</a>,
<a href="https://openbsd.org/errata23.html">2.3</a>,
<a href="https://openbsd.org/errata24.html">2.4</a>,
<a href="https://openbsd.org/errata25.html">2.5</a>,
<a href="https://openbsd.org/errata26.html">2.6</a>,
<a href="https://openbsd.org/errata27.html">2.7</a>,
<a href="https://openbsd.org/errata28.html">2.8</a>,
<a href="https://openbsd.org/errata29.html">2.9</a>,
<a href="https://openbsd.org/errata30.html">3.0</a>,
<a href="https://openbsd.org/errata31.html">3.1</a>,
<a href="https://openbsd.org/errata32.html">3.2</a>,
<a href="https://openbsd.org/errata33.html">3.3</a>,
<a href="https://openbsd.org/errata34.html">3.4</a>,
<a href="https://openbsd.org/errata35.html">3.5</a>,
<br>
<a href="https://openbsd.org/errata36.html">3.6</a>,
<a href="https://openbsd.org/errata37.html">3.7</a>,
<a href="https://openbsd.org/errata38.html">3.8</a>,
<a href="https://openbsd.org/errata39.html">3.9</a>,
<a href="https://openbsd.org/errata40.html">4.0</a>,
<a href="https://openbsd.org/errata41.html">4.1</a>,
<a href="https://openbsd.org/errata42.html">4.2</a>,
<a href="https://openbsd.org/errata43.html">4.3</a>,
<a href="https://openbsd.org/errata44.html">4.4</a>,
<a href="https://openbsd.org/errata45.html">4.5</a>,
<a href="https://openbsd.org/errata46.html">4.6</a>,
<a href="https://openbsd.org/errata47.html">4.7</a>,
<a href="https://openbsd.org/errata48.html">4.8</a>,
<a href="https://openbsd.org/errata49.html">4.9</a>,
<a href="https://openbsd.org/errata50.html">5.0</a>,
<a href="https://openbsd.org/errata51.html">5.1</a>,
<br>
<a href="https://openbsd.org/errata52.html">5.2</a>,
<a href="https://openbsd.org/errata53.html">5.3</a>,
<a href="https://openbsd.org/errata54.html">5.4</a>,
<a href="https://openbsd.org/errata55.html">5.5</a>,
<a href="https://openbsd.org/errata56.html">5.6</a>,
<a href="https://openbsd.org/errata57.html">5.7</a>,
<a href="https://openbsd.org/errata58.html">5.8</a>,
<a href="https://openbsd.org/errata59.html">5.9</a>,
<a href="https://openbsd.org/errata60.html">6.0</a>,
<a href="https://openbsd.org/errata61.html">6.1</a>,
<a href="https://openbsd.org/errata62.html">6.2</a>,
<a href="https://openbsd.org/errata63.html">6.3</a>,
<a href="https://openbsd.org/errata64.html">6.4</a>,
<a href="https://openbsd.org/errata65.html">6.5</a>,
<a href="https://openbsd.org/errata66.html">6.6</a>,
<a href="https://openbsd.org/errata67.html">6.7</a>,
<br>
<a href="https://openbsd.org/errata68.html">6.8</a>,
<a href="https://openbsd.org/errata69.html">6.9</a>,
<a href="https://openbsd.org/errata70.html">7.0</a>,
<a href="https://openbsd.org/errata71.html">7.1</a>,
<a href="https://openbsd.org/errata72.html">7.2</a>,
<a href="https://openbsd.org/errata73.html">7.3</a>,
<a href="https://openbsd.org/errata74.html">7.4</a>,
<a href="https://openbsd.org/errata75.html">7.5</a>,
<a href="https://openbsd.org/errata76.html">7.6</a>.
<br>
<hr>
<ul>
<li><h3 id=goals>Цели</h3>
<p>
OpenBSD верит в стойкую безопасность. Мы стремимся быть ПЕРВЫМИ в области
безопасности (если уже не стали ими). Благодаря нашей открытой модели
разработки, мы имеем абсолютно бескомпромиссный взгляд на вопросы
безопасности, в отличие от большинства других проектов. Мы можем делать такие
изменения, на которые другие не пошли бы. Кроме того, благодаря
<a href="crypto.html">криптографии</a>, используемой в OpenBSD, у нас
больше возможностей и подходов к устранению проблем безопасности.
<li><h3 id=disclosure>Приинцип абсолютной открытости</h3>
<p>
Как и большинство читателей
<a href="https://marc.info/?l=bugtraq">рассылки BUGTRAQ</a>,
мы верим в преимущества абсолютного разглашения
проблем безопасности. Среди множества операционных систем мы, похоже,
первые кто использует такой подход. Многие производители, в том
числе и свободного программного обеспечения, все ещё пытаются скрыть
какие-то нюансы от своих пользователей.
<p>
Информация, касающаяся безопасности, распространяется очень быстро среди
взломщиков, но наш опыт позволяет уже в течении часа
выпускать исправления. Поэтому мы считаем, что полное разглашение
о проблемах поможет людям, которые заботятся о своей безопасности.<p>
<li><h3 id=process>Аудит процесс</h3>
<p>
От шести до двенадцати человек составляют команду, которая занимается
поиском и исправлением ошибок в нашем репозитории. Мы проводим аудит с
лета 1996 г. Процесс по улучшению безопасности охватывает все части системы,
файл за файлом мы анализируем каждый компонент программы. Мы не столько
ищем ошибки безопасности, сколько простые программные ошибки. Если
спустя годы кто-то обнаружит уязвимость, у нас она скорее всего уже
будет исправленна, так как причиной уязвимости скорее всего была
обычная ошибка в коде. Те или иные проблемы были найдены в процессе
аудита почти в каждом компоненте системы. Были найдены совершенно
новые категории проблем безопасности, и часто исходный код, который
уже прошёл аудит, нуждался в дополнительной перепроверке. Исходный
код обычно проверяется несколько раз разными людьми с разным опытом.
<p>
Некоторые члены из нашей аудит команды работали в Secure Networks -
компании, занимающейся сканированием сетей на предмет сетевых уявзвимостей
и созданием Ballista - пакет программ для проверки сетей на безопасность.
(Secure Networks бала куплена Network Associates, Ballista переименована
в Cybercop Scanner.) Эта компания проводила множество тестов и исследований
уязвимости и, таким образом, имеет хороший опыт в данной области. OpenBSD
проходила все проверки Ballista с первого же дня тестирования.
<p>
Другой аспект процесса проверки - проактивность. Во многих случаях мы
обнаруживаем, что найденная уязвимость неактуальна. Тем не менее, в ходе
процесса аудита мы находим множество ошибок, стараемся их исправить, даже
если уязвимость не доказана. Мы исправляем одни ошибки и продолжаем искать
другие, чтобы исправить и их. Мы устранили множество простых и очевидных
ошибок невнимательного программирования и только по прошествии нескольких
месяцев обнаружили, что они действительно опасны. (Или, более вероятно, что
кто-то на <a href="https://marc.info/?l=bugtraq">BUGTRAQ</a>
опубликует, что другие операционные системы уязвимы к <q>недавно обнаруженной
проблеме</q>, и тогда выяснится, что в OpenBSD эта ошибка уже была исправлена
ещё в прошлом релизе). В других случаях, мы застрахованы от реализации
множества атак лишь потому, что мы исправили один из промежуточных шагов,
необходимых для их реализации. Примером того, где нам удалось добиться
успеха, является рекомендация lpd, которую мы получили благодаря Secure
Networks.
<li><h3 id=newtech>Новые технологии</h3>
<p>
Проверяя исходники, у нас часто появляются новые идеи и мы находим новые
способы решения тех или иных проблем. Иногда бывает и так, что найденные
решения уже использовались в какой-то программе, написанной ранее, но,
возможно, не на таком уровне, на каком это делаем мы.
<ul>
<li>strlcpy() and strlcat()
<li>Memory protection purify
<ul>
<li>W^X
<li>.rodata segment
<li>Guard pages
<li>Randomized malloc()
<li>Randomized mmap()
<li>atexit() and stdio protection
</ul>
<li>Privilege separation
<li>Privilege revocation
<li>Chroot jailing
<li>New uids
<li>ProPolice
<li>... <a href="innovations.html">и другие</a>
</ul>
<li><h3 id=reward>Награда</h3>
<p>
Наш проактивный процесс аудита действительно оправдан. Заявления
подобно <q>Эта проблема была устранена в OpenBSD приблизительно 6
месяцев назад</q> стали обычным явлением на security-форумах подобных
<a href="https://marc.info/?l=bugtraq">BUGTRAQ</a>.
<p>
Наиболее интенсивная часть аудита происходила перед релизом OpenBSD 2.0,
а так же в течение перехода с 2.0→2.1, в конце 1996 и первой половины
1997. Тысячи (да, именно тысячи) проблем безопасности были быстро
устранены в течение этого почти годового периода; ошибки подобно стандартным
переполнением буфера, слабостям реализации протокола, сбору информации,
и гонкам файловых систем. Большинство проблем безопасности, с которыми мы
столкнулись, были устранены перед релизом 2.1, а затем, уже намного меньше
исправлений необходимо было сделать для следующего релиза 2.2. Мы больше
не находим так много ошибок, это простой факт их исчезновения. Однако недавно
найденные и исправленные проблемы безопасности, имеют тенденцию быть
значительно более сложными или неясными. Тем не менее, мы будем продолжать
проводить аудит по ряду причин:
<ul>
<li>Иногда мы находим простые проблемы, которые мы пропустили ранее.
<li>Безопасность чем-то походит на гонку вооружений; кто-то продолжает
искать более сложный путь для реализации атаки, так же будем делать и мы.
<li>Поиск и исправление едва заметных уязвимостей в сложной программе
доставляет удовольствие.
</ul>
<p>
Процесс аудита ещё не закончен, и, как вы видите, мы продолжаем находить
и исправлять все новые и новые изъяны в безопасности.
<li><h3 id=default><q>Secure by Default</q></h3>
<p>
Для того, чтобы гарантировать, что начинающему пользователю нет надобности
становиться экспертом по безопасности (точка зрения, которой, похоже,
придерживаются другие авторы ПО), мы предлагаем операционную систему в
режиме "Secure by Default". Это значит, что все второстепенные сервисы
запрещены. Когда пользователь/администратор более глубоко освоится
с этой системой, он поймет, что нужно разрешить работу лишь некоторых
демонов и других частей системы. По мере изучения того, как запустить
какой-то новый сервер, новичок, скорее всего, ознакомится с требованиями
безопасности.
<p>
Это совершенный контраст со все возрастающим числом систем, которые
поставляются с NFS, mountd, web-серверами и другими запущенными по
умолчанию службами, в первые же минуты после инсталляции создающими
для своих пользователей проблемы безопасности.
<li><h3 id=crypto>Криптография</h3>
<p>
Так как проект OpenBSD находится в Канаде, у нас есть возможность
использовать криптографию. Для получения дополнительной информации, читайте
страницы о том,
<a href="crypto.html">что мы уже сделали при помощи криптографии</a>.
<li><h3 id=advisories>Advisories</h3>
<p>
Пожалуйста обратите внимание на ссылки вверху страницы.
<li><h3 id=watching>Следите за изменениями</h3>
<p>
Так как относительно безопасности мы выбрали проактивную позицию, мы
не перестаем находить и устранять новые проблемы безопасности. Тем не
менее, не все из них придаются широкой огласке. Происходит это из-за того,
что (как уже было сказано) многие из них не представляют серьезной опасности,
т.к. не могут быть использованы для проведения атак; многие простые ошибки,
которые мы уже исправили в прошлом, оказывается, могли были привести к
проблемам безопасности, о которых мы тогда не могли подумать и предсказать.
У нас нет столько времени, чтобы официально сообщать обо всех подобных
исправлениях.
<p>
Таким образом, в репозитории обычно есть незначительные исправления для
последнего релиза OpenBSD. Мы гарантируем, что эти исправления имеют
минимальное влияние на безопасность и непригодны для реализации атак.
Если мы обнаружим, что проблема определённо связана с безопасностью,
патчи появятся здесь <strong>ОЧЕНЬ</strong> быстро.
<p>
Вот что мы можем посоветовать тем, кто действительно заботится о
безопасности:
<ul>
<li>Если вы разбираетесь в технической стороне вопроса, следите за
<a href="mail.html">рассылкой, про изменениях в коде</a>
и не пропускайте тех из них, которые связаны с безопасностью.
А так как подтверждение о возможных атаках для многих изменений в коде
не доказана, не ожидайте, что в commit-сообщении будет сказано
<q>SECURITY FIX!</q>. Если проблема доказана и серьёзна, исправление
появится здесь очень быстро.
<li>Постоянно использовать самые свежие исходники из репозитория и время от
времени полностью пересобирать систему (тщательно прочитайте
/usr/src/Makefile). Не забывайте, что более свежие исходники из
репозитория всегда более стабильны, чем в репах для прошлых релизов.
Однако собрать систему из исходников самому не так-то просто;
это большее 850МБ исходного кода, и могут возникнуть проблемы при обновлении.
<li>Устанавливать бинарный снапшот для вашей архитектуры, которые создаются
довольно часто. Например, новые снапшоты для amd64 обычно создаются
ежедневно.
</ul>
<li><h3 id=reporting>Сообщения о проблемах</h3>
<p>
Если вы обнаружили новую уязвимость, сообщите нам, отправив письмо на
<a href="mailto:[email protected]">[email protected]</a>.
<br>
Если вы хотите зашифровать письмо при помощи PGP (пользуйтесь им
только при крайней необходимости, так как это неудобно), используйте этот
<a href="https://www.openbsd.org/advisories/pgpkey.txt">pgp ключ</a>.
<li><h3 id=papers>Дополнительно</h3>
<p>
Разработчиками OpenBSD написаны
<a href="https://www.openbsd.org/events.html">материалы</a>,
некоторые из которых так или иначе связаны с темой security.
</ul>