Банковские и SIM-карты стали беззащитными из-за багов в платформе Java Card

Безопасность Стратегия безопасности
мобильная версия
, Текст: Роман Георгиев

В программных компонентах Java Card выявлены почти два десятка ошибок, позволяющих, в том числе, полностью захватывать контроль над ними.


Баги в Java Card

Эксперты компании Security Explorations обнаружили почти два десятка уязвимостей в программной платформе Java Card, предназначенной для использования в смарт-картах и похожих встраиваемых устройствах. Уязвимости позволяют записывать в такие устройства вредоносный код и захватывать над ними контроль.

JavaCard предназначается для использования в SIM-картах, платежных картах, картах-ключах и т. д. Платформа позволяет запускать небольшие программы, которым достаточно будет ресурсов, предоставляемых микросхемами карты. Такие апплеты, как правило, предназначены для проведения проверок авторизации, криптографических операций и т. д.

По данным Oracle, сейчас в мире используется около 6 млрд таких устройств, использующих Java Card.

В публикации SecurityExplorations указывается, что эксперты компании нашли 18 разных проблем с безопасностью, которые позволяют обходить все или почти все защитные меры, ради которых карты и выпускаются. Внутренние программные недостатки позволяют использовать модифицированный кард-ридер для того, чтобы, например, записывать вредоносные апплеты в карту, — программная защита от подобной инъекции кода отсутствует, а значит потенциальный злоумышленник может сделать с картой все, что угодно.

haker600.jpg
Обнаружились критические проблемы в системе платежных и SIM-карт

Баги выявлены в последней версии платформы Java Card 3.1.

Загрузить и навредить

«Существуют способы, с помощью которых искаженные приложения, загруженные в уязвимые карты Java Card, легко могут нарушить безопасность памяти, — написал Адам Гоудиак (Adam Gowdiak), исполнительный директор SecurityExplorations, — Подобные нарушения прямо ведут к компрометации защиты виртуальной машины Java Card, обходу файерволла апплетов и ставит под угрозу безопасность сопутствующих приложений».

По словам эксперта, причиной являются «архитектурные решения из далекого прошлого», в результате которых «технологию Java Card сложно воспринимать с точки зрения безопасности...».

При этом Гоудиак признает, что успешная загрузка вредоносного апплета на карту требует либо знания ключей безопасности, либо использования каких-либо уязвимостей в ОС карты, в установленных приложениях. Иными словами, злоумышленнику надо точно знать, какое ПО установлено на данную карту, и какая у него архитектура. Но это можно выяснить, так что сценарий подобного рода исключать нельзя.

«Нельзя исключать и того, что скомпрометированные карты могут использоваться для проникновения в закрытые и секретные учреждения, что превращает программную уязвимость во вполне чувствительную угрозу, — полагает Олег Галушкин, директор по информационной безопасности компании SECConsultServices. - То, что эти уязвимости относительно сложно эксплуатировать, — фактор снижения рисков. Однако уязвимостей много, а перспективы их оперативного исправления, скажем так, туманны».

Oracle и непосредственный производитель карт Gemalto уведомлены о проблемах, но пока никак не отреагировали. 16 апреля Oracle выпускает квартальный кумулятивный патч для своих продуктов, так что есть вероятность, что исправления JavaCard будут выпущены вместе с ним.