Мінімізація ризиків та загроз для безпеки застосунку
Дедалі більше сфер діяльності людини йде у цифровий формат: від освіти до бізнесу та роботи. Відповідно, рівень безпеки користувача в інтернеті та цифровому просторі має покращуватися.
І сьогодні ми з вами обговоримо ризики та загрози безпеці мобільного застосунку. Їх справді багато, але ми виділимо основні, а деякі з них — детально розберемо. Серед основних ризиків для застосунку та компанії найчастіші:
- спроба злому з метою викрадення інформації;
- спроба злому, щоб вкрасти дані та клієнтські бази;
- спроба кібератак із метою знищити дані;
- спроби зламати акаунти користувачів з метою шахрайства;
- віруси.
Смартфонами користується майже 4 мільярди людей у всьому світі. І кожен із них може постраждати від зловмисників. Останнім часом атаки на сервіси та застосунки почастішали. Крім вірусів та найпростіших обманів телефоном з проханнями про підтвердження «лівого» платежу, існує декілька ключових різновидів атак та шахрайства.
Міжсайтова підробка запитів (CSRF)
CSRF – один із найпоширеніших видів шахрайства за останні кілька років. З розвитком сфери цифрового продажу випадків виникнення таких схем стає більше. У чому суть цієї системи:
- клієнт (Влад) заходить на сайт, створений зловмисником;
- зловмисник (або скрипт) від імені Влада надсилає запит на інший сервер (у нашому випадку – платіжної системи);
- зловмисник здійснює шкідливу дію — виведення коштів на свій рахунок;
- платіжний сервіс надсилає запит на верифікацію транзакції Владу;
- підтвердження Влада;
- платіжна система бачить, що платіж верифікований та проводить його;
- тільки гроші потрапляють не Владу, а шахраю.
До такої системи шахрайства дуже вразливі сайти на базі HTTPS. До інших маніпуляцій можна віднести: зміна пароля, секретного питання, відновлення пароля або переприв'язка номеру телефону, додавання нового адміністратора та інші дії, які передбачають будь-які зміни на серверах
Чи можна захиститися від атак такого формату? Можна.
Вибираємо захищений фреймворк
Використовуйте захищений фреймворк, наприклад, «NET». Він має вбудовану систему захисту від таких атак. Наступне налаштування фреймворку лише покращить безпеку.
Anti-CSRF токени
Токени використовують, якщо у вашого фреймворку немає захисту від CSRF атак. Суть системи в тому, що браузер генерує для кожного користувача унікальний токен та перевіряє його наявність після кожного запиту з боку користувача.
Токен має задовольняти такі умови:
- унікальність у межах кожної операції;
- одноразове використання;
- стійкий розмір до підбору;
- криптографічна генерація стійким генератором псевдовипадкових чисел;
- обмежений термін дії.
Використовуємо відразу два токени
Токени ті самі, тільки їх тепер два. Сенс такої стратегії захисту наступна:
- один токен зберігається в кукі;
- другий токен – у параметрах відповіді;
- якщо сервер отримує небезпечний запит, перевіряє два токени.
Використання Same-Site у cookies
Його роль – зазначити кукі конкретного домену. Джерело зазначається на наступні перевірки, тому зловмисники не зможуть виконувати запити з лівих сайтів.
Same-Site підтримується майже всіма браузерами та є важливим атрибутом системи безпеки користувача.
Вимагайте підтвердження від користувача
Для таких операцій, як переказ коштів або зміна пароля, додайте додаткову дію з боку клієнта: вибрати в картинках світлофори або мотоцикли, ввести captcha тощо. Користувачам не сподобається, але їх буде захищено.
Атаки переповнення буфера
Переповнення буфера — явище, що виникає, коли програма пише дані поза виділеного місця буфера у пам'яті.
Причини виникнення проблем:
- неправильна робота з даними, отриманими ззовні;
- немає нормального захисту підсистеми (компілятора чи інтерпретатора).
Як наслідок, дані, що розташовані за буфером або перед ним, можуть бути зіпсовані або втрачені.
Переповнення буфера — один із найчастіших варіантів злому системи. Це з тим, що більшість мов високого рівня використовують стековий кадр. Дані програми поєднуються з керуючими даними.
Якщо буфер переповнений, програма може бути закрита в аварійному режимі або просто зависнути.
Якщо переповнення виникає в стековому кадрі, то зловмисники отримують доступ до коду і можуть завантажити його з правами облікового запису, від якого було запущено програму.
Як запобігти атакам і збоям?
Системи виявлення вторгнення
Є низка систем виявлення вторгнення (СВВ). Вони допомагають виявити та запобігти спробам віддаленого використання та доступу до буфера.
При зламі буфера шахраї використовують дані з довгим масивом інструкцій, у СВВ такі пакети блокують.
Захист від пошкодження стека
Використовується для виявлення найчастіших помилок під час переповнення буфера. Важливо перевірити, щоб стек виклику не було змінено перед поверненням із функції. Якщо він таки був змінений, то програма завершує виконання з помилкою.
Захист простору виконуваного коду для UNIX-подібних систем
Тут допоможе захист простору виконуваного коду. Використовується рандомізація адресного простору або опцій заборони одночасного доступу до пам'яті виконання та запис. Стек, який не виконується, запобігає більшій частині експлойтів коду оболонки.
Захист простору виконуваного коду для систем Windows
Для систем на базі Windows є низка рішень, як від самих розробників, так і від сторонніх брендів.
Маки мають кілька пропозицій: Data Execution Prevention або DEP, і навіть окремий механізм захисту стека. Стек позначається за допомогою «інформаторів», а їхня цілісність потім перевіряється. Якщо «інформатора» було змінено – стек пошкоджений.
Використовуємо безпечні бібліотеки
Найчастіше трапляється у мовах C і C++, оскільки вони не приховують деталей представлення буферів, як контейнерів типів даних.
У такій ситуації варто використовувати бібліотеки абстрактних типів даних. Вони виробляють центральне автоматичне керування буферами. Ще в них є функція перевірки буфера на переповнення.
Регулярне оновлення застосунку для виправлення вразливостей безпеки
Оновлення застосунку. Чи потрібні вони? І чому так часто приходять оповіщення, що ПЗ застаріло чи вийшла нова версія?
Так, мало хто любить спливаючі сповіщення про нове оновлення або нагадування, що настав час оновитися. Іноді оновлення виходять прямо посеред ігрової сесії, що «дуже люблять» гравці та інші користувачі, але це важливий момент, який не варто ігнорувати.
Так уже вийшло, що хакери швидко адаптуються до нових форматів та протоколів захисту. Тому розробникам регулярно доводиться працювати над системою безпеки, «латати дірки» та покращувати її. Є декілька причин та прикладів, які демонструють необхідність регулярних апдейтів застосунків для користувача.
Забезпечення максимального рівня захисту
Скільки б застосунки не тестувалися перед релізом, все одно після запуску будуть дрібні неточності або похибки, які вимагають виправлення чи усунення. Якщо цього не зробити, то через такі проломи в захисті шахраї часто намагаються зламати застосунок, акаунти користувачів та викрадати бази даних, фінансів, інформації. Саме оновлення допомагають не допустити їх виникнення.
Безпека пристроїв із сімейним доступом
Екосистеми стали доступнішими за останні кілька років. Дедалі більше людей ставлять собі «розумний дім» або цифрові пристрої системи захисту (наприклад, датчики диму, води, руху тощо). Всі вони пов'язані в єдину систему і члени сім'ї мають доступ до застосунку, щоб моніторити стан всіх пристроїв та житла.
Якщо застосунки не оновлювати, то рано чи пізно хакери зможуть отримати доступ до управління вашим будинком, розлочити замки або вимкнути сигналізацію з камерами.
Поліпшення продуктивності
Оновлення ПЗ впливає та на працездатність пристроїв. З часом застосунок «шліфується» до ідеального стану, оптимізується під пристрій та забезпечує кращу продуктивність за менших витрат ресурсів смартфона.
Додавання нового функціоналу
Оновлення приносять не лише виправлення, а й покращення, новий функціонал. Найпростішим прикладом стане доступ до підтвердження платежів у мобільному банкінгу через використання біометрії. Тут вам новий функціонал та покращення системи безпеки.
Безпека компанії
Оновлення застосунку обов'язкове не тільки для захисту користувача, але й для самої компанії. У більшості випадків керівництво дозволяє ставити софт на особисті смартфони (тут повертаємося до загальних вразливостей телефонів та застосунків, які не оновлюються). Коли зловмисники отримують доступ до файлів смартфона, вони зможуть зайти в робочий застосунок, завдаючи шкоди компанії.
Висновки
Свій застосунок — важлива частина бізнесу у сфері цифрової комерції. Але неякісний застосунок з вразливістю в системі захисту може поставити під загрозу компанію. Саме тому так важливо на етапах розробки застосунку приділяти увагу його безпеці та інтеграції сучасних систем захисту даних. У процесі розробки застосунку важливо користуватися всіма актуальними методами тестування та інструментами.