Чому не варто відкривати поштові вкладення від невідомих відправників

Вразливість, що підірвала Мережу, була виявлена в macOS деякий час тому. В Apple поставилися до неї якось не надто серйозно. Мисливцеві за вразливостями, який виявив її, виплатили п'яту частину мінімальної винагороди. Вразливість не внесли до реєстру вразливостей. Її, всього лише, усунули. Але, як незабаром з'ясувалося, не повністю. Вона все ще загрожує нашій безпеці. Цією лазівкою може скористатися будь-який негідник для захоплення контролю над нашим Мас'ом. І творити на ньому все, що йому завгодно. Особливо тепер, коли про цю дірку в захисті macOS відомо всім. У мережі можна знайти приклад її використання - приклад працює - але він не доводить що ця вразливість небезпечна. До речі, поштові вкладення від невідомих відправників взагалі краще не відкривати - а зараз особливо.

У повідомлення електронної пошти в Apple Mail можна вкласти не тільки файл, а й посилання на Інтернет-ресурс. Вкладене посилання пересилається як файл з розширенням .inetloc. За допомогою саме inetloc-файлів люди зі злочинними намірами можуть проникнути на ваш Mac. Навіть якщо на Mac встановлена новітня версія macOS - Big Sur, Catalina або Monterey, яка навіть ще не вийшла. Подвійне клацання значком inetloc-файлу, якщо в ньому приховане посилання на Інтернет-ресурс, відкриває цей ресурс у переглядачі за замовчуванням.


inetloc-файл можна завантажити на диск - і відкрити той же Інтернет-ресурс подвійним клацанням вже в Finder'e. Але що станеться якщо зловмисники «пошаманять» з inetloc-файлом? Напевно щось жахливе. Мисливця, який повідомив про цю вразливість, хтось (за словами мисливця, «якийсь клерк») попросив навести докази її небезпеки. Не дочекавшись відповіді, через місяць або два, мисливцеві сказали спасибі і заплатили йому втішний приз у п'ять тисяч доларів. Образивши людину до глибини душі.

Чи можна зламати Mac

За словами першовідкривача вразливості, посилання на ресурс в Інтернеті в inetloc-файлі можна замінити на кілька «будь-яких» команд. Звучить загрозливо, але на щастя, це не зовсім правда. У модифікованому inetloc-файлі посилання на Інтернет-ресурс можна замінити на адресу файлу у файловій системі macOS. Якщо цей файл існує, і ця програма або щось виконуване (який-небудь скрипт або сценарій), у відповідь на подвійне клацання буде запущено воно (або воно). Зловмисник повинен точно знати де знаходиться цей файл.

У прикладі смертельно небезпечного застосування вразливості inetloc-файл запускає додаток Калькулятор. Приклад з'явився тільки зараз. Дійсно запускає! Знову і знову, прямо в поштовому повідомленні і в Finder'e, як і було обіцяно. У тому числі і у версії macOS Big Sur в якій ця вразливість вже «усунена» Apple. І в останній бета-версії macOS Monterey. Ганьба «кращим у світі інженерам», вони і справді допустили грубу помилку і не всі врахували. Накосячили. Я впевнений що цей «косячок» вони виправлять, і не тільки в macOS Monterey.

Але де ж «смертельна загроза»? Чому відкривач цієї невразливості не надав експертам з безпеки Apple її приклад? З мисливцями за вразливостями, до речі, спілкуються не клерки, а експерти з безпеки, багато з яких самі колись заробляли на життя полюванням за вразливостями. Я не стверджую що вони не можуть не помітити щось важливе. Вони й самі так не вважають. І якщо серйозність вразливості викликає сумніви, її прийнято доводити. Якщо вас цікавлять подробиці, наступний розділ для вас. Він складніший.

Комп'ютер сам запускає програми

Нічого магічного в inetloc-файлах немає. Це файли XML, з жорсткою структурою, і тільки в одному з полів ця структура змінює значення від файлу до файлу. Значення цього поля має тип URL. Це уніфікований індекс ресурсу, який використовується для позначення адреси web або місця файлу у файловій системі. Тип ресурсу визначається його «схемою», наприклад, «file», «http», «https», «mailto» та іншими. В inetloc (скорочення від «Internet Location», місце в мережі Internet), по ідеї, в цьому полі повинні передаватися Інтернет-ресурси.

Але досі ніяких заходів проти посилань на ресурси іншої природи не робилося. Програми, скрипти і сценарії, вказані в inetloc-файлі, легко і невимушено запускалися. Зараз у мене немає можливості це перевірити, але кажуть що при запуску з inetloc-файлу ніяких перевірок не проводиться, і що таким способом можна запустити будь-який додаток, навіть якщо він не пройшов нотарізацію Apple. Рівень безпеки, вибраний користувачем у системних налаштуваннях («Запускати тільки програми з App Store» або не тільки, але підписане розробником) - ігноруються. Теоретично, за допомогою вразливості «inetloc» можна організувати проникнення в Mac, але як це можна зробити за допомогою поштових вкладень, я не знаю.


Повторю ще раз, тому що це важливо: inetloc-файли запускають тільки існуючі файли, що знаходяться в зазначених місцях. Запуск локальних файлів в inetloc-файлах і справді потрібно блокувати. У виправленні Apple блокується запуск URL початківців з "file://”. Усунувачі вразливості цим і обмежилися. Але URL у позначенні схеми яких використовуються одна або кілька заголовних букв замість рядкових ("File://”, “fiLE://" тощо) як і раніше спрацьовують. Скільки інженерів Apple і скільки років буде потрібно для виправлення цієї помилки? Іншими словами, чи буде ця вразливість остаточно усунена у фінальній версії macOS Monterey?

COM_SPPAGEBUILDER_NO_ITEMS_FOUND