Xakep #305. Многошаговые SQL-инъекции
Исследователи сумели научить специальный алгоритм угадывать 4-значные PIN-коды от банковских карт, когда жертва работает с банкоматом. Атака срабатывает в 41% случаев, даже если человек во время набора прикрывает клавиатуру рукой.
Издание Bleeping Computer рассказывает, что для более точной настройки алгоритма понадобится копия клавиатуры целевого банкомата, так как необходимо учесть конкретные размеры и расстояние между клавишами. На таком макете, с помощью машинного обучения и видео, на котором люди вводят PIN-коды, алгоритм учится распознавать нажатия на разные клавиши и присваивать определенные вероятности разными наборам предположений.
Для своих экспериментов специалисты собрали 5800 видеороликов, на которых 58 разных людей из разных демографических групп, вводят на клавиатуре банкоматов 4- и 5-значные PIN-коды. Машиной, на которой была запущена модель прогнозирования, стал Xeon E5-2670 с 128 Гб ОЗУ и тремя Tesla K20m на 5 Гб ОЗУ каждая.
Дав алгоритму три попытки (максимально допустимое числом попыток ввода PIN-кода, после которого карта будет заблокирована в банкомате), исследователи сумели подобрать пятизначный PIN-код в 30% случаев, и добились успеха в 41% случаев с четырехзначным PIN-кодом. При этом алгоритм может исключать из предположений клавиши, прикрытые рукой человека, и угадывать прочие цифры, полагаясь на движения другой руки и оценивая расстояние между клавишами.
Исследователи признают, что большое значение в данном случае имеет размещение камеры, которая фиксирует попытки набора PIN-кода. Так как съемка левшей и правшей должна отличаться, сокрытие камеры в верхней части банкомата было признано оптимальным. Если же камера также может записывать звук, алгоритм сможет использовать и этот аспект, полагаясь на то, что звук нажатия каждой клавиши чуть отличается от остальных. Это делает прогнозирование более точным.
Исходя их полученных результатов, специалисты делают вывод, что просто прикрывать клавиатуру банкомата рукой недостаточно. Для защиты от подобных атак они советуют использовать следующие контрмеры:
- использовать пятизначный PIN-код вместо четырехзначного, если это возможно;
- тщательнее прикрывать клавиатуру рукой, так как процент закрытия значительно снижает точность прогнозов: если закрыть рукой 75% клавиатуры, точность каждой попытки составит 0,55, тогда как прикрытая на 100% панель ввода снизит точность прогнозов до 0,33;
- по возможности пользоваться случайной виртуальной клавиатурой вместо стандартной механической.