Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Оценка 4.8
Занимательные материалы +1
docx
информатика +1
10 кл—11 кл +1
12.11.2017
Обфуска́ція (від лат. obfuscare — затіняти, затемнювати; англ. obfuscate — робити неочевидним, заплутаним, збивати з пантелику) або заплутування коду — запис звичайного тексту, або виконуваного програмного коду до виду, який зберігає її функціональність, але ускладнює аналіз, розуміння алгоритму роботи і модифікації при декомпіляції.
Обфускація, як неважко здогадатися, здійснюється з метою захисту програмного коду і алгоритмів, які він реалізує, від чужих очей, які, незважаючи на найсуворіші заборони розробників, люблять підглядати за тим, що і яким саме чином написане.Файл з розширенням docx
Обфуска́ція-новий термін.docx
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя
інформатики
Сіденко О.М., вчитель інформатики, ЗОШ №21, м. Черкаси
Обфуск ціяаа
(від лат. obfuscare — затіняти, затемнювати; англ. obfuscate — робити
неочевидним, заплутаним, збивати з пантелику) або заплутування коду — запис
звичайного тексту, або виконуваного програмного коду до виду, який зберігає її
функціональність, але ускладнює аналіз, розуміння алгоритму роботи і модифікації
при декомпіляції.
Обфускація, як неважко здогадатися, здійснюється з метою захисту програмного
коду і алгоритмів, які він реалізує, від чужих очей, які, незважаючи на найсуворіші
заборони розробників, люблять підглядати за тим, що і яким саме чином написане.
Існує декілька різних видів обфускації залежно від того, який саме код доводиться
ховати. Для тих мов програмування, для яких програма представляється прямо у вигляді
початкових текстів, використовуються спеціальні методи, що роблять код не здатним для
читання людиною, але прийнятним для інтерпретатора. Серед них запис програми в один
рядок, заміна імен змінних і функцій, вставка нічого не значущих коментарів
(приміром як кодують теги вебсторінок). Для обфускації двійкового коду (як для
виконуваних файлів, так і двійкового коду віртуальних машин .NET і Java)
використовуються вже серйозніші методи, у тому числі і шифрування. Проте слід
враховувати, що для двійкового коду обфускація здатна серйозно понизити швидкість
роботи захищених ділянок програми. Тому більші частини коду, як правило, не мають
серйозного криптографічного захисту.
Обфускації може піддаватися не лише програмний код, але й інші види даних :
наприклад, існують спеціалізовані методи обфускації HTML сторінок (особливо
ефективне впровадження сценаріїв JavaScript, які пишуть текст динамічно, і картинок з
текстом). Обфускація HTML сторінок дуже корисна для спамерів, які з її допомогою
обходять спам фільтри. Окрім захисту, обфускація для деяких мов, що інтерпретуються,
збільшує швидкість виконання програми правда, це можливо тільки при застосуванні
оптимізуючих обфускаторів.
Якість обфускації
Ефективність: наскільки програма стає нечитабельною.
Стійкість: наскільки складно зламати програму автоматизованими засобами
Якість перетворень здійснюваних в процесі обфускації визначається за допомогою
наступних критеріїв:
1.
2.
деобфускації.
3.
4.
Прозорість: наскільки добре обфусцирований код взаємодіє з початковим кодом.
Вартість: наскільки великий об'єм надмірного коду в обфусцированому додатку.
Але у більшості випадків обфускація має масу побічних ефектів. У особливо
неприємних обставинах обфускатор може зробити програму абсолютно непридатною до
виконання, в менш важких випадках в програмі можуть з'явитися нові помилки. Тому
обфускацію необхідно застосовувати з максимальною обережністю.
Обфускація коду використовується не лише творцями комерційного програмного
забезпечення для відвертання можливості реверс інжинірингу; творці шкідливого коду
також можуть використати обфускацію для того що б сховати свої творіння від
антивірусних сканерів. Кінець кінцем, обидві області використання обфускації мають одну спільну мету зробити програму незрозумілою для третьої особи. Зрозуміло, різні сфери
застосування використовують свої специфічні особливості. Віруси мають враховувати той
факт, що їх методи обфускації повинні постійно змінюватися, інакше сканер буде здатний
розрізнити його по постійній сигнатурі. Це вносить обмеження за часом і простору.
Комерційне програмне забезпечення ставить на перше місце питання
продуктивності, яке обмежує використання багатьох можливих типів обфускації. У цьому
розділі будуть розглянуті відмінності між типами і прийомами обфускації для
комерційного програмного забезпечення і для захисту шкідливого коду. Насамперед варто
розглянути типи вірусів, які можуть використати прийоми обфускації, далі слід звернути
увагу на перетворення, які використовуються ними для відвертання їх виявлення. І
нарешті, будуть розглянуті можливості прийомів і варіанти їх використання в програмному
забезпеченні.
Для початку приведемо оригінальні значення ключів реєстру OS Windows
Оригінальні значення ключів реєстру Shell, UIHost, Userinit:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit є
«c:\windows\system32\userinit.exe,»
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell є «explorer.exe»
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UIHost є
«logonui.exe»
(для Windows XP, Vista, 7 32 та 64 bit)
Перевірити автозавантаження:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run на наявність там значення, або
назви, що створюється в результаті виконання обфускації, наприклад "4juyuyuui.exe". За
наявності такого видалити його.
Приклад:
Вірус може прописати себе наприклад так:
Userinit = C :\WINDOWS\system32\userinit.exe, C:\WINDOWS\system32\gertinw.exe
У цьому прикладі файл gertinw.exe це 100% вірус. Обов'язково запам'ятайте шлях до
файлу вірусу і видаліть його.
Після чого оновлюємо вікно програми " Autoruns" і контролюємо відповідність внесених
змін : Обов'язково треба видалити сам вірусний файл (у нашому випадку він називається
4juyuyuui.exe). Зазвичай він знаходиться в теці тимчасових файлів користувача.
Просканувати реєстр на наявність інших гілок реєстру зі значенням "4juyuyuui.exe " і
видалити їх.
Щоб максимально спростити ситуацію скажу, що для того, щоб позбавитися від
цього вірусу досить почистити тимчасові теки і зробити Відновлення системи (за умови
якщо воно було включене і не пошкоджене вірусами). Це дасть аналогічний результат і
позбавить Вас від непотрібного колупання в реєстрі.
Коли ми говоримо про процес обфускації, з'являється питання: чи є процес
зворотний йому, який дозволив би зловмисникові повернути найбільш схожий первинний
код програми, тобто код до обфускації? На це питання важко дати однозначну відповідь,
але такий процес існує і називається деобфускація. Але інше не менш важливе питання, це
як його можна реалізувати.
Останнім часом з'явилося багато вірусів які блокують комп'ютер і від імені силових
структур України повідомляють що користувач нібито порушив щось і тепер для
розблокування комп'ютера треба заплатити якусь суму грошей. А хуліган запускає
конструктор антивірусів (яких в Інтернеті повно) складає вірус з готових частин, вставляє
туди свій текст і поширює такий вірус по Інтернету. Як правило ефективність таких
вірусів наближається до тотальної епідемії, адже вже майже усі антивірусні програми
знайомі з цими блоками з яких складаються віруси і не досить успішно з ними
справляються. Прийоми боротьби в цьому випадку.
Завантажуємо комп’ютер у безпечному режимі з підтримкою командного рядка, вводимо
команду regedit, відкривається редактор реєстру. там шукаємо HKEY LOCAL
MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Winlogon. Там буде багато
різних написів але нас цікавить тільки Shell і Userinit. Відкриваємо їх і дивимося: параметр
має бути прописаний тільки explorer.exe якщо там написано щось інше то це адреса
розташування вірусу. Тепер ми знаємо де він засів. Прописуємо "explorer.exe" (без лапок).
А в Userinit повинно бути "C:\WINDOWS\system32\userinit.exe," (без лапок і обов'язково з
комою на кінці!).
Якщо у вас Shell і Userinit написані правильно то:
Завантажуємо комп’ютер у безпечному режимі з підтримкою командного рядка, вводимо
команду msconfig. Запускається Налаштування системи, заходимо в
" автозавантаження" і шукаємо там в другому стовпці (команда). Вірус він зазвичай
виглядає як С:\user\87656565676.exe. Шукаємо не логічний напис 87656565676.exe на
кінці рядка.
Можливі варіанти :
C:\Documents and Settings\<ім'я комп'ютера>\Робочий стіл\87656565676.exe
С:\user\87656565676.exe
C:\WINDOWS\system32\87656565676.exe
і тому подібне. Називатися він може по різному.
Прибираємо Галочку у нього і натискаємо " Застосувати" і " ОК".
Запам'ятовуємо або записуємо де знаходиться вірус, наприклад С:\user\87656565676.exe,
Перезавантажуємо і заходимо в звичайний Windows, коли комп'ютер завантажиться, то
треба зайти за адресою який ми запам'ятали (чи записали) і видалити вірус.
Найбільш популярні місця розміщення файлів, або троянів в Windows XP є наступні
директорії:
C:\Documents and Settings\Текущий пользователь\Local Settings\Application Data
C:\Documents and Settings\All Users\Local Settings\Application Data C:\Documents and Settings\Текущий пользователь\Local Settings\Temporary Internet Files
C:\Documents and Settings\All Users\Local Settings\Temporary Internet Files
C:\Documents and Settings\Текущий пользователь\Local Settings\Temp
C:\Documents and Settings\All Users\Local Settings\Temp
C:\Windows
C:\Windows\Temp
C:\Windows\System32
C:\Documents and Settings\Текущий пользователь\Главное меню\Программы\Автозагрузка
C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка
Якщо стосується автозавантаження то слід шукати в наступних розділах реєстру:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Параметри: Userinit, UIHost, Shell.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\userinit.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File
Execution Options\explorer.exe
Якщо шукати в реєстрі Windows важко, то користуються завантажувальними
дисками, здатними допомогти, якщо ваш Windows XP раптом заблокувався. Так
AntiWinLocker утиліта в автоматичному режимі знайде і видалить троянську програму, а
також відновить пошкоджені файли і системний реєстр. На комерційній основі
AntiWinLocker можна використати і для захисту Windows від блокувальників,
встановивши на комп'ютер.
Для видалення банера за допомогою цієї програми знадобиться мінімум дій :
завантажтеся з AntiWinLockerLiveCD, прийміть ліцензійну угоду і натисніть кнопку
" Старт";
виберіть з меню пункт "Автоматичний запуск";
погодьтеся на пропозицію заміни файлів (якщо буде), відмітивши їх в списку і натиснувши
" Виконати";
після завершення роботи програми запустіть комп'ютер з жорсткого диска блокування
буде знято.
Література:
Christian Collberg, Clark Thomborson, and Douglas Low. A taxonomy of obfuscating
1.
transformations, July 1997.
Christian Collberg, Clark Thomborson, and Douglas Low. Manufacturing cheap,
2.
resilient, and stealthy opaque constructs. In Principles of Programming Languages 1998,
POPL’98, pages 184–196, 1998. Christian S. Collberg and Clark Thomborson. Watermarking, tamper–proofing, and
3.
obfuscation — tools for software protection. In IEEE Transactions on Software Engineering,
volume 28, pages 735–746, August 2002.
Christian S. Collberg, Clark D. Thomborson, and Douglas Low. Breaking abstractions
4.
and unstructuring data structures. In International Conference on Computer Languages, pages
28–38, 1998.
5.
In IEEE International Workshop on Source Code Analysis and Manipulation, September 2004.
6.
Disassembly, 2003.
7.
Moseley. A multi–faceted defence mechanism against code injection attacks.
8.
Software protection through dynamic code mutation.
9.
10.
resistance: Obstructing static analysis of programs. Technical Report CS–2000–12, 12 2000.
Peter Szor and Peter Ferrie. Hunting for Metamorphic, September 2001.
Chenxi Wang, Jonathan Hill, John Knight, and Jack Davidson. Software tamper
C. Linn and S. Debray. Obfuscation of Executable Code to Improve Resistance to Static
A. Lakhotia and E. U. Kumar. Abstract stack graph to detect obfuscated calls in binaries.
C. M. Linn, M. Rajagopalan, S. Baker, C. Collberg, S. K. Debray, J. H. Hartman, and P.
M. Madou, B. Anckaert, P. Moseley, S. Debray, B. De Sutter, and K. De Bosschere.
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Нові терміни, нові напрямки «нападу та захисту» для звичайного вчителя інформатики
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.