книги хакеры / журнал хакер / 138_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ВОТ ТАКИМИ ЛЮДИ ИЗ 1878 ГОДА ВИДЕЛИ «ТЕХНОЛОГИИ БУДУЩЕГО»
Дело в том, что впоследствии именно эта технология и была использована при созда-
нии Skype.
Кстати, если говорить о роли Фрииса и Зеннстерма в создании Skype, то здесь все обстояло уже знакомым нам образом
— наемные программисты (те же самые эстонцы, которые корпели над KaZaA) и двое неразлучных стартаперов в роли основателей проекта. Хотя, справедливости ради здесь нужно отметить, что Зеннстрем был верен Skype и оставался на посту CEO вплоть до 2007 года, то есть еще на протяжении двух лет после продажи компании аукциону eBay.
Итак, eBay. Как уже было сказано выше,
в2005 году, спустя всего два года после создания Skype был продан компании eBay за баснословную сумму — 2,6 миллиардов долларов плюс еще 1,5 миллиарда через несколько лет, если финансовые показатели Skype будут хорошими (это было крупнейшее приобретением eBay за всю историю аукциона). Оба — и Фриис, и Зеннстрем, тогда
водночасье стали миллиардерами и, казалось бы, могли спокойно радоваться жизни, начинать и продвигать другие проекты, заниматься инвестициями и просто тратить те самые миллиарды. Но не тут-то было. Выждав четыре долгих года после совершения сделки и успев за это время запустить стартап Joost, расчетливая парочка решила, что хватит наблюдать за развитием Skype со стороны. А развитие, кстати, было налицо: количество пользователей выросло с 53 до более чем 400 миллионов, международный трафик Skype в 2008 году составил рекордные 33 миллиарда минут, только вот желанных денег eBay все это не приносило. А так как прибыли от Skype составляли куда более скромные суммы, нежели планировалось изначально, в 2009 году крупнейший аукцион планеты решил избавиться от приобретения, заявив, что намерен опять
выделить Skype в отдельную компанию и выставить его акции на биржу. Это сообщение заставило Фрииса и Зеннстрема внезапно активизироваться.
Мало кто изначально понимал, зачем eBay вообще покупал Skype (слишком уж неубедительно звучали официальные заявления: «для удобства общения между пользователями аукциона»), но только в 2009 до широкой общественности дошел весь комизм ситуации. Оказалось, что приобретя сам Skype, eBay умудрился оставить права и патенты на приснопамятную ключевую технологию в руках ее предыдущих владельцев. Да-да, Фрииса и Зеннстрема в лице компании Joltid. А владельцы, узнав о грядущем выставление Skype на биржу, развили бурную деятельность, принявшись возвращать проданное назад. Так, газете
New York Times, например, слили слух о том, что бывшие владельцы Skype уже успели подрастратить свои миллиарды и теперь вынуждены общаться с частными инвесторами, пытаясь найти недостающую часть суммы для совершения «обратной» сделки. Более того, сообразительные бизнесмены тут же сделали «предупредительный выстрел» — так как eBay все это время работал с Joltid по лицензии, Фриис и Зеннстрем подали в суд соответствующий иск, собираясь аннулировать действие этой лицензии в Великобритании. Для начала.
Взаимный шантаж и выпады в сторону друг друга длились без малого полгода. За это время eBay, как бы в ответ на предложение Зеннстрема и Фрииса выкупить свое детище, успел продать 65% акций Skype группе инвесторов Andreessen Horowitz за 2 млрд. долларов. Находчивые бизнесмены тут же снова подали в суд, теперь уже на новых владельцев Skype, обвиняя их в нарушении патентов и требуя по $75 млн. за каждый день «нелегальной» работы сервиса. Аукцион, который Фриис
XÀÊÅÐ 07 /138/ 10
иЗеннстрем также не оставляли в покое (еще бы, у eBay все еще оставалось 35% акций!), подал встречный судебный иск против Joltid с целью запретить компании использование технологии, лежащей в основе Skype. Понимая, что процесс, вероятно, выиграть не удастся, представители eBay на всякий случай заявили о своей готовности переписать Skype с нуля, если понадобится.
Конец всему этому цирку наступил совсем недавно, в ноябре 2009 года. Как это ни удивительно, ситуация все же разрешилась миром. eBay, до этого категорически отказывавшийся выплачивать что-либо экс-вла- дельцам Skype, в итоге все же согласился на сделку. В накладке Зеннстрем и Фриис не остались, они не только снова получили места в совете директоров, но и урвали 14% акций компании Skype. Вся соль ситуации в том, что раскошеливаться им не пришлось
— eBay согласился на их условия в обмен на отказ от исков и лицензирование принадлежащей им интеллектуальной собственности. Мы, конечно, никогда не узнаем, каков был изначальный план Зеннстрема и Фрииса,
исуществовал ли он вообще. Вполне возможно, что они представляли себе «возвращение в Skype» несколько иначе, так сказать, в более радужном свете. Возможно, права придерживались Joltid в рукаве для более подходящего случая, а решение eBay избавиться от Skype форсировало события. С другой стороны может статься, что Фриис
иЗеннстрем и вовсе не замышляли ничего криминального, хотя очень сложно поверить в то, что права на ключевую технологию остались у них «нечаянно», а компания Joltid по чистой случайности была открыта в оффшорной зоне.
После вышеописанного резонно будет задаться вопросом: «что же будет со Skype дальше?», ведь хотя дележка и окончена, нельзя сказать, что все идет совсем уж безоблачно. Нет-нет, да попытаются в какой-нибудь стране запретить софтфон
или подадут на компанию в суд (в последнее время на Skype очень нехорошо косятся телекоммуникационные и сотовые операторы сразу ряда стран, включая Россию). Впрочем, это связано не столько с самим Skype, сколько с VoIP-телефонией в целом — в последней ОПСоСы и Ко в силу паранойи часто видят конкурента, вредителя и врага номер один. Пожалуй, в отношении будущего Skype точно можно сказать следующее: один из самых популярных и успешных VoIPсервисов, которым пользуется несколько сотен миллионов человек, не может просто так сгинуть в лету, что бы ни случилось. А уж если в отцах-основателях этой софтины к тому же числятся два таких хитрых и упорных типа, как Никлас Зеннстрем и Янус Фриис, Skype не только не пропадет, но, скорее всего, найдет более удачные пути монетизации и увеличения прибылей. z
089
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
|
||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
||
P |
|
|
|
|
|
NOW! |
|
o |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
w Click |
to |
BUY |
|
|
|
|
|
|
|
UNIXOID |
|
||||
|
|
|
|
|
|
|
m |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
. |
|
|
|
|
g |
.c |
|
Евгений Зобнин zobnin@gmail.com |
||||||
|
|
p |
|
|
|
|
|
|
|
|
|||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
Qubes OS
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Младенец слицомубийцы
ИзучаемвнутреннееустройствоQubesOS— самогобезопасногодистрибутиваLinux
По-настоящемузащищенныхоперационныхсистемнесуществует. Какиебымерыпоповышениюбезопасностинепредпринимали разработчикиОС, всегдаостаетсявероятностьтого, чтовихкодебудет найденаошибка, котораяпозволитобойтимеханизмызащиты. Однако прогресснеостанавливается, ивпротивовесболееизощренныматакам появляютсяболеесовершенныеметодызащиты. Qubes OS — пример того, какмогутвыглядетьэтиметодывсовременноммире.
ЗАЧЕМИЗОБРЕТАТЬ |
нить,чемжеплохисовременныеоперационные |
• Быстроеисвоевременноерешениевыявлен- |
ВЕЛОСИПЕД? |
системы.Существуеттринаиболееэффективных |
ныхпроблембезопасности; |
Чтобыпонять,почемупоявиласьнасветQubes |
методаобеспечениябезопасностинауровнеОС: |
• Изоляцияисполняемогокода(науровне |
OS,ичтоонаможетдатьвпланебезопасности, |
• Формальноедоказательствоправильностии |
процессовиядра). |
мыдолжныуглубитьсявисториювопросаивыяс- |
безопасностикода; |
Первыйметодподразумеваетполную |
090 |
XÀÊÅÐ 07 /138/ 10 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ПроцессзагрузкиQubes OS
ÊÒÎ ÎÍÀ?
ДжоаннаРутковскаизвестнаблагодарядвумвещам. Во-первых, онаявляетсясоздателемнашумевшегоиоченьтрудноговотлове руткитаBlue Pill (http://bluepillproject.org), которыйиспользует механизмаппаратнойвиртуализациидлятого, чтобыпоместить всюОСввиртуальнуюсредуивертетьею, каквздумается. Заэто журналeWeek (http://eweek.org) поместилеевпятеркухакеров,
оставившихследв2006 году(Five Hackers who Put a Mark on 2006).
В2009 годусовместносRafal Wojtczuk онараскрыласпособатаки аппаратныхмеханизмовзащитыпроцессоровIntel TXT иIntel System Management Mode (SMM). СегодняейпринадлежиткомпанияInvisible Things Labs (http://invisiblethingslab.com), которая занимаетсяисследованиямивобластибезопасностиоперационныхсистемисистемвиртуализации.
проверкувсегокодаоперационнойсистемы(включаяядроипользовательскоеПО) иматематическоедоказательствотого, чторезультатисполненияпрограммыприлюбыхусловияхбудетполностью соответствоватьожидаемому, авовремяееисполнениянепроизойдет непредвиденныхситуаций. Это— «святойграаль» длясовременных исследователейоперационныхсистем(атакжеспецслужбвсегомира). Однако, еслибратьврасчетнеимовернуюсложностьсегодняшнихОС иколичествооборудования, накоторомонимогутфункционировать (необходимодоказатьправильностьработыПОналюбойаппаратной конфигурации), можносказать, чтонаделеформальноедоказательствобезопасностивсегокодаОСневозможно. Завсевремяэтоудалось сделатьлишьвотношениивесьмаскромныхпоразмерумикроядер исследовательскихОС.
Некоторыеразработчикипредпочитаютболеепростуюпроверку, полагаясьнасвойопытинеоченьсложныеинструменты(Flawfinder,
Безопасноесовместноеиспользованиеобразов дисков
RATS, Skavenger, lint ит.д.). Например, разработчикиOpenBSD добились высокойбезопасностиядрасвоейОСвомногомблагодарятому, что подвергаютсомнениюитщательнойпроверкелюбойпатч, предлагаемыйквключениювОС. РазработчикиCoverity используютвсвоей системе(Coverity Prevent) довольнопростые, нонеслишкомэффективныеметодыопределенияошибоквкоде. Третьииспользуютвторой методобеспечениябезопасностиивместотщательнойпроверкикода (котораятребуетвнушительныхзатратвремениисредств) предпочитают своевременноибыстровыпускатьобновления, решающиенайденныепроблемывстабильностиибезопасности. Сегодняэтапрактика распространенаповсеместноиприменяетсявсеми, начинаяMicrosoft изаканчиваяразработчикамиBSD-систем. Однакопроблемаметода
вегозапоздании. Зачастуюпервымиобагеузнаютнеразработчики ОС, алица, приближенныекимпер… человеку, нашедшемууязвимость. Поэтомуещедовыходабагфиксаполоманнымиоказываютсясотнии тысячимашин.
Чтобы уменьшить ущерб от взлома, применяется изоляция кода. Современные процессоры предлагают механизм аппаратной защиты памяти, позволяя ядру и процессам пользователя работать
вобособленных участках памяти и оберегая их друг от друга. Если взломанным оказывается один из пользовательских процессов, ядро остается в сохранности, а благодаря механизму прав доступа взломщик не получает контроль над всей ОС (если только взломанный сервис не работал с правами root). Это достаточно эффективный метод изоляции, но не стоит полностью полагаться только на него. Многие сервисы просто не могут быть запущены с правами рядовых пользователей, поэтому их взлом повлечет за собой компрометацию всей ОС, а ошибки в самом ядре ОС могут быть использованы для получения прав администратора, даже
втом случае, если сервис работал от пользователя nobody и был изолирован с помощью SELinux или BSD Jail. А если проникновение произойдет через стандартное пользовательское ПО (веб-браузер, к примеру), то под угрозой окажутся все остальные пользовательские приложения и их данные (однако этого можно избежать, используя разные учетные записи для различных целей: покупки совершать под одним пользователем, переписку с друзьями вести под другим и т.п.).
ИЗОЛЯЦИЯБОЛЕЕНИЗКОГОУРОВНЯ
Получается, чтонаибольшуюугрозубезопасностинесетвовсенеПО, работающеевпространствепользователя, аядрооперационнойсистемы. Сложное, огромноепоразмерамиколичествуподсистемидрайверовмонолитноеядросовременнойОС— простокладезьнеоткрытых уязвимостей. Проникновениесиспользованиемуязвимостивядредает взломщикуабсолютнуюсвободу, апростаяошибка— кпадениювсегои
XÀÊÅÐ 07 /138/ 10 |
091 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
Приложения, запущенныевразныхдоменах |
|
|
Архитектураграфическойподсистемы |
|
|
операционныхсистемах. Вэтоймоделиуязвимымместомстановится |
|
неядрооперационнойсистемы, агипервизор, кодкотороговсотни |
вся. ОбэтомвсемнамдолгоиупорноповторялЭндрюТаненбаум, говоря |
разменьшеигораздопроще(азначит, надежнее) кодовойбазыядра |
опреимуществемикроядерныхОСсихразделениемядранапривиле- |
Linux. Механизмыобменаинформациеймеждувиртуальнымимаши- |
гированноемикроядроивынесениемвсехостальныхподсистем(таких |
намитакженамногоболеепросты, чемихмногочисленныеаналогидля |
какдрайвера, ФС, сетевойстекидажеменеджерпамяти) вотдельные |
коммуникациимеждустандартнымипроцессамивядреОС, атехнология |
процессы. Непослушались, производительностьоказаласьдороже |
Intel VT-d, позволяющаявынестикоддрайвероввотдельныевиртуаль- |
(микроядранесколькопритормаживают), исегоднявсепопулярныеОС |
ныемашины, позволяетизолироватьненадежные, сточкизрения |
основанынамонолитномядре. |
безопасности, драйвера. |
Однако возможности современных процессоров позволяют |
ДОМЕНЫПРИЛОЖЕНИЙ |
перенести механизм изоляции еще глубже, который подразуме- |
вает использование виртуальных машин, работающих ниже ядра операционной системы. В этом случае можно использовать любые классические ОС и не беспокоиться о том, что ошибка в ядре будет использована для проникновения в виртуальную машину. Во-пер- вых, ВМ может быть легко возвращена в предыдущее состояние, а во-вторых, никак не повлияет на другие виртуальные машины и их операционные системы. Этот подход уже давно используется провайдерами облачных вычислений. Но может ли тот же самый механизм быть применен для создания безопасной ОС для повседневного использования? Как оказалось — да.
ВСТРЕЧАЙТЕ: QUBES OS
Qubes OS (http://qubes-os.org) — этодистрибутивLinux (есливданномслучаетакоепонятиевообщеприменимо), разрабатываемыйпод руководствомнебезызвестнойДжоанныРутковской(Joanna Rutkowska), польскогоспециалистапобезопасности. ОсновнаяидеяQubes OS в повсеместнойизоляциинауровневиртуальныхмашин, припомощи которыхосуществляетсяотделениепользовательскихприложенийот базовойОС.
Сердцеоперационнойсистемы— гипервизорXen (www.xen.org), используемыйдлязапускавиртуальныхмашин, каждаяизкоторыхработаетподуправлениемядраLinux, наборастандартныхслужб, приложенийуровняпользователя(ихнабориколичествоможетбытьразным) и мультиплексированияресурсовкомпамеждуВМ. Нарисунке«АрхитектураQubes OS» показанабазоваяархитектураОС. Каждоеприложение (илинаборприложений) запускаетсявнутриобособленныхвиртуальных машин, четкоотделенныхдруготдругаспомощьюгипервизора. Для повышениябезопасностивесьсетевойкод(включаясетевыедрайвера, стекTCP/IP, DHCP-клиентит.д.) работаетврамкахотдельной виртуальноймашины, такжекакикоддрайверовнакопителей. Это возможноблагодарятехнологиивиртуализацииустройствIntel VT-d. Так называемаякорневаявиртуальнаямашина(Dom0 втерминологииXen) используетсядлязапускавсехостальныхдрайверов, системыX Window, графическогоменеджераоконинабораадминистративныхутилитдля запускаприложений(виртуальныхмашин).
ЗасчетXen создателямQubes OS удалосьотодвинутьмеханизмизоляцииисполняемогокодагораздониже, чемэтосделановклассических
ВсепрограммыпользователяQubes OS запускаетвнутривыделенных виртуальныхмашин, такназываемыхдоменовприложений. Каждый изнихработаетподуправлениемполноценногодистрибутиваLinux и потомукушаетресурсывесьмаусердно. Чтобысвестикминимумуобщую нагрузкунасистему, Qubes OS используетнесколькотехник:
•Qubes OS используетаппаратнуюподдержкувиртуализациисовременныхпроцессоров(режимXen HVM), аэтозначит, чтопроизводительность ОС, запущеннойврамкахвиртуальноймашины, почтивплотнуюприближаетсякпроизводительностиОС, работающейна«голом» железе.
•Qubes OS опираетсянасемантическоеразграничениеправприложений, аэтозначит, чтовместотого, чтобыпомещатькаждоеприложениев отдельнуювиртуальнуюмашину, ОСгруппируетихврамкахнескольких виртуальныхмашинпоназначениюиуровнюдоступакконфиденциальнойинформации. Например, пользовательможетсоздатьдомен Entertainment ииспользоватьегодляотдыха: запускатьвнемаудиоивидеоплееры, ходитьпоодноклассникамиYouTube. Доменподназванием Shopping можетбытьиспользовандляпокупоквинтернет-магазинах. ДоменBanking — дляинтернет-банкингаиработыспластиковымикар- тами. Смыслвтом, чтодажевтомслучае, еслипользовательподцепит какую-нибудьгадостьчерезодноизприложенийдоменаEntertainment, егоконфиденциальныеданные, хранящиесявдоменахShopping и Banking, останутсявсохранности. Эторазумныйкомпромисс, который позволяетсущественноснизитьпотреблениеоперативнойпамяти(даже современныйкомпнепотянулбыQubes OS, еслибыкаждоеееприложениеработалонаотдельнойВМ).
•Длясохранениядисковогопространствавседоменыприложений используютоднуобщуюфайловуюсистему. Доменхранилища, окотором пойдетречьводноименномразделестатьи, хранитдоступныйтолько длячтенияобразкорневойфайловойсистемыLinux. Наегоосноведля каждогодоменаприложенийсоздаетсяустройствоcopy-on-write (это возможноблагодарямеханизмуDevice Mapper). Доменприложений монтируетфайловыесистемыкорневогообразаиCOW-устройствак корневомукаталогу. Дополнительнодлякаждогодоменаприложений внутридоменахранилищасоздаетсяобраздляхраненияприватных данных(каталоги/home, /usr/local, /var). СодержимоеCOW-устройстваи образаприватныхданныхшифруетсяспомощьюLUKS (The Linux Unified Key Setup), аключпередаетсясоответствующемудоменуприложений
092 |
XÀÊÅÐ 07 /138/ 10 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Архитектурасетевойподсистемы
иадминистративномудомену. БлагодарятакойсхемеудаетсяиспользоватьодинобразкорневойФСдлявсехдоменовприложенийивтоже времяобеспечитьегосохранностьотмодификации. Шифрование позволяетобезопаситьданныедоменовприложенийнатотслучай, если взломщикпроникнетвдоменхранилища.
АДМИНИСТРАТИВНЫЙДОМЕН
Административныйдомен(Xen Dom0) — наиболеепривилегированный компонентQubes OS. Онотвечаетзауправлениедоменамиприложений, аегополномочияфактическиравныполномочиямгипервизора. Поэтойпричинеадминистративныйдоменсохраненмаксимально простым: пользовательнеможетзапускатьприложениявегорамках, авесьнизкоуровневыйкод, участвующийвобменеданныхсвнешней стороной(сетевыедрайвера, стекTCP/IP, DHCP-клиент, брандмауэр, драйверанакопителейит.д.), вынесенвобособленныедомены: сетевой доменидоменхранилища.
ВнутриадминистративногодоменаработаюттолькодвакомпонентаОС: демонXenStore, используемыйдляхраненияинформацииодоменах, и GUI-подсистема, основаннаянаоконнойсистемеX Window иокружении рабочегостолаKDE (нетсмыславыноситьеевотдельныйдомен, потому что, получивдоступкGUI, взломщикавтоматическиполучитдоступко всемдоменамприложений).
Графическаясреда— одноизглавныхдостиженийразработчиков Qubes OS. Онанетолькопредоставляетпользователямудобноеи современноеграфическоеокружениесприменением3D-эффектов, ноисоздаетиллюзиютого, чтовсеприложенияисполняютсяврамках одной(виртуальной) машины. Приложенияимеютсобственныеокна,
иединственное, чтоотличаетграфическийинтерфейсQubes OS от стандартногорабочегостола— эторазноцветныерамки, обрамляющие окна. ТакОСотмечаетвиртуальныемашины, вкоторыхисполняется приложение. Безнихпользовательмогбысделатьошибкуиввести своиконфиденциальныеданныеневтомокне(приложение, которое предназначенодляхожденияпо«одноклассникам», анедляработыс кредитнымикартами, например).
СекретGUI кроетсявспециальномдемонеисобственномX-сервере(с «заглушкой» вместовидеодрайвера), работающимвнутрикаждогодоменаприложений. Когдапроисходитсозданиеновогоокна(илиизменениесодержимогосуществующего), демонполучаетегосодержимоес помощьюстандартнойфункцииXGetImage системыX Window и, используяXen Ring buffer protocol, отправляетегоадминистративномудомену. Получивизображение, приложениеAppViewer, работающеевнутри административногодомена, производитегоотрисовкуспомощью функцииXRenderComposite.
ГрафическийинтерфейсQubes OS нетолькореализуетмодельобособленныхокондляприложений, ноипозволяетпроизводитькопирование
ивставкумеждуокнамиприложений, авбудущемпланируетсяреализацияподдержкиаудио.
АрхитектураQubes OS
СЕТЕВОЙДОМЕН
Сетевойкодоперационнойсистемыпредставляетреальнуюопасность дляеепользователей. Втовремякаквозможныйбагвстекепротоколов TCP/IP, которыйотлаживалсягодами, оченьмаловероятен, опасная ошибкавдрайвередляновойWiFi-карточки— нетакаяужиредкость, какэтоможетпоказатьсянапервыйвзгляд. Черезэксплуатациюдыры
всетевомдрайверевзломщиксможетполучитьполныйконтрольнад ядром, азначитинадвсейоперационнойсистемой.
ПоэтойпричинекодвсехсетевыхдрайвероввQubes OS (Network Domain) вынесенвотдельнуювиртуальнуюмашину, называемуюсетевымдоменом. Вотличиеотдоменовприложений, оннеразделяет общуюкорневуюфайловуюсистемусдругимидоменами, авместо этогоиспользуетпростоеLinux-окружение, состоящееизбрандмауэра, несколькихсетевыхутилитибиблиотек, нужныхдляихработы.
Есть только три вещи, которые сможет сделать взломщик, проникнув
всетевой домен: прослушивать трафик других доменов, попытаться произвести инъекцию собственных пакетов в этот трафик или же просто обрушить домен. В любом случае все это не приведет к катастрофическим последствиям, потому как трафик важных доменов, имеющих доступ к конфиденциальной информации, обычно шифруется, а трафик непривилегированного домена приложений, такого как Entertainment, защищать просто не имеет смысла. В случае же остановки сетевого домена его будет легко вернуть к последнему непротиворечивому состоянию (такая функциональность встроена в
Qubes OS).
Каждыйдоменприложенийполучаетдоступксетевомуоборудованиючерезвиртуальныйсетевойинтерфейс, которыйXen создаетдля каждойвиртуальноймашины. Внутридоменаприложенийонимеет стандартноеимяeth0. Насторонесетевогодоменаэтотвиртуальный интерфейсотображаетсявинтерфейсvifX.Y, гдеX — этоидентификатордомена, аY — номеринтерфейса. ОбычноприсозданиивиртуальныхокруженийнаосновеXen всеэтиинтерфейсыvifX,Y соединяются сфизическиминтерфейсом(например, wlan0) вконфигурации bridge, такчтокаждаяВМимеетдоступнетолькокфизическому интерфейсу, ноиковсемдругимВМ. ДляQubes OS, ставящейво главустолабезопасность, такаясхеманеприемлема. Поэтомуво времясвоегозапускаизапускадоменовприложенийсетевойдомен непростоподключаетвиртуальныеинтерфейсыкфизическому, нои настраиваетбрандмауэртак, чтобыдоменыприложенийнесмогли получитьдоступдругкдругу.
ДОМЕНХРАНИЛИЩА
ВсовременныхОСкод, отвечающийзаработуснакопителями, неменее комплексный, чемсетеваячасть. Онвключаетвсебякоддрайверов устройств, реализациюпротоколовATA иSCSI, USB-стек, коддемонов
XÀÊÅÐ 07 /138/ 10 |
093 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
РабочийстолQubes OS
уровняпользователя. Каждыйизэтихкомпонентовможетдатьсбойили привестиквзлому. ДлязапускавсегоэтогокодаQubes OS использует выделеннуювиртуальнуюмашину, называемуюдоменомхранилища
(Storage Domain).
Врамкахдоменахранилищаработаетвеськоддрайверовустройств храненияивсенеобходимыедляихработыподсистемыядраидемоны уровняпользователя. Такжеонотвечаетзахранениеобразовкорневой файловойсистемыLinux, образовдляхраненияприватныхданных доменовприложенийифайлов, необходимыхдлязагрузкиОС(загрузочныйраздел). Чтобыобезопаситьэтиданныеоттех, ктосмогпроникнутьв доменхранилища, используютсяразличныетехники:
•Образыприватныхданныхдоменовприложенийшифруются. Приэтом ключшифрованияизвестентолькосоответствующемудоменуприложенийиадминистративномудомену.
•Образкорневойфайловойсистемызащищаетсяотмодификациис помощьюцифровойподписи, ключкоторойизвестентолькоадминистративномудомену. Еслиэтотобразбудетмодифицирован, операционнаясистемасообщитобэтомпользователю.
•ЗащитазагрузочныхфайловОСосуществляетсяспомощьюдоверенногомеханизмазагрузки, основанногонатехнологииIntel TXT. Этозначит, что, еслизагрузочныефайлыбудутмодифицированы, операционная системапростонесможетзагрузиться.
Единственное, чтосможетсделатьвзломщик, завладевдоменомхранилища, этовывестиегоизстроя. Однако, какужебылосказановпредыдущемразделе, вышедшийизстроядоменXen достаточнолегковернуть
кпредыдущемусостоянию.
ПРОЦЕССЗАГРУЗКИ
Процесс загрузки Qubes OS можно условно разделить на семь этапов:
1. Первый шаг включает в себя проверку подлинности файлов, необходимых для загрузки гипервизора и административного домена (не были ли они повреждены или модифицированы). Она осуществляется с помощью технологии Intel TXT (Trusted Execution Technology). Если проверка прошла успешно, то в следующих шагах ОС сможет получить доступ к ключам шифрования дисков из аппа-
ратного модуля TPM (Trusted Platform Module).
094
2.Далее происходит загрузка и запуск гипервизора, ядра административного домена и скрипта инициализации initramfs. Это происходит вне зависимости от результата проверки на первом этапе, однако, если проверка дала ложный результат, ОС не сможет произвести загрузку остальных своих частей, так как не получит от TPM ключей шифрования.
3.Скрипт initramfs запрашивает у пользователя пароль, который может быть введен вручную или хранится на карте памяти. Этот шаг необходим для того, чтобы только авторизованный пользователь смог получить доступ к системе. Если подлинность загрузочных файлов былаподтвержденанапервомшаге, ипользовательввел правильныйпароль, системаможетрасшифроватьфайлkeys.gpg, которыйсодержитключи, необходимыедляследующихэтаповзагрузки.
4.Послерасшифровкифайлаkeys.gpg скриптinitramfs можетприступитьксозданиюдоменахранилища.
5.Qubes OS создаетновуювиртуальнуюмашинудлядоменахранилищаиподключаеткнейегокорневуюФС, зашифрованнуюсиспользованиемключа, хранящегосявфайлеkeys.gpg.
6.Доменхранилищамонтируетдругойраздел, которыйиспользуется дляхраненияобразовкорневыхФСиприватныхданныхдоменовприложений. Теперьскриптinitramfs можетсмонтироватьсвоюкорневую файловуюсистему, запуститьсетевойдомен, системуX Window, окружениерабочегостолаитакимобразомзавершитьпроцессзагрузки.
7.Системазагруженаиинициализирована. Теперьпользователь можетзапускатьприложения.
Всеэтиэтапынагляднопоказанынадиаграмме«Процессзагрузки
Qubes OS».
ВЫВОДЫ
Qubes OS оказаласьнамногопроще, чемэтогоможнобылоожидатьот по-настоящемубезопаснойоперационнойсистемы. Посути, онане приноситвмирОСничегокардинальногонового, нопоказывает, что жесткаяизоляцияможетприменятьсянетольковотношениисерверов, длясопровождениякоторыхнуженграмотныйадминистратор, и
исследовательскихОС, такихкакSingularity (http://research.microsoft. com/en-us/projects/singularity/), ноивотношенииОСдля рядовых пользователей. И это действительно большой шаг вперед.z
XÀÊÅÐ 07 /138/ 10