Філіппович Герман Олегович

Державний ВУЗ "Національний гірничий університет", Україна

ТЕСТУВАННЯ БЕЗПЕКИ ВЕБ – ДОДАТКІВ. ОСНОВНІ МЕТОДИ ТЕСТУВАННЯ БЕЗПЕКИ

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

 

ВСТУП

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

Тестування безпеки як вид нефункціонального тестування

Тестування безпеки – це один із видів нефункціонального тестування. При такому вигляді тестування основний акцент ставиться на т. зв. «негативний» тестування – вивчається й аналізується поведінка в різних стресових ситуаціях, особливу увагу приділяється помилок, які видає програма. У деяких випадках вивчення помилок допомагає виявити уразливості, «слабкі» місця в ПО.

У загальному випадку, тестування – це процес перевірки заявлених вимог до продукту і реально реалізованої функціональності, який здійснюється шляхом спостереження за його роботою в штучно створених ситуаціях, на обмеженому наборі тестів, обраних певним чином. [3] Тому тестування безпеки, як і будь-який інший вид тестування, проводиться на основі поставлених вимог. Як додаток до вимог складається матриця ризиків безпеки. Саме на основі цих документів здійснюється процес тестування.

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

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

Методи тестування безпеки

1. Основним методом тестування безпеки є т. н. code review – перегляд вихідного коду програми. [1] Як правило, перегляд виконується кваліфікованим розробником. Тестувальник ж, у свою чергу, може використовувати утиліти для статичного та динамічного аналізу: RATS, cppcheck та ін. Даний метод дозволяє виявити уразливості в коді ще на етапі реалізації проекту;

2. Fuzz – тестування – це ще один метод тестування безпеки. Суть даного методу тестування полягає в тому, що на вхід програми подаються свідомо неправильні, непередбачені або випадкові дані. Таким чином, ми вивчаємо поведінку додатка при використанні різних вхідних даних. При застосуванні фаззинга – тестування можна виявити помилки обробки вхідних даних, витоку пам'яті, неправильні коди помилок. Існує ряд програмних засобів для проведення фаззинг тестування – Skyfish, SPIKE Proxy, OWASP WSFuzzer (Soap);

3. Тестування на проникнення (penetration testing). Даний метод дозволяє проводити тестування, взаємодіючи з додатком виключно з боку користувача. Тестувальник може використовувати як автоматичні сканери безпеки, такі як skipfish або wapiti, так і аналізатори мережі. Важливим аспектом при тестуванні на проникненні є ручне (дослідницьке) тестування – адже програмні засоби не завжди можуть виявити всі вразливості.

Складності в тестуванні безпеки веб – додатків

До основних складнощів тестування безпеки можна віднести:

1. Кросбраузерність додатків. Користувачі можуть використовувати різні види браузерів, таких як Mozilla Firefox, Opera, Google Chrome, Safari, Internet Explorer, а також їх різні версії (в деяких випадках дуже застарілі).

2. Використання різних ОС. На веб – додаток не повинна жодним чином впливати операційна система, що використовується користувачем.

3. Неточна або некоректне формулювання вимог щодо безпеки у технічному завданні продукту.

 

Перелік літератури:

1.   Очир Абушинов. «Особенности тестирования безопасности ПО». SQA Days 2010.

2.   http://searchsoftwarequality.techtarget.com/answer/Web-application-security-testing-basics

3.   http://www.protesting.ru/testing/types/security.html