У цій статті простими словами пояснюється, що таке jackpotting, чому зловмисники знову повернулися до атак на самі банкомати та які ризики це несе для фінансових установ. Матеріал поєднує реальні кейси й практичний погляд на загрозу, не заглиблюючись у зайву технічну складність.
Злочинців більше цікавлять не лише дані клієнтів. Усе частіше вони знову націлюються безпосередньо на самі пристрої. ATM jackpotting – це кібератака на стику цифрового й фізичного світу, яка змушує банкомат видавати всю готівку. І сьогодні під ударом насамперед опиняються локальні та ком’юніті-банки.
Хоча більшість банків добре знайомі з цифровим шахрайством або скімінгом карток, jackpotting становить значно більш пряму й небезпечну загрозу для фізичних грошових активів. На відміну від традиційних схем, що пов’язані з викраденням персональних даних або платіжних реквізитів, ATM jackpotting спрямований на сам банкомат – із обходом програмного захисту та втручанням у апаратну частину, яке стандартні засоби безпеки часто не встигають виявити.
ATM jackpotting це спосіб маніпуляції банкоматом, як фізичної, так і програмної, з метою змусити його за командою видавати великі суми готівки. Назва походить від образу банкомата, який буквально «випльовує» гроші, немов слот-машина під час джекпоту. Але на відміну від азартних ігор, у реальному житті шанси часто складаються не на користь банку, якщо система захисту недостатньо надійна.
Зазвичай такі атаки починаються з доступу до корпусу банкомата та його внутрішніх компонентів. Потрапивши всередину, зловмисники встановлюють шкідливе програмне забезпечення або підключають сторонній пристрій типу black box, який перехоплює керування і обходить штатні механізми роботи. Це дозволяє за лічені хвилини повністю спорожнити касети з готівкою, іноді на суму понад 100 тисяч доларів з одного банкомата.
Головна відмінність ATM jackpotting від скімінгу або класичного цифрового шахрайства полягає в тому, що зловмисники не викрадають дані клієнтів і не знімають кошти з окремих рахунків. Вони крадуть безпосередньо у банку, створюючи пряму фінансову загрозу та серйозний ризик для репутації фінансової установи.
У квітні 2025 року Асоціація ком’юніті-банків Канзасу оприлюднила термінове попередження після серії атак на банкомати в Саліні та Вічиті. Це були не примітивні напади за принципом «розбив і втік». Зловмисники діяли з використанням спеціалізованих інструментів і чіткої підготовки, зокрема вони:
непомітно отримували доступ до корпусу банкомата
від’єднували штатне обладнання диспенсера готівки
встановлювали black box пристрої з попередньо налаштованим ПЗ для jackpotting
Інциденти відбувалися пізно вночі та були спрямовані на окремо розташовані банкомати в зонах зі слабшим контролем. Навіть якщо відеоспостереження й сигналізація були встановлені, часу для реагування часто не вистачало, щоб запобігти крадіжці.
Ці події підкреслюють неприємну, але важливу реальність. ATM jackpotting це не теорія і не проблема лише великих міст. Такі атаки відбуваються вже зараз у ком’юніті-банках, у невеликих містах і там, де раніше ризик здавався мінімальним.
Хоча конкретні деталі можуть відрізнятися, більшість атак за схемою jackpotting мають спільну логіку і проходять кілька послідовних етапів:
Фізичний доступ. Зловмисник за допомогою інструментів відкриває корпус банкомата, часто вимикаючи або обходячи датчики втручання.
Маніпуляція обладнанням. Диспенсер готівки від’єднується від штатного контролера банкомата.
Підключення black box. До диспенсера під’єднується сторонній пристрій, який напряму взаємодіє з апаратною частиною і обходить програмний захист.
Видача готівки. Після перехоплення керування банкомат починає безперервно видавати гроші. Увесь процес часто займає менше 10 хвилин.
У деяких випадках зловмисники маскуються під техніків або співробітників служби безпеки, щоб не викликати підозр у робочий час і спокійно завершити атаку.
Не всі банкомати перебувають під однаковим рівнем ризику. Існує кілька ознак, які можуть свідчити про підвищену вразливість ATM до атак типу jackpotting:
Застаріла операційна система. Банкомати, що працюють на непідтримуваних ОС, наприклад Windows 7, не отримують критичних оновлень безпеки і залишаються відкритими для відомих вразливостей.
Відсутність захисту від втручання. Немає фізичних сигналізацій, датчиків проникнення або надійних замків, які перешкоджають несанкціонованому доступу до корпусу.
Мінімальний моніторинг. Окремо розташовані або drive-up банкомати не перебувають під постійним наглядом через відеоспостереження, телеметрію чи сторонні сервіси контролю.
Нерегулярні IT та фізичні перевірки. Відсутні планові огляди прошивок, стану обладнання, а також аналіз журналів на предмет підозрілої активності.
Ком’юніті-банкам не потрібно терміново перебудовувати всю інфраструктуру банкоматів. Але якщо дивитися на ситуацію реально, без базових і продуманих заходів ризик атак залишається досить високим. Щоб зменшити ймовірність jackpotting, варто почати з простих, але важливих речей:
Оновлення програмного забезпечення: банкомати повинні працювати на підтримуваних операційних системах, а всі оновлення безпеки мають встановлюватися вчасно. Якщо ATM досі використовує застарілу версію Windows, її варто оновити або максимально обмежити доступ до мережі.
Моніторинг роботи ATM: постійне спостереження за станом банкоматів допомагає помітити дивні речі ще на ранньому етапі, наприклад незвичні перезавантаження або підключення сторонніх пристроїв.
Фізичний захист: на практиці багато атак стають можливими саме через слабкий фізичний контроль. Надійні замки, датчики відкриття корпусу, освітлення та камери реально ускладнюють доступ до банкомата.
Підготовка персоналу: співробітники мають розуміти, як виглядає нормальна робота ATM і що повинно насторожити. Навіть дрібні деталі інколи відіграють ключову роль.
Реагування на інциденти: у разі підозрілої активності важливо не імпровізувати, а діяти за заздалегідь підготовленим планом, від швидкого вимкнення банкомата до фіксації технічної інформації.
Співпраця з партнерами: виробники ATM і профільні IT-компанії зазвичай добре знають слабкі місця своїх рішень і можуть запропонувати додаткові механізми захисту саме від jackpotting.
Для ком’юніті-банків банкомати часто є частиною довіри клієнтів. І одна успішна атака може цю довіру швидко зруйнувати. Саме тому профілактика, регулярні перевірки та готовність до інцидентів мають значно більше значення, ніж здається на перший погляд.
Так, особливо якщо виконується хоча б одна з таких умов:
ви використовуєте drive-up або окремо розташовані банкомати без цілодобового моніторингу
операційна система ATM застаріла або не має сучасного захисту
сценарії фізичного злому та реагування ніколи не тестувалися
персонал не навчений розпізнавати соціальну інженерію та ознаки втручання
Ком’юніті-банки часто є опорою для місцевих громад, але цю довіру легко втратити після успішної атаки jackpotting, особливо якщо з’ясується, що базові заходи безпеки не були впроваджені.
ATM jackpotting більше не є проблемою лише міжнародних злочинних угруповань або великих міст. Це локальна, добре підготовлена і цілком реальна загроза для ком’юніті-банків, які не мають сучасних підходів до IT та фізичної безпеки.
Саме зараз варто переглянути стан банкоматів, оцінити наявні засоби захисту та підготувати команду. А за потреби залучити зовнішніх експертів, щоб посилити оборону до того, як зловмисники знайдуть слабке місце.
Такі атаки ми не раз бачили у фільмах і читали про них у матеріалах з кібербезпеки. І все ж питання залишається відкритим: що насправді потрібно, щоб реалізувати jackpotting-атаку проти реального банківського банкомата?
У межах одного з контрактів з великим комерційним банком нам доручили перевірити безпеку ATM, захищеного відомим програмним рішенням, призначеним для блокування несанкціонованого виконання коду на критично важливих системах. У нашому розпорядженні був повний мережевий та фізичний доступ до банкомата виробництва NCR, одного з найпоширеніших типів ATM, які використовуються у світі. Основним завданням було виявити можливі вектори атаки.
Щоб рухатися далі, спочатку потрібно зрозуміти, як саме працює сучасний банкомат. Саме з цього і варто почати, перш ніж переходити до питань обходу захисного програмного забезпечення та подальших етапів атаки.
Типовий банкомат побудований на базі комп’ютера з Windows і має багато апаратних компонентів. Серед них диспенсер банкнот і монет, камера, сенсорний екран, кардрідер та інші модулі. Кожен виробник банкоматів створює власні драйвери й сервісні компоненти для роботи з цим обладнанням. Теоретично спільне проміжне програмне забезпечення під назвою XFS, якого дотримується більшість виробників ATM, дозволяє запускати одну й ту саму програму на пристроях різних брендів. XFS відповідає виключно за передачу команд до апаратних компонентів і не має вбудованих механізмів безпеки. Якщо вдається запустити скомпільований код на банкоматі, це фактично означає повний контроль над ним. Саме цей проміжний шар ми використали, щоб змусити диспенсер багаторазово видавати банкноти, доки касети не спорожніли.
Не маючи попереднього досвіду розробки з використанням XFS, ми спробували знайти документацію та приклади коду у відкритих джерелах. На жаль, окрім загальних матеріалів CEN, майже нічого не вдалося знайти, а доступна документація часто була неповною або фрагментарною. На щастя, ми були не першими, хто намагався реалізувати подібну атаку. Існує кілька відомих зразків шкідливого ПЗ для банкоматів, здатних видавати готівку з ATM виробництва NCR. Хоча вихідні коди таких програм недоступні, у мережі є чимало детальних описів і розборів ATM malware, які допомагають заповнити прогалини в розумінні реалізації XFS у банкоматах NCR. Ми навіть зверталися до аналізу шкідливого ПЗ під назвою GreenDispencer, щоб хоча б побачити, які аргументи передаються у викликах XFS API.
Зрештою нам вдалося сформувати таку послідовність дій:
Import msxfs.dll Call WFSStartUp Call WFSOpen with the name of the cash dispenser device (obtained from the ATM registry) Call WFSExecute with the WFS_CMD_CDM_DISPENSE command and WFSCDMDISPENSE structure with the desired amount to be dispensed set Call WFSExecute with the WFS_CMD_CDM_PRESENT command to present the cash notes Loop until cash cassettes are empty
Після того як ми визначилися з тим, який саме скомпільований код хочемо виконати на банкоматі, залишалося найскладніше завдання. Потрібно було обійти програмне забезпечення для захисту кінцевих точок. На перший погляд це виглядало серйозною перешкодою. Усі виконувані файли в системі були додані до білого списку, а будь-яка спроба запустити щось стороннє одразу блокувалася.
Втім, у цьому захисті була одна важлива особливість. Банк дозволив використання PowerShell, оскільки під час запуску банкомата застосовуються скрипти з розширенням ps1. Це означало, що ми могли завантажувати скомпільовану DLL через PowerShell у пам’ять, використовуючи рефлективне завантаження. Подібний підхід застосовується, наприклад, у Invoke-Mimikatz. Додатковою перевагою цього методу є його відносна непомітність, адже шкідливий код не записується на диск. Саме тому такий підхід вважається fileless.
Цей fileless-підхід добре ілюструє, наскільки складними стали сучасні атаки на банкомати. Зі зростанням попиту на вихідні коди ATM malware на чорному ринку організаціям дедалі важливіше зосереджуватися на проактивному захисті. Йдеться про регулярні перевірки коду, посилений контроль кінцевих точок і повноцінні тести на проникнення для ATM. Саме такі перевірки дозволяють виявити подібні приховані вектори атаки раніше, ніж ними скористаються зловмисники.
Щоб зібрати все докупи, наше шкідливе ПЗ являло собою PowerShell-скрипт, який завантажував вбудовану DLL, закодовану у base64. Ця DLL, у свою чергу, використовувала проміжний шар XFS для керування диспенсером готівки. Очевидно, що деякі деталі реалізації ми свідомо опускаємо і не наводимо прикладів коду, оскільки банк був цілком обґрунтовано чутливим до таких питань. Водночас загальна логіка цього підходу з цього моменту вже є зрозумілою.
Маючи готове шкідливе ПЗ, ми визначили два можливі вектори атаки:
зловмисники з доступом до мережі банкоматів банку можуть віддалено підключитися до ATM і виконати шкідливий код
зловмисники з фізичним доступом до банкомата можуть підключити пристрій типу Rubber Ducky з попередньо завантаженим скриптом і запустити його протягом кількох хвилин
Перший сценарій був доволі прямолінійним. За наявності достатнього рівня доступу будь-який банкомат може бути атакований віддалено з внутрішньої мережі банку. Наскільки складно отримати такий доступ, залежить від архітектури мережевої безпеки конкретного банку, що виходить за межі цього матеріалу. У нашому випадку нам надали доступ через віддалений робочий стіл до лабораторного ATM, і ми змогли успішно виконати шкідливий код. Банкомат почав видавати тестові банкноти, чим щиро здивував технічних спеціалістів, які перебували в лабораторії.
Другий вектор атаки виявився більш цікавим. На наше здивування, ми з’ясували, що банкомати працюють із локальним адміністратором, який уже увійшов у систему. Усе, що було потрібно, це підключити клавіатуру. Звісно, отримати доступ до відкритого USB-порту банкомата не так просто, хоча й цілком реально. Крім того, атаки з боку інсайдерів не є чимось винятковим. Після підключення клавіатури нам досить швидко вдалося знайти комбінацію клавіш, яка дозволяє вийти з режиму кіоску і отримати повноцінну робочу сесію Windows.
Після завершення оцінки безпеки банк цілком обґрунтовано відмовився від використаного захисного програмного забезпечення на користь іншого рішення. Серед інших механізмів безпеки воно переводить PowerShell у режим Constrained Language Mode. Це суттєво обмежує можливості скриптів у роботі з WIN32 API та ускладнює спроби рефлективного завантаження скомпільованих виконуваних модулів. У результаті описаний нами шкідливий підхід втратив свою ефективність і став непридатним для подальшого використання.