Як macOS захищає ваші дані від шкідливого програмного забезпечення

Зі зростанням занепокоєння щодо безпеки в епоху зв'язаних технологій, зловмисні атаки від поганих акторів продовжують бути проблемою для багатьох організацій та користувачів.

Злоякісне програмне забезпечення (шкідливе ПЗ) може бути встановлене на ваших пристроях, що може призвести до втрати облікових даних або даних, пошкодження операційних систем або до програм-вимагачів.

З поширенням мільярдів цифрових пристроїв по всьому світу та зростанням інтернет-торгівлі, шкідливе ПЗ стає все більшою загрозою.

Моделі безпеки програмного забезпечення

У перші дні програмного забезпечення, до того як інтернет став поширеним, більшість систем були відкритими і програмне забезпечення могло встановлюватися звідки завгодно. Зазвичай це було з CD-ROM або дискет.

З появою онлайн-магазинів програмного забезпечення це стало меншою проблемою. Це тому, що вітрини додатків перевіряють більшість програм перед їх випуском для забезпечення безпеки.

Проте, погане програмне забезпечення іноді все ж проникає.

Apple намагалася вирішити цю проблему за допомогою впровадження кураторських магазинів, таких як App Store для iOS. Але навіть там іноді з'являлося погане програмне забезпечення.

Кураторські магазини є більш безпечними та надійними, але вони все ще не є бездоганними.

Mac трохи відрізняється, тому що на початку свого існування він також міг приймати програмне забезпечення з будь-якого джерела. Класичні програми, такі як Virex та Norton Utilities, допомагали "чистити" Mac від зловмисного програмного забезпечення.

Сьогодні Mac App Store пропонує кураторський відбір, перевірку квитанцій додатків та нотаріальне підтвердження додатків. Але Mac все ще дозволяє встановлювати програмне забезпечення з будь-якого джерела, якщо певні налаштування вимкнені.

Підпис коду, Developer ID та Gatekeeper

Кілька років тому Apple запровадила додатковий захід безпеки для програмного забезпечення macOS: Gatekeeper. Разом із Developer ID, Gatekeeper за замовчуванням забезпечує безпеку завантаженого програмного забезпечення для Mac.

З Gatekeeper розробники macOS реєструються та отримують Developer ID від Apple, який потім використовується для цифрового підпису програмного забезпечення Mac, яке вони створюють.

Якщо Gatekeeper увімкнений у macOS, він забезпечує підписання програм розробниками, які їх створюють. Також він попереджає при першому запуску Mac додатку, якщо додаток не від відомих, зареєстрованих розробників.

Користувачі Mac можуть вибирати в Налаштуваннях системи->Конфіденційність & Безпека->Дозволити програми, з яких програм вони хочуть дозволити встановлення: лише додатки з App Store або додатки з App Store & Відомі розробники.

Сервіси підпису коду та нотарізація додатків забезпечують, що програмне забезпечення є дійсним і не зламаним або шкідливим, коли користувачі його завантажують.

Захист цілісності системи (SIP)

macOS пропонує ще одну функцію безпеки системи, яка допомагає забезпечити безпеку Mac: Захист цілісності системи або SIP.

SIP обмежує, які додатки можуть запускатися і який код може виконуватися на Mac. За замовчуванням можуть запускатися лише додатки з App Store або програмне забезпечення від зареєстрованих розробників Apple.

Воно також обмежує втручання або зміну системних файлів без авторизації.

Можливо вимкнути SIP у Terminal, але це не рекомендується. Це знижує безпеку macOS і може дозволити шкідливому коду виконуватися на Mac.

Утиліта командного рядка може бути використана для перевірки і зміни параметрів SIP.

Щоб отримати поточний статус SIP на вашому Mac у Terminal, введіть:

і натисніть Return.

Привілеї, ескалація, сокети та інструменти допомоги

Більшість UNIX-програм використовують концепцію привілеїв і привілейованих користувачів. Наприклад, користувач root має необмежені привілеї безпеки та може вносити зміни в програмне забезпечення за власним бажанням.

З міркувань безпеки, користувач root за замовчуванням вимкнений у macOS. Інші користувачі можуть мати різні рівні привілеїв, які дозволяють певні дії, включаючи встановлення або видалення програмного забезпечення.

Користувачі з правами адміністратора мають підвищені привілеї, і для багатьох операцій у macOS потрібен пароль адміністратора.

Використовуючи тимчасове підвищення привілеїв, користувачам macOS можна надати додаткові права на короткий період часу.

Добре спроєктоване програмне забезпечення має бути структуроване таким чином, щоб код, критично важливий для безпеки, виконувався в окремому процесі, який називається допоміжним інструментом. Допоміжні інструменти забезпечують виконання лише невеликих частин коду з підвищеними привілеями - таким чином обмежуючи, які частини програм можуть виконувати критичні завдання, що можуть загрожувати безпеці системи.

Додаток з хорошою структуризацією помістить весь код, що може бути вразливим, у допоміжний інструмент, а потім, коли потрібні дозволи, запустить допоміжний інструмент після авторизації користувача. Це підвищує безпеку і також означає, що скомпрометовані програми не можуть запускати весь код з підвищеними привілеями - що є ризиком для безпеки.

Ідея полягає в тому, щоб запустити допоміжний інструмент і підвищити привілеї на мінімальний час, виконати привілейовані операції, а потім повернути привілеї до їх попереднього рівня, коли допоміжний інструмент завершить роботу.

Сокети домену UNIX і конвеєри також можуть бути використані для безпечної передачі інформації між процесами.

Демони безпеки та фреймворки

macOS є однією з найбільш захищених операційних систем у світі, але вона не є бездоганною.

Безпека в macOS управляється за допомогою поєднання фонових процесів (демонів) та фреймворків коду Apple, які завантажуються в додатки при їх запуску. До них належать:

  • launchd
  • secured (сервер безпеки)
  • XPC Services
  • Authorization Services.framework
  • Security.framework
  • System Configuration.framework
  • Service Management.framework
  • Endpoint Security.framework
  • Cryptographic Services
  • Code Signing Services
  • Keychain Services
  • Hardened Runtime

Динамічне зв'язування забезпечує завантаження фреймворків у пам'ять лише тоді, коли їхні API або інтерфейси фактично використовуються.

Наведені вище програмні компоненти надають такі послуги:

launchd (демон запуску) — це системний демон, який працює у фоновому режимі та керує запуском і завершенням роботи додатків та інших процесів у macOS.

secured (демон безпеки) керує безпечним доступом, підвищенням привілеїв, запуском інструментів та певних ідентифікаторів користувачів, а також іншими послугами безпеки.

XPC Services керує безпечним міжпроцесним зв’язком між програмними компонентами, а також співпрацює з launchd для безпечного запуску допоміжних інструментів.

Authorization Services.framework керує запитом пароля адміністратора у користувачів, кешуванням ескалації привілеїв і підтримкою таймерів, які знижують привілеї після заданого часу. Коли ваш Mac запитує пароль адміністратора для встановлення програмного забезпечення або зміни налаштувань, він надсилає повідомлення до secured для відображення діалогового вікна введення пароля адміністратора, щоб користувач міг ввести ім'я та пароль.

Security.framework керує ідентифікацією користувача (автентифікацією) та надає доступ до ресурсів, захищає дані на диску та через мережеві з'єднання, а також перевіряє дійсність коду перед його запуском.

System Configuration.framework керує системними налаштуваннями та забезпечує, що обмежені налаштування можуть бути змінені лише за наявності необхідної авторизації.

Service Management.framework дозволяє додаткам керувати агентами запуску, демонами запуску та елементами входу.

Endpoint Security.framework дозволяє розробникам писати власні системні розширення, які підвищують безпеку.

Криптографічні сервіси надають стандартні API для криптографії, керують ключами, сертифікатами та паролями, а також генерують випадкові числа та хеші.

Сервіси підпису коду надають послуги підпису та перевірки програмного забезпечення, щоб гарантувати його дійсність та захист від компрометації.

Сервіси збереження ключів керують системними ключами, сертифікатами та ідентифікаціями.

Захищене середовище виконання (разом із SIP) захищає macOS від впровадження коду, пошкодження пам'яті та викрадення динамічних бібліотек. Інтегроване середовище розробки Xcode від Apple включає налаштування захищеного середовища виконання, зокрема дозвіл або заборону виконання коду Just-In-Time (JIT), використання непідписаної пам'яті та змінних середовища динамічного завантажувача (DYLD).

Зміна змінних середовища перед запуском шкідливого програмного забезпечення є одним зі способів впровадження шкідливого коду в працюючі програми.

Усі ці компоненти працюють разом, щоб забезпечити максимальну безпеку програмного забезпечення macOS.

Концепція безпеки Zero Trust означає, що весь привілейований доступ до програмного забезпечення обмежений, якщо привілейований користувач не надає явний дозвіл на якусь безпечну дію. Zero Trust за замовчуванням передбачає, що шкідливе програмне забезпечення не може працювати без конкретного дозволу.

Ви можете побачити, які демони наразі працюють на вашому Mac, у утиліті Activity Monitor або за допомогою команди в Terminal. Щоб скористатися, введіть:

і натисніть Повернення.

Це відображає всі запущені процеси — включно з демонами, ідентифікаторами процесів (PID), часами виконання, використанням процесора, портами тощо.

Шкідливе програмне забезпечення на Mac

Шкідливе програмне забезпечення (malware) визначається як зловмисне програмне забезпечення, яке може зламати або інфікувати комп'ютер, мережу або пристрій з метою відключення, пошкодження або руйнування пристрою, а також для крадіжки та передачі несанкціонованих даних через мережу.

Закон про комп'ютерне шахрайство та зловживання робить федеральним злочином у США втручання в роботу, відключення або отримання доступу до комп'ютера або мережі без конкретного дозволу. Також це робить злочином передачу або перехоплення вкраденої інформації через мережу.

Типи шкідливого програмного забезпечення включають (але не обмежуються ними) віруси, троянські програми, зловмисні додатки чи фреймворки, драйвери та навіть прошивки. Мережеві атаки також можливі шляхом впровадження шкідливого програмного забезпечення в мережевий код або прослуховування мережевих комунікацій.

Вимагачі – це шкідливе програмне забезпечення, яке викрадає комерційні таємниці компанії або дані клієнтів, а потім дозволяє зловмисникам вимагати від організації викуп, щоб вони не використовували або не розголошували викрадені дані.

Віруси – це невеликі фрагменти коду, які можуть бути встановлені і виконані віддалено на локальному комп'ютері користувача, завдаючи шкоди непомітно.

Віруси можуть ушкоджувати або змінювати код додатків, драйвери, файли, бази даних або системне програмне забезпечення, щоб виконувати деякі шкідливі дії. Це може включати видалення/пошкодження даних або зміну програмного забезпечення для виконання шкідливих дій.

Віруси можуть бути безшумними, невиявленими і крихітними – і часто залишаються непоміченими, поки не стає занадто пізно. Оскільки віруси можуть бути встановлені практично будь-де, їх важко зупинити і ще важче позбутися, коли вони інфікують комп'ютер чи пристрій.

У минулому навіть було відомо, що віруси інфікують прошивку пристроїв, таких як накопичувачі або мережеві маршрутизатори, роблячи їх назавжди пошкодженими та непридатними для використання.

Троянський кінь зазвичай вважається програмою, яка при запуску завдає шкоди збереженим даним або іншому встановленому програмному забезпеченню і змушує його виконувати певну шкідливу діяльність. Одним із поширених векторів атаки троянських коней є тихе заміщення програмних каркасів або системних компонентів на шкідливу версію-імітатор, яку потім несвідомо запускають пов'язані додатки.

Троянські коні роблять звичайні додатки непоінформованими про те, що при виклику зламаних API каркасів імітатор завдасть шкоди. Троянські коні часто представляють собою окремі додатки або інсталятори, або ж каркаси і пов’язані бібліотеки.

Драйвери пристроїв, так само можуть бути встановлені для запуску шкідливого коду, коли використовується певний пристрій. Мережеві драйвери шкідливого програмного забезпечення особливо сумнозвісні, оскільки вони можуть передавати дані за бажанням через мережу - які не можуть бути відновлені або "забуті" після відправки.

Шкідливе мікропрограмне забезпечення заражає або заміщує існуюче мікропрограмне забезпечення всередині зовнішніх пристроїв, змушуючи їх завдавати шкоди під час нормальної роботи або при відправці конкретних стандартних команд на пристрій. Шкідливе мікропрограмне забезпечення пристроїв зберігання, ймовірно, є найпоширенішим, оскільки воно може бути легко встановлено через команди флеш-пам’яті в пристрої - і тоді стандартні команди введення/виведення диска викликають втрату даних або їх пошкодження.

Мережеві атаки проявляються у вигляді шкідливого коду, що впроваджується у веб-сторінки або команди бази даних, зазвичай шляхом додавання додаткового коду в кінці стандартних команд і даних.

Шкідливе програмне забезпечення з переповненням буфера, наприклад, додає невелику кількість шкідливого коду до кінця URL, веб-сторінки, скрипту або мережевого пакету - що при отриманні та запуску на клієнтському комп'ютері завдає шкоди.

Атаки з переповненням буфера є одними з найпоширеніших атак на основі веб-технологій. Вони важкі для виявлення, оскільки більшість мережевого коду і веб-сторінок запускаються автоматично і поза більшістю моделей безпеки програмного забезпечення.

Більшість веб-браузерів тепер мають налаштування для обмеження того, які види програмного забезпечення можуть бути завантажені і запускатися автоматично у їхніх вікнах.

Додатки Java особливо відомі тим, що дозволяють завантаження шкідливого програмного забезпечення.

Інші типи мережевих атак включають самозванців, атаки "людина у середині", крадіжку облікових даних, фішинг, підробку електронної пошти та розподілену відмову в обслуговуванні (DDoS), при якій віддалені комп'ютери перевантажують сервери такою кількістю даних, що вони припиняють працювати.

Атаки соціальної інженерії – це обманні тактики, за допомогою яких зловмисники переконують жертв, що вони є легітимними, щоб отримати доступ до їхньої захищеної інформації або змусити їх вчинити дію, яка може їм зашкодити. Соціальні інженери можуть також намагатися маніпулювати жертвами для того, щоб вони несвідомо скоїли злочини, щоб у випадку їх викриття вони могли звинуватити когось іншого.

Соціальна інженерія особливо використовується в широкій і здебільшого невідомій сфері промислового шпигунства (шпигунство).

Що ви можете зробити

Завдяки добре продуманій моделі безпеки macOS і привілеям UNIX, Mac є дуже захищеною системою. Проте, порушення можуть траплятися.

Через вимкненого користувача root та обмежені привілеї, під якими працює більшість програмного забезпечення Mac, зловмиснику важко змусити macOS виконувати шкідливий код із підвищеними привілеями. Підписані та захищені допоміжні інструменти ускладнюють ці спроби ще більше - і гарантують, що більшість шкідливого програмного забезпечення не зможе затриматися досить довго, щоб завдати серйозної шкоди.

Під пильним наглядом secured і launchd, обдурити програмне забезпечення Mac, щоб воно працювало з повними дозволами без пароля адміністратора, складно. Також важко обійти secured, оскільки воно може працювати лише як певний користувач, контрольований ОС, з підвищеними привілеями - і без нього інше захищене програмне забезпечення не може бути авторизоване для запуску.

Apple швидко видаляє найбільші частини шкідливого програмного забезпечення зі свого магазину додатків. Поки SIP увімкнений, програмне забезпечення від неавторизованих зареєстрованих розробників Apple не може запускатися без попередження користувача.

Ви також можете використовувати різні програми-"очищувачі" для сканування вашого Mac та пристроїв зберігання на наявність шкідливого програмного забезпечення. Але будьте обережні - навіть програми-очищувачі раніше маскувалися як шкідливе програмне забезпечення!

Періодичне сканування на віруси та видалення підозрілих додатків з вашого Mac може допомогти зменшити ризик. Ще одна хороша політика полягає в тому, щоб просто звести до мінімуму кількість встановлених додатків, таким чином звужуючи поверхню атаки.

Ви можете встановити рідко використовуване програмне забезпечення на один зовнішній диск - і підключати диск лише тоді, коли вам потрібно отримати доступ до цього програмного забезпечення.

Зведення до мінімуму системних розширень, скриптів, шрифтів від третіх сторін, драйверів та розширень ядра також є гарною ідеєю - це також знизить навантаження на фонові завдання.

Ви можете розглянути можливість встановлення найвищого рівня безпеки вашого веб-браузера та увімкнення блокування підозрілих шкідливих сайтів за замовчуванням. Це може допомогти зменшити ймовірність того, що мережна атака з шкідливого сайту може завдати шкоди вашому Mac.

Деякі браузери мають налаштування, які блокують всі завантаження веб-аплетів, щоб захистити від небезпечних завантажень троянських коней.

Також переконайтеся, що всі паролі WiFi та точки доступу у ваших мережах є захищеними - і не дозволяйте анонімні входи. Деякі налаштування мережі Mac дозволяють вимагати пароль адміністратора для зміни налаштувань.

Переконайтеся, що права адміністратора на вашому Mac обмежені - надавайте їх лише тим користувачам, які дійсно цього потребують, і лише на необхідний термін. За замовчуванням більшості користувачів на вашому Mac не слід надавати адміністративний доступ.

Ви також можете захотіти тримати облікові записи Гостя вимкненими. Увімкнення облікових записів Гостя дозволяє будь-якому віддаленому користувачу підключитися до вашого Mac без пароля.

Також тримайте вимкненими Управління віддаленим доступом, Віддалений вхід та Віддалене сценаріїв додатків у Налаштування системи->Спільний доступ, якщо вони вам не потрібні.

Gatekeeper та захист під час виконання

Якщо ви завантажуєте та запускаєте програмне забезпечення для Mac, яке не з App Store і не має авторизованого ідентифікатора розробника, macOS попередить вас і запитає, чи впевнені ви, що хочете його запустити. Це досягається за допомогою частини macOS під назвою Gatekeeper.

Якщо ви впевнені, що хочете запустити програмне забезпечення, ви можете натиснути "Дозволити" у вікні сповіщення Finder, що дозволить програмі працювати. Ця проста перевірка безпеки дає вам додатковий шанс перевірити програмне забезпечення перед тим, як воно буде запущено після першого подвійного клацання.

Обмеження програм лише додатками з App Store у системних налаштуваннях означає, що ви можете встановлювати та запускати лише додатки з App Store на вашому Mac. Це запобігатиме запуску всіх можливих сторонніх програм, завантажених поза App Store, але в результаті ви будете більш обмежені у виборі програмного забезпечення.

Для отримання фонової та історичної інформації про те, як працюють демони та агенти на Mac, дивіться TN2083

Демони та агенти.

Також не забудьте прочитати Керівництво з безпеки платформи Apple та загальну сторінку з безпеки Apple.

Apple доклала значних зусиль для розробки та створення macOS, щоб забезпечити її безпеку - і в більшості випадків вам не доведеться турбуватися про безпеку на вашому Mac. Але пам'ятайте про все вищесказане, коли використовуєте свій Mac, щоб звести до мінімуму шанси на зараження шкідливим програмним забезпеченням.

Роман Мельник

Роман має пристрасть до технологій та інновацій. Він завжди в курсі останніх новин у сфері IT та постійно вивчає нові технології. Роман любить ділитися своїми знаннями та досвідом з іншими через статті та огляди. У вільний час він займається програмуванням та тестуванням нових гаджетів.

Роман Мельник
Редактор

Поки немає коментарів…

avatar