Самодельный робот на Arduino вскрывает сейфы брутфорсом
С помощью дешёвого робота группа хакеров прямо на сцене конференции DEFCON вскрыла сейф одного из ведущих производителей сейфов — компании SentrySafe. После 30 минут жужжания робот подобрал нужную комбинацию 51.36.93 — дверца сейфа раскрылась, а аудитория из нескольких сотен человек взорвалась восторженными аплодисментами.
В кодовом замке этой модели SentrySafe миллион комбинаций, то есть 100×100×100. Для перебора такого количества на механическом замке у робота ушло бы гораздо больше времени, чем полчаса. Но хакеры нашли способ уменьшить число возможных комбинаций, поскольку оказалось, что последнее число вообще не принимается в расчёт при проверке комбинации. Это связано с тем, что производитель пытался защититься от стандартных методов взлома сейфа. Поэтому на третьем кодовом диске он предусмотрел специальные выемки для захвата стержня, чтобы взломщик не мог применить метод с проталкиванием стержня и прослушиванием момента, когда стержень проходит в паз. Так вот, как оказалось, одна из выемок, соответствующая правильному числу, примерно на два-три миллиметра ýже остальных. Робот легко мог с помощью сенсоров определить её, проведя пару простых измерений.
Таким образом, число возможных комбинаций уменьшилось до 10 тыс. (100×100). Затем хакеры заметили, что дизайн замка сейфа позволяет некоторую ошибку при вводе кода, если человек ошибся на одну цифру. То есть в каждой из трёх цифр можно было втрое сократить число возможных комбинаций. Итак, число возможных комбинаций уменьшилось до 1000, а это уже было роботу под силу (наверное, и человек мог бы перебрать такое количество вариантов менее чем за сутки).
Оказалось также, что после ввода каждой комбинации необязательно возвращать ручку лимба в стартовое положение. Это значительно помогает оптимизировать работу моторчика, который вращает ручку.
В статье BBC говорится, что некоторые модели сейфов SentrySafe предусматривают дополнительную защиту за счёт установки дополнительного замка с ключом, но хакерам удалось вскрыть и эти модели тоже с помощью ручки Bic.
На YouTube достаточно видеозаписей со вскрытием сейфов всякими хитрыми методами. Честно говоря, они напоминают истории из книги Ричарда Фейнмана «Вы, конечно, шутите, мистер Фейнман!». Известный физик и нобелевский лауреат тоже увлекался вскрытием замков на сейфах.
На самом деле очень многие сейфы, даже дорогие, которые заявляются как очень безопасные — вскрываются очень просто. Практически нигде не предусмотрена задержка между попытками ввода кода. Некоторые замки вскрываются магнитом, их можно вскрыть ломом или топором. Есть и другие способы открывать сейфы не за 30 минут, а за считанные секунды. Замки в таких сейфах можно сравнить с дешёвыми велозамками (то есть почти со всеми велозамками).
В интервью Wired Натан Селди (Nathan Seidle) из компании SparkFun Electronics говорил, что его увлечение вскрытием сейфов началось в прошлом году, когда жена подарила ему эту модель сейфа SentrySafe за $120 с закрытым замком. Она купила его на Craigslist, бывший владелец запер сейф и забыл код. Это был вызов для Натана — и он сконструировал робота для брутфорса.
Натан Селди увлекается конструированием разных устройств и гаджетов, так что в течение следующих четырёх месяцев они с коллегами из SparkFun Electronics сделали машину для взлома сейфа из коммерческих и самодельных деталей, напечатанных на 3D-принтере. Общая стоимость всех деталей составила $200. Эта сумма включает плату Arduino за $20, моторчик за $40, алюминиевые детали корпуса и различные детали, отпечатанные на 3D-принтере, включая муфту для сцепки с ручкой лимба, несколько магнитов для прикрепления к корпусу сейфа и сенсоры, которые проверяют, что робот успешно повернул ручку и когда она проходит через ноль.
На самом деле для перебора всей тысячи комбинаций нужно 73 минуты. Это максимальное время, а в среднем процесс занимает 36 минут, так что на DEFCON робот был недалеко от среднего результата.
Эта демонстрация должна стать уроком для производителей сейфов и другого оборудования, предназначенного для обеспечения безопасности. Они должны понимать, что каждый их продукт будут тестировать и пробовать взломать тысячи гиков вроде этих ребят из SparkFun. Если существует какой-то баг или уязвимость в безопасности вроде неработающей третьей цифры на замке, как здесь, — это точно обнаружат и расскажут всему миру.