Сіра коробка

Що таке сіра коробка?

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

Ключові винос

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

Розуміння сірих коробок

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

Тестування чорної скриньки та білої скриньки 

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

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

Як працює тестування сірої коробки

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

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

Приклад сірої коробки

Тестер сірого вікна може перевірити та виправити посилання на веб-сайті. Якщо посилання не працює, тестер змінює HTML-код, щоб спробувати зв’язати його, а потім повторно перевіряє користувальницький інтерфейс, щоб перевірити, чи працює посилання. Тестер сірого ящика також може перевірити онлайн-калькулятор. Тестер визначав вхідні дані – математичні формули, такі як 1 + 1, 2 * 2, 5-4 та 15/3 , а потім перевіряв, чи забезпечує калькулятор правильні результати на основі цих входів. Тестер сірого вікна має доступ до HTML-коду калькулятора і може змінити його, якщо будуть виявлені помилки.

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

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