Хакерам удалось украсть биткойны из банкоматов — случай, который показывает, что атаки на физические устройства становятся всё более изощрёнными. Банкоматы — это специализированные компьютеры, часто работающие на Windows или Linux, с сетью, периферией и наличными внутри. Их компрометация сочетает кибербезопасность и физическую безопасность.
Разберём, как происходят такие атаки, какие уроки из них следуют и что делать администраторам устройств на Linux.
Как атакуют банкоматы
Есть несколько сценариев. Программные атаки используют уязвимости в ПО банкомата, слабую аутентификацию или доступ к служебным интерфейсам. Физические — вскрытие корпуса, установка скиммеров, подключение к отладочным портам. Социальная инженерия — убедить сотрудника запустить «обновление».
В случае с биткойнами злоумышленники могли использовать банкоматы, которые продают криптовалюту: устройство принимает наличные и отправляет монеты на кошелёк. Компрометация ПО позволяет инициировать транзакцию без оплаты или перенаправить средства.
Почему это касается Linux-администраторов
Многие банкоматы и платёжные терминалы работают на встраиваемом Linux. Принципы защиты те же, что для серверов: минимум служб, обновления, изоляция, журналирование. Но есть особенности: долгий жизненный цикл, физический доступ и ограниченные возможности обновления.
# типичная проверка встраиваемой системы
systemctl list-units --type=service --state=running
ss -tulpn
uname -a
Минимизация поверхности атаки
- Отключите неиспользуемые сервисы и порты.
- Ограничьте сетевой доступ: банкомат должен общаться только с доверенными хостами.
- Запретите внешние носители и загрузку с USB.
- Включите проверку целостности загрузки и подписи обновлений.
- Ограничьте физический доступ к портам и корпусу.
- Настройте централизованный сбор логов.
sudo systemctl disable --now cups bluetooth avahi-daemon
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
Каждый лишний сервис — потенциальная уязвимость. На устройстве, которое должно выполнять одну функцию, не нужен полноценный набор офисных приложений.
Обновления в жёстких условиях
Встраиваемые системы обновляются редко, потому что любое изменение требует сертификации. Но это не оправдание для years-old уязвимостей. Используйте атомарные обновления и возможность отката: обновление должно быть проверяемым и обратимым.
# пример атомарной схемы (A/B разделы)
lsblk -f
cat /proc/cmdline
Для Linux-устройств подойдут системы с образом только для чтения, подписанными обновлениями и отдельным разделом данных. Если злоумышленник изменит корень, устройство должно это обнаружить.
Журналирование и мониторинг
Логи должны уходить на внешний сервер, а не храниться только локально. Атакующий, получивший доступ, постарается удалить следы. Оповещения на аномалии — новые процессы, необычные соединения, изменения конфигурации — помогают заметить инцидент.
sudo apt install auditd
sudo auditctl -w /etc -p wa -k etc_changes
sudo ausearch -k etc_changes | tail -20
journalctl -p warning -b | tail -30
Физическая безопасность
Никакое ПО не поможет, если злоумышленник может открыть корпус и подключиться к плате. Нужны датчики вскрытия, пломбы, камеры и процедуры обслуживания. Персонал должен знать, как реагировать на подозрительные устройства.
Скиммеры и поддельные накладки на картридеры — давняя проблема. Регулярные проверки и обучение сотрудников снижают риск.
Что делать при инциденте
Изолируйте устройство, сохраните логи и образ диска, проверьте сетевые соединения и учётные записи. Не перезагружайте без необходимости: в памяти могут остаться следы. Уведомите платёжную систему и правоохранительные органы согласно регламенту.
last -a | head
who
ss -tunp
ps aux --sort=-%cpu | head -15
После восстановления закройте вектор: обновите ПО, смените ключи, ограничьте доступ. Если не понять, как злоумышленник попал внутрь, инцидент повторится.
Как устроен жизненный цикл банкомата
Банкомат живёт дольше обычного компьютера: десять лет для него не редкость. За это время меняются версии ОС, драйверов и платёжного ПО, а производитель может прекратить поддержку модели. Администратор оказывается между требованием обновляться и риском потерять сертификацию.
Практический выход — разделить систему на слои: неизменяемый базовый образ, отдельный слой приложения и отдельный слой данных. Тогда обновление безопасности не затрагивает приложение, а приложение можно тестировать независимо.
# проверить, какие разделы смонтированы только для чтения
mount | grep -E "ro,|,ro"
findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS | head -20
Второй принцип — воспроизводимость. Если устройство вышло из строя, его конфигурация должна восстанавливаться из репозитория, а не из памяти инженера. Версионируйте конфиги и скрипты обслуживания.
Сеть и сегментация
Банкомат не должен находиться в той же сети, что офисные компьютеры. Выделенный VLAN, белый список адресов и запрет исходящих соединений кроме платёжного хоста drastically снижают возможности атакующего.
ip -br a
ip route
sudo nft list ruleset | head -40
Если устройство использует беспроводную связь, убедитесь, что она не настроена на открытую сеть и что учётные данные не хранятся в открытом виде. Резервный канал должен быть не менее защищён, чем основной.
Для удалённой диагностики используйте отдельный интерфейс управления с ограничением по источнику. Не публикуйте SSH или веб-панель в интернет, даже со сложным паролем.
sudo ss -tulpn
sudo ufw status numbered
И проверяйте время: рассинхронизация часов ломает проверку сертификатов и журналы. Настройте NTP с доверенным источником и контролируйте дрейф.
timedatectl status
chronyc tracking 2>/dev/null | head
Итог
Кража биткойнов из банкоматов — напоминание, что встраиваемые Linux-системы требуют такой же дисциплины, как серверы. Минимизируйте сервисы, ограничьте сеть, обновляйте ПО, собирайте логи и защищайте устройство физически. Безопасность — это слои, а не один патч.