Gentoo Archives: gentoo-user-ru

From: Vladimir Solomatin <littleslash@×××××.ru>
To: gentoo-user-ru@l.g.o
Subject: Re: [OBORONA-SPAM] Re: [gentoo-user-ru] hardened
Date: Thu, 10 Nov 2005 10:09:29
Message-Id: 43731C37.8040906@relex.ru
In Reply to: Re: [OBORONA-SPAM] Re: [gentoo-user-ru] hardened by Alex Efros
1 Alex Efros wrote:
2
3 Спасибо, очень познавательно.
4
5 > Краткое описание что подразумевается под "Hardened Gentoo" и что оно даёт.
6 > Hardened Gentoo это просто объединение нескольких разных, часто независимых
7 > друг от друга, проектов:
8 >
9 > - Hardened toolchain - специальные патчи на gcc/glibc/binutils:
10 > * SSP - добавляет в бинарник защиту от переполнения буфера, т.е.
11 > прога откомпилированная с SSP сама проверяет что у неё не
12 > переполнили буфер и киляет сама себя если обнаруживает переполнение
13 > (как следствие бага в самой программе или попытки её взломать
14 > эксплойтом).
15 > * PIE - не увеличивает защищённость сам по себе, но приводит к
16 > генерации более гибкого кода, благодаря чему его можно будет
17 > защитить на уровне ядра через PaX.
18 > PIE и SSP не зависят друг от друга, и их можно использовать вместе и
19 > по отдельности (по сути, после компиляции hardened toolchain можно
20 > будет через gcc-config переключаться между всеми вариантами - PIE+SSP,
21 > только PIE, только SSP, ничего (т.е. обычный gcc) - например, если
22 > какая-то прога не будет компилироваться.
23
24 Сразу ставил stage1-x86-hardened-2.6-2005.1, bootstrap.sh и пр. Ядро -
25 hardened-sources-2.6.11
26
27 Hardened Gentoo (http://www.gentoo.org/proj/en/hardened/index.xml) не
28 читал, думал сначала поставлю, а потом уже разберусь.
29
30 # gcc-config -c
31 i686-pc-linux-gnu-3.3.6
32
33 # gcc-config -l
34 [1] i686-pc-linux-gnu-3.3.6 *
35 [2] i686-pc-linux-gnu-3.3.6-hardenednopie
36 [3] i686-pc-linux-gnu-3.3.6-hardenednopiessp
37 [4] i686-pc-linux-gnu-3.3.6-hardenednossp
38 [5] i686-pc-linux-gnu-3.3.6-vanilla
39
40 Хм.. в хендбуке про hardened практически не слова.
41 Должно быть нужный gcc'шный профайл надо было выбрать до 'emerge
42 --emptytree system'. Получается что у меня hardened только ядро.
43 Кто-то в рассылке спрашивал чем отличается stage1-x86-2005.1 от
44 stage1-x86-hardened-2.X-2005.1 Я вижу всего лишь два отличия :
45 /etc/make.profile и hardened toolchain
46
47
48 >
49 > - Патчи на ядро. Их бывает много, и разных, :) но в Gentoo есть
50 > поддержка только четырёх из них - PaX, SeLinux, GrSecurity и RSBAC.
51 > Функциональность они добавляют трех типов:
52
53 Странно, у себя в hardened-sources я обнаружил только PaX и
54 GrSecurity, хотя вроде не указывал что мне нужно именно это.
55
56 [..skip..]
57
58 > Ожидаемые проблемы:
59 > - не всё может скомпилироваться с PIE+SSP - возможно отдельные пакеты
60 > нужно будет патчить или компилировать без одной или обоих из них
61 > (мне пока потребовалось через gcc-config переключаться на vanilla gcc
62 > только для компиляции X-ов чтобы они работали с ATI-дровами)
63 > - не всё может нормально работать, т.к. некоторые программы (обычно
64 > упоминают X-ы и java) используют выполнение динамически
65 > сгенерированного кода для вполне легальных целей, а теперь при попытке
66 > это делать они будут киляться либо SSP либо PIE+PaX - для этих
67 > программ нужно будет индивидуально отключать часть защит PaX (для этого
68 > есть специальные утилиты, например paxctl) и/или компилировать их без SSP
69 > - не всё может работать из-за ограничений "фич" ядра GrSecurity - в этом
70 > случае нужно будет часть защит GrSecurity отключать (глобально, в
71 > make menuconfig)
72 > - настроить ограничения прав доступа может оказаться не просто, и в
73 > любой момент когда какая-нить прога сделает что-то, что мы при
74 > настройке её прав не учли - она будет прибита ядром... и придётся
75 > эти правила в срочном порядке фиксить
76
77 Получается что все эти проблемы ожидаемы на workstation, а на сервере
78 маловероятны?
79
80
81 > Ну что, поехали... :)
82 >
83 > Слишком сильная оптимизация (-O3) вместе с hardened toolchain может
84 > приводить к разным глюкам и сбоям компиляции, поэтому нужно в
85 > /etc/make.conf заменить -O3 на -O2.
86 >
87 > Переходим на hardened-профайл. (Теоретически вместо этого можно было просто
88 > добавить в USE-флаги: "hardened pie ssp".)
89
90 # emerge -vp gcc
91 [ebuild R ] sys-devel/gcc-3.3.6 (-altivec) -bootstrap
92 -boundschecking -build -fortran -gcj -gtk +hardened -ip28 -multilib
93 -multislot -n32 -n64 +nls -nocxx -nopie -nossp -objc -static -vanilla 0 kB
94
95 хотя может это из-за того что gcc уже собран с поддержкой pie и ssp
96
97 [..skip..]
98
99 > Компиляция hardened-toolchain и пересборка им всех остальных пакетов:
100
101 Что есть "компиляция hardened-toolchain"?
102 # 'USE="hardened pie ssp" hardened pie ssp' - это?
103
104 > emerge binutils gcc glibc
105 > emerge -e world
106 > dispatch-conf
107 >
108 > Далее, нужно поставить ещё несколько пакетов:
109 >
110 > emerge paxtest paxctl gradm
111
112 [..skip..]
113
114 > Что касается настроек ядра. Я для начала настроил всё так, как описано в доке
115 > Gentoo и GrSecurity - при этом не все защиты включены, но
116
117 Что за доки? http://www.gentoo.org/proj/en/hardened ?
118
119 --
120 Vladimir Solomatin (littleslash@×××××.ru)
121 Phone: + 7 (0732) 711711
122 Relex Inc, Voronezh.
123
124 --
125 gentoo-user-ru@g.o mailing list

Replies

Subject Author
Re: [OBORONA-SPAM] Re: [OBORONA-SPAM] Re: [gentoo-user-ru] hardened Alex Efros <powerman@×××××××.ua>