Блокчейн как базис для безопасной ИТ-инфраструктуры
Олег Ховайко, 07/10/21
Появление и распространение биткойна, электронной децентрализованной платежной системы, привлекло широкое внимание к блокчейну (цепочка блоков, распределенный реестр) – структуре данных, которая является технологической платформой как самого биткойна, так и прочих криптовалют. На сегодняшний день большинство действий вокруг блокчейнов носят популистский характер, далекий от их профессионального использования, но у специалистов систем безопасности есть много поводов обратить внимание на этот развивающийся сегмент цифровой инженерии.
Автор: Олег Ховайко, CTO Emercoin
Уникальные свойства блокчейна, например достоверная копия содержимого на каждом узле сети, подтвержденная консенсусом независимых участников, создающих новые блоки публичной цепочки (майнеров и минтеров), открывают возможность создания на его основе всемирной децентрализованной сети доверия, которая станет базовой инфраструктурной платформой для подсистем, обслуживающих сетевую инфраструктуру. Такие подсистемы не имеют единой точки отказа (SPOF), а также обладают высочайшей скоростью обработки запросов, надежностью и анонимностью, ибо каждый узел пиринговой сети имеет локальную достоверную копию всей информации, когда-либо внесенной в блокчейн, и все поисковые запросы обрабатываются в локальной базе данных, не покидая локальный компьютер, или в некоторых случаях – доверенную локальную сеть.
Одним из пионеров "блокчейна для инженеров" стал Emer [1] – открытая публичная платоформа для таких подсистем. Платформа бесплатная и доступна, как продукт с открытым исходным кодом (Open Source), на github [2]. Платформа Emer построена на базе ядра Bitcoin, куда были добавлены как собственные многочисленные наработки, так и компоненты из других криптовалютных проектов – Namecoin, Unobtanium, Peercoin.
И пока защитники криптовалют вовсю заняты токенами и трейдингом, а также сбором денег под обещания разной степени выполнимости, практически рядом разрабатываются и вводятся в эксплуатацию подчеркнуто немонетарные сервисы на блокчейне, предназначенные для решения задач реального бизнеса – ваших задач.
В чем отличие Emer от Bitcoin
Ключевым отличием Emer от Bitcoin является встроенная в него подсистема NVS – Name-Value Storage. Ее можно рассматривать как одноранговую файловую систему, где каждый файл имеет владельца, и только владелец может изменять содержимое или передавать файл другому, остальным участникам доступен только режим чтения. Расчетные единицы Emercoin являются лицензионными единицами сети, которые надо "сжечь", чтобы внести файл в блокчейн или создать новую версию. Это защищает блокчейн от злонамеренных участников, которые в противном случае могли бы "раздувать" его неограниченно, безнаказанно внося бесполезные гигабайты. В настоящее время цена внесения записей составляет меньше копейки (в прямом смысле слова), что делает платформу по карману любому добросовестному пользователю.
На основе технологии блокчейн были разработаны три децентрализованные подсистемы для поддержки надежной и защищенной ИТ-инфраструктуры, которые в данный момент находятся в промышленной эксплуатации. Рассмотрим их далее.
emerDNS
Инфраструктура DNS современного Интернета не отличается высокой надежностью, и уязвимости в ней обнаруживаются регулярно. Вбейте в поисковик "уязвимости DNS", чтобы увидеть постоянно обновляющийся список. И, хотя каждая уязвимость уникальна по-своему, все они имеют общее начало – управление доменным именем и его разрешение при посещении сайтов требуют делегирования доверия внешним сервисам. Структура доверия, на которой зиждется современный классический DNS, не позволяет сделать эту подсистему надежной и защищенной в высокой степени.
По-настоящему надежная подсистема DNS должна быть построена без делегирования доверия, то есть на основе принципа "верю только себе". Таковой является emerDNS [3]. Запись о домене создается и управляется в локальном кошельке-узле сети, и именно вы являетесь владельцем доменной записи, не делегируя ее внешнему регистратору. А так как запись вносится в публичный блокчейн (подсистему Emer NVS), все остальные пользователи сети могут ее использовать для доступа к вашему сайту. Причем эти пользователи не отправляют запросы во внешние сервисы, а разрешают доменное имя, посылая запрос в локальный узел сети Emer. Это обеспечивает высочайшую скорость обработки запроса и анонимность (DNS-запросы не покидают компьютер пользователя), а также делают невозможной атаку на инфраструктуру DNS, приводящую к сбоям и отказам в обслуживании.
За время существования, с 2014 г., emerDNS продемонстрировал высокую стабильность и надежность, вследствие чего его охотно используют торренттрекеры для неблокируемых зеркал своих сайтов, а также ряд других сайтов [4], которым требуется надежная работа и защита от блокировок.
Для вашей компании emerDNS может быть полезен как для зеркалирования основного сайта, так и для разворачивания ведомственных сетей, где требуется высочайшая отказоустойчивость и производительность.
Так как emerDNS не поддерживается сетью ICANN, штатное разрешение запросов к соответствующим доменам невозможно. Для доступов к доменным зонам emerDNS требуется установить собственный DNS Resolver, являющийся "точкой сопряжения" между классическим DNS от ICANN и emerDNS. Но так как любой узел сети Emer может выступать в качестве DNS-сервера стандарта rfc1035, то настроить точку сопряжения несложно с помощью любой программы кеширования DNS [5].
emerSSL
Еще одна острая проблема современного Интернета – безопасная аутентификация. Системы на базе паролей весьма уязвимы, и мы постоянно наблюдаем базы паролей, украденные у сайтов-разгильдяев, а также взлом учетных записей методом подбора паролей. Попытки заставить людей придумывать сложные пароли приводят к тому, что приходится такие пароли записывать на бумагу. Этот способ хранения паролей высмеивали [7] еще в 90-е, но он в настоящее время оказывается одним из наилучших. И не потому, что он стал лучше, а потому, что альтернативные способы становятся хуже. И менеджеры паролей тоже не особо помогают, так как в них постоянно обнаруживают уязвимости [6]. Системы 2FA в текущем исполнении не повышают, а драматически снижают безопасность, так как делегируют безопасность учетной записи слабо защищенной недоверенной телефонной сети. В этом случае злоумышленнику достаточно методами социальной инженерии или атакой на SS [7] перехватить SMS, и он может "восстановить забытый пароль", тем самым похитив доступ к учетной записи жертвы. И снова видим тот же корень проблем – делегирование доверия во внешнюю сеть или менеджерам паролей.
EmerSSL [8] также построен на принципе "верю только себе", то есть не делегирует доверие сторонним агентам. Здесь пользователь локально генерирует SSL-сертификат и размещает его хеш в NVS, откуда его могут извлечь сайты при аутентификации (снова отправив запросу в свою локальную копию). Так как, в отличие от пароля, SSL-сертификат не является секретом, его хищение бесполезно, а секретный ключ от сертификата никогда не покидает устройство пользователя. В качестве уникального "имени файла" NVS для сертификата используется его Serial. Уникальность гарантируется консенсусом блокчейна, и "файл" с соответствующим Serial может быть только один на всю сеть, а права на изменения принадлежат только хозяину "файла". В случае компрометации SSL-сертификата пользователь также может быстро сгенерировать новый на замену и в локальном кошельке обновить хеш сертификата в NVS, при этом вся сеть начнет принимать новый сертификат вместо старого. Таким образом, вместо горы паролей пользователь получает универсальный сертификат-вездеход, которым он может авторизоваться на любом числе серверов сети без снижения безопасности.
Для компании emerSSL является прекрасной альтернативой SSO, где вместо SSO выступает публичный блокчейн Emer. Очень упрощается и привлечение новых пользователей. Ведь не секрет, что создание новой учетной записи на вашем сайте – это пусть и небольшие, но трудозатраты пользователя (придумать пароль, подтвердить e-mail, телефон), колеблющиеся потенциальные пользователи просто уходят. А если учетка создается по сертификату, нажатием одной кнопки – пользователи более охотно будут регистрироваться, и впоследствии им намного удобнее будет авторизоваться нажатием одной кнопки на сайте, когда всю работу сделает emerSSL.
Более того, если emerSSL сравнивать с SSO, то можно заметить, что SSO – это система уровня корпорации, и именно корпорация несет расходы на обслуживание, тогда как emerSSL – децентрализованный аналог SSO всемирного масштаба и отдельного обслуживания этой системы не требуется. Таким образом, кроме повышения безопасности и удобства, снижается цена обслуживания ИТ-инфраструктуры компании.
emerSSH
Третья проблема безопасного управления сетями – поддержка списков контроля доступа (ACL) в актуальном состоянии. В сети большой корпорации нередки случаи, когда доступ к учетной записи блокировался по ошибке или же после увольнения человека оставался открытым, чем пользовался расстроенный бывший работник, совершая неблаговидные действия в отношении "обидевшего" его работодателя.
В настоящее время компании применяют централизованные системы управления доступом, такие как LDAP или Puppet. Эти системы масштаба предприятия хорошо работают на своем уровне (уровне предприятия), но уже плохо применимы в современном мире, где какие-то элементы ИТ-инфраструктуры делегируются внешним компаниям (облачные хранилища, бухгалтерия, аудит и т.п.). Проблема таких систем – присутствие в них "админа в режиме бога", то есть главного администратора, который управляет списками контроля доступа. Предполагается, что этот админ полностью лоялен компании и никогда не будет вредить, ошибаться или банально задерживать распоряжения администрации по обновлению ACL. Кроме того, системы уровня предприятия не могут использовать другие ACL из сторонних систем подобного назначения. Таким образом, весьма сложно обслуживать ситуацию, когда вы разрешаете доступ к некоему ресурсу на основе ACL, управляемому внешней компанией. А ведь в современном мире, когда на аутсорс отдается все больше и больше ИТ-деятельности, такая ситуация становится типичной. Например, если поддержка сайта передается сторонней компании, то было бы неплохо, чтобы именно та сторонняя компания управляла списком своих сотрудников, входящих в группу, имеющую к вам доступ.
Система emerSSH [9] как раз и решает эту проблему. EmerSSH представляет собою децентрализованную систему ACL, где все списки хранятся в NVS и могут ссылаться друг на друга. Так как система NVS всемирная, то вы в свой список можете включить ссылку на любой другой ACL, который находится в NVS.
Применение такой системы приводит к "локализации ответственности". Иными словами, участники-пользователи вносят в NVS свои актуальные публичные ключи ssh (или другие якоря аутентификации, например Serial от emerSSL). При необходимости участник может сгенерировать новый ключ или сертификат, а также обновить свою NVS-запись в emerSSH. Его начальник поддерживает ACL-запись, которая перечисляет участников данной группы. И наконец, внешняя организация может включить ACL этой группы в свой ACL для доступа к своему сайту. В случае компрометации ключа участника он просто генерирует новый ключ, публикует его в NVS и уже по новому ключу получает доступ туда, куда имел и ранее, причем ему не надо уведомлять своего начальника или админа компании-клиента. Все обновления происходят автоматически. При этом каждый участник управляет своим локальным ключом или ACL, а блокчейн объединяет это в инфраструктуру публичных ключей (PKI) всемирного масштаба.
- https://emercoin.com
- https://github.com/emercoin/
- https://habr.com/ru/company/emercoin/blog/334304/
- http://sites.emercoin.com/
- https://emercoin.com/en/documentation/blockchain-services/emerdns/emerdns-introduction/
- https://xakep.ru/2014/09/08/password-manager-pentest/
- https://ru.wikipedia.org/wiki/Хакеры_(фильм)
- https://habr.com/ru/post/257605/
- https://cryptor.net/kriptovalyuty/pod-kapotom-emercoin-chast-3-emcssh-infrastruktura-publichnyh-klyuchey-vsemirnogo