Этой ночью стала известна уязвимость, при которой любой желающий может «взломать» игру Angry Birds путем простой замены одного файла.

Для того, чтобы сделать это, достаточно скачать где-либо саму игру и подменить в ней файл receipt из любого бесплатного приложения загруженного с вашего аккаунта.

Значение этого файла объясняет нам создатель Mémoires и Cathodique Дмитрий Честных из Сoding Robots:

Receipt — это уникальный для каждого покупателя и приложения файл, который есть внутри программы скачанной с App Store (например, Twitter.app/Contents/_MASReceipt/receipt). Он содержит:

  • Bundle ID (уникальный идентификатор каждого приложения)
  • Версию программы
  • Уникальный номер компьютера (технически – хэш SHA1 этого номера)

Данный файл подписан цифровой подписью, сертификатом Apple (то есть никто кроме Apple не сможет изменить эти значения).

Разработчики программ могут (но не обязаны) проверять валидность receipt. Apple не дает никаких функций для этого, разработчик сам пишет код для валидации. Правильная валидация должна быть такой:

  • прочитать receipt – проверить, верна ли цифровая подпись Apple
  • сравнить bundle ID из receipt со своим
  • сравнить уникальный номер компьютера
  • сравнить версию программы

Angry Birds не сравнивает bundle ID, поэтому к ним подходит receipt от других приложений. Но это еще не значит, что все остальные программы содержат такой же баг. В частности моя программа Mémoires выполняет данную валидацию.

Дмитрий также прокомментировал слух о создании универсального приложения для взлома программ из MAS:

Хакеры сообщили всем СМИ, что они сделали универсальную утилиту для взлома приложений, купленных в Mac App Store:

Kickback is a «clutch for mac» which cracked Mac applications on the Mac App Store. It will be released when we want it to be released. We’re not releasing it until the Mac App Store has a ton of junk in it.

Если я не ошибаюсь в своих расчетах, это ложь. Универсальной утилиты, которая бы ломала все приложения из Mac App Store нет и не может быть, пока они не подберут ключи к root-сертификату Apple. Система защиты Mac App Store устроена так же, как и привычные системы валидации на основе public keys: программа получает «ключ» и проверяет его на валидность. Проверка — в руках разработчика программы, Apple для этого не предоставляет никакого фреймворка.

Share.