January 24, 2023

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