Архів для категорії 'Статті'

Обхід поведінкового аналізу, або шкідливе ПЗ наносить удар у відповідь

22:48 30.07.2011

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

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

Ідея цього методу в мене виникла ще в травні, одразу після мого виступу на конференці UISG та ISACA Kiev Chapter з доповіддю про системи виявлення інфікованих веб сайтів. Тоді, після мого виступу, багато людей вирішили поговорити зі мною в кулуарах на цю тему, і задали багато цікавих питань про веб антивіруси і мою WebVDS. І зокрема в розмові ми торкнулися методів обходу таких систем, де я і розповів про клоакінг, про який писав в вищезгаданій статті в 2010 році. А вже як повернувся додому, в мене виникла нова ідея, про яку я зараз розповім.

Повідінковий аналіз вважається більш ефективним методом виявлення шкідливого програмного забезпечення ніж сигнатурний чи еврестичний метод. Серед веб антивірусів є лише дві системи, які відомі мені, що використовують повідінковий аналіз. Це вбудовані антивіруси в пошукових системах Google і Yandex. В Яндексі повідінковий аналіз додали на початку 2010 року і, по заяві компанії, вони одночасно використовують як першу технологію (від Sophos, що явно базується на сигнатурах), так і другу. Зазначу, що обидві ці системи приймали участь в моєму минулорічному тестуванні систем пошуку вірусів на веб сайтах, в якому з семи учасників Гугл заяняв 1 місце, а Яндекс 7 місце.

Для обходу поведінкового аналізу шкідливе ПЗ може використати наступні методи:

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

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

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

Забезпечення безпеки публічних веб серверів

22:45 21.07.2011

В своїй презентації Guidelines on Securing Public Web Servers, представники National Institute of Standards and Technology (NIST) розповідають про забезпечення безпеки публічних веб серверів. Це офіційні рекомендації американського NIST (датовані 2007 роком).

Стан шкідливого ПЗ в 2011 році

22:40 16.07.2011

В своєму звіті The State of Badware (June 2011), організація StopBadware розповідає про ситуацію з шкідливим програмним забезпеченням в поточному році (за станом на червень 2011). Описуєтья поточний стан та причини існуючої ситуації зі шкідливими ПЗ в Інтернеті.

Даний звіт складається за наступних розділів, де розглянуті різні аспекти даної проблеми:

  • Introduction
  • Measuring Badware
  • Why are things in this state
  • Ecosystem Responses
  • Conclusion

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

Експлуатація DLL Hijacking уразливостей

20:19 13.07.2011

Продовжуючи розпочату традицію, після попереднього відео про DLL Hijacking eксплоіт для Windows Live Email, пропоную нове відео на веб секюріті тематику. Цього разу відео про експлуатацію DLL Hijacking уразливостей. Рекомендую подивитися всім хто цікавиться цією темою.

DLL Hijacking Client Side Exploit

В даному відео ролику демонструється процес пошуку DLL Hijacking уразливостей в Windows додатках та процес використання експлоіта (зробленого в Metasploit Framework) для такої уразливості. Атака відбувається як через Windows Explorer, так і через IE. Експлоіт дозволяє проводити віддалене виконання коду в уразливій програмі.

Атака відбувається при відвідуванні спеціально створеного шару в локальній мережі або веб сторінки в Інтернеті. Коли в Провіднику або в Internet Explorer відвідується спеціальний ресурс через який відбувається атака на уразлий додаток. Рекомендую подивитися дане відео для розуміння векторів DLL Hijacking атак на клієнтські додатки.

DLL Hijacking eксплоіт для Windows Live Email

19:20 02.07.2011

Продовжуючи розпочату традицію, після попереднього відео про DLL Hijacking eксплоіт для Firefox, пропоную нове відео на веб секюріті тематику. Цього разу відео про DLL Hijacking eксплоіт для Windows Live Email (поштовий клієнт). Рекомендую подивитися всім хто цікавиться цією темою.

Metasploit DLL Hijacking Exploit - Windows Live Email

В даному відео ролику демонструється використання експлоіта (зробленого в Metasploit Framework) для DLL Hijacking уразливості в Windows Live Email - дана програма є приємником Outlook Express та Windows Mail. Причому атака відбувається частково через IE. Експлоіт дозволяє проводити віддалене виконання коду в даному почтовому клієнті.

Атака відбувається при відвідуванні спеціально створеної веб сторінки (що експлуатує дану уразливість). Коли в браузері Internet Explorer відвідується спеціальний ресурс через який відбувається атака на Windows Live Email. Рекомендую подивитися дане відео для розуміння векторів атак на поштові клієнти.

Цікаве чтиво на тему web security

19:28 01.07.2011

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

Добірка цікавого чтива на тему безпеки, в тому числі web security (статті з Вікіпедії):

Просунуті методи SQL Injection атак: ідентифікація

20:09 25.06.2011

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

Зараз розповім вам про визначення кількості колонок при SQL Injection. Що є актуальним як при експлуатації звичайних SQL ін’єкцій, так і особливо blind SQLi уразливостей.

Ідентифікація кількості колонок в поточному запиті зокрема потрібна при union запитах. При звичайних SQL Injection інформацію про кількість колонок можна отримати з службових таблиць MySQL (для версій 5 і вище) і то це допоможе лише якщо в запиті виводяться всі колонки з таблиці. Але якщо версія MySQL менше 5 чи при сліпих SQLi, то це не спрацює. Й потрібно вручну довго підбирати кількість колонок - і чим складніше SQL запит (чим більше в ньому колонок запитується), тим довшим є цей процес.

І щоб пришвидши процес ідентифікації кількості колонок можна використати один простий і зручний метод (зокрема в MySQL). Це оператор order by.

Це відомий оператор для програмістів, що використовують мову SQL, але в ньому є цікава особливість. Як я виявив рік тому (в документації по MySQL), в операторі order by можна вказати не тільки ім’я колонки чи вираз (для сортування), але й її порядковий номер. Що можна використати при SQL Injection атаках.

Синтаксис оператора наступний: order by 5. Наприклад, для SQLi атаки можна використати наступний код: -1 or 1=1 order by 5. Якщо запит виконається успішно, значить як мінімум п’ять колонок є в даному запиті. Максимальне значення, при якому SQL запит буде виконуватися, і буде кількістью колонок в даному запиті (або в даній таблиці).

DLL Hijacking eксплоіт для Firefox

22:46 23.06.2011

Продовжуючи розпочату традицію, після попереднього відео про інфікований goggle.com, пропоную нове відео на веб секюріті тематику. Цього разу відео про DLL Hijacking eксплоіт для Firefox. Рекомендую подивитися всім хто цікавиться цією темою.

Metasploit DLL Hijacking Exploit - Firefox

В даному відео ролику демонструється використання експлоіта (зробленого в Metasploit Framework) для DLL Hijacking уразливості в Firefox 3.6. Причому атака відбувається частково через IE (тому вона можлива лише в системах, де одночасно присутні обидва Firefox та IE). Експлоіт дозволяє проводити віддалене виконання коду в даному браузері.

Атака відбувається при відвідуванні спеціально створеної веб сторінки (що експлуатує дану уразливість). Рекомендую подивитися дане відео для розуміння векторів атак на веб браузери, зокрема на Mozilla Firefox.

Просунуті методи SQL Injection атак: групування

22:45 21.06.2011

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

Зараз розповім вам про групування при SQL Injection. Групування - це відома процедура, що використовується при SQL запитах у веб додатках (а також при атаках на SQL Injection уразливості) для об’єднати в одному полі результуючих даних декілька полів.

Зокрема в MySQL групування відбувається за допомогою використання функцій concat та concat_ws. Це буває корисним при SQL ін’єкції, коли потрібно (для зручності чи при обмеженнях) вивести значення кількох полів в одному.

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

Її синтаксис наступний: group_concat(table_name) або group_concat(table_name separator 0×3a). Детально про синтаксис ви можете дізнатися в документації MySQL.

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

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

Нова парадигма захисту від шкідливого ПЗ у Вебі

22:44 16.06.2011

В своїй презентації Web Malware Explosion Requires New Protection Paradigm, Invincea розповідає про шкідливе програмне забезпечення у Вебі. Про масштаби поширення інфекцій на веб сайтах в Інтернеті та засоби захисту від шкідливого ПЗ.

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