Безопасность QR-кода: обзор атак и проблем, связанных с надежной безопасностью
QR-коды (Quick Response) – это двухмерные штрих-коды с возможностью кодирования различных типов информации. Благодаря высокой плотности информации и надежности QR-коды приобрели популярность в различных областях применения. Несмотря на то, что они предлагают широкий спектр преимуществ, QR-коды представляют собой значительную угрозу безопасности. Злоумышленники могут зашифровать вредоносные ссылки, ведущие, например, на фишинговые сайты. Такие вредоносные QR-коды можно напечатать на небольших наклейках и заменить безобидные на рекламных щитах. Хотя в средствах массовой информации сообщалось о многих реальных примерах атак на основе QR-кода, в этой области было проведено очень мало исследований, и почти не уделялось внимания взаимодействию безопасности и взаимодействия человека с компьютером. В этой работе я описываю множество вариантов использования QR-кодов. Более того, я анализирую наиболее важные сценарии атак применительно к конкретным вариантам использования. Кроме того, я систематизирую уже проведенное исследование и определил полезную безопасность и осведомленность о безопасности в качестве основных исследовательских задач. Наконец, я предлагаю требования к дизайну в отношении самого QR-кода, приложения для считывания и аспектов удобства использования, чтобы поддержать дальнейшие исследования, чтобы сделать обработку QR-кода как безопасной, так и удобной.
QR-коды (Quick Response) – это штрих-коды с двумерной матрицей, которые используются для кодирования информации. В последние годы они все больше и больше проникают в нашу повседневную жизнь. Изначально они были изобретены для отслеживания автомобильных запчастей в процессе производства. В настоящее время они адаптированы для различных случаев использования. QR-коды дешевы в производстве и просты в развертывании. Поэтому они стали предпочтительным средством рекламы на рекламных щитах для доступа к потенциальным клиентам. Один из наиболее распространенных вариантов использования – это URL-кодирование, позволяющее мгновенно сделать информацию доступной. Помимо множества преимуществ, социальные инженеры неправильно использовали QR-коды в качестве вектора атаки. Злоумышленники кодируют вредоносные ссылки, ведущие, например, на фишинговые сайты или для выполнения мошеннического кода. Эти вредоносные QR-коды можно распечатать на небольших наклейках и уже наклеить.
Существующие QR-коды.
Кроме того, злоумышленники могут изменить выбранные модули с белого на черный и наоборот, чтобы переопределить изначально закодированный контент. Несмотря на то, что в средствах массовой информации было опубликовано множество реальных примеров, было проведено мало исследований по взаимодействию человека с компьютером и аспектам безопасности атак на основе QR-кода. В этой работе я даю исчерпывающий обзор наиболее актуальных вариантов использования QR-кодов и связанных с ними векторов атак с упором на фишинг. Для этого я провел всесторонний обзор литературы, чтобы определить состояние дел в области пользовательских исследований и типичных атак. Кроме того, я определил основные исследовательские проблемы, связанные с повышением безопасности QR-кодов, и предложил вопросы и направления для безопасной и удобной обработки QR-кодов.
– Я предоставляю исчерпывающий обзор наиболее актуальных сценариев использования и определяю связанные векторы атак.
– Я систематизирую состояние исследовательского сообщества.
– Я определяю основные исследовательские задачи по повышению безопасности QR-кода с упором на удобство использования и аспекты безопасности.
Остальная часть в этой книге структурирована следующим образом: В разделе 2 я представляю введение в стандарт QR-кода и обзор вариантов использования. В разделе 3 я систематизирую сценарии атак с использованием QR-кодов в качестве вектора атаки и обсуждается соответствующие исследования пользователей. В Разделе 4 я описываю известные примеры из реальной жизни, а в Разделе 5 обсуждаются связанные с ними исследования пользователей. В Разделе 6 я определяю открытые исследовательские проблемы в отношении аспектов безопасности и удобства использования. Раздел 7 завершает мою работу.
В этом разделе я даю краткое введение в стандарт QR, а также обзор различных вариантов использования QR-кодов. QR-коды (Quick Response) – это двухмерные штрих-коды, которые кодируют информацию как в вертикальном, так и в горизонтальном направлении. Чтобы получить доступ к закодированным данным из QR-кода, встроенная камера смартфона фиксирует изображение QR-кода, а затем декодирует его с помощью программного обеспечения для чтения QR-кода. Существует 40 различных версий QR-кодов с разной емкостью данных. Версия 1 состоит из 21 модуля X 21, из которых 133 могут использоваться для хранения закодированных данных. Версия 40, которая создает самый большой QR-код, имеет 23 648, следовательно, можно закодировать 4296 буквенно-цифровых символов. На рисунке 1 показан пример QR-кода версии 2, который является наиболее часто используемым. Помимо буквенно-цифровых символов, QR-коды могут кодировать двоичные файлы, Kanjis1 или управляющие коды. Кроме того, QR-коды читаются под разными углами, и данные могут быть успешно декодированы, даже если код частично покрыт или поврежден. Это связано с надежной коррекцией ошибок, основанной на кодах Рида-Соломона. Есть четыре различных способа исправления ошибок уровня, а именно L (низкий 7%), M (средний 15%), Q (квартиль 25%) и H (высокий 30%). Уровень коррекции ошибок L допускает до 7% нечитаемых модулей соответственно. Более высокие уровни коррекции ошибок увеличивают область, зарезервированную для кодовых слов коррекции ошибок, и уменьшают область, зарезервированную для фактических данных. Поэтому обычно предпочтительным является уровень коррекции ошибок L. Дополнительной функцией для стабилизации процесса декодирования является маскирование. Маскирование обеспечивает равномерное распределение между черными и белыми модулями. Соответствующая маска автоматически выбирается программным обеспечением кодирования при создании кода.