Малварь на просвет. Учимся быстро искать признаки вредоносного кода - «Новости» » Самоучитель CSS
Меню
Наши новости
Учебник CSS

Невозможно отучить людей изучать самые ненужные предметы.

Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3

Надо знать обо всем понемножку, но все о немногом.

Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы

Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)

Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода

Самоучитель CSS

Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5

Новости

Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости

Справочник CSS

Справочник от А до Я
HTML, CSS, JavaScript

Афоризмы

Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы

Видео Уроки


Наш опрос



Наши новости

      
      
  • 24 марта 2016, 16:20
7-07-2020, 12:36
Малварь на просвет. Учимся быстро искать признаки вредоносного кода - «Новости»
Рейтинг:
Категория: Новости

Представь, что на твоем компьютере возник неизвестный исполняемый файл, но отправлять его на проверку в VirusTotal ты почему-то не хочешь. Например, потому что он может уйти в исследовательскую лабораторию, где его пристально изучат. В этой статье я покажу тебе, как провести такое исследование самостоятельно.

В целом, если говорить про анализ исполняемых файлов, можно выделить два подхода — это статический анализ и динамический анализ.



Малварь на просвет. Учимся быстро искать признаки вредоносного кода - «Новости»
Виды анализа исполняемых файлов

Статический анализ предполагает анализ файла без его запуска на выполнение. Он может быть базовым — в этом случае мы не анализируем непосредственно инструкции процессора в файле, а производим поиск нетипичных для обычных файлов артефактов (например, таких как строки или названия и последовательности API-функций), либо расширенным — в этом случае файл дизассемблируется и производится исследование инструкций, поиск их характерных для вредоносных программ последовательностей и определение того, что именно делала программа.



Динамический анализ заключается в исследовании файла с его запуском в системе. Он тоже может быть базовым и расширенным. Базовый динамический анализ — это исследование файла с его запуском без использования средств отладки, он заключается в отслеживании событий, связанных с этим файлом (например, обращение к реестру, дисковые операции, взаимодействие с сетью и т. п.). Расширенный динамический анализ заключается в исследовании поведения запущенного файла с применением средств отладки.



В этой статье я расскажу о базовых техниках статического анализа. Его преимущества:



  • позволяет получить результат достаточно быстро;

  • безопасен для системы при соблюдении минимальных мер предосторожности;

  • не требует подготовки специальной среды.

Основной недостаток базового статического анализа — это его низкая эффективность при анализе и распознавании сложных вредоносных программ, например упакованных неизвестным упаковщиком или использующих полное либо частичное шифрование файла с применением продвинутых алгоритмов.


Инструментарий


HEX-редакторы



Один из основных инструментов статического базового анализа — это HEX-редактор. Их много, но в первую очередь необходимо отметить Hiew. Это безусловный лидер и бестселлер. Помимо непосредственно функций HEX-редактора, в нем реализовано еще много дополнительных возможностей, связанных с анализом файла: это и дизассемблер, и просмотрщик секций импорта и экспорта, и анализатор заголовка исполняемых файлов. Главный недостаток — все это не бесплатно (хотя и весьма недорого — от 555 рублей).



HEX-редактор Hiew

Если не хочется тратить деньги, то можно обратить внимание, например, на Hex Editor Neo (есть бесплатный вариант) или на HxD Hex Editor.


Детекторы упаковщиков



Если есть подозрение, что файл упакован, то с помощью детектора упаковщиков можно попытаться определить, какой упаковщик при этом использовался, и попробовать распаковать исследуемый файл. Долгое время безусловным лидером здесь была программа PEiD, и в принципе можно пользоваться и ей, однако поддержка давно прекращена и новых сигнатур для определения типов упаковщика уже никто не выпускает. Альтернатива — Exeinfo PE.



Exeinfo PE

Эта программа, помимо детекта упаковщиков, имеет еще много других функций для анализа исполняемых файлов Windows, и во многих случаях можно обойтись ей одной.


Специализированные утилиты для исследования исполняемых файлов Windows



Программа CFF Explorer из пакета Explorer Suite — это настоящий швейцарский нож для исследователя PE-файлов. Позволяет получить огромное количество разнообразной информации обо всех компонентах структуры PE-файла и, помимо прочего, может служить HEX-редактором.



CFF Explorer

Так что настоятельно рекомендую CFF Explorer, тем более что программа бесплатная.


Python-модуль pefile



Python-модуль pefile позволит обойтись при анализе PE-файлов исключительно интерпретатором Python. С ним практически все операции по базовому статическому анализу можно реализовать путем написания небольших скриптов. Прелесть всего этого в том, что заниматься исследованием PE-файлов можно в Linux.



Модуль присутствует в PyPi, и установить его можно через pip:



pip install pefile

Yara



Ну и в завершение всего списка весьма популярный и востребованный инструмент, ставший своеобразным стандартом в среде антивирусной индустрии, — проект Yara. Разработчики позиционируют его как инструмент, который помогает исследователям малвари идентифицировать и классифицировать вредоносные сэмплы. Исследователь может создать описания для разного типа малвари в виде так называемых правил, используя текстовые или бинарные паттерны.



WWW

  • Актуальная версия Yara

  • Англоязычная справка по написанию правил

  • Перевод справки на русский (обрати внимание — он слегка устарел)


Меры предосторожности



Чтобы обезопасить систему при проведении базового статического анализа подозрительных файлов, необходимо:



  • установить запрет на операцию чтения и выполнения анализируемого файла (вкладка «Безопасность» в контекстном меню «Свойства»);

  • сменить разрешение файла с .exe на какое-нибудь другое (или вообще убрать расширение анализируемого файла);

  • не пытаться открыть файл текстовыми процессорами и браузерами.

Можно обойтись этими мерами и не использовать виртуальную среду, хотя для полной безопасности можешь установить, например, Virtual Box и проводить анализ в нем (тем более что для динамического анализа без виртуалки, как правило, не обойтись).


Определение типа файла



Я думаю тебе известно, что признак PE-файла в Windows — это не только расширение .exe, .dll, .drv или .sys. Внутри него содержатся и другие отличительные черты. Первая из них — это сигнатура из байт вида "MZ" (или 0x4d, 0x5a в шестнадцатеричном представлении) в самом начале файла. Вторая — сигнатура также из двух байт PE Рё РґРІСѓС… нулевых байтов следом (или 0x50, 0x45, 0x00, 0x00 РІ шестнадцатеричном представлении).



Смещение этой сигнатуры относительно начала файла записано РІ так называемом DOS-заголовке РІ поле e_lfanew, которое находится по смещению 0x3c от начала файла.



WWW

  • Описание формата PE на сайте Microsoft

  • «Исследуем Portable Executable» (Codeby.net)

По большому счету наличие этих двух сигнатур в файле и подходящее расширение свидетельствует о том, что перед нами именно PE-файл, однако при желании можно посмотреть еще значение поля Magic опционального заголовка (Optional Header). Это значение находится по смещению 0x18 относительно начала сигнатуры PE. Значение этого поля определяет разрядность исполняемого файла:



  • значение 0x010b говорит о том, что файл 32-разрядный (помни, что в памяти числа располагаются с обратной последовательностью байт, сначала младший байт и далее старшие байты, то есть число 0x010b будет представлено последовательностью 0x0b, 0x01);

  • значение 0x020b говорит о том, что файл 64-разрядный.

Посмотреть это все можно несколькими способами. Первый — с помощью HEX-редактора.



Признаки PE-файла в HEX-редакторе Hiew

Второй — используя CFF Explorer или Exeinfo PE. Они наглядно показывают значения указанных сигнатур.



Третий способ — использовать возможности Python, запустив такой скрипт:



with open(<путь к файлу>, 'rb') as file:
# прочитаем первые 1000 байт файла (больше и не надо)
buffer = file.read(1000)
e_ifanew = int.from_bytes(buffer[0x3c:0x40], byteorder='little')
mz_signature = buffer[0x0:0x2]
pe_signature = buffer[e_ifanew:e_ifanew + 0x4]
magic = buffer[e_ifanew + 0x18:e_ifanew + 0x1a]
if mz_signature == b'MZ' and pe_signature == b'PEx00x00':
if magic == b'x0bx01':
print('Файл', sys.argv[1], 'является исполнимым PE32 файлом Windows.')
elif magic == b'x0bx02':
print('Файл', sys.argv[1], 'является исполнимым PE64 файлом Windows.')
else:
print('Файл', sys.argv[1],'не является PE файлом Windows.')
[/code]

Или можешь использовать вот такое правило для Yara:



import "pe" //импортируем Yara-модуль pe
rule is_pe_file
{
strings:
$MZ_signature = "MZ"
condition:
($MZ_signature at 0) and (pe.is_32bit() or pe.is_64bit())
}


Поиск в VirusTotal по хешу



Отправить на VirusTotal для проверки можно не только сам файл, но и его хеш (md5, sha1 или sha256). В этом случае, если такой же файл уже анализировался, VirusTotal покажет результаты этого анализа, при этом сам файл на VirusTotal мы не засветим.



Думаю, как узнать хеш файла, ты прекрасно знаешь. В крайнем случае можно написать небольшой скрипт на Python:



import hashlib
with open(<путь к файлу>, 'rb') as file:
buffer = file.read()
print('md5 =', hashlib.md5(buffer).hexdigest())
print('sha1 =', hashlib.sha1(buffer).hexdigest())
print('sha256 =', hashlib.sha256(buffer).hexdigest())


Результат подсчета хеша шлем на VirusTotal либо применяем мои рекомендации из статьи «Тотальная проверка. Используем API VirusTotal в своих проектах» и автоматизируем этот процесс с помощью небольшого скрипта на Python.



import sys
import requests

## будем использовать 2-ю версию API VirusTotal
api_url = 'https://www.virustotal.com/vtapi/v2/file/report'
## не забудь про ключ доступа к функциям VirusTotal
params = dict(apikey=<ключ доступа к API VirusTotal>, resource=str(sys.argv[1]))

response = requests.get(api_url, params=params)
if response.status_code == 200:
result = response.json()
if result['response_code'] == 1:
print('Обнаружено:', result['positives'], '/', result['total'])
print('Результаты сканирования:')
for key in result['scans']:
print('t' + key, '==>', result['scans'][key]['result'])
elif result['response_code'] == -2:
print('Запрашиваемый объект находится в очереди на анализ.')
elif result['response_code'] == 0:
print('Запрашиваемый объект отсутствует в базе VirusTotal.')
else:
print('Ошибка ответа VirusTotal.')
else:
print('Ошибка ответа VirusTotal.')
[/code]

Как видишь, скрипт получает значение хеша, переданного в виде аргумента командной строки, формирует все нужные запросы для VirusTotal и выводит результаты анализа.



Если VirusTotal выдал в ответ какие-нибудь результаты анализа, это значит, что исследуемый файл уже кто-то загружал для анализа и его можно загрузить туда повторно и получить более актуальные результаты, на чем анализ можно и завершать. Но вот если VirusTotal не найдет файла в базах, тогда есть смысл идти дальше.


Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Представь, что на твоем компьютере возник неизвестный исполняемый файл, но отправлять его на проверку в VirusTotal ты почему-то не хочешь. Например, потому что он может уйти в исследовательскую лабораторию, где его пристально изучат. В этой статье я покажу тебе, как провести такое исследование самостоятельно. В целом, если говорить про анализ исполняемых файлов, можно выделить два подхода — это статический анализ и динамический анализ. Виды анализа исполняемых файлов Статический анализ предполагает анализ файла без его запуска на выполнение. Он может быть базовым — в этом случае мы не анализируем непосредственно инструкции процессора в файле, а производим поиск нетипичных для обычных файлов артефактов (например, таких как строки или названия и последовательности API-функций), либо расширенным — в этом случае файл дизассемблируется и производится исследование инструкций, поиск их характерных для вредоносных программ последовательностей и определение того, что именно делала программа. Динамический анализ заключается в исследовании файла с его запуском в системе. Он тоже может быть базовым и расширенным. Базовый динамический анализ — это исследование файла с его запуском без использования средств отладки, он заключается в отслеживании событий, связанных с этим файлом (например, обращение к реестру, дисковые операции, взаимодействие с сетью и т. п.). Расширенный динамический анализ заключается в исследовании поведения запущенного файла с применением средств отладки. В этой статье я расскажу о базовых техниках статического анализа. Его преимущества: позволяет получить результат достаточно быстро; безопасен для системы при соблюдении минимальных мер предосторожности; не требует подготовки специальной среды. Основной недостаток базового статического анализа — это его низкая эффективность при анализе и распознавании сложных вредоносных программ, например упакованных неизвестным упаковщиком или использующих полное либо частичное шифрование файла с применением продвинутых алгоритмов. Инструментарий HEX-редакторы Один из основных инструментов статического базового анализа — это HEX-редактор. Их много, но в первую очередь необходимо отметить Hiew. Это безусловный лидер и бестселлер. Помимо непосредственно функций HEX-редактора, в нем реализовано еще много дополнительных возможностей, связанных с анализом файла: это и дизассемблер, и просмотрщик секций импорта и экспорта, и анализатор заголовка исполняемых файлов. Главный недостаток — все это не бесплатно (хотя и весьма недорого — от 555 рублей). HEX-редактор Hiew Если не хочется тратить деньги, то можно обратить внимание, например, на Hex Editor Neo (есть бесплатный вариант) или на HxD Hex Editor. Детекторы упаковщиков Если есть подозрение, что файл упакован, то с помощью детектора упаковщиков можно попытаться определить, какой упаковщик при этом использовался, и попробовать распаковать исследуемый файл. Долгое время безусловным лидером здесь была программа PEiD, и в принципе можно пользоваться и ей, однако поддержка давно прекращена и новых сигнатур для определения типов упаковщика уже никто не выпускает. Альтернатива — Exeinfo PE. Exeinfo PE Эта программа, помимо детекта упаковщиков, имеет еще много других функций для анализа исполняемых файлов Windows, и во многих случаях можно обойтись ей одной. Специализированные утилиты для исследования исполняемых файлов Windows Программа CFF Explorer из пакета Explorer Suite — это настоящий швейцарский нож для исследователя PE-файлов. Позволяет получить огромное количество разнообразной информации обо всех компонентах структуры PE-файла и, помимо прочего, может служить HEX-редактором. CFF Explorer Так что настоятельно рекомендую CFF Explorer, тем более что программа бесплатная. Python-модуль pefile Python-модуль pefile позволит обойтись при анализе PE-файлов исключительно интерпретатором Python. С ним практически все операции по базовому статическому анализу можно реализовать путем написания небольших скриптов. Прелесть всего этого в том, что заниматься исследованием PE-файлов можно в Linux. Модуль присутствует в PyPi, и установить его можно через pip: Yara Ну и в завершение всего списка весьма популярный и востребованный инструмент, ставший своеобразным стандартом в среде антивирусной индустрии, — проект Yara. Разработчики позиционируют его как инструмент, который помогает исследователям малвари идентифицировать и классифицировать вредоносные сэмплы. Исследователь может создать описания для разного типа малвари в виде так называемых правил, используя текстовые или бинарные паттерны. WWW Актуальная версия Yara Англоязычная справка по написанию правил Перевод справки на русский (обрати внимание — он слегка устарел) Меры предосторожности Чтобы обезопасить систему при проведении базового статического анализа подозрительных файлов, необходимо: установить запрет на операцию чтения и выполнения анализируемого файла (вкладка «Безопасность» в контекстном меню «Свойства»); сменить разрешение файла с .exe на какое-нибудь другое (или вообще убрать расширение анализируемого файла); не пытаться открыть файл текстовыми процессорами и браузерами. Можно обойтись этими мерами и не использовать виртуальную среду, хотя для полной безопасности можешь установить, например, Virtual Box и проводить анализ в нем (тем более что для динамического анализа без виртуалки, как правило, не обойтись). Определение типа файла Я думаю тебе известно, что признак PE-файла в Windows — это не только расширение .exe, .dll, .drv или .sys. Внутри него содержатся и другие отличительные черты. Первая из них — это сигнатура из байт вида
Просмотров: 512
Комментариев: 0:   7-07-2020, 12:36
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

 
Еще новости по теме:



Другие новости по теме: