Загальне

OWASP: топ-10 CWE (Common Weakness Enumerations)

Jim Biniyaz

Що таке CWE (Common Weakness Enumerations)?

CWE, або Common Weakness Enumerations, — це список типових вразливостей безпеки програмного забезпечення, розроблений спільнотою. Його підтримує MITRE Corporation, а регулярно оновлює група міжнародних експертів із безпеки програмного забезпечення.

Мета CWE — надати стандартизовану мову для опису слабкостей безпеки програмного забезпечення. Це полегшує розробникам і фахівцям із безпеки обмін інформацією про вразливості та їхній потенційний вплив на програмні системи.

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

Одна з найцінніших особливостей CWE полягає в тому, що вона пов’язана з іншими ресурсами з безпеки програмного забезпечення, як-от Common Vulnerability Scoring System (CVSS) і Common Attack Pattern Enumeration and Classification (CAPEC). Ці зв’язки полегшують розробникам і фахівцям із безпеки розуміння впливу конкретних слабкостей і способів їх усунення.

Список OWASP Top 10 CWE — це підмножина ширшого списку CWE, зосереджена саме на найпоширеніших і найвпливовіших вразливостях у веб-застосунках. Цей список регулярно оновлюється та слугує цінним ресурсом для розробників і фахівців із безпеки, які прагнуть захистити свої веб-застосунки.

CWE-119: неналежне обмеження операцій у межах буфера пам’яті


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

CWE-20: неналежна перевірка вхідних даних


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

CWE-79: неналежна нейтралізація вхідних даних під час генерації вебсторінки («Cross-site Scripting»)


Неналежна нейтралізація вхідних даних під час генерації вебсторінки, широко відома як міжсайтовий скриптинг (Cross-site Scripting, XSS), — це критична слабкість безпеки, що впливає на веб-застосунки. CWE-79 виникає, коли недовірені дані користувача обробляються неналежно під час генерації вебсторінок, що дає змогу зловмисникам впроваджувати шкідливі скрипти, які можуть виконуватися іншими користувачами. Вразливості XSS дають змогу зловмисникам викрадати чутливу інформацію, перехоплювати сеанси користувачів, спотворювати вебсайти або запускати фішингові атаки. Щоб знизити ризики, пов’язані з CWE-79, веброзробники мають застосовувати належну перевірку вхідних даних і впроваджувати методи кодування вихідних даних, щоб гарантувати, що надані користувачем дані належно очищуються та відображаються як звичайний текст, запобігаючи виконанню скриптів.

CWE-78: неналежна нейтралізація спеціальних елементів, що використовуються в команді ОС («OS Command Injection»)


Неналежна нейтралізація спеціальних елементів, що використовуються в команді ОС, широко відома як ін’єкція команд ОС (OS Command Injection), — це серйозна вразливість безпеки, що виникає, коли недовірені дані користувача виконуються операційною системою як частина команди. CWE-78 дає змогу зловмисникам маніпулювати виконанням команд, що призводить до несанкціонованого доступу, втрати даних або ненавмисного виконання команд із підвищеними привілеями. Щоб знизити ризики, пов’язані з ін’єкцією команд ОС, розробники мають впроваджувати практики безпечного програмування, як-от перевірку та очищення даних користувача, а також використовувати параметризовані запити чи підготовлені вирази під час взаємодії з операційною системою.
[Продовження в наступному абзаці.]

CWE-306: відсутня автентифікація для критичної функції


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

CWE-311: відсутнє шифрування чутливих даних


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

CWE-434: необмежене завантаження файлу небезпечного типу


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

CWE-400: неконтрольоване споживання ресурсів


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

CWE-352: міжсайтова підробка запиту (CSRF)


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

CWE-89: неналежна нейтралізація спеціальних елементів, що використовуються в SQL-команді («SQL Injection»)


Неналежна нейтралізація спеціальних елементів, що використовуються в SQL-команді, широко відома як SQL-ін’єкція, — це критична вразливість, що впливає на веб-застосунки, які покладаються на взаємодію з базами даних. CWE-89 виникає, коли недовірені дані користувача об’єднуються в SQL-запити без належного очищення, що дає змогу зловмисникам маніпулювати структурою запитів і виконувати несанкціоновані SQL-команди. Атаки SQL-ін’єкцій можуть призвести до витоків даних, несанкціонованого доступу до баз даних і потенційного розкриття чутливої інформації. Щоб знизити ризики, пов’язані з CWE-89, розробники мають впроваджувати параметризовані запити чи підготовлені вирази, забезпечувати належну перевірку та очищення вхідних даних і застосовувати практики безпечного програмування. Регулярне тестування безпеки та рецензування коду допомагають виявляти й усувати потенційні вразливості SQL-ін’єкцій, забезпечуючи цілісність і безпеку застосунків, керованих базами даних.

Висновок

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

Пов’язані ресурси

ПоділитисяLinkedInX
Пов’язані статті блогу
Нічого не знайдено.
Пов’язані статті блогу
Нічого не знайдено.

Готові зменшити свою кіберекспозицію?

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

Забронюйте демо