Що таке пісочниця та як пісочниця програми
Пісочниці існують, тому що з піском весело грати, але ми не хочемо, щоб його відстежували по всьому шкільному двору і в будинок. Якщо ви коли-небудь проводили якийсь час на пляжі, ви знаєте, наскільки проникний пісок і як важко його позбутися. Перш ніж ви це дізнаєтесь, у передпокої є пісок, пісок в пральні та пісок під душем.
У комп’ютерному світі майже та сама проблема існує і з програмами. Програми, що працюють на вашому комп’ютері, діляться ресурсами цього комп’ютера. Усі ваші програми використовують одне і те ж статичне сховище, наприклад, дискові накопичувачі, однакову пам’ять і той же центральний процесор (CPU). Коли такі загальні ресурси поділяються, ви можете вирішити проблему з піском. Програма закінчується на всьому комп’ютері, оскільки вона записує дані на всі частини вашого диска, отримує доступ до пам’яті з усіх областей вашої пам’яті та надсилає запити до процесора разом з усіма іншими програмами. Ми зберігаємо пісок в пісочниці з тієї ж причини, що і для комп’ютерних програм пісочниці: щоб містити пісок – або програму – для керованої області.
Основний дизайн комп’ютера полегшує цей обмін ресурсами. Дозволяючи програмам ділитися ресурсами, комп’ютер може, здавалося б, мати багато завдань і, здається, робить багато справ одночасно. Саме такий тип поведінки ми вимагаємо від наших комп’ютерів, телефонів, планшетів та годинників протягом багатьох років, але ці можливості можуть спричинити небажані побічні ефекти. Програми можуть вести себе погано і збиватися або спричиняти збій інших програм; вони можуть мати залежність від якоїсь іншої програми на комп’ютері, яка суперечить потребам інших програм; і, все частіше, програми є шкідливими і намагаються отримати доступ до поза межами районів, щоб зробити погані справи.
Пісочниця браузера
Всесвітня павутина (www) виникла в 1989 році, і перший дійсно популярний браузер Mosaic запустив Інтернет в популярну культуру. Мережа була створена для обміну документами; вона ніколи не була розроблена для підтримки того, що ми маємо зараз: Інтернет-системи доставки, де програмне забезпечення працює в хмарі. Ця прірва між дизайном і фактичним використанням створила незліченну кількість можливостей для поганих хлопців використовувати веб-браузери як механізм доставки своїх зловмисних програм.
Рядок, де закінчується фізичний настільний комп’ютер і починається Інтернет, дуже розмита. Більшість програм, які ми запускаємо сьогодні, частково або повністю залежать від функціонування підключення до Інтернету. З цим постійним підключенням до Інтернету, що перегукується на задньому плані, стає очевидним, що дуже привабливим вектором атаки є програми, які ми використовуємо для доступу до Інтернету. Вгорі цього списку – поважний веб-браузер. Насправді, в 2016 році компанія з безпеки Інтернет Sucuri зареєструвала понад півмільярда (тобто мільярд з B) шкідливих запитів, спрямованих на веб-сайти та веб-переглядачі за один 30-денний період.
Оскільки веб-переглядачі настільки плодовиті і завжди ввімкнуті, вони варті особливої уваги. Багато сучасних браузерів розроблені для автоматичного запуску у власних пісочницях без будь-яких налаштувань з боку користувача.
Google Chrome був пісочницею з самого початку.
Mozilla Firefox знадобилася більше часу для впровадження пісочниць, але зараз майже на 100%.
Internet Explorer представив певний рівень пісочниці в 2006 році за допомогою IE 7, а пісочниці Microsoft Edge всі процеси зараз.
Веб-переглядач Apple Safari також запускає веб-сайти в окремих процесах.
Якщо ви користуєтеся екзотичним браузером або хочете ще більше роз’єднатись між вашою ОС та веб-переглядачем, ви можете ознайомитись із параметрами вручну, які перераховані в наступному розділі.
Ручна пісочниця
Хоча браузери є дуже важливою слабкістю в будь-якій операційній системі, вони аж ніяк не є єдиною слабкістю. Будь-яка програма може бути шкідливою, тому позиція безпеки будь-якого комп’ютера може бути посилена за допомогою пісочниці. Ручна пісочниця – це процес цілеспрямованого налаштування вашої системи на пісочницю програми, яка в іншому випадку може мати повний доступ до вашої системи.
Віртуальні машини
Віртуалізація настільних комп’ютерів пройшла довгий шлях за останні роки, і зараз досить просто встановлювати та використовувати віртуальні машини. Віртуальна машина, як це звучить: «машина», яка не є реальною. Це дійсно просто програмне забезпечення. Найбільш поширене використання віртуальної машини – це встановити в неї копію вашої операційної системи та запустити цю віртуальну машину на робочому столі так, ніби це була інша фізична машина. Цей тип розділення забезпечує велику безпеку, оскільки програми можуть отримати доступ лише до ресурсів всередині віртуальної машини. Якщо шматок шкідливого програмного забезпечення мав захопити та заразити вашу систему, він зможе заразити лише віртуальну машину, що обмежує кількість шкоди, яку вона може завдати. Можна навіть запустити альтернативні операційні системи у віртуальній машині, такі як запуск Linux-дистрибутива у віртуальній машині на ПК з Windows.
Існує багато застосунків для віртуалізації, кожне з яких спрямоване на певний тип використання. Найпопулярніші та зрілі програми для віртуалізації настільних комп’ютерів, якими звичайно користувачі можуть користуватися, – це VirtualBox та Parallels.
Передумови: віртуалізація складається з двох основних частин. Термін господар відноситься до власне фізичного комп’ютера, на якому працює програмне забезпечення для віртуалізації. Термін гість відноситься до операційної системи, що працює в додатку для віртуалізації.
VirtualBox
VirtualBox належить Oracle і має клієнтів для кожної основної операційної системи. Після встановлення VirtualBox ви можете створити віртуальну машину за допомогою кнопки New. Вам потрібно буде надати носій для встановлення операційної системи, оскільки VirtualBox з цим не постачається. Дистрибутиви Linux легко знайти в Інтернеті – хороший список – це дистрибуція веб-сайту, а для власних операційних систем, таких як Windows, вам знадобиться мати інсталяційний компакт-диск під рукою.
Паралелі
Parallels дуже схожий на VirtualBox, за винятком того, що він працює лише на macOS і спеціально побудований для запуску Windows у віртуальній машині. Якщо ви шукаєте цю комбінацію – запуск Windows на робочому столі macOS -, то паралелі можуть бути найкращим рішенням для вас. Паралелі не є безкоштовними, проте існує 30-денна безкоштовна пробна версія.
Пісочниця
Девіз Sandboxie – Trust No Program. Він працює виключно в Windows і вимагає відокремити запущені програми від базової операційної системи. Панель управління Sandboxie використовується для призначення конкретних програм для запуску в пісочниці. Найпоширеніші програми, які представляють найбільші загрози, такі як браузери та програми електронної пошти, за замовчуванням вказані як параметри конфігурації, а інші програми можна додавати за потреби.
Дані всередині Sandboxie знищуються, коли пісочниця закрита, але можна налаштувати Sandboxie залишати важливі дані без змін. Папки, що містять електронні листи та закладки веб-браузера, є прикладами даних, які можуть витримати видалення з пісочної скриньки.
Sandboxie призначений для домашніх користувачів, що відображається в його недорогих цінах.
Qubes OS
QubesOS (вимовляє «кубики») заслуговує на особливу згадку про віртуалізацію. Qubes використовує гіпервізор Xen замість VirtualBox. Він запускає кілька гостьових операційних систем, і кожна окрема від іншої. Це дозволяє пісочниці окремих програм, кожне у власній віртуальній машині, а не просто пісочницю всієї гостьової операційної системи. Відмінна відмінність QubesOS в тому, що Xen – це власна операційна система; жодна операційна система «хост» не працює під ним. Тут я писав більше про Qubes та інші дистрибутиви Linux, орієнтовані на анонімність.
Виділяючи час на пісочниці, ваша система може забезпечити надійну захист від багатьох видів шкідливих програм та допомогти в розробці програмного забезпечення. Немає заміни на здорову дозу параної при використанні Інтернету, але виділення ваших більш вразливих програм може допомогти.
Типи проблем, які можуть викликати непісочні програми
Програми врізалися одна в одну
У перші дні обчислень ЦП роздавав ресурси за принципом «перший прихід-перший-сервіс». Це спрацювало добре, коли наші комп’ютери мало що робили, але в наші дні використовуються набагато складніші методи розподілу ресурсів. Процесори жорстоко захищають межі виділених ними ресурсів, і якщо програма намагається отримати доступ до ресурсу, який не був призначений для нього спеціально, програма чи інші програми можуть зірватися.
Запуск програми в пісочниці дозволяє системі заздалегідь виділити такі ресурси, як пам’ять і дисковий простір, перш ніж програма вимагає чогось. Це гарантує, що ці ресурси готові до програми, коли вона потребує, а також забезпечує те, що жодна інша програма не може використовувати ці ресурси.
Програми з різними залежностями
Кожна програма має численні версії себе. Дуже мало програм ідеально підходять під час їх первинного запуску, тому ми постійно піддаємось нескінченному циклу оновлення. Наші пристрої назавжди говорять нам про те, що потрібно застосовувати оновлення або доступні нові версії наших програм. Важливо дозволити цим оновленням відбуватися якнайшвидше, оскільки багато з цих оновлень пов’язані з проблемами безпеки або продуктивності. Якщо вимкнути оновлення, зазвичай ваш пристрій стає менш захищеним та працює в стані, меншому від ідеального.
Під основними програмами, якими ми користуємось та взаємодіємо кожен день, є набір допоміжних програм. Ці програми існують, щоб допомогти основній програмі запуститись належним чином. Ми, люди, рідко знаємо про ці програми, але основна програма не може функціонувати без них. Ці програми-помічники називаються залежності на мові розробників. Як і будь-яка інша програма, ці залежності постійно оновлюються та змінюються, і тут все може стати складним.
Якщо основна програма використовує певну функцію, яку надає залежність, але залежність покращується і раптом вона більше не виконує цю функцію, то основний додаток буде згортатися. Основна програма не отримує очікуваного результату від цієї залежності. У багатьох випадках похибка залежності настільки несподівана, що головна програма просто збивається безцеремонно. Основний розробник додатків, ймовірно, не попереджений заздалегідь про зміни в залежності, тому складно пояснити таку ситуацію і виправити це витончено..
Більшість програмістів роблять все можливе, щоб забезпечити це зворотна сумісність, що означає, що навіть якщо новіша версія їхнього додатка не мала функції, яку вона мала в минулому, вона все одно буде обробляти запити на цю функцію витончено, так що інші додатки залежно від неї не виходять з ладу. Однак деякі дуже помітні винятки, такі як Java та Python, як відомо, дуже важко працювати з оновленням під час оновлення. У світі Linux добре відома фраза “пекло залежності” стосується проблем, пов’язаних з великими оновленнями системи. У деяких випадках програми залежностей мають власні залежності, і не чутно опинятися в ситуації оновлення, коли неможливо задовольнити всі залежності. Наприклад, якщо моїй програмі Puppy Vet Tracker потрібна версія 2.0 якоїсь залежної програми, але моя програма Daily Quarte Star Wars потребує версії 1.0 тієї самої залежної програми, то не можна задовольнити цю вимогу для обох програм.
Розробники часто стикаються з подібним видом проблеми, і пісочниця – це один із способів її вирішення. Створення пісочниці та встановлення в неї мого Puppy Vet Tracker дозволило б оновити залежну програму до версії 2.0. Основна комп’ютерна система залишилася б із версією 1 залежної програми, і тому я все ще можу отримати свою щоденну цитату “Зоряні війни”. Безпрограшний.
Шкідливі програми
Розглянемо ситуацію, коли програма використовує ваш комп’ютер з усіма іншими запущеними програмами. Деякі програми, що працюють на вашому комп’ютері, можуть містити конфіденційну інформацію. Можливо, у вас відкриті юридичні документи, електронні таблиці або менеджер паролів, і ці програми зберігають деякі дані в пам’яті. Існують шкідливі програми, які розглядають області комп’ютера, призначені іншим програмам, щоб побачити, що вони можуть знайти. В останні роки розподіл ресурсів став кращим, тому програмі важче отримати доступ до даних, які не є в спеціально призначених для неї областях, але такі способи злому, як спроба читання за межами пам’яті, призначеної для програми, можуть працювати.
Підступ до успішної ексфільтрації даних (видалення даних із вашої системи) завжди спирався на ошукання користувача комп’ютера встановлювати зловмисне програмне забезпечення. Зазвичай це робиться за допомогою соціальної інженерії або фішинг-тактики і може призвести до оптового компромісу системи, де кожен файл може бути викрадений.
Програми пісочниці можуть забезпечити дуже сильну захист від шкідливих програм. Якщо програма є пісочницею належним чином, вона може отримати доступ лише до пам’яті та дискового простору, призначеного їй. Отже, відкриття конфіденційних документів у пісочниці зазвичай не дасть можливості шкідливій програмі отримати доступ до них, оскільки документ знаходиться не в тому ж просторі пам’яті, що і шкідливі програми. Сказавши це, хакери мають дуже узгоджені зусилля, щоб проникнути в пісочниці та вийти. Це називається втеча від віртуального середовища і вважається настільки серйозним типом нападу, що нещодавно Microsoft виплатила бонус у розмірі 105 000 доларів команді злому хакею, яка продемонструвала, що це можливо за допомогою браузера Edge.