Безпека

10 типів уразливостей безпеки

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

Зміст

  1. Ін’єкція бази даних
  2. Порушена автентифікація
  3. Експозиція чутливих даних
  4. Зовнішні сутності XML (XEE)
  5. Порушений контроль доступу
  6. Неправильна конфігурація безпеки
  7. Міжсайтові сценарії (XSS)
  8. Небезпечна десериалізація
  9. Використання компонентів із відомими вразливостями
  10. Недостатня реєстрація та моніторинг

Введення бази даних:

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

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

Ін'єкційна атака може призвести до значної втрати даних, розголошення конфіденційної інформації, відмови у доступі і навіть до повного поглинання програми. Деякі елементи керування SQL, такі як LIMIT, можуть використовуватися для контролю величезних обсягів втрати даних у разі атаки. Деякі типи ін'єкційних атак: SQL, OS, NoSQL, LDAP.

Порушена автентифікація:

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

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

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

Вплив чутливих даних:

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

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

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

Зовнішні сутності XML (XEE):

Погано налаштовані процесори XML обробляють посилання на зовнішні сутності всередині документів XML. Ці зовнішні сутності можуть бути використані для отримання даних внутрішніх файлів, таких як / etc / passwd файл або виконувати інші шкідливі завдання.  Вразливі XML-процесори можуть бути легко використані, якщо зловмисник може завантажити XML-документ або включити XML тощо. Ці вразливі сутності XML можна виявити за допомогою інструментів SAST та DAST або вручну, перевіряючи залежності та конфігурації.

Веб-програма вразлива до атаки XEE з багатьох причин, наприклад, якщо програма приймає прямий вхід XML із ненадійних джерел, увімкнено визначення типу документа (DTD) у програмі, програма використовує SAML для обробки ідентифікаційних даних, оскільки SAML використовує XML для ідентичності вставки тощо. Атаки XEE можна пом'якшити, уникаючи серіалізації конфіденційних даних, використовуючи менш складні формати даних i.e JSON, виправлення XML-процесорів, що додаток використовується] і використовує навіть бібліотеки, відключаючи DTD у всіх синтаксичних аналізаторах XML, перевірку функціональності завантаження файлів XML за допомогою перевірки XSD тощо.

Додаток, вразливий до таких типів атак, може призвести до DOS-атаки, атаки Billion Laughs, сканування внутрішніх систем, внутрішнього сканування портів, виконання віддаленої команди, що призводить до впливу на всі дані програми.

Порушений контроль доступу:

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

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

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

Неправильна конфігурація безпеки:

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

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

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

Міжсайтові сценарії (XSS):

Уразливості XSS трапляються в той момент, коли веб-програма включає ненадійні дані на новій сторінці веб-сайту без законного схвалення чи захисту, або оновлює поточну сторінку сайту даними, наданими клієнтом, використовуючи API браузера, який може створювати HTML або JavaScript.  Недоліки XSS трапляються в тому випадку, якщо веб-сайт дозволяє користувачеві додати користувацький код у шлях до URL-адреси, який можуть бачити інші користувачі. Ці недоліки використовуються для запуску шкідливого коду JavaScript у цільовому браузері. Скажімо, зловмисник може надіслати посилання жертві, що містить посилання на веб-сайт будь-якої компанії. У цьому підключенні може бути вбудований зловмисний код JavaScript. Якщо веб-сторінка банку не захищена належним чином від атак XSS, при натисканні на посилання зловмисний код буде запущений у браузері жертви.

Міжсайтові сценарії - це уразливість системи безпеки, яка присутня майже в ⅔ веб-додатках. Додаток вразливий до XSS, якщо додаток зберігає несаніфіковані введені користувачем дані, які може бачити інший користувач, за допомогою структур JavaScript, односторінкових додатків та API, які потужно включають керовану зловмисником інформацію на сторінку, безпорадні проти DOM XSS. Атаки XSS можна пом'якшити за допомогою використання фреймворків, які уникають і дезінфікують вхідні дані XSS від природи, таких як React JS тощо, вивчаючи обмеження фреймворків та охоплюючи їх, використовуючи власні випадки, уникаючи непотрібних та ненадійних даних HTML скрізь i.e в атрибутах HTML, URI, Javascript тощо, використання контекстно-залежного кодування у разі зміни документа на стороні клієнта тощо.

Атаки на основі XSS бувають трьох типів i.e Відображені XSS, DOM XSS та збережені XSS. Усі типи цих атак мають значний вплив, але у випадку збереженого XSS вплив ще більший i.e) викрадення облікових даних, надсилання зловмисного програмного забезпечення жертві тощо.

Небезпечна десериалізація:

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

Коли програма десеріалізує шкідливі об'єкти, що надаються атакуючим об'єктом. Це може призвести до двох типів атак i.Атаки, пов'язані зі структурою даних та об'єктами, в яких зловмисник змінює логіку програми або виконує віддалений код та типові атаки на підробку даних, в яких існуючі структури даних використовуються із модифікованим вмістом, наприклад атаки, пов'язані з контролем доступу.  Серіалізацію можна використовувати для віддаленого комунікаційного процесу (RPC) або міжпроцесного зв'язку (IPC), кешування даних, веб-служб, сервера кешування баз даних, файлових систем, маркерів автентифікації API, файлів cookie HTML, параметрів форми HTML тощо. Атаки десериалізації можна пом'якшити, не використовуючи серіалізовані об'єкти з ненадійних джерел, здійснюючи перевірку цілісності, ізолюючи код, що працює в низькопривілейованому середовищі, контролюючи вхідні та вихідні мережеві підключення від серверів, які часто десеріалізуються.

Використання компонентів з відомими вразливими місцями:

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

Додаток вразливий, якщо розробник не знає версії використовуваного компонента, програмне забезпечення застаріле i.e операційна система, СУБД, запущене програмне забезпечення, середовища виконання та бібліотеки, сканування вразливості не проводиться регулярно, сумісність виправленого програмного забезпечення розробники не перевіряють. Цього можна запобігти, видаляючи невикористані залежності, файли, документацію та бібліотеки, регулярно перевіряючи версію клієнтських та серверних компонентів, отримуючи компоненти та бібліотеки з офіційних та надійних захищених джерел, контролюючи невідпаковані бібліотеки та компоненти, забезпечуючи план для регулярного оновлення та виправлення вразливих компонентів.

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

Недостатня реєстрація та моніторинг:

Більшість систем не вживають достатньо заходів та кроків для виявлення порушень даних. Середній час реакції інциденту становить 200 днів після того, як він стався, це багато часу, щоб зробити всі неприємні речі для атакуючої особи. Недостатня реєстрація та моніторинг дозволяють зловмиснику продовжувати атакувати систему, підтримувати її утримання в системі, підробляти, утримувати та витягувати дані відповідно до потреби. Зловмисники використовують відсутність моніторингу та реагування на свою користь для нападу на веб-додаток.
У будь-який час відбувається недостатня реєстрація та моніторинг i.Журнали програм, які не відстежуються на предмет незвичних дій, перевіряються події, такі як невдалі спроби входу та великі значення транзакцій, не реєструються належним чином, попередження та помилки генерують незрозумілі повідомлення про помилки, відсутність тривожного попередження у випадку пентестування за допомогою автоматизованих інструментів DAST, неможливість виявити або швидко попереджати про активні атаки тощо. Їх можна пом'якшити, забезпечивши всі логіни, помилки контролю доступу та перевірку вводу на стороні сервера, щоб ідентифікувати шкідливий обліковий запис користувача та утримувати достатньо часу для відкладеного судово-медичного розслідування, переконавшись, що створені журнали мають формат сумісний із централізованими рішеннями управління журналами, забезпечуючи перевірку цілісності транзакцій великої вартості, встановлюючи систему своєчасного оповіщення про підозрілу діяльність тощо.

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

Висновок:

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

Встановіть найновіший емулятор Dolphin для Gamecube & Wii на Linux
Емулятор Dolphin дозволяє грати у вибрані вами ігри Gamecube та Wii на персональних комп’ютерах Linux (ПК). Будучи вільно доступним і відкритим ігров...
Як використовувати GameConqueror Cheat Engine в Linux
Стаття висвітлює посібник із використання механізму читів GameConqueror в Linux. Багато користувачів, які грають у ігри в Windows, часто використовуют...
Кращі емулятори ігрової консолі для Linux
У цій статті буде перелічено популярне програмне забезпечення для емуляції ігрової консолі, доступне для Linux. Емуляція - це рівень сумісності програ...