Ви дізнаєтесь про основні проблеми, пов’язані з помилками цілісності програмного забезпечення та даних, зокрема про ненадійне зберігання даних, вразливості програмного забезпечення та загрози від ненадійних джерел. Також буде розглянуто, як контрольні суми та технологія Subresource Integrity допомагають перевіряти цілісність файлів і захищати веб-додатки.
Помилки цілісності програмного забезпечення та даних – це проблеми, які впливають на довіру до програмного забезпечення та даних.
Опис: Зберігання даних без належного захисту або перевірки.
Приклад: Дані, що зберігаються в нешифрованому вигляді, що може бути доступне для зловмисників.
Опис: Вразливості в програмному забезпеченні, що дозволяють модифікацію або компрометацію його цілісності.
Приклад: Ненадійне управління оновленнями або модифікаціями коду, що може дозволити зловмисникам вставляти шкідливий код.
Опис: Використання даних з ненадійних або незахищених джерел.
Приклад: Використання даних з неперевірених або ненадійних джерел, що може призвести до зловживань або помилок.
Контрольні суми — це невеликі сегменти даних, створені з інших цифрових даних, які використовуються для перевірки цілісності файлів. Вони допомагають впевнитися, що дані не були змінені або пошкоджені.
Зазвичай контрольні суми подаються у вигляді хешів. Завдяки їм можна перевірити, чи залишився файл незмінним під час завантаження або передачі.
Приклад:
Використовуючи цю команду, ми можемо порівняти згенеровану контрольну суму з офіційною, щоб перевірити цілісність завантаженого файлу.
Контрольні суми можуть бути обійдені, якщо зловмисник здатен змінити як файл, так і його контрольну суму, наприклад, під час атаки типу MITM (людина посередині).
У такому випадку зловмисник підміняє файл і створює нову контрольну суму для цього зміненого файлу. Після цього він може замінити контрольну суму в системі перевірки, щоб приховати факт підміни файлу.
APT (Advanced Package Tool) та Brew
APT – це система управління пакетами для дистрибутивів на основі Debian, таких як Ubuntu. Деяке програмне забезпечення може вимагати оновлення списку джерел для apt, інше може вимагати завантаження .deb пакету та його встановлення, а деяке може постачатися у вигляді архівів з уже зкомпільованими бінарними файлами. Переконайтеся, що завантажуєте все з офіційних джерел.
Brew (для macOS) працює подібним чином, забезпечуючи просту установку та оновлення програмного забезпечення.
Composer – це інструмент для управління залежностями в PHP. Пакети можуть бути не завжди доступні в Packagist. У такому випадку можна додати додаткові джерела в налаштуваннях Composer, якщо ви впевнені в їх надійності. Рекомендується також використовувати shasum для перевірки цілісності.
NPM (Node Package Manager) та Yarn – це інструменти для управління залежностями в Node.js. Вони дозволяють легко встановлювати, оновлювати та видаляти пакети.
<link> або <script>, де міститься хеш ресурсу. Завдяки цьому можна переконатися, що ресурс не був змінений після завантаження, що є важливим для захисту від атак, таких як підміна ресурсів або вставка шкідливого коду.Перевірка на використання SRI: Визначте, чи використовуються атрибути integrity у ресурсах вашого веб-додатку. Використовуйте інструменти розробника у браузері для перевірки тегів <script> і <link> на наявність цього атрибута.
Атака на ресурси без SRI: Якщо ви виявите, що веб-додаток не використовує SRI для критичних ресурсів, спробуйте змінити ресурси (наприклад, через атаки на CDN) та перевірте, чи можна виконати шкідливий код.
Гарна стаття