Silenda Flash. Флешка с функцией физического уничтожения данных
Можешь ли ты быть на 100% уверен в том, что твои методы защиты (или их отсутствие) помогут тебе в критической ситуации? Действенный способ только один — уничтожить информацию.
Салют, Аноним!
А где свои гигабайты хранишь ты? На флешке в укромном месте? В криптоконтейнере? А может, в облаке или на Яндекс-диске? Можешь ли ты быть на 100% уверен в том, что твои методы защиты (или их отсутствие) помогут тебе в критической ситуации?
Действенный способ только один — уничтожить.
Да, мой друг, сегодня речь пойдёт об устройствах с функцией автоматического уничтожения.
Сегодня мы поговорим об устройстве нового поколения, позволяющем не только зашифровать, но и уничтожить информацию нажатием кнопки на корпусе флешки. А равно, как и привести механизм уничтожения в действие сообщив заведомо ложный пароль.
Знакомьтесь, Silenda Flash.
Это не заказная статья. В ходе тестирования этого устройства я на протяжении почти двух месяцев тестировал железо и ПО, потому что я, как никто другой понимаю и знаю на своём опыте насколько важно быть уверенным в надежности хранения своей информации и того, где она храниться. Здесь нет никаких «но». Поэтому, в этой статье только факты.
Что пишут производители?
По заявлениям производителей, Silenda Flash представляет из себя флешку объемом 64гб с возможностью самоуничтожения и шифрования. Разработчики заявляют следующий функционал (информация взята с сайта разработчиков):
Физическое уничтожение данных
Выгодно отличаясь от своих конкурентов, Silenda Flash гарантирует физическое уничтожение данных, в то время, как другие устройства предназначенные для обеспечения безопасности данных просто «затирают» информацию путём перезаписи. Silenda Flash оборудован встроенным аккумулятором, а на корпусе носителя расположена кнопка, нажав которую физически уничтожается сам чип памяти за счёт электрического разряда направленного действия с напряжением до 74 вольт, что и гарантирует невозможность восстановления данных.
Шифрование данных
По желанию пользователя, доступ к информации на Silenda Flash возможен только при наличии пароля, который устанавливается при шифровании данных на носителе. Таким образом информация защищена даже в случае попадания в чужие руки.
Возможность задания заведомо ложного пароля, приводящего к уничтожению данных
Пользователь может задать второй пароль при введении которого происходит моментальное физическое удаление данных с носителя.
Silenda Flash в качестве переносного рабочего места
Устройство может быть использовано в качествее удаленного рабочего места. Доступного объема вполне хватает для установки Windows или Tails с небольшим криптоконтейнером.
Что на самом деле?
Сразу хочу сказать, что это — вторая версия устройства. Первую ещё в далеком 2015 году тестировали и писали об этом ребята из журнала «Хакер», ресурс, почитаемый мною с самого раннего детства. Статья из «Хакера» показала мне, что производитель имеет достаточный опыт в разработке устройств защиты информации. И мне не терпелось посмотреть и проверить самому, а что же это такое.
Устройство выполнено в виде флешки, в черном пластиковом корпусе с кнопкой и светодиодом. Внутри располагается печатная плата достаточно хорошего исполнения с припаянной к ней micro-SD картой. Маркировка чипов затёрта, но производитель сообщил, что используется USB хаб от MJ Microchip. К контроллеру подключена непосредственно сама micro-SD карта и управляющий модуль Arduino (производитель отказался сообщить маркировку). Выше расположен аккумулятор. Механизм физического уничтожения приводится в действие с помощью разряда конденсатора с пиковым напряжением до 74 вольт, в зависимости от заряда аккумулятора. Этого вполне достаточно, чтобы физически уничтожить информацию на носителе. Тем не менее, физическая защита от вскрытия корпуса не реализована. А это значит, что если ты вовремя не успел нажать на кнопку — всё будет зависеть лишь от стойкости твоего пароля, ведь батарею можно просто отсоединить.
Подключаем?
При подключении к компьютеру устройство идентифицируется, как обычная флешка на 64гб. И… Как HID-устройство, то есть Human Interface Device, или по-русски, устройство ввода, с ID производителя Van Ooijen Technische Informatica Datakiller. Что это? HID устройства — это, например мыши или клавиатуры…
Тут надо немного пояснить. В стандарте USB нет защиты от того, чтобы некоторые устройства имитировали другие. В процессе инициализации микроконтроллер сообщает хосту, наряду с другой служебной информацией, классы, к которым принадлежит устройство. Хост загружает нужный драйвер и работает с устройством исходя из его класса и этих данных. По сути, тестируемая флешка помимо обычной флешки подгружается как клавиатура. В теории, такое поведение используется хакерами для реализации атаки BadUSB. То есть, когда флешка подключается, как клавиатура и начинает набирать команды, которые могут привести к исполнению произвольного кода. Такое поведение USB накопителя должно вызывать как минимум настороженность. Конечно же, у меня возник ряд вопросов к производителю.
Разработчики пояснили, что это технический изъян, который они признают и обещают устранить в следующих версиях продукта. Дело в том, что в ходе реализации, разработчиками задумывалась функция уничтожения при вводе заведомо ложного пароля. Функция очень полезная во многих ситуациях, особенно, когда имеешь дело с критически важной информацией. Требуют пароль — сообщил заведомо ложный, бах, и информации нет. А соответственно — нет и спроса. Идея великолепна, только вот в нашем случае реализация хромает. Разработчики очень старались реализовать функцию обратной связи с устройством, так как ни micro-SD накопитель, ни USB хаб этого сделать не смогут, а соответственно, нужен и контроллер, который бы за этим следил. Но как быть, ведь если реализовывать свой функционал, то потребуется и установка драйверов, что повлечёт ещё больше проблем в разработке и поставит не меньше вопросов о безопасности устройства для конечного пользователя. Ребята выбрали из двуг зол меньшее и реализовали интерфейс взаимодействия контроллера с криптографическим ПО через эмуляцию HID устройства. Я тестировал устройство на стенде с полным дебагом USB и скачанным с сайта производителя ПО (равно, как и пересобирал сам). Несмотря на то, что у меня отсутствовала возможность физически считать прошивку контроллера, я не выявил никакого аномального поведения девайса. Атака BadUSB работает по принципу, воспроизведения нажатий клавиш. Поэтому, если просто отключить устройство (в конце статьи я напишу как это делать) тогда и никакой атаки, мнимой или реальной, не может быть в принципе. Как по мне — это технический недочёт разработчиков. Но выбор — за тобой.
Теперь взгянем на ПО. Весь софт написан на GOlang, со всеми плюсами и минусами. Исходники опубликованы разработчиком в репозитории на Github. По сути софт просто создаёт на флешке криптоконтейнеры, шифрованные Blowfish (bcrypt с длинной ключа в 60 байт или 480 бит, что, в принципе, достаточно надежно при наличии стойкого пароля). Так для чего всё затевалось то? Ведь можно обойтись и обычной VeraCrypt?
Как бы не странно это звучало, и специализированное ПО и эмуляция устройства ввода реализованы лишь с одной целью. Это функция самоуничтожения по ложному паролю. Как это происходит?
Казалось бы, если уже реализовывать такое, то следовало бы хранить хэши в самом контроллере, реализовав тем самым некое подобие TPM, тогда можно было бы ограничить и колличество введённых комбинаций и достаточно надёжно реализовать функцию самоуничтожения по ложному паролю. Но разработчики решили обмануть судьбу. Из кода мы видим, что сверка хешей происходит в програмном обеспечении, для чего используется стандартная библиотека GO bcrypt c 480 битным хэшем:
storage.go: type Hash [60]byte func (h *Hash) Make(raw string) error { hash, err := bcrypt.GenerateFromPassword( []byte(raw), bcrypt.DefaultCost, ) if err != nil { return err } copy(h[:], hash) return nil }
Можно было бы и побольше. Но основной провал идеи — не в этом. Давай посмотрим, как происходит процедура самоуничтожения при вводе подложного пароля:
usb.go: func usbWrite() error { _, err := usbCommand("write", "0xac") if err != nil { return err } return nil }
Никаких сверок с железом. Пароли, как правильный, так и заведомо ложный хранятся в крипто контейнере:
main.go: func setFakePass(opt ...*sciter.Value) *sciter.Value { if len(opt) != 1 { return Error(unkn_error) } err := storage.pass.Real.Compare( opt[0].String(), ) if err == nil { return Error(pass_same) } err = storage.pass.Fake.Make( opt[0].String(), ) if err != nil { return Error(unkn_error) } err = storage.Update() if err != nil { if os.IsPermission(err) { return Error(perm_error) } return Error(unkn_error) } return Ok(true) }
То есть, всё реализованно програмно. Если отключить HID устройство или блокировать комманду, а равно, как и написать своё програмное обеспечение для расшифровки контейнера (ведь используется стандартная библиотека), функция самоуничтожения по ложному паролю — бессмыссленна.
Хотя, для некоторого оправдания разработчиков, можно всё же заметить, что функция самоничтожения работает и с отключенной батареей, при условии, что устройство подсоединено к USB (а как иначе подбирать пароль то? отпаивать и дампить чип памяти? такое тоже бывает, в большинстве случаев не на просторах снг, но если ты переживаешь о таком — тогда это устройство попросту не для тебя).
Корпус не имеет защиты от вскрытия. Поэтому лучше успеть нажать на кнопку. Если ты всё же не успел этого сделать — остаются надежды на использование функции заведомо ложного пароля, который ты можешь сообщить.
Epic fail. Надеюсь, в следующих версиях — будет лучше.
Тем не менее, для людей, которым придется иметь дело с потенциальными атакующими с низкой технической квалификацией (криминалитет, налоговая, уличная полиция, технически не продвинутые конкуренты, а равно, как и таможенники, как отечественные, так и иностранные) — флешка с такой функцией может и помочь. Особенно, если вспомнить то, что даже если отключить аккумулятор, при вводе заведомого ложного пароля, а равно как и при нажатии на кнопку, разряд всё равно произойдёт (если не будет блокирован драйвер и использовано оригинальное ПО) при подключении к USB, этого вполне достаточно.
Возможно ли восстановление информации
Ну и самое главное. То, ради чего это всё затевалось. А именно — физическое уничтожение информации на носителе. Насколько оно эффективно?
Напоминаю, что уничтожение происходит путём разряда каскада конденсаторов с пиковым напряжением в 74 вольта непосредственно в карту памяти. При моём тесте напряжение электрического разряда составило 68 вольт.
Этого напряжения вполне достаточно для того, чтобы уничтожить значительную часть данных. Если предположить, что при шифровании использовался стойкий пароль и несколько контейнеров, можно быть уверенным, что использование стандартных средств восстановления sd-карт ни к чему не приведет.
В лаборатории, в которую я обратился мне тоже ничем не помогли после нескольких дней попыток.
По заявлениям разработчиков, первая версия флешки была протестирована SecurityLab. У них тоже восстановить ничего не получилось.
С большой долей вероятности могу сказать, что при использовании нескольких контейнеров хранения информации, один вложенный в другой, восстановить информацию, а уж тем более что то брутить навряд ли получится.
Что делать параноикам?
Как я и писал, флешка эмулирует устройство ввода. А знающие люди понимают, что это потенициальный плацдарм для атаки BadUSB. Флешка никакой активности не проявляла, но и прошивку для анализа я из устройства извлечь тоже не смог. А значит 100% гарантии я дать не смогу. Тем не менее, для тех, кому нужна флешка с функцией уничтожения данных, могут попросту отключить HID устройство.
Для Windows, PowerShell: Disable-PnpDevice -InstanceId 'USB\VID_16C0&PID_05DF&REV_0100'
Или просто отключить его в «Управлении устройствами»:
И ещё раз. Устройство было подключено к компьютеру на протяжении нескольких дней с полным дебагом обмена информацией с компьютером. Никакой подозрительной активности замечено не было.
Вердикт
Устройство пригодно для использования и в случае необходимости справляется со своей основной функцией — уничтожением данных. С большой долей уверенности могу сказать, что на просторах СНГ восстановить с неё информацию навряд ли у кого то получится. Что касается США? Были случаи, когда там восстанавливали оперативную память с уже обесточенных компьютеров.
Производители флешки — люди, имеющие многолетний опыт разработки устройств защиты информации, о чём может свидетельствовать статья о первой версии Silenda Flash в журнале «Хакер».
Если технически устройство реализовано на приемлемом уровне, то на уровне ПО и логики существуют серъёзные проблемы, например, отсутствует защита от вскрытия, да и на функцию уничтожения по подложному паролю я бы не стал возлагать больших надежд. Это техничский просчёт разработчиков, на который они потратили очень много ресурсов. А в добавок — функция реализовали очень подозрительно. Тем не менее, флешка легко превращается в обычный контейнер с функцией удаления данных. Для этого просто надо отключить дополнительные драйвера.
Девайс работает. Информация с флешки удаляется без возможности восстановления информации даже с использованием продвинутых средств форензики. Это я могу сказать с достаточной долей уверенности. В сочетании с другими средствами шифрования, например такими, как VeraCrypt, устройство работает отлично. И это предоставляет дополнительный уровень защиты информации.
Для кого это устройство: для секретарей и бухгалтеров, которым есть что прятать, для мелких чиновников, нарко-кладменов, барыжат и даже барыг покрупнее, а также продвинутых юзеров, которые просто хотят немного обезопасить свою информацию. В общем, для всех тех, кому не придётся иметь дело с технически-продвинутыми ИБ экспертами, будь то киберкопы, чекисты, вайтхаты и блэкхаты любых мастей. Отдельно хочется отметить, что такая флешка наверняка поможет журналистам и борцам за свободу информации, учитывая тревожную информацию о постоянных незаконных обысках, изъятии носителей информации и давлении силовых структур в РФ и РБ.
Для кого не подойдет это устройство: для киберпараноиков, для людей, которые имеют серьезные секреты, много информации, но не понимают в ИБ.
Абсолютно защищенных USB флешек я ещё не видел. Хочешь реальной защиты? Купи себе HSM. Ценник от $5000. Что касается рассматриваемого в статье устройства: для своей цены (не многим дороже обычной флешки) 64гб, это вполне достойный представитель своей категории, отлично справляющееся со своим прямым назначением — уничтожением информации в случае необходимости.
Купить можно на сайте производителя: https://silenda.systems