Што рабіць, калі да твайго хосцера прыйшлі siloviki

Што рабіць, калі да твайго хосцера прыйшлі silovikiкдпв — Reuters

Калі вы арандавалі сервер, то поўнага кантролю ў вас над ім няма. Гэта значыць, што ў любы момант да хосцера могуць прыйсці спецыяльна навучаныя людзі і папрасіць прадаставіць любыя вашыя дадзеныя. І хостэр іх аддасць, калі патрабаванне будзе аформлена па законе.

Вы вельмі не хочаце, каб логі вашага вэб-сервера або дадзеныя карыстальнікаў патрапілі камусьці яшчэ. Ідэальную абарону пабудаваць не атрымаецца. Абараніцца ад хосцера, які валодае гіпервізарам і дае вам віртуальную машыну амаль немагчыма. Але, магчыма, атрымаецца крыху знізіць рызыкі. Шыфраванне арандаваных машын не так бескарысна як здаецца на першы погляд. Заадно паглядзім на пагрозы вымання дадзеных з фізічных сервераў.

Мадэль пагроз

Як правіла, хостэр будзе імкнуцца максімальна абараняць інтарэсы кліента настолькі, наколькі гэта магчыма паводле закону. Калі ў лісце ад афіцыйных органаў запыталі толькі логі доступу, хостэр не будзе аддаваць дампы ўсіх вашых віртуальных машын з базамі дадзеных. Не павінен, прынамсі. Калі папросяць цалкам усе дадзеныя, то хостэр скапіюе віртуальныя дыскі з усімі файламі і вы пра гэта не даведаецеся.

Незалежна ад сцэнара развіцця падзей ваша асноўная задача - зрабіць атаку занадта складанай і дарагі. Звычайна ёсць тры асноўныя варыянты пагрозы.

Афіцыйны

Часцей за ўсё ў афіцыйны офіс хосцера дасылаюць папяровы ліст з патрабаваннем падаць патрэбныя дадзеныя паводле адпаведнай пастановы. Калі ўсё аформлена карэктна, хостэр падае патрэбныя логі доступу і іншыя дадзеныя афіцыйным органам. Звычайна проста просяць даслаць патрэбныя дадзеныя.

Зрэдку, калі вельмі трэба, прадстаўнікі праваахоўных органаў прыязджаюць у ЦАД асабіста. Напрыклад, калі ў вас свой выдзелены сервер і дадзеныя адтуль можна забраць толькі фізічна.

Ва ўсіх краінах для атрымання доступу на прыватную тэрыторыю, правядзення ператрусу і іншых мерапрыемстваў патрабуецца наяўнасць доказаў таго, што дадзеныя могуць змяшчаць важную інфармацыю для расследавання злачынства. Акрамя гэтага патрабуецца аформлены па ўсіх рэгламентах ордэр на ператрус. Тут могуць быць нюансы, звязаныя з асаблівасцямі мясцовага заканадаўства. Галоўнае, што трэба разумець - у выпадку правільнага афіцыйнага шляху прадстаўнікі ЦАД не пусцяць нікога далей за прахадны.

Больш за тое, у большасці краін нельга проста так узяць і выдраць працуючае абсталяванне. Напрыклад, у Расіі да канца 2018 года, згодна з артыкулам 183 КПК РФ, частка 3.1, гарантавалася, што пры вытворчасці выемкі, адабранне электронных носьбітаў інфармацыі праводзіцца з удзелам спецыяліста. Па хадайніцтве законнага ўладальніка адбіраемых электронных носьбітаў інфармацыі або ўладальніка інфармацыі, якая на іх змяшчаецца, спецыялістам, якія ўдзельнічаюць у выемцы, у прысутнасці панятых з адбіраемых электронных носьбітаў інфармацыі ажыццяўляецца капіраванне інфармацыі на іншыя электронныя носьбіты інфармацыі.

Потым, нажаль, гэты пункт з артыкула прыбралі.

Таемны і неафіцыйны

Гэта ўжо тэрыторыя дзейнасці спецыяльна навучаных таварышаў з NSA, FBI, MI5 і іншых трохлітарных арганізацый. Часцей за ўсё заканадаўства краін прадугледжвае вельмі шырокія паўнамоцтвы для такіх структур. Больш за тое, амаль заўсёды ёсць заканадаўчая забарона на любое прамое і ўскоснае разгалошванне самога факту супрацоўніцтва з падобнымі сілавымі ведамствамі. У Расіі ёсць аналагічныя прававыя нормы.

У выпадку падобнай пагрозы вашым дадзеным, іх амаль напэўна выцягнуць. Пры гэтым апроч простага вынятку могуць выкарыстоўвацца ўвесь неафіцыйны арсенал бэкдораў, уразлівасцяў нулявога дня, выманне дадзеных з аператыўнай памяці вашай віртуальнай машыны і іншыя радасці. Хостэр пры гэтым будзе абавязаны максімальна дапамагаць спецыялістам сілавых структур.

Нядобрасумленны супрацоўнік

Не ўсе людзі аднолькава добрыя. Хтосьці з адмінаў ЦАД можа вырашыць падзарабіць і прадаць вашыя дадзеныя. Далей развіццё падзей залежыць ад яго паўнамоцтваў і доступаў. Самае прыкрае, што адміністратар з доступам да кансолі віртуалізацыі мае поўны кантроль над вашымі машынамі. Заўсёды можна зняць снапшот разам са ўсім змесцівам аператыўнай памяці і далей марудліва яго вывучаць.

VDS

Дык вось, у вас ёсць віртуальная машына, якую вам выдаў хостэр. Як вы можаце арганізаваць шыфраванне, каб сябе засцерагчы ад небяспекі? Насамрэч, практычна ніяк. Больш за тое, нават чужы dedicated-сервер можа апынуцца ў выніку віртуальнай машынай, у якую пракінуты патрэбныя прылады.

Калі задачай выдаленай сістэмы з'яўляецца не проста захоўванне дадзеных, а выкананне нейкіх вылічэнняў, то адзіным варыянтам працы з недаверанай машынай будзе рэалізацыя гомаморфнага шыфравання. Пры гэтым сістэма будзе праводзіць вылічэнні без магчымасці зразумець, што менавіта яна робіць. Нажаль, накладныя выдаткі для рэалізацыі такога шыфравання настолькі вялікія, што практычнае іх ужыванне на дадзены момант абмежавана вельмі вузкімі задачамі.

Плюс, у момант, калі віртуальная машына запушчана і выконвае нейкія дзеянні, усе зашыфраваныя тамы знаходзяцца ў даступным стане, інакш АС проста не зможа з імі працаваць. Гэта значыць, што маючы доступ да кансолі віртуалізацыі, вы заўсёды можаце зняць снапшот якая працуе машыны і выняць усе ключы з аператыўнай памяці.

Многія вендары рабілі спробы арганізаваць апаратнае шыфраванне RAM для таго, каб нават хостэр не меў доступу да гэтых дадзеных. Напрыклад, тэхналогія Intel Software Guard Extensions, якая арганізоўвае вобласці ў віртуальнай адраснай прасторы, абароненыя ад чытання і запісы звонку гэтай вобласці іншымі працэсамі, у тым ліку ядро ​​аперацыйнай сістэмы. Нажаль, вы не зможаце паўнавартасна даверыцца гэтым тэхналогіям, бо вы будзеце абмежаваныя сваёй віртуальнай машынай. Да таго ж, ужо існуюць гатовыя прыклады. паспяховай атакі на гэтую тэхналогію. І ўсё ж, шыфраванне віртуальных машын не так бессэнсоўна, як можа падацца.

Шыфруем дадзеныя на VDS

Адразу абмоўлюся, што ўсё, што мы робім ніжэй на паўнавартасную абарону не цягне. Гіпервізар дазволіць зрабіць патрэбныя копіі без прыпынку сэрвісу і неўзаметку для вас.

  • Калі па запыце хостэр перадасць "халодную" выяву вашай віртуальнай машыны, тыя вы ў адноснай бяспецы. Гэта найболей часты сцэнар.
  • Калі хостэр аддасць поўны снапшот якая працуе машыны, тое ўсё даволі дрэнна. Усе дадзеныя будуць змантаваны ў сістэме ў адкрытым выглядзе. Акрамя таго, з'явіцца магчымасць парыцца ў RAM у пошуках прыватных ключоў і таму падобных дадзеных.

Па змаўчанні, калі вы разгарнулі АС з ванільнай выявы, у хосцера няма root доступу. Заўсёды можна прымантаваць носьбіт з rescue-выявам і памяняць пароль ад root, зрабіўшы chroot у асяроддзе віртуальнай машыны. Але гэта запатрабуе перазагрузкі, што будзе заўважана. Плюс, усе прымантаваныя зашыфраваныя раздзелы будуць зачыненыя.

Зрэшты, калі разгортванне віртуальнай машыны ідзе не з ванільнай выявы, а з загадзя падрыхтаванага, то хостер часта можа дадаваць прывілеяваную ўліковы запіс для аказання дапамогі ў аварыйнай сітуацыі ў кліента. Напрыклад, каб змяніць забыты пароль ад root.

Нават у выпадку поўнага снапшота не ўсё так сумна. Атакуючы не атрымае зашыфраваныя файлы, калі вы прымантавалі іх з выдаленай файлавай сістэмы іншай машыны. Так, у тэорыі можна раскалупаць дамп аператыўнай памяці і выняць ключы шыфравання адтуль. Але на практыцы гэта вельмі не трывіяльна і вельмі малаверагодна, што працэс зойдзе далей простай перадачы файлаў.

Заказваем машыну

Што рабіць, калі да твайго хосцера прыйшлі siloviki

Для нашых тэставых мэт бярэм простую машыну ў раздзеле для замовы сервераў. Шмат рэсурсаў нам не трэба, таму возьмем варыянт з аплатай за фактычна патрачаныя мегагерцы і трафік. Якраз хопіць пагуляць.

Класічны dm-crypt усёй часткі не ўзляцеў. Дыск па змаўчанні аддаецца адным кавалкам, з root на ўсю частку. Памяншаць частку з ext4 на прымантаваным root - гэта практычна гарантаваная цэгла замест файлавай сістэмы. Я паспрабаваў) Бубен не дапамог.

Ствараем крыптакантэйнер

Таму не будзем шыфраваць частку цалкам, а выкарыстоўваны файлавыя криптоконтейнеры, а менавіта які прайшоў аўдыт і надзейны VeraCrypt. Для нашых мэт гэтага дастаткова. Для пачатку выцягваем і ўсталёўваны пакет з CLI-версіяй з афіцыйнага сайта. Можаце заадно праверыць подпіс.

wget https://launchpad.net/veracrypt/trunk/1.24-update4/+download/veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
dpkg -i veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb

Цяпер мы створым сам кантэйнер дзесьці ў нашым home, каб мантаваць яго ўручную пры перазагрузцы. У інтэрактыўным варыянце задайце памер кантэйнера, пароль і алгарытмы шыфравання. Можаце выбраць патрыятычны шыфр Конік і хэш-функцыю Стрыбог.

veracrypt -t -c ~/my_super_secret

Зараз давайце ўсталюем nginx, прымантаваны кантэйнер і зальем у яго сакрэтную інфармацыю.

mkdir /var/www/html/images
veracrypt ~/my_super_secret /var/www/html/images/
wget https://upload.wikimedia.org/wikipedia/ru/2/24/Lenna.png

Ледзь паправім /var/www/html/index.nginx-debian.html, каб атрымаць патрэбную старонку і можна правяраць.

Падключаемся і правяраем

Што рабіць, калі да твайго хосцера прыйшлі siloviki
Кантэйнер прымантаваны, дадзеныя даступныя і аддаюцца.

Што рабіць, калі да твайго хосцера прыйшлі siloviki
А вось тут машына пасля перазагрузкі. Дадзеныя надзейна ляжаць у ~/my_super_secret.

Калі вельмі трэба і жадаецца хардкора, то можна зашыфраваць усю АС, каб пры перазагрузцы яна патрабавала падлучэнні па ssh і ўводу пароля. Гэтага таксама будзе дастаткова ў сцэнары простага вынятку "халодных дадзеных". Вось інструкцыя з выкарыстаннем dropbear і выдаленым шыфраваннем дыскаў. Хаця ў выпадку VDS гэта складана і залішне.

Голы метал

Не так проста паставіць уласны сервер у датацэнтр. Чужы dedicated можа аказацца віртуальнай машынай, куды пракінуты ўсе прылады. Але нешта цікавае ў плане абароны пачынаецца тады, калі ў вас з'яўляецца магчымасць размясціць у датацэнтры свой давераны фізічны сервер. Тут ужо можна ў поўны рост выкарыстоўваць традыцыйны dm-crypt, VeraCrypt ці любое іншае шыфраванне на ваш выбар.

Трэба разумець, што пры рэалізацыі татальнага шыфравання сервер не зможа самастойна падняцца пасля рэбута. Трэба будзе паднімаць злучэнне да лакальнага інтэрфейсу IP-KVM, IPMI ці іншага падобнага аналогу. Пасля чаго мы ўручную ўводны майстар-ключ. Схема выглядае так сабе з пункту гледжання бесперапыннасці і адмоваўстойлівасці, але асаблівых альтэрнатыў тут няма, калі дадзеныя настолькі каштоўныя.

Што рабіць, калі да твайго хосцера прыйшлі siloviki
NCipher nShield F3 Hardware Security Module

Мякчэйшы варыянт мяркуе, што дадзеныя зашыфраваныя, а ключ знаходзіцца непасрэдна ў самім серверы ў адмысловым HSM (Hardware Security Module). Як правіла гэта вельмі функцыянальныя прылады, якія не толькі забяспечваюць апаратную крыптаграфію, але і маюць механізмы выяўлення спробы фізічнага ўзлому. Калі хтосьці пачне калупаць ваш сервер балгаркай, то HSM з незалежнай крыніцай харчавання скіне ключы, якія захоўвае ў сваёй памяці. Атакаючаму дастанецца зашыфраваны фарш. Пры гэтым перазагрузка можа адбывацца аўтаматычна.

Выдаленне ключоў - нашмат хутчэйшы і гуманны варыянт, чым актывацыя тэрмітнай шашкі ці электрамагнітнага разрадніка. За такія прылады вас будуць вельмі доўга біць суседзі па стойцы ў датацэнтры. Тым больш, што ў выпадку выкарыстання TCG Opal 2 шыфраванні на саміх носьбітах вы практычна не выпрабоўваеце ніякага оверхеда. Усё гэта адбываецца празрыста для АС. Праўда, пры гэтым трэба давяраць умоўнаму Samsung і спадзявацца, што тамака сумленны AES256, а не банальны XOR.

Пры гэтым не трэба забываць, што ўсе лішнія парты павінны быць адключаныя фізічна ці тупа залітыя кампаўндам. Інакш вы даяце магчымасць атакуючым правесці DMA-атакі. Калі ў вас ёсць які тырчыць вонкі PCI Express або Thunderbolt, уключаючы USB c яго падтрымкай – вы ўразлівыя. Атакуючы зможа праз гэтыя парты правесці напад і атрымаць прамы доступ да памяці з ключамі.

У зусім выдасканаленым варыянце атакавалы зможа правесці cold boot напад. Пры гэтым ён проста залівае добрую порцыю вадкага азоту ў ваш сервер, грубіянска здабывае замарожаныя планкі памяці і здымае з іх дамп са ўсімі ключамі. Часта для правядзення нападу досыць звычайнага астуджальнага спрэю і тэмпературы ў раёне -50 градусаў. Ёсць і больш акуратны варыянт. Калі вы не адключылі загрузку з вонкавых прылад, то алгарытм атакавалага будзе яшчэ прасцей:

  1. Замарозіць планкі памяці без выкрыцця корпуса
  2. Падлучыць сваю загрузную флешку
  3. Спецыяльнымі ўтылітамі зняць даныя з аператыўнай памяці, якія перажылі перазагрузку, дзякуючы замарозцы.

Падзяляй і ўладар

Ок, у нас ёсць толькі віртуалкі, але хочацца хоць неяк зменшыць рызыкі ўцечкі дадзеных.
Можна ў прынцыпе паспрабаваць перагледзець архітэктуру і разнесці захоўванне дадзеных і апрацоўку па розных юрысдыкцыя. Напрыклад, фронтэнд з ключамі шыфравання ў хостэра ў Чэхіі, а бэкэнд з зашыфраванымі дадзенымі дзе-небудзь у Расіі. У выпадку стандартнай спробы канфіскацыі вельмі малаверагодна, што сілавыя структуры змогуць правесці гэта адначасова ў розных юрысдыкцыях. Плюс гэта часткова страхуе нас ад сцэнара са зняццем снапшота.

Ну ці можна разгледзець зусім чысты варыянт - End-to-End шыфраванне. Вядома гэта выходзіць за межы ТЗ і не мае на ўвазе выкананне вылічэнняў на баку выдаленай машыны. Тым не менш, гэта суцэль прымальны варыянт, калі гаворка ідзе аб захоўванні і сінхранізацыі дадзеных. Напрыклад, гэта вельмі зручна рэалізавана ў тым жа Nextcloud. Пры гэтым сінхранізацыя, версіяванне і іншыя плюшкі сервернай часткі нікуды не падзенуцца.

Разам

Не бывае ідэальна абароненых сістэм. Задача складаецца толькі ў тым, каб зрабіць напад даражэй патэнцыйнай выгады.

Некаторае зніжэнне рызык доступу да дадзеных на віртуальнай можна атрымаць, камбінуючы шыфраванне і паасобнае захоўванне ў розных хосцераў.

Больш ці менш надзейны варыянт - выкарыстанне свайго жалезнага сервера.

А хосцеру ўсё роўна давядзецца так ці інакш давяраць. На гэтым трымаецца ўся індустрыя.

Што рабіць, калі да твайго хосцера прыйшлі siloviki

Што рабіць, калі да твайго хосцера прыйшлі siloviki

Крыніца: habr.com

Дадаць каментар