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

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

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

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

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

1. Огляд «білої скриньки» або огляд коду.

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

2. Огляд «чорної скриньки».

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

3. Інструментарій.

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

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

Загрози застосункам (атаки) Загрози або атаки є головним чинником впливу на роботу прикладних програм. Спільнота OWASP винайшла список 10 уразливостей для вебпрограм та описує практики безпеки для організацій, прагнучи створити відкриті стандарти для цієї галузі. З 2017 року організація перераховує основні загрози безпеки застосунків, такі як: +Тип загрозиОписВхід (валідація)Переповнення буфферу; крос-сайт сценаріїв; мова структурованих запитів (англ. SQL — Structured query language).Вторгнення програмиТакий софт модифікує існуючу поведінку запуску програми з метою несанкціонованих дій. З'являється у наслідку оновлення, заміни коду або ж розширення коду.АутентифікаціяМережеве прослуховування. Атаки грубої сили. Атаки перебору. Атаки відтворення файлів cookie. Крадіжка облікових даних.АвторизаціяПідвищення привілеїв. Розголошення конфіденційної інформації. Вторгнення шкідливих даних.Управління конфігурацієюНеавторизовний доступ до інтерфейсів. Неавторизований доступ до налаштувань конфігурації. Отримання чистого тексту даних. Відсутність власної відповідальності. Супер-користувальницькі процеси та сервіси.Чутлива інформаціяДоступ до чутливого коду або даних у сховищі. Прослуховування мережі. Вторгнення небажаного коду або даних.Управління сеансомВикрадення сеансів. Відтворення сеансу роботи. « Людина по середині».КриптографіяПомилка генерації ключів або погане управління ключами. Слабке або індивідуальне криптування.Маніпуляція параметрамиМаніпуляції полем запиту. З полем форми. Маніпуляції з файлами cookie. Різного роду маніпуляції з гіпертекстом (HTTP — Hyper Text Transfer Protocol).Управління виняткамиРозсекречення інформації. Відмова в обслуговуванні (Deny of Service — DoS).Аудит і вхід у системуКористувач блокує виконання операції. Використовує додаток без слідів його застосування та дій.

Захист мобільних застосунків Очікується, що частка мобільних пристроїв, які надають функціональні можливості відкритої платформи, будуть збільшуватись надалі. Відкритість цих платформ дає значні можливості для усіх частин мобільних середовищ забезпечуючи простір дій для гнучких програм і сервісів: опції можуть бути встановлені, видалені або оновлені безліч разів згідно із  потребами та вимогами користувача. Проте, із відкритості систем приходить і необмежений доступ до мобільних ресурсів і прикладних програмних інтерфейсів (API's — Application Programming Interface's), невідомими і недовіреними оригіналами, які можуть нанести значну шкоду користувачу, пристрою, мережі або усім складовим відразу, якщо вони не будуть управлятися відповідними захисними структурами і мережевими запобіжними засобами. Захист мобільних застосунків у деякому розумінні забезпечується на більшості відкритих операційних систем мобільних пристроїв (Symbian OS,«Platform Security Concepts» , Simon Higginson. Microsoft, інші). Промислові групи також створили певні рекомендації включаючи організацію GSM та Mobile Terminal Plaform, OMTP.

Існує декілька стратегій підвищення безпеки мобільних програм: «Білий список» (white listing). Забезпечення безпеки транспортного рівня. Надійна аутентифікація та авторизація. Криптування даних перед записом пам'яті Sandboxing застосунків. Збільшення рівнів доступу застосунків за один API рівень. Процеси прив'язані до ідентифікатора (ID) користувача. Попередньо визначена взаємодія між мобільним застосунком та операційною системою. Вимагати від користувача привілейованого або підвищеного рівня доступу. Правильна обробка сеансу.

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

Захист вебзастосунків Вебзастосунок (англ. Web Application) — це застосунок, у якому клієнтом виступає браузер, а сервером — вебсервер. Вони являють собою об'єкти потенційного впливу так як:

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

Discovery: За даними SANS, багато організацій навіть не знають, скільки програм вони мають у своїх доменах. Служба Discovery вирішує цю різницю видимості, створивши загальну інвентаризацію всіх вебзастосунків, таких як корпоративні сайти, тимчасові маркетингові сайти, пов'язані сайти (.mail, .info тощо), міжнародні домени та сайти, отримані через M & A. Крім того, Discovery масово використовує паралельну інфраструктуру автоматичного масштабування, щоб перевірити тисячі програм на день.

DynamicMP (Massively Parallel): знижує рівень ризику шляхом швидкого виявлення уразливостей, які віднайдені організацією OWASP та CWE / SANS. Протестувати тисячі вебзастосунків одночасно можна динамічним скануванням. Зменшити ризик можливо закривши тимчасові сайти та передаючи інформацію про захист та розповсюдження до мережевих брандмауерів (WAF).

DynamicDS (Глибоке сканування). Використовує глибоке різностороннє сканування, яке визначає вразливості вебзастосунків, використовуючи як аутентифіковані, так і неаутентифіковані сканування, включаючи пошук векторів атак, таких як міжсистемні скрипти (XSS), SQL injection, недостатньо захищені облікові дані та витоки інформації. Також інтегрує інформацію про розвідувальний захист з WAF, щоб забезпечити віртуальне оновлення.

Virtual Scan Appliance (VSA): виконує глибоку перевірку програм, що знаходяться під захистом брандмауера, як правило, в QA або в середовищі сканування, щоб знайти вразливості перед застосуванням. VSA також допомагає захищати внутрішні вебпрограми від інсайдерських атак або атак зловмисними сторонніми особами, які хочуть отримати доступ до активу особи.

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

Організація захисту вебзастосунків Застосування різного роду фаєрволів, систем запобіганню вторгнень(IDS — Intrusion Detection System) допомагають фільтрувати мережевий трафік, відслідковувати пакети і порівнювати їх із сигнатурами атак. Ці системи можуть блокувати усі відхилення від протоколів прикладного рівня. Одним із рішень є застосування системи WAF, яка аналізує протоколи HTTP/HTTPS, виявляє атаки із використанням автоматичних засобів. Важливим зі сторони подібного роду захисних систем виступає логічне осмислення та зрозумілість роботи програми у поєднанні із інтелектуальним дослідженням спроб проникнення. Перед командою із захисту вебзастосунків поставлені задачі високого рівня складності та способів їх реалізації.

Рішення щодо реалізації захисту вебзастосунків:

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

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

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

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