Zero touch что это
Android zero‑touch enrollment
Seamless setup and deployment of
corporate-owned devices
Fast, easy and secure
Zero‑touch enrollment enables large scale Android deployments across multiple device makers so organizations can mobilize their employees with ease.
Simplified device provisioning
Zero-touch enrollment allows IT to deploy corporate-owned devices in bulk without having to manually setup each device. Users just open the box and start using the device with management, apps and configurations all set.
Enforced management
IT can enforce management out of the box with the managing app automatically installed on setup. Customers can use their preferred enterprise mobility management provider to set policies and manage apps on the device.
Set‑up flow
Get started with just a few steps.
Purchase devices for deployment from a zero‑touch carrier or reseller.
In the zero‑touch online platform, assign your purchased devices to users.
Configure your enterprise mobility management (EMM) policies to meet your organization’s needs.
Device will automatically enroll with EMM and apply policies when powered on.
Автоматизация управления коммутаторами
Мы уже много писали о возможностях, которые предоставляют современные коммутаторы с загрузочной средой ONIE и открытые ОС на базе Linux для них. Построение L3-фабрик, оверлейные виртуальные сети L2, — все это уже было. Но осталась нераскрытой одна важная тема, о которой много упоминалось — возможности по автоматизации.
Командная строка — это, конечно, здорово и вообще классика, но в 2014 году хочется уже большего. Особенно если работать приходится с десятками и сотнями устройств в одной сети.
Так что же мы получаем при использовании коммутатора c ОС на основе Linux, такой как Cumulus?
Автоматизация начинается уже на этапе подключения коммутатора в сетевую среду. И за это стоит благодарить установочную среду ONIE, пришедшую на смену PXE. При первой загрузке при помощи опции 239 DHCP запрашивается URL-адрес, с которого будет получаться образ системы. А вместе с ним запрашивается скрипт, который будет выполнен при установке. В список поддерживаемых языков входят Bash (Shell), Perl, Python, Ruby. Типичный пример выглядит примерно так:
Zero Touch Provisioning
Такой вариант способен сильно облегчить процесс разворачивания или расширения сети, в которой есть большое количество однотипных настроек. Впрочем, залить набор необходимого софта «по умолчанию» — уже весьма ценно, это знает любой человек, которому приходилось собирать компьютеры или сервера в количестве, отличном от «один для личного использования».
Но вот мы прорвались за этап установки, и тут уже начинается все самое интересное, что есть в мире Linux.
Первый пакет считается более распространенным и удобным, но есть мнение, что у второго лучше обстоят дела с масштабируемостью. Мы со своей стороны лишь радуемся возможности выбора и предлагаем вам вот такую статистику по использованию различных вариантов на «девятках»:
Маршрутизация на узлах обмена траффиком
Про VMware NSX мы писали в нашем предыдущем материале, а OpenStack — настолько объемная тема, что требует даже не отдельной статьи, а целого цикла статей, так что эту часть мы, пожалуй, оставим без дополнительных комментариев.
Как всегда бывает в подобных случаях, холивары о том, какая из систем удобнее, не прекращаются никогда. Поэтому лишь с поддержкой всех трех систем в ОС коммутатора можно говорить о том, что он обладает необходимой гибкостью, чтобы быть успешно встроенным в большинство имеющихся окружений.
Впрочем, даже если вы используете сторонние или самописные системы управления, никто не мешает вам адаптировать их клиента под использование в рамках открытой ОС коммутатора.
И еще несколько слов о популярных пакетах управления сетевыми интерфейсами. Наверняка многим известен такой пакет Debian, как ifupdown. В Cumulus используется его обновленная версия ifupdown2:
По большому счету, это все тот же пакет, с сохраненной обратной совместимостью, но переписанный на python и обладающий расширенной функциональностью. В новой версии был значительно упрощен синтаксис команд. Но, пожалуй, самой полезной особенностью является возможность внесения инкрементальных изменений в конфигурацию сетевых интерфейсов, без рестарта интерфейсов.
Мониторинг
Понимание происходящих в любой момент времени процессов, стремление всегда держать руку на пульсе происходящего — характерная черта любого хорошего администратора, будь он системный или сетевой.
Prescriptive Topology Manager (PTM)
Еще одной полезной функцией на стыке мониторинга и автоматизации является PTM. Этот пакет позволяет при помощи LLDP опроса ближайших соседей и BFD (Bidirectional Forwarding Detection) найти сбои в существующих путях, построить реально существующую топологию сети и сравнить ее с заранее заданной файлом topology.dot. Последний представляет собой файл формата graphviz-DOT — сравнительно распространенный способ текстового описания графа соединений, достаточно удобный как для работы с ним в качестве текста, так и для преобразования в графическое отображение топологии.
Prescriptive Topology Manager
В итоге мы получаем удобный способ проверки правильности подсоединения кабелей, что весьма актуально на больших инсталляциях. Помимо этого мы получаем еще один механизм мониторинга состояния сетевых соединений, причем легко скриптующийся и уже интегрированный с quagga.
Ну вот как-то так выглядит ситуация с автоматизацией в современных сетевых открытых ОС.
А чем пользуетесь вы?
Zero-click атаки: Когда ваша безопасность не зависит от вас
Zero-click или zero-touch – это удаленная атака на устройство, не требующая от пользователя никаких дополнительных действий. Она может быть проведена по воздуху (OTA, over-the-air): достаточно, чтобы жертва была в радиусе действия нужного беспроводного канала связи. О таких атаках мы и поговорим в этой статье.
Вместо введения
Оригинал.
0-click атаки не требуют никаких действий от пользователя. 1-click атаки требуют совершить какое-то действие. По большому счету, почти все атаки на серверные приложения можно отнести к 0-click, но наша статья не о серверном ПО. Появление 1-click и 0-click атак связано с массовым распространением мобильных устройств, роста покрытия сети и количества Wi-Fi точек. Ввиду активного интернет-серфинга, мобильные устройства хранят много личной и конфиденциальной информации. Конечной целью атакующего являются как раз эти данные пользователя, которые теперь хранятся не на сервере или домашнем компьютере, а прямо у него в кармане.
За последние 10 лет вся наша информация и общение перебрались с десктопов в мощные мобильники с кучей умного железа. Таким образом, пространство для атак (attack surface) сильно увеличилось.
Раньше считалось, что фаервол обеспечивает относительную безопасность пользователя. Но сейчас ясно, что все находятся под угрозой взлома, а главное – атака может быть незаметной.
Как это возможно?
При этом жертва должна сделать ровно 0 кликов, касаний, или переходов! Такую атаку трудно предотвратить, и невозможно обвинить жертву в том, что она перешла по фишинговой ссылке из сообщения или открыла какой-то документ. В некоторых источниках эту же атаку называют “fully remote” или “interaction-less” – единого термина нет.
«Удобство» такой атаки в том, что злоумышленнику не надо проводить сессии социальной инженерии, чтобы убедить пользователя щелкнуть по ссылке или открыть документ. Все происходит незаметно, и пользователь может и вовсе не понять, что произошла атака. Если идти по классическому пути через атаку на пользовательское приложение, то там почти все уже облеплено различными security mitigations. А если идти со стороны разных SoC, то велика вероятность встретить систему без security mitigations, что, конечно же, упрощает работу атакующего.
Что за специально сформированные данные?
Это может быть все, что угодно:
Все перечисленное может вызвать срабатывание уязвимости либо в прошивке чипа, либо в коде программы, который отвечает за его обработку. К большому сожалению, даже код, отвечающий за раннюю стадию обработки данных, содержит уязвимости.
В качестве бонуса рекомендуем статью от Natalie Silvanovich из Google Project Zero «The Fully Remote Attack Surface of the iPhone».
Есть ли реальные примеры?
Интерес к подобным атакам в исследовательских кругах появился достаточно недавно, и сейчас они набирают большую популярность. Из работ в данной области можно выделить следующие (список не претендует на полноту):
В области Baseband:
Примечание по эксплуатации baseband-процессора:
Про эксплуатацию baseband’ов с помощью вредоносной базовой станции, стоит отметить, что, начиная c 3G, большинство пакетов должны быть аутентифицированы специальным ключом. Цитата из работы «Exploitation of a Modern Smartphone Baseband»: “This is because originally 2G (second generation) networks considered the BTS (base station) as a trusted component, out of reach from attackers. So the phone will blindly trust anyone posing as a BTS. This makes it possible to build a fake BTS and launch attacks over the air. Only the base station is authenticating the mobile phone, but not vice versa. After the advent of SDR, it becomes clear that now the BTS cannot be trusted anymore. Nowadays it’s very cheap to build a fake base station and attack mobile phones. For this reason in 3G networks and newer the approach changed. Now the mobile phone, leveraging keys in the SIM card, will authenticate the 3G or newer base station usually. This removes lot of attack surfaces in 3G and newer networks, which require to bypass authentication.”
В связи с тем, что большинство современных baseband поддерживают 3G и 4G и сети используют новые стандарты (они более приоритетные), то атакующему нужны дополнительные приемы, которые позволяют выполнить downgrade дефолтного способа подключения (до 2G) в клиентском модеме.
Возможны нюансы, и все от конкретной реализации того или иного чипа.
В области Bluetooth:
В области мессенджеров:
Проанализировав приведенные выше работы, можно понять, что помимо непосредственно уязвимости удаленного исполнения кода для успеха серьезной атаки, как правило, необходимы дополнительные уязвимости, повышающие привилегии в системе (в случае с мессенджерами) или приводящие к переносу исполнения кода с периферийного чипа (Wi-Fi, baseband, etc.) на основной процессор (Application Processor). Только собрав цепочку уязвимостей, можно добиться полной компрометации устройства.
Реальные инциденты с использованием zero-click сложно зафиксировать. Однако если обратиться к 1-click, то сразу вспоминаются атака с использованием вредоносного кода Pegasus, расследование «A very deep dive into iOS Exploit chains found in the wild» и недавняя CVE-2019-11932 в WhatsАpp, приводящая к RCE.
[PoC] CVE-2019-11932 Whatsapp 2.19.216 Remote Code Execution
Соревнование Mobile Pwn2own 2019
Интерес к подобным атакам проявили и организаторы соревнований pwn2own, хотя раньше там были только браузеры и ОС. Впервые они появились в 2015 году, а в 2019 на PWN2OWN TOKYO были такие категории, как:
А среди целевых устройств были:
В зависимости от категории и цели приз составлял от 30.000$ до 150.000$.
Success! The @fluoroacetate duo got the #Samsung Galaxy S10 to connect to their rogue base station and then pushed a file to the phone. Third year in a row. Off to the disclosure room to get all the details. pic.twitter.com/y5fpJcf3t9
По результатам имеем следующую картину:
Да, не все из проведенных атак были zero-click, но тенденция показательна.
Рынок эксплойтов
Интерес к zero-click проявляют и эксплойт-брокеры, которые за такие цепочки эксплойтов предлагают до 3 миллионов долларов.
И ценник других брокеров.
Рекомендации
Единственное, что можно посоветовать и что способен сделать рядовой пользователь — это своевременно ставить все обновления, чтобы поддерживать ОС, прошивки и приложения в актуальном состоянии. Это позволит максимально снизить вероятность успешного проведения атаки.
Вывод
Zero-click атаки сложны в реализации и, как правило, требуют выполнения ряда условий, что не дает им широкого распространения. Тем не менее, они способны нанести огромный урон, оставаясь при этом незамеченными.
Управляется программно: Облачная сеть
Материал сей является отчетным по гранту полученным ООО «ФРИИ Вай-Фай» от «Фонда содействия инновациям». И он об исследовании по теме «Программный комплекс мониторинга и управления распределенными сетями передачи данных для организации систем условного доступа в Интернет».
Для начала определимся с термином «управление», потом порассуждаем об объекте управления и целях «управления». Это в качестве введения.
Введение в управление
Особенно, если сеть распределена географически, использует наложенные каналы передачи данных и оказывает услуги «банального доступа» в интернет, но по определенным условиям.
Собственно, управлять именно такой сетью и планировалось, исходя из условий технического задания. И в общем виде эта сеть выглядит так:
То есть, у нас имеется N элементов сети (устройств), которые подключаются к «облаку интернет», с произвольными сетевыми характеристиками, где мы понятия не имеем о параметрах каналов подключения каждого устройства и никак не можем на них влиять. Каждый сетевой прибор находится в зоне ответственности клиента/заказчика услуги, а каналы подключения принадлежат «третьим лицам» в лице операторов связи, которые продали услугу «доступ в интернет» собственно заказчикам.
Усложним схему, изобразив на ней «гостя Wi-Fi сети», который подключается к управляемому устройству, но пользуется услугами доступа по сути стороннего оператора связи, с которым нет юридических отношений и на который мы никак повлиять не можем. И даже больше, таких операторов может быть больше одного, если используются резервный оператор.
И трафик от «гостя», при всем, при том проходит мимо нашего «управляющего сервера».
Важно только обеспечить IP-связанность подобных устройств. И уметь быстро и дешево подключать устройства к любым сетям, любых поставщиков, иначе экономика IoT будет находиться в руках одного поставщика услуг, который экономически логично будет диктовать условия и «ненавязчивый сервис».
Таким образом, мы, как оператор «распределенной сети передачи данных», можем измерять состояние исключительно устройств-элементов нашей сети и управлять только этими устройствами.
Причем, измерять нам придется две зоны:
Таким образом, объект управления мы определили, и попытаемся систематизировать методы мониторинга, но для начала нужно понять, каким образом можно «достучаться» до управляемых устройств через «облако интернет». Выясняется, что эта задача сама по себе не банальна.
Основная идея концепции TMN — обеспечение сетевой структуры для взаимодействия различных типов управляющих устройств и телекоммуникационного оборудования, использующих стандартные протоколы и стеки.
Эти функции и способы их выполнения достаточно подробно проработаны в рекомендациях ITU серии X.700.
Но, как и многие бюрократические процедурные концепты ITU, были не очень восприняты интернет-сообществом. Хотя некий практически полезный смысл в рекомендациях однозначно присутствует.
Связанные с темой IETF RFC, во многом опираются на рекомендации и соответствуют предложенной модели.
Впрочем, по порядку.
Протоколы управления
Для того чтобы именно управлять (то есть принимать сведения о состоянии элемента системы и выдавать управляющие команды) сетевыми устройствами, вендоры сетевого оборудования придумали самые разнообразнейшие схемы. Некоторые полностью закрыты лицензионными соглашениями и исходным кодом. Некоторые были приняты в качестве стандартов. А некоторые еще в фазе разработки и обсуждений, чтобы возможно стать стандартом.
Попробуем кратко перечислить самые известные и распространенные:
SNMP
Рост числа управляемых устройств в сети так же приводит к непропорциональному росту служебного трафика в сети.
CLI
Собственно CLI используется всякий раз и для уже функционирующих устройств, когда необходима «тонкая настройка» и/или автоматизация процедур, связанных с конфигурациями большого количества устройств.
Но требует высокой квалификации инженера, особенно в случае работы на оборудовании, находящемся в «боевой эксплуатации».
CWMP
Собственно CWMP в сетевой модели выглядит так:
Физический уровень → Канальный уровень → IPv4/IPv6 → TCP → SSL/TLS → HTTP → SOAP → CWMP.
Кроме того, все устройства должны содержать обработчик шифрованного трафика SSL и очень желательно находиться в одной сети, находящейся под управлением оператора. Хотя, это и не обязательно, но прежде всего, каждое устройство должно иметь собственный IP-адрес, иначе как же тогда ACS обнаружит и отконфигурирует устройство?
Недостатки же прямо вытекают из преимуществ, но главное то, что CWMP не является стандартом, что позволяет производителям CPE вносить в него собственные усовершенствования, существенно усложняющие достижение цели унифицированного управления CPE в сетях провайдеров.
NETCONF
Очень упрощенно работу NETCONF можно себе представить как автоматизированный сеанс связи между устройством и сервером по упомянутому уже CLI.
И главным преимуществом NETCONF является необязательность наличия агента на стороне управляемого устройства.
Далее, NETCONF описывает процедуру передачи конфигурации и/или данных мониторинга и действий системы в случае коллизий. Но собственно обмен происходит по известным протоколам SSH / SSL или консолью точно так же, как если бы вы вводили команды CLI в ручном режиме.
И если не учитывать того факта, что до сих пор промышленной имплементации протокола NETCONF не существует, то можно сказать, что это идеальный вариант автоматизации управления сетей.
И почему нет имплементаций?
Проблемы адресации
Дело в том, что вышеперечисленные протоколы лишь улучшают модели управления сетевыми устройствами на базе SNMP (напомню, идея 198-х годов), делая взаимодействие системы менеджмента и элементов сети проще, удобнее, быстрее.
Но при этом не получается никакого нового качества, которое сделало бы организацию-эксплуатанта конкурентоспособнее. По большому счету, администраторам и сетевым инженерам абсолютно все равно, по какому протоколу происходит управление: главное результат в виде управляемой и работающей сети.
Но хочу напомнить «техническое задание», ради которого тут пишется этот лонг-рид: «Программный комплекс мониторинга и управления распределенными сетями передачи данных для организации систем условного доступа в Интернет». И взглянем на схемы, приведенные выше: в этом случае использование любого описанного протокола проблематично.
Хотя бы потому, что для обращения к устройству, находящемуся «в чужой сети» необходимо знать его фактический IP-адрес, который может быть а) «за NAT’ом» и б) динамически выделяемым. Как-то вот так (все IP-адреса и имена хостов, для примера):
И единственным возможным вариантом организации системы является организация VPN-сетей, где каждый прибор должен быть снабжен клиентом VPN с предустановленным сертификатом и настроенным VPN-сервером на уровне менеджмента:
И в этом случае, используя виртуальные частные каналы и идентификационные сертификаты, наша система может адресовать управляющие команды к устройствам, получивших любой IP-адрес на физическом интерфейсе.
Но недостатком решения можно считать необходимость учета и контроля VPN-сертификатов. А установка клиента VPN на устройства нетривиальная задача, если вам необходимо иметь под управлением тысячи единиц таких устройств. Рано или поздно, в такой сети придется заняться автоматизацией процесса, что потребует слишком много усилий и влечет человеческие ошибки.
RESTCONF
Многие вендоры специализированного оборудования для организации Wi-Fi сетей имеют в портфеле решений что-то очень похожее на «систему конфигурации устройств». Но всеобщего стандарта до сих пор нет.
Точнее, стандарт (RFC точнее) только разрабатывается в недрах IETF.
Основы RESTCONF
Первый RFC описывает методы подключения к устройствам по HTTP-протоколу, способы аутентификации, структуру сообщений и модели хранения конфигураций устройств, включая мониторинг и обработку коллизий.
Документ весьма объемный и всеобъемлющий на 137 страниц жесткого технического английского.
То есть, программирование интерфейсов обмена теперь будет напоминать программирование «банальных html-страничек», что очень серьезно упрощает создание прикладного программного обеспечения на уровне понимания человеком.
Попробую еще более упростить для объяснения идеи:
Задумывается, что все модели устройств, методов, обработки ошибок или запросов мониторинга будут публиковаться разработчиками, например, на Github или на специально созданном «репозитории моделей», что позволит администраторам просто «накатывать модели» на собственные базы данных и использовать.
module acme-system <
namespace «http://acme.example.com/system» ;
prefix «acme» ;
organization «ACME Inc.» ;
contact «joe@acme.example.com» ;
description
«Модуль устройства ACME для внедрения системы» ;
revision 2017-01-05 <
description «Последняя ревизия модуля.» ;
>
container system <
leaf host-name <
type string;
description «Наименование хоста для системы» ;
>
list interface <
key «name» ;
description «Список интерфейсов» ;
leaf name <
type string;
>
leaf type <
type string;
>
leaf mtu <
type int32;
>
>
>
>
Но вернемся к «простому описанию». Далее администратор просто «работает с соответствующими записями в базе данных». Причем, прошу отметить, что «работа с полями в БД» весьма просто автоматизируется.
Опять-таки пример: в вашей сети (я напомню, это тысячи устройств, которые находятся в разных географических локациях по всему миру) изменяется DNS. Ну, например, появилась необходимость фильтрации контента и вместо DNS, выданного «оператором последней мили», вам нужен свой специфический. В случае если не используете средства автоматизации, вам необходимо «послать команду» смены DNS на каждое устройство и проконтролировать работоспособность каждого узла. На тысячах, напомню.
И по логике организация «система управления» должна сама «раскатить» все эти обновления, проверить целостность управляющих команд и протестировать работоспособность изменений.
Call Home
Помимо всего прочего в схеме обращения «управляющего сервера к управляемому устройству», есть проблема, связанная с производительностью системы в целом.
То есть, опрос устройств должен быть периодичный. А если мы пытаемся считать метрики, то чем короче период опроса, тем точнее будут расчетные метрики.
То есть, идея заключается в том, чтобы «управляющий сервер» вместо того, чтобы регулярно опрашивать все элементы управляемой сети, просто «слушает обращения» этих элементов и выдает необходимые команды в тот момент, когда устройство обращается к серверу.
И в данном случае как раз протокол RESTCONF более предпочтителен, поскольку работа «управляющего сервера» ничем не будет отличаться от работы обычного web-сервера, который на заданный запрос выдает необходимый в заданной логике ответ. Только вместо привычной веб-странички ответ содержит управляющие команды сетевому элементу. Ну, или сбор данных от средств мониторинга.
Правда, для того, чтобы система заработала, необходим программный агент на каждом сетевом элементе, который хардкодом настроен на собственный сервер управления.
И хочу отметить, что все идеи с «центральным управлением» на базе RESTCONF в IETF еще не закончены.
Продолжение работ
Дата внесения драфта: 2017-03-29
Архитектура I2RS определяет интерфейс I2RS, как «программный интерфейс для передачи состояния в систему Интернет-маршрутизации и из нее». Подход I2RS направлен на использование существующей информации, собранной самим маршрутизатором о топологии сети, ее состоянии, а также о собственном состоянии и конфигурации. Ограничиваясь интерфейсами уровня системы маршрутизации, I2RS также использует существующие средства преобразования маршрутизационной информации в таблицы передачи FIB (Forwarding Information Base) и таблицы маршрутизации RIB (Routing Information Base).
Еще один ожидаемый драфт по стандартизации транспортных функций реализации RESTCONF’а. Суть заключается в том, что в главном принятом RFC-8040 нет практических описаний процедур «запрос-ответ» на уровне HTTP для различных ситуаций и отработки ошибок. Например, что делать устройству, которое обращается к серверу управления, но если в «управляющей базе данных» выставили, что данное устройство из сети удалено?
Пока описание процедур выглядит так:
Естественно, что при массовом использовании систем программной конфигурации и управлением массивами устройств возникнут вопросы по управлению записями каждого устройства, ведение истории взаимодействия устройств и системы управления, ведение логов и учета прав.
Драфт RFC описывает эти процедуры и методы. Например, предлагается, что логирование взаимодействия устройство-сервер будет вестись в следующем формате (пример на YANG):
module: ietf-netconf-am
+—ro nam
+—ro accounting-record* [task-id]
+—ro task-id uint32
+—ro session-id? nc:session-id-type
+—ro acct-code enumeration
+—ro date-time yang:date-and-time
+—ro src-ip inet:ip-address
+—ro group nacm:group-name-type
+—ro user? nacm:user-name-type
+—ro path nacm:node-instance-identifier
+—ro action nacm:access-operations-type
+—ro rule? string
+—ro status? nacm:action-type
Что сделано
Но для начала, попытаемся объяснить, зачем это делалось.
Цели, задачи и общая применимость
Есть и другие идеи и бизнес-кейсы использования разрабатываемой технологии.
В итоге было принято решение по разработке программного комплекса мониторинга и управления распределенными сетями передачи данных для организации систем условного доступа в Интернет. Основное предназначение комплекса: использование на сетях передачи данных у операторов связи и корпоративных заказчиков в составе комплексных мер по оказанию услуг «условного доступа в интернет».
Устройства
В качестве базовых устройств при отработке процедур и механизмов работы протокола NETCONF/RESTCONF были использованы следующие устройства:
Модульный маршрутизатор Dueton Smart Gateway R654G 4G Router:
Особенностью этого устройства является наличие разъема Mini-PCIe для установки профессионального 3G или LTE модема, а также вынесенный слот для 1 SIM карты: