Содержание статьи
JavaScript — это язык программирования сценариев, который в основном используется на веб-страницах. Чтобы узнать, насколько широко он используется, просто установите плагин NoScript для браузера и посетите любой веб-сайт — отключенный скриптинг, вероятно, лишит веб-сайт значительной части его функциональности. JS-скрипты в первую очередь отвечают за взаимодействие с пользователем: динамическую загрузку содержимого страницы, реагирование на нажатия кнопок или движения мыши.
Однако при умелом использовании JavaScript можно использовать для выполнения вредоносного кода на компьютере ничего не подозревающего пользователя. Как анализировать это делается можно посмотреть на обфускация JS кода.
Обфускация кода
Обфускация — это процесс преднамеренной модификации исходного кода таким образом, чтобы он стал менее читаемым, а результат его выполнения не изменился. Обфускацию не следует путать со сжатием (английский термин «минификация», польский «минификация» — довольно неудачный, хотя и употребительный перевод), заключающееся в максимальном сгущении кода в целях повышения производительности, что также может привести к частичной обфускации.
Для чего взламывается код?
Авторы программного обеспечения чаще всего делают это, чтобы скрыть работу собственных программ, а хакеры, чтобы скрыть способ выполнения эксплойта на компьютере ничего не подозревающего пользователя. В ходе анализа инцидента мы можем столкнуться с фрагментами кода JavaScript, который выполнялся в браузере пользователя. Вредоносный код может быть внедрен на сайт, например, путем XSS-атаки или показан пользователю через правильно подготовленную рекламу (вредоносная реклама). Такой код можно расшифровать с целью его анализа, а имеющиеся инструменты облегчают эту работу, автоматизируя некоторые его элементы.
Деобфускация
Деобфускация кода — это долгий и трудоемкий процесс сборки частей исходного скрипта из фрагментов, закодированных разными методами. Зачастую деобфускация заключается не в получении исходного кода (что обычно невозможно в разумные сроки), а в изучении принципа работы и логики, скрытой, например, в вредоносных скриптах, перенаправляющих пользователей на сайты, например, размещающие эксплойт-киты.
Javascript-deobfuscator
Одним из элементов запутывания кода является удаление отступов, пробелов и новых строк. Javascript-deobfuscator поможет вам избавиться от этой проблемы и одним кликом «украсит» наш вредоносный код, а при включенной опции «Обнаруживать упаковщики и обфускаторы» выполнит первоначальную деобфускацию кода. Он доступен как бесплатное веб-приложение.
Код в листинге 4 должен быть переработан в следующую форму:
- var_0x3725=[«\x73\x65\x6B», «\x75\x72\x61\x6B», «\x2E\x70\x6C», «\x68\x74\x74\x70», «\x3A\x2F\ x2F\x77\x77\x77\x2E»,»\x6C\x6F\x63\x61\x74\x69\x6F\x6E»];
- var _0x64df = [_0x3725 [0], _0x3725 [1], _0x3725 [2], _0x3725 [3], _0x3725 [4], _0x3725 [5]];
- а = _0x64df [0];
- б = _0x64df [1];
- с = _0x64df [2];
- д = _0x64df [3];
- е = _0x64df [4];
- документ [_0x64df [5]] = d + e + a + b + c.
Видео: пример обфускации
Любая информация запоминается легче, если ее пример будет перед глазами. В видео ниже вы сможете увидеть пример обфускации Java кода.