15 Лют, 2023

Впровадження коду

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

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

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

в Python:

				
					import os

user_input = input("Enter a file name: ")
os.system("cat " + user_input)
				
			


У цьому коді на Python os.system() функція використовується для виконання команди, введеної користувачем, без будь-якої перевірки або очищення. Зловмисник може впровадити шкідливий код в користувальницький введення для виконання довільних команд в базовій системі.

Щоб запобігти впровадження коду в цей код, ви повинні перевірити введені користувачем дані і використовувати subprocess модуль замість os.system().

• В Java:

				
					String query = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);

				
			


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

Щоб запобігти впровадження SQL в цей код, ви повинні використовувати параметризрвані запити замість об'єднання користувальницьких даних в рядок запиту SQL.

• В PHP:

				
					$user_input = $_GET['input'];
eval("echo $user_input;");

				
			


У цьому PHP-коді eval() функція використовується для виконання довільного коду, введеного користувачем. Зловмисник може впровадити шкідливий код в користувальницький введення для виконання довільних команд в базовій системі.

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

• в C#:

				
					string command = "ping " + userInput;
Process.Start("cmd.exe", "/c " + command);

				
			


У цьому коді на C # Process.Start() функція використовується для виконання команди, введеної користувачем, без будь-якої перевірки або очищення. Зловмисник може впровадити шкідливий код в користувальницький введення для виконання довільних команд в базовій системі.

Щоб запобігти впровадження коду в цей код, ви повинні перевірити введені користувачем дані і використовувати ProcessStartInfo замість клас Process.Start().

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

• Впровадження SQL Припустимо, що веб-додаток використовує уразливий SQL-запит, який об'єднує дані, що вводяться користувачем у рядок запиту без будь-якої перевірки або очищення, як у наступному прикладі:

				
					SELECT * FROM users WHERE username = '" + userInput + "'";
				
			


Зловмисник може скористатися цією уразливістю, ввівши шкідливий введення, наприклад:

				
					' OR '1'='1

				
			


Це змінило б вихідний запит на:

				
					SELECT * FROM users WHERE username = '' OR '1'='1';

				
			


Який повернув би всі записи з users таблиця, що включає конфіденційну інформацію, таку як імена користувачів і паролі.

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

				
					exec("ping " + userInput);

				
			


Зловмисник може скористатися цією уразливістю, ввівши шкідливий введення, наприклад:

				
					127.0.0.1; rm -rf /

				
			


Це призведе до виконання наступної команди в базовій системі:

				
					ping 127.0.0.1; rm -rf /

				
			


який видалить всі файли в кореневому каталозі системи.

• Міжсайтовий скриптінг (XSS) Припустимо, що веб-додаток використовує вразливу функцію, яка виводить користувальницький введення без будь-якої перевірки або очищення, як у наступному прикладі:

				
					echo "Hello, " + userInput + "!";

				
			


Зловмисник може скористатися цією уразливістю, ввівши шкідливий введення, наприклад:

				
					<script>alert('XSS')</script>

				
			


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

Методи підвищення привілеїв для впровадження коду

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Визначте всі точки введення користувача в додатку.

  2. Перевірте уразливості SQL-ін'єкцій, ввівши інструкції SQL в поля введення користувача.

  3. Перевірте уразливості при впровадженні команд, ввівши команди командного рядка в поля введення користувача.

  4. Перевіряйте уразливості міжсайтових сценаріїв, впроваджуючи шкідливі скрипти в поля введення користувача.

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

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

  7. Регулярно тестуйте і оновлюйте додаток, щоб усунути будь-які виявлені вразливості.

  8. Перевірте правильність перевірки і очищення всього користувальницького введення.

  9. Перевірте використання параметризованих запитів для запобігання вразливостей SQL-ін'єкцій.

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

  11. Перевірте, щоб уникнути небезпечних функцій, таких як eval(), system()і exec().

  12. Перевірте правильність реалізації найменших привілеїв, щоб запобігти уразливості з підвищенням привілеїв.

  13. Перевірте, чи використовуються засоби безпеки, такі як міжмережеві екрани і системи виявлення вторгнень.

  14. Перевіряйте наявність регулярних перевірок безпеки для виявлення і усунення вразливостей.

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

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

  • Burp Suite: Популярний інструмент перехоплення проксі-серверів для тестування безпеки веб-додатків, який можна використовувати для виявлення і використання вразливостей при впровадженні коду.

  • Sqlmap: Потужний інструмент з відкритим вихідним кодом, який автоматизує процес виявлення і використання вразливостей SQL-ін'єкцій у веб-додатках.

  • Metasploit: Широко використовуваний фреймворк для розробки, тестування та виконання експлойтів, у тому числі пов'язаних з уразливими при впровадженні коду.

  • PowerShell: Оболонка командного рядка і мова сценаріїв, який використовується в основному в системах Windows, який може використовуватися для виконання довільного коду і підвищення привілеїв.

  • Netcat: Універсальна мережева утиліта, яку можна використовувати для створення мережних підключень і управління ними, в тому числі для виконання команд в віддалених системах.

  • Nmap: Популярний інструмент відображення мережі, який може бути використаний для виявлення потенційних цілей для атак з використанням коду.

  • Immunity Debugger: Потужний відладчик, який можна використовувати для аналізу та використання вразливостей програмного забезпечення, у тому числі пов'язаних з впровадженням коду.

  • IDA Pro: Популярний дізассемблер і відладчик, який можна використовувати для аналізу двійкового коду на наявність вразливостей, у тому числі пов'язаних з впровадженням коду.

  • OllyDbg: Популярний відладчик для систем Windows, який може використовуватися для аналізу та використання вразливостей програмного забезпечення, у тому числі пов'язаних з впровадженням коду.

  • GDB: Популярний відладчик для Unix і Unix-подібних систем, який може використовуватися для аналізу та використання вразливостей програмного забезпечення, у тому числі пов'язаних з впровадженням коду.

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

  • Nessus: Популярний сканер вразливостей, який можна використовувати для виявлення вразливостей, пов'язаних з впровадженням коду, серед інших проблем безпеки.

  • Acunetix: Сканер безпеки веб-додатків, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

  • AppScan: Сканер безпеки веб-додатків, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

  • Zed Attack Proxy: Сканер безпеки веб-додатків з відкритим вихідним кодом, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

  • Arachni: Сканер безпеки веб-додатків з відкритим вихідним кодом, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

  • OpenVAS: Сканер вразливостей з відкритим вихідним кодом, який може використовуватися, серед іншого, для виявлення вразливостей при впровадженні коду.

  • Skipfish: Сканер безпеки веб-додатків з відкритим вихідним кодом, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

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

  • Vega: Сканер вразливостей веб-додатків з відкритим вихідним кодом, який, крім іншого, може використовуватися для виявлення і використання вразливостей, пов'язаних з впровадженням коду.

  • SQLNinja: Інструмент з відкритим вихідним кодом, який автоматизує процес використання вразливостей SQL-ін'єкцій у веб-додатках, включаючи вразливості для впровадження коду.

Середній бал CVSS стек Впровадження коду

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

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

Наприклад, уразливості SQL-ін'єкції, що дозволяє зловмисникові отримувати конфіденційну інформацію з бази даних, може бути присвоєна оцінка CVSS 7 або 8, в той час як уразливості віддаленого виконання коду, яка дозволяє зловмиснику отримати контроль над сервером, може бути присвоєна оцінка CVSS 9 або 10.

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

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

CWE-78: неправильна нейтралізація спеціальних елементів, використовуваних в команді операційної системи – цей CWE відноситься до вразливостей, коли додаток дозволяє передавати користувальницький введення в команду операційної системи без належної перевірки або фільтрації. Зловмисник може використовувати це для виконання довільних команд в вразливою системі.

КВЕ-94: Неправильний контроль генерації коду – цей CWE відноситься до вразливостей, при яких додаток генерує код динамічно на основі користувальницького введення або інших даних. Якщо процес генерації коду не контролюється належним чином, зловмисник може впровадити шкідливий код згенерований код, що призведе до різних атак.

CWE-98: Неправильний контроль імені файлу інструкції Include / Require у програмі PHP – Це CWE відноситься конкретно до програм PHP, які включають або вимагають зовнішні файли. Якщо ім'я файлу не перевірили належним чином, зловмисник може надати шкідливий файл, який може виконувати довільний код на сервері.

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

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

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

Топ-10 CVE, пов'язаних з впровадженням коду

CVE-2023-25719 – Управління ConnectWise до 22.9.10032 (раніше відоме як ScreenConnect) не дозволяє перевірити надані користувачем параметри, такі як Bin / ConnectWiseControl.Client.exe параметр h. Це призводить до відображення даних та впровадження шкідливого коду у виконуваний файл завантажений. Виконуваний файл може використовуватися для виконання шкідливих запитів або в якості вектора відмови в обслуговуванні.

CVE-2023-23619 – Modelina - це бібліотека для створення моделей даних на основі вхідних даних, таких як документи AsyncAPI, OpenAPI або схеми JSON. Версії до версії 1.0.0 уразливі для впровадження коду. Ця проблема торкається всіх, хто використовує настройки за замовчуванням і / або не обробляє функціональність самостійно. Ця проблема була частково вирішена в версії 1.0.0. У рекомендаціях щодо безпеки GitHub (GHSA) супроводжуючого зазначається, що “Неможливо повністю захиститися від цього, оскільки користувачі мають доступ до вихідної необробленої інформації. Однак, починаючи з версії 1, якщо ви отримуєте доступ лише до обмежених моделям, ви не зіткнетеся з цією проблемою. Подальші подібні ситуації РОЗГЛЯДАЮТЬСЯ НЕ як проблема безпеки, а як умисне поведінка ". Пропонований обхідний шлях від супроводжуючих - це "Повністю настроюються пресети, які змінюють весь процес візуалізації, який потім може уникнути користувальницького введення".

CVE-2023-23551 – Пристрої Control By Web X-600M запускають сценарії Lua і уразливі для впровадження коду, що може дозволити зловмиснику віддалено виконувати довільний код.

CVE-2023-23488 – Плагін платного членства Pro версії WordPress

CVE-2023-22643 – Неправильна нейтралізація спеціальних елементів, використовуваних в команді ОС ("Впровадження команди ОС") уразливість в libzypp-plugin-appdata SUSE Linux Enterprise Server для SAP 15-SP3; openSUSE Leap 15.4 дозволяє зловмисникам, які можуть обдурити користувачів, використовувати спеціально створені налаштування REPO_ALIAS, REPO_TYPE або REPO_METADATA_PATH для виконання коду як корінь. Ця проблема зачіпає: SUSE Linux Enterprise Server для SAP 15-SP3 версії libzypp-plugin-appdata до версії 1.0.1+git.20180426. openSUSE Leap 15.4 версії libzypp-plugin-appdata до версії 1.0.1+git.20180426.

CVE-2023-22598 – У мережах InRouter 302 старіших версій IR302 V3.5.56, і InRouter 615, що передують версії InRouter6XX-S-V2.3.0.r5542, містять вразливість CWE-78: неправильна нейтралізація спеціальних елементів, використовуваних в команді ОС ('Впровадження команди ОС'). Неавторизований користувач з привілейованим доступом до локального веб-інтерфейсу або хмарної облікового запису, керуючої вразливими пристроями, може відправити спеціально створений файл оновлення конфігурації, щоб отримати root-доступ. Це може призвести до віддаленого виконання коду з правами суперкористувача.

CVE-2023-0792 – Впровадження коду в репозиторій GitHub thorsten/ phpmyfaq до версії 3.1.11.

CVE-2023-0788 – Впровадження коду в репозиторій GitHub thorsten/ phpmyfaq до версії 3.1.11.

CVE-2023-0774 – У додатку SourceCodester Medical Certificate Generator App 1.0 була виявлена уразливість, класифікована як критична. Ця уразливість зачіпає невідомий код файлу action.php . Маніпулювання аргументом lastname призводить до sql-ін'єкції. Атака може бути ініційована віддалено. Експлойт був розкритий громадськості і може бути використаний. VDB-220558 - це ідентифікатор, присвоєний цієї уразливості.

CVE-2023-0671 – Впровадження коду в репозиторій GitHub froxlor / froxlor до версії 2.0.10.

Впровадження коду подвиги

  • Атаки з використанням SQL-ін'єкцій – Цей тип атаки включає впровадження SQL-коду в поля введення додатки, що може дозволити зловмиснику виконувати несанкціоновані SQL-запити і потенційно отримати доступ до конфіденційних даних або навіть отримати контроль над вразливою системою.

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

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

  • Атаки на віддалене виконання коду (RCE) – Цей тип атаки включає впровадження шкідливого коду в поля введення додатки, що може дозволити зловмиснику виконати довільний код у вразливою системі і потенційно отримати повний контроль над нею.

  • Атаки з впровадженням коду в фреймворки веб-додатків – Було виявлено, що багато фреймворки веб-додатків уразливі для атак з використанням коду, таких як фреймворк Java Struts 2 і фреймворк Ruby on Rails. У цих випадках зловмисники можуть використовувати уразливості в самій платформі, щоб впровадити шкідливий код в додаток.

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

Практикуючись в тестуванні на Впровадження коду

  1. Налаштування середовища тестування – Створіть тестову середу, імітує вашу виробничу середу. Це може включати в себе веб-додатки, API та інше програмне забезпечення, що використовується вашою організацією.

  2. Дізнайтеся про поширених уразливість при впровадженні коду – Ознайомтеся з різними типами вразливостей, пов'язаних з впровадженням коду, включаючи SQL-ін'єкцію, командну ін'єкцію і атаки з використанням міжсайтових сценаріїв (XSS).

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

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

  5. Беріть участь в програмах винагороди за помилки – Багато компаній пропонують програми винагороди за помилки, які винагороджують людей за виявлення вразливостей в їх додатках. Участь у цих програмах може дати вам можливість попрактикуватися у тестуванні вразливостей при впровадженні коду і отримати відгуки про ваших навичках тестування.

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

Для вивчення Впровадження коду

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

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

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

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

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

Книги з оглядом Впровадження коду

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

"Black Hat Python: програмування на Python для хакерів і пентестеров" автор: Джастін Сейтц – Ця книга вчить читачів, як використовувати Python для злому і тестування на проникнення, включаючи атаки з використанням коду.

"Злом сірої капелюхи: керівництво етичного хакера" автор: Аллен Харпер, Деніел Регаладо і Райан Лінн – У цій книзі розглядаються різні методи злому, включаючи впровадження коду, і способи захисту від них.

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

"Тестування на проникнення: практичне введення у злом" автор Джорджія Вайдман – Ця книга являє собою практичне введення в тестування на проникнення і охоплює різні типи атак, включаючи впровадження коду.

"Хакерство: мистецтво експлуатації" Джон Еріксон – Ця книга вчить читачів, як знаходити і використовувати уразливість в комп'ютерних системах, включаючи атаки з використанням коду.

"Безпека веб-додатків: керівництво для початківців" Брайан Салліван і Вінсент Лью – Ця книга являє собою введення в безпеку веб-додатків, включаючи уразливості при впровадженні коду і способи їх запобігання.

"Безпечне кодування на C та C ++" Роберт Сикорд – Ця книга містить рекомендації з написання безпечного коду на C і C ++, включаючи рекомендації щодо запобігання атак з використанням коду.

"Атаки і захист з використанням SQL-ін'єкцій" автор: Джастін Кларк – Ця книга присвячена атак з використанням SQL-ін'єкцій, поширеним типом уразливості при впровадженні коду.

"Основи злому і тестування на проникнення: етичний злом і тестування на проникнення стали простіше" автор: Патрік Энгебретсон – Ця книга являє собою введення в злом і тестування на проникнення, включаючи впровадження коду і інші типи атак.

Список корисних навантажень Впровадження коду

  1. Базова ін'єкція: ‘; DROP TABLE users; —

  2. Впорскування на основі сполуки: ‘ UNION SELECT 1,2,3 —

  3. Ін'єкція на основі помилок: ‘ AND 1=(SELECT COUNT(*) FROM tabname); —

  4. Ін'єкція, заснована на часі: ‘ AND SLEEP(10); —

  5. Ін'єкція на основі логічних значень: ‘ OR 1=1; —

  6. Позасмугова ін'єкція: '); EXEC страт('ping 8.8.8.8'); —

  7. Впровадження XML-коду: ‘; SELECT * FROM OPENXML(@idoc, ‘/doc/@*’) —

  8. Ін'єкція JSON: { "$ne": "1" }

  9. Впровадження LDAP: )(&(objectClass=person)(userPassword=))(|(uid=admin))

  10. Впровадження XPath: ‘ or 1=1 or ”=’

Як захиститися від Впровадження коду

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

  2. Параметризрвані запити:
    Використовуйте параметризрвані запити або підготовлені інструкції при запиті до бази даних. Це може допомогти запобігти атаки з використанням SQL-ін'єкцій, поширений тип вразливості при впровадженні коду.

  3. Кодування:
    Використовуйте методи кодування, такі як кодування сутностей HTML, для запобігання атак з впровадженням скриптів і вразливостей міжсайтового скриптинга (XSS).

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

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

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

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

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

Висновок

Впровадження коду це серйозна і поширена вразливість, яка може дозволити зловмисникам виконувати шкідливий код в системі або додатку. Його можна використовувати різними способами, включаючи впровадження SQL, міжсайтовий скриптінг (XSS) і впровадження команд. Впровадження коду може призвести до крадіжки даних, пошкодження систем і додатків та іншим загрозам безпеки.

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

Інші Послуги

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

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