кдпв — Reuters
Ако сте наели сървър, нямате пълен контрол над него. Това означава, че по всяко време в хостинг компанията могат да дойдат специално обучени лица и да поискат да предоставят вашите данни. И хостингът ще ги предостави, ако искането е оформено законно.
Не искате да попада логовете на вашия уеб-сървър или данните на потребителите при други. Не е възможно да се създаде идеална защита. Защитата от хостинг компания, която притежава хипервизор и ви предоставя виртуална машина, е почти невъзможна. Но е възможно да се намалят рисковете. Шифроването на наетите машини не е толкова безполезно, колкото изглежда на пръв поглед. Освен това ще разгледаме заплахите от извличане на данни от физически сървъри.
Модел на заплахите
Обикновено хостингът ще се опита да защити интересите на клиента колкото е възможно по закон. Ако в писмото от официални органи се поиска само логовете за достъп, хостингът няма да предостави дъмпове на всички ваши виртуални машини с бази данни. Най-малкото не трябва. Ако поискат напълно всички данни, хостингът ще копира виртуалните дискове с всички файлове, а вие няма да разберете за това.
Независимо от сценария на развитие на събитията, основната ви задача е да направите атаката твърде сложна и скъпа. Обикновено има три основни варианта на заплахите.
Официален
Най-често в официалния офис на хостинг компанията изпращат писмо с искане да предоставят нужните данни съгласно съответното постановление. Ако всичко е оформено коректно, хостингът предоставя нужните логове за достъп и други данни на официалните органи. Обикновено просто искат да изпратят нужните данни.
От време на време, ако е наложително, представители на правоохранителните органи идват лично в ЦОД. Например, когато имате собствен видим сървър и данните оттам могат да се вземат само физически.
Във всички страни за получаване на достъп до частна територия, провеждане на обиск и други мероприятия е необходимо наличие на доказателства, че данните могат да съдържат важна информация за разследване на престъпление. Освен това е необходим издаден в съответствие с всички регламенти заповед за обиск. Тук могат да възникнат особености, свързани с местното законодателство. Най-важното, което трябва да се разбира – в случая на правилния официален път, представителите на ЦОДа няма да допуснат никого да премине отвъд пропускателния пункт.
Освен това, в повечето страни не е разрешено просто да вземеш работещо оборудване. Например, в Русия до края на 2018 година, съгласно член 183 от УПК РФ, част 3.1, беше гарантирано, че при провеждане на изземване, изземането на електронни носители на информация се извършва с участието на специалист. По искане на законния собственик на изземаните електронни носители на информация или на притежателя на информацията, съдържаща се на тях, от специалиста, участвал в изземването, в присъствието на свидетели, от изземаните електронни носители на информация се извършва копиране на информацията на други електронни носители на информация.
След това, за съжаление, този пункт от статията бе премахнат.
Тайна и неофициална
Това вече е територия на дейността на специално обучени служители от NSA, FBI, MI5 и други подобни трибуквени организации. По-често законодателството на страните предвижда изключително широки правомощия за подобни структури. Освен това, почти винаги има законова забрана за всяко пряко и косвено разкриване на самия факт на сътрудничество с подобни силови ведомства. В Русия съществуват подобни .
В случай на подобна заплаха за вашите данни, почти сигурно ще бъдат изтеглени. При това, освен просто изземване, може да се използва целият неофициален арсенал от бекдории, уязвимости с нулев ден, извличане на данни от оперативната памет на вашата виртуална машина и други радости. Хостърът при това ще бъде задължен да оказва максимална помощ на специалистите от силовите структури.
Недобросъвестен служител
Не всички хора са еднакво добри. Някой от администраторите на ЦОД-а може да реши да подпечата допълнителен доход и да продаде вашите данни. По-нататъшното развитие на събитията зависи от неговите правомощия и достъпа. Най-неприятното е, че администраторят с достъп до конзолата за виртуализация има пълен контрол над вашите машини. Винаги можете да направите моментна снимка заедно с всичкото съдържание на оперативната памет и след това спокойно да я изучавате.
VDS
И така, вие разполагате с виртуална машина, която ви е предоставил хостера. Как можете да организирате шифроване, за да се предпазите? Всъщност, почти никак. Освен това, дори чуждият dedicated-сървър може да се окаже в крайна сметка виртуална машина, в която са пробутани нужните устройства.
Ако задачата на отдалечената система не е просто съхранение на данни, а извършване на определени изчисления, единствената възможност за работа с недоверена машина ще бъде реализиране на . При това, системата ще провежда изчисления без възможност да разбере какво точно прави. За съжаление, разходите за реализация на такова шифроване са толкова високи, че практическото им приложение в момента е ограничено до много тесни задачи.
Освен това, в момента, когато виртуалната машина е активирана и извършва определени действия, всички шифровани томове са в достъпно състояние, иначе ОС просто не може да работи с тях. Това означава, че имайки достъп до конзолата за виртуализация, можете винаги да направите моментна снимка на работещата машина и да извлечете всички ключове от оперативната памет.
Много доставчици са опитвали да организират хардуерно шифроване на RAM, за да може дори хостера да няма достъп до тези данни. Например, технологията Intel Software Guard Extensions, която създава области в виртуалното адресно пространство, защитени от четене и запис извън тези области от други процеси, включително ядрото на операционната система. За съжаление, няма да можете напълно да се доверите на тези технологии, тъй като ще бъдете ограничени до вашата виртуална машина. Освен това, вече съществуват готови примери на тази технология. И все пак, шифроването на виртуални машини не е толкова безсмислено, колкото може да изглежда.
Шифруваме данни на VDS
Веднага ще поясня, че всичко, което правим по-долу, не е пълна защита. Хипервизорът ще позволи да направите необходимите копия без да спирате услугата и незабелязано за вас.
- Ако хостът предостави "студен" образ на вашата виртуална машина по запитване, вие сте относително в безопасност. Това е най-често срещаният сценарий.
- Ако хостът предостави пълен моментен снимка на работещата машина, ситуацията е доста лоша. Всичките данни ще бъдат монтирани в системата в отворен вид. Освен това ще се появи възможност да се рови в RAM в търсене на лични ключове и подобни данни.
По подразбиране, ако разгръщате ОС от базов образ, хостът няма root достъп. Винаги може да се монтира носител с rescue-образ и да се смени паролата за root, като се направи chroot в средата на виртуалната машина. Но това ще изисква рестартиране, което ще бъде забелязано. Освен това, всички монтирани криптирани дялове ще бъдат затворени.
Все пак, ако разгръщането на виртуалната машина не е от базов образ, а от предварително подготвен, хостът често може да добави привилегирована учетна запис за помощ в аварийна ситуация на клиента. Например, за да промените забравената парола за root.
Дори в случаите на пълен моментен снимка не всичко е толкова лошо. Нападателят няма да получи криптирани файлове, ако сте ги монтирали от отдалечена файлова система на друга машина. Да, теоретично е възможно да се разкопае дампа на оперативната памет и да се извлече ключовете за криптиране оттам. Но на практика това е много не тривиално и е малко вероятно процесът да отиде по-далеч от простото предаване на файлове.
Поръчваме машина

За нашите тестови цели взимаме проста машина в . Не ни трябват много ресурси, затова ще вземем вариант с плащане за фактически изразходвани мегахерци и трафик. Точно ще стигне да си поиграем.
Класическият dm-crypt на целия дял не успя. Дискът по подразбиране се предоставя в един блок, с root на целия дял. Намаляването на дяла с ext4 на монтирания root почти гарантирано ще доведе до brick вместо файлова система. Опитах) Бубенът не помогна.
Създаваме криптоконтейнер
Затова няма да криптираме целия раздел, а ще използваме файлови криптоконтейнери, а именно проверен и надежден 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, за да получим нужната страница и да можем да проверим.
Свързваме се и проверяваме

Контейнерът е монтиран, данните са налични и се предоставят.

А ето как изглежда машината след рестартиране. Данните са надеждно съхранени в ~/my_super_secret.
Ако много държите и искате хардкор, можете да криптирате цялата ОС, така че при рестартиране да изисква свързване по ssh и въвеждане на паролата. Това също ще бъде достатъчно в сценарий на просто изземване на "студени данни". Ето и отдалечено криптиране на дискове. Въпреки че в случая с VDS това е сложно и излишно.
Bare metal
Не е лесно да поставите собствен сървър в дата център. Чуждият dedicated може да се окаже виртуална машина, към която са свързани всички устройства. Но нещо интересно в областта на защитата започва, когато имате възможност да разположите доверен физически сървър в дата центъра. Тук вече можете да използвате в пълен размер традиционния dm-crypt, VeraCrypt или всяко друго криптиране по ваш избор.
Трябва да се разбере, че при реализация на тотално криптиране сървърът няма да може самостоятелно да се стартира след рестарт. Ще е необходимо да се свържете с локалния интерфейс IP-KVM, IPMI или друг подобен аналог. След това ръчно въвеждаме мастер-ключа. Схемата изглежда недостатъчно надеждна от гледна точка на непрекъснатост и отказоустойчивост, но нямаме особени алтернативи, ако данните са толкова ценни.

NCipher nShield F3 Hardware Security Module
По-мек вариант предполагае, че данните са криптирани, а ключът се намира директно в самия сървър в специален HSM (Hardware Security Module). Обикновено това са много функционални устройства, които не само осигуряват хардуерна криптография, но и имат механизми за откриване на опити за физическо разбиване. Ако някой започне да разбива вашия сървър с ъглошлайф, HSM с независим източник на захранване ще изтрие ключовете, които съхранява в паметта си. Атакуващият ще получи криптирана маса. При това рестартирането може да се случи автоматично.
Премахването на ключовете е много по-бърз и хуманен вариант, отколкото активирането на термитна шашка или електромагнитен разрядник. За такива устройства съседите ви в датацентъра ще ви бият много дълго. При шифриране на самите носители практически не изпитвате никакво забавяне. Всичко това се случва прозрачно за операционната система. Въпреки това, трябва да се доверите на условния Samsung и да се надявате, че има честен AES256, а не обикновен XOR.
Не трябва да забравяте, че всички излишни портове трябва да бъдат физически изключени или запълнени с компаунд. В противен случай давате възможност на атакуващите да проведат . Ако имате открит PCI Express или Thunderbolt, включително USB с неговата поддръжка — вие сте уязвими. Атакуващият може да проведе атака през тези портове и да получи директен достъп до паметта с ключовете.

В съвсем изтънчен вариант, атакуващият може да проведе cold boot атака. При това той просто залива добра доза течен азот в сървъра ви, грубо извлича замразените платки памет и взима дъмп с всички ключове от тях. Често за провеждане на атаката е достатъчен обикновен охлаждащ спрей и температура около -50 градуса. Има и по-деликатен вариант. Ако не сте деактивирали зареждането от външни устройства, алгоритъмът на атакуващия ще бъде дори по-прост:
- Замразете платките памет без отключване на корпуса
- Свържете своята зареждаща флашка
- Специални утилити за извличане на данни от оперативната памет, които са преживели перезареждане, благодарение на замразяването.
Разделяй и владей
Ок, имаме само виртуалки, но искаме да намалим рисковете от изтичане на данни по някакъв начин.
В принципе, може да се опитате да преразгледате архитектурата и да разделите съхранението на данни и обработката по различни юрисдикции. Например, фронтенд с ключове за криптиране при хостъра в Чехия, а бекенд с криптирани данни някъде в Русия. В случай на стандартна опит за изземване, е крайно малко вероятно, че силовите структури ще успеят да проведат това едновременно в различни юрисдикции. Освен това, това частично ни предпазва от сценарий със свързване на снепшот.
Или можете да разгледате напълно чист вариант — End-to-End криптиране. Разбира се, това излиза извън обхвата на ТЗ и не предполага извършване на изчисления на страната на отдалечената машина. Въпреки това, това е напълно приемлив вариант, когато става въпрос за съхраняване и синхронизиране на данни. Например, това е много удобно реализирано в същия Nextcloud. Като в същото време, синхронизацията, версионирането и други плюсове от сървърната част няма да изчезнат.
Итого
Не съществуват идеално защитени системи. Задачата е само да направим атаката по-скъпа от потенциалната полза.
Някакво намаляване на рисковете от достъп до данните на виртуална машина може да се постигне, комбинирайки криптиране и разделно съхранение при различни хостъри.
По-надежден вариант е използването на собствен сървър.
А хостера все пак ще трябва и така или иначе да му се доверите. На това се основава цялата индустрия.
Източник: habr.com
