0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Хеш четкий и хеш нечеткий

Содержание

Хеш четкий и хеш нечеткий. Как средства защиты ловят и классифицируют малварь

Содержание статьи

  • Хеш «четкий»
  • Что такое хеш
  • «Нечеткий» хеш — SSDeep
  • Алгоритм SSDeep
  • Хеш импортируемых библиотек — imphash

На практике в большинстве случаев существующая база или ядро вредоноса повторно используется для создания новой разновидности малвари. Вирусописатели особо не заморачиваются с затратной по времени разработкой новых «качественных» вирусов, а просто используют имеющиеся образцы.

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

Эти техники обнаружения зачастую используются для анализа большого массива данных и поиска в нем общих элементов. Практическими примерами использования похожих техник могут быть глобально распределенные базы знаний, такие как Virus Total и базы антивирусных компаний, а также подходы Threat Intelligence.

R или Python?

Цифровой Дискурс обратился за комментариями к экспертам-аналитикам, начинающим цифровым гуманитариям и представителям бизнеса. Часть респондентов работает с обоими языками, часть только с одним.

Мнение аналитика

Анастасия Кузнецова, свободный аналитик, автор блога «настенька и графики» (ВКонтакте, Telegram).

Я по образованию социолог, с первого курса мы изучали R для анализа данных и исследований в области computational social science. Это было большим удивлением, так как меньше всего ожидаешь встретить программирование на факультете социологии.

В итоге же R оказался полезным навыком. У него простой синтаксис, а начать изучать R можно даже самому. Он был создан под статистический анализ данных, с чем отлично справляется. Пакетов под R сделали тоже достаточно, что предоставляет возможности для социально-сетевого и текстового анализа в социальных и гуманитарных науках. А интеграция с Google Analytics, Яндекс.Метрикой и базами данных будут полезны маркетологам.

Мнение участника Python-комьюнити

Михаил Корнеев, сооснователь сообщества Moscow Python.

Мне кажется сравнивать Python и R напрямую не очень корректно. R — язык узкоспециализированный, Python — язык общего назначения. Это значит, что разобравшись с R вы будете иметь возможность работать с данными. Задачи, выходящие за рамки анализа данных и представления результатов, потребуют изучения и использования других языков. Изучение Python за счет богатых возможностей немного сложнее, но зато вы сможете решать любые возникшие задачи, не ограничивая себя.

Мнение аналитика и автора курса по R

Алексей Селезнёв, руководитель отдела аналитики в компании Netpeak, автор множества пакетов на R, автор онлайн-курса «Язык R для интернет – маркетинга» и методички по R.

Практически любую задачу в области сбора, трансформации, очистки и визуализации данных одинаково эффективно могут решить как R, так и Python.

Python я бы рекомендовал тем, кто помимо анализа, планирует заниматься веб-программированием. R более удобен для манипуляции с данными, имеет большие возможности по визуализации данных (пакет ggplot2).

Принято считать, что синтаксис Python проще, чем R, а порог вхождения в него ниже. Мне сложно об этом судить, но могу сказать, что на базовом R сейчас уже почти никто не пишет. Весь код реализуется на основе популярных пакетов, которые делают его синтаксис максимально компактным. Так, популярный пакет dplyr имеет SQL like синтаксис, и поддерживает конвейерный стиль написания кода, что позволяет избежать сохранения результата промежуточных шагов в отельные переменные.

Если подытожить всё вышесказанное, то мои рекомендации следующие:

  • если речь идёт о задачах работы с данными, то выбирайте R;
  • если о веб-программировании, то Python.

Мнение продуктового аналитика

Алексей Макаров, продуктовый аналитик CoMagic, автор telegram-канала Datalytics.

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

Говоря про получение данных, важно упомянуть, что метод решения задачи зависит от источника данных. Например, если необходимо получить данные из социальных сетей, то в первую очередь стоит познакомиться с тем как работать с API этой социальной сети:

  1. поищите примеры кода в документации или любительских статьях;
  2. запустите этот код у себя;
  3. адаптируйте его под свои нужды.

Для некоторых сервисов вы можете найти готовые библиотеки. В этом случае вам уже не нужно самому пытаться использовать API, за вас это сделает библиотека. К примеру, у Facebook есть открытая библиотека для Python. Библиотеки помогут вам, если вы занимаетесь анализом маркетинговых данных. Так, для Google Analytics есть отличная библиотека, позволяющая в несколько строчек кода вытащить статистику посещаемости сайта. Если вы хотите использовать данные, полученные с сайтов, то тогда вам нужно заняться веб-парсингом. Для этого есть отличный инструмент BeautifulSoup, который позволяет извлекать структурированную информацию из HTML-страничек.

В плане обработки данных всё немного проще. В среде аналитиков данных стандартом является библиотека Pandas. Он включает в себя огромный функционал для различных манипуляций с данными:

  • статистическая обработка,
  • очистка,
  • трансформация,
  • агрегация.

Pandas может стать достойной заменой Excel, если вы много работаете с обработкой массивов данных.

Python обладает большими возможностями и для визуализации данных. Можно начать с освоения библиотеки Bokeh или Chartify.

Особую популярность Python получил в сфере машинного обучения. В этой отрасли на нем написано большое число библиотек. Есть простой в освоении sklearn, для профессионалов есть высокопроизводительный TensorFlow.

Мнение директора мастерской по R

Александр Фенин, социальный психолог, директор мастерской «Анализ данных в социальных науках», Product Management в Яндекс.Учебник.

Александр Фенин, будучи директором мастерской «Анализа данных в социальных науках», дал развернутое интервью про «Язык R в гуманитарных и социальных исследованиях». Рекомендуем позже ознакомиться с полным текстом интервью, а пока приводим цитату из беседы с Александром:

Зачастую для научных работ психологи пользуются программой Excel, в лучшем случае такими статистическими продуктами, как SPSS или Statistica. Существуют целые гайды по тому, как тыкать в кнопочки внутри, чтобы сделать весь необходимый анализ, и даже не задумываясь, что именно происходит. R лучше в ряде существенных пунктов: во-первых, он позволяет сохранять и шерить скрипты подготовки и анализа (второе есть и в указанных продуктах, но этим мало кто пользуется); во-вторых, он позволяет на порядок более гибко и прозрачно готовить, анализировать и визуализировать данные; в-третьих, у него огромное и всегда готовое прийти на помощь комьюнити, регулярно снабжающее потенциальных исследователей новыми удобными библиотеками и идеями по обработке данных.

R почему-то очень распространился именно в социально-научной среде за рубежом и отчасти в России. Хотя это справедливо не для всех наук: лингвисты, например, в подавляющем большинстве своём предпочитают Python. Как минимум из-за более разработанного аппарата NLP.

Мнение IT-разработчика

Андрей Гроза, Backend разработчик digital-агентства Rutorika.

Читать еще:  Айболит вирус. Сканер AI Bolit — поиск вирусов на хостинге (как пользоваться скриптом). Как работает сканер AI-Bolit

Что такое хеш

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

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

MD5, SHA-1 и SHA-256 — наиболее популярные криптографические алгоритмы вычисления хеша, которые часто используются в детектировании вредоносного ПО. Еще совсем недавно вредонос опознавали только по сигнатуре (хешу) исполняемого файла.

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

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

«Пирамида боли» Дэвида Бьянко

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

Как же определить схожесть между разными образцами малвари одного семейства?

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

R или Python?

Цифровой Дискурс обратился за комментариями к экспертам-аналитикам, начинающим цифровым гуманитариям и представителям бизнеса. Часть респондентов работает с обоими языками, часть только с одним.

Мнение аналитика

Анастасия Кузнецова, свободный аналитик, автор блога «настенька и графики» (ВКонтакте, Telegram).

Я по образованию социолог, с первого курса мы изучали R для анализа данных и исследований в области computational social science. Это было большим удивлением, так как меньше всего ожидаешь встретить программирование на факультете социологии.

В итоге же R оказался полезным навыком. У него простой синтаксис, а начать изучать R можно даже самому. Он был создан под статистический анализ данных, с чем отлично справляется. Пакетов под R сделали тоже достаточно, что предоставляет возможности для социально-сетевого и текстового анализа в социальных и гуманитарных науках. А интеграция с Google Analytics, Яндекс.Метрикой и базами данных будут полезны маркетологам.

Мнение участника Python-комьюнити

Михаил Корнеев, сооснователь сообщества Moscow Python.

Мне кажется сравнивать Python и R напрямую не очень корректно. R — язык узкоспециализированный, Python — язык общего назначения. Это значит, что разобравшись с R вы будете иметь возможность работать с данными. Задачи, выходящие за рамки анализа данных и представления результатов, потребуют изучения и использования других языков. Изучение Python за счет богатых возможностей немного сложнее, но зато вы сможете решать любые возникшие задачи, не ограничивая себя.

Мнение аналитика и автора курса по R

Алексей Селезнёв, руководитель отдела аналитики в компании Netpeak, автор множества пакетов на R, автор онлайн-курса «Язык R для интернет – маркетинга» и методички по R.

Практически любую задачу в области сбора, трансформации, очистки и визуализации данных одинаково эффективно могут решить как R, так и Python.

Python я бы рекомендовал тем, кто помимо анализа, планирует заниматься веб-программированием. R более удобен для манипуляции с данными, имеет большие возможности по визуализации данных (пакет ggplot2).

Принято считать, что синтаксис Python проще, чем R, а порог вхождения в него ниже. Мне сложно об этом судить, но могу сказать, что на базовом R сейчас уже почти никто не пишет. Весь код реализуется на основе популярных пакетов, которые делают его синтаксис максимально компактным. Так, популярный пакет dplyr имеет SQL like синтаксис, и поддерживает конвейерный стиль написания кода, что позволяет избежать сохранения результата промежуточных шагов в отельные переменные.

Если подытожить всё вышесказанное, то мои рекомендации следующие:

  • если речь идёт о задачах работы с данными, то выбирайте R;
  • если о веб-программировании, то Python.

Мнение продуктового аналитика

Алексей Макаров, продуктовый аналитик CoMagic, автор telegram-канала Datalytics.

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

Говоря про получение данных, важно упомянуть, что метод решения задачи зависит от источника данных. Например, если необходимо получить данные из социальных сетей, то в первую очередь стоит познакомиться с тем как работать с API этой социальной сети:

  1. поищите примеры кода в документации или любительских статьях;
  2. запустите этот код у себя;
  3. адаптируйте его под свои нужды.

Для некоторых сервисов вы можете найти готовые библиотеки. В этом случае вам уже не нужно самому пытаться использовать API, за вас это сделает библиотека. К примеру, у Facebook есть открытая библиотека для Python. Библиотеки помогут вам, если вы занимаетесь анализом маркетинговых данных. Так, для Google Analytics есть отличная библиотека, позволяющая в несколько строчек кода вытащить статистику посещаемости сайта. Если вы хотите использовать данные, полученные с сайтов, то тогда вам нужно заняться веб-парсингом. Для этого есть отличный инструмент BeautifulSoup, который позволяет извлекать структурированную информацию из HTML-страничек.

В плане обработки данных всё немного проще. В среде аналитиков данных стандартом является библиотека Pandas. Он включает в себя огромный функционал для различных манипуляций с данными:

  • статистическая обработка,
  • очистка,
  • трансформация,
  • агрегация.

Pandas может стать достойной заменой Excel, если вы много работаете с обработкой массивов данных.

Python обладает большими возможностями и для визуализации данных. Можно начать с освоения библиотеки Bokeh или Chartify.

Особую популярность Python получил в сфере машинного обучения. В этой отрасли на нем написано большое число библиотек. Есть простой в освоении sklearn, для профессионалов есть высокопроизводительный TensorFlow.

Мнение директора мастерской по R

Александр Фенин, социальный психолог, директор мастерской «Анализ данных в социальных науках», Product Management в Яндекс.Учебник.

Александр Фенин, будучи директором мастерской «Анализа данных в социальных науках», дал развернутое интервью про «Язык R в гуманитарных и социальных исследованиях». Рекомендуем позже ознакомиться с полным текстом интервью, а пока приводим цитату из беседы с Александром:

Зачастую для научных работ психологи пользуются программой Excel, в лучшем случае такими статистическими продуктами, как SPSS или Statistica. Существуют целые гайды по тому, как тыкать в кнопочки внутри, чтобы сделать весь необходимый анализ, и даже не задумываясь, что именно происходит. R лучше в ряде существенных пунктов: во-первых, он позволяет сохранять и шерить скрипты подготовки и анализа (второе есть и в указанных продуктах, но этим мало кто пользуется); во-вторых, он позволяет на порядок более гибко и прозрачно готовить, анализировать и визуализировать данные; в-третьих, у него огромное и всегда готовое прийти на помощь комьюнити, регулярно снабжающее потенциальных исследователей новыми удобными библиотеками и идеями по обработке данных.

R почему-то очень распространился именно в социально-научной среде за рубежом и отчасти в России. Хотя это справедливо не для всех наук: лингвисты, например, в подавляющем большинстве своём предпочитают Python. Как минимум из-за более разработанного аппарата NLP.

Мнение IT-разработчика

Андрей Гроза, Backend разработчик digital-агентства Rutorika.

Хеш «четкий»

Ханс Петер Лун из IBM еще в 1940-е разрабатывал системы для анализа информации, в том числе исследовал вопросы хранения, передачи и поиска текстовых данных. Это привело его к созданию алгоритмов преобразования, а затем и к хешированию информации в качестве способа поиска телефонных номеров и текста. Так индексация и концепция «разделяй и властвуй» сделали свои первые шаги в области вычислительной техники.

Читать еще:  Как восстановить заводские настройки на ноутбуке - инструкции для Asus, HP, Acer, Lenovo, Samsung

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

Мы привыкли ассоциировать хеш-функции с криптографическими хеш-функциями. Это распространенный инструмент, который используется для решения целого ряда задач, таких как:

  • аутентификация;
  • электронная подпись;
  • обнаружение вредоносного ПО (как файлов, так и их маркеров компрометации).

В сегодняшней статье речь пойдет о том, как различные алгоритмы хеширования помогают нам бороться с зловредным ПО.

R или Python?

Цифровой Дискурс обратился за комментариями к экспертам-аналитикам, начинающим цифровым гуманитариям и представителям бизнеса. Часть респондентов работает с обоими языками, часть только с одним.

Мнение аналитика

Анастасия Кузнецова, свободный аналитик, автор блога «настенька и графики» (ВКонтакте, Telegram).

Я по образованию социолог, с первого курса мы изучали R для анализа данных и исследований в области computational social science. Это было большим удивлением, так как меньше всего ожидаешь встретить программирование на факультете социологии.

В итоге же R оказался полезным навыком. У него простой синтаксис, а начать изучать R можно даже самому. Он был создан под статистический анализ данных, с чем отлично справляется. Пакетов под R сделали тоже достаточно, что предоставляет возможности для социально-сетевого и текстового анализа в социальных и гуманитарных науках. А интеграция с Google Analytics, Яндекс.Метрикой и базами данных будут полезны маркетологам.

Мнение участника Python-комьюнити

Михаил Корнеев, сооснователь сообщества Moscow Python.

Мне кажется сравнивать Python и R напрямую не очень корректно. R — язык узкоспециализированный, Python — язык общего назначения. Это значит, что разобравшись с R вы будете иметь возможность работать с данными. Задачи, выходящие за рамки анализа данных и представления результатов, потребуют изучения и использования других языков. Изучение Python за счет богатых возможностей немного сложнее, но зато вы сможете решать любые возникшие задачи, не ограничивая себя.

Мнение аналитика и автора курса по R

Алексей Селезнёв, руководитель отдела аналитики в компании Netpeak, автор множества пакетов на R, автор онлайн-курса «Язык R для интернет – маркетинга» и методички по R.

Практически любую задачу в области сбора, трансформации, очистки и визуализации данных одинаково эффективно могут решить как R, так и Python.

Python я бы рекомендовал тем, кто помимо анализа, планирует заниматься веб-программированием. R более удобен для манипуляции с данными, имеет большие возможности по визуализации данных (пакет ggplot2).

Принято считать, что синтаксис Python проще, чем R, а порог вхождения в него ниже. Мне сложно об этом судить, но могу сказать, что на базовом R сейчас уже почти никто не пишет. Весь код реализуется на основе популярных пакетов, которые делают его синтаксис максимально компактным. Так, популярный пакет dplyr имеет SQL like синтаксис, и поддерживает конвейерный стиль написания кода, что позволяет избежать сохранения результата промежуточных шагов в отельные переменные.

Если подытожить всё вышесказанное, то мои рекомендации следующие:

  • если речь идёт о задачах работы с данными, то выбирайте R;
  • если о веб-программировании, то Python.

Мнение продуктового аналитика

Алексей Макаров, продуктовый аналитик CoMagic, автор telegram-канала Datalytics.

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

Говоря про получение данных, важно упомянуть, что метод решения задачи зависит от источника данных. Например, если необходимо получить данные из социальных сетей, то в первую очередь стоит познакомиться с тем как работать с API этой социальной сети:

  1. поищите примеры кода в документации или любительских статьях;
  2. запустите этот код у себя;
  3. адаптируйте его под свои нужды.

Для некоторых сервисов вы можете найти готовые библиотеки. В этом случае вам уже не нужно самому пытаться использовать API, за вас это сделает библиотека. К примеру, у Facebook есть открытая библиотека для Python. Библиотеки помогут вам, если вы занимаетесь анализом маркетинговых данных. Так, для Google Analytics есть отличная библиотека, позволяющая в несколько строчек кода вытащить статистику посещаемости сайта. Если вы хотите использовать данные, полученные с сайтов, то тогда вам нужно заняться веб-парсингом. Для этого есть отличный инструмент BeautifulSoup, который позволяет извлекать структурированную информацию из HTML-страничек.

В плане обработки данных всё немного проще. В среде аналитиков данных стандартом является библиотека Pandas. Он включает в себя огромный функционал для различных манипуляций с данными:

  • статистическая обработка,
  • очистка,
  • трансформация,
  • агрегация.

Pandas может стать достойной заменой Excel, если вы много работаете с обработкой массивов данных.

Python обладает большими возможностями и для визуализации данных. Можно начать с освоения библиотеки Bokeh или Chartify.

Особую популярность Python получил в сфере машинного обучения. В этой отрасли на нем написано большое число библиотек. Есть простой в освоении sklearn, для профессионалов есть высокопроизводительный TensorFlow.

Мнение директора мастерской по R

Александр Фенин, социальный психолог, директор мастерской «Анализ данных в социальных науках», Product Management в Яндекс.Учебник.

Александр Фенин, будучи директором мастерской «Анализа данных в социальных науках», дал развернутое интервью про «Язык R в гуманитарных и социальных исследованиях». Рекомендуем позже ознакомиться с полным текстом интервью, а пока приводим цитату из беседы с Александром:

Зачастую для научных работ психологи пользуются программой Excel, в лучшем случае такими статистическими продуктами, как SPSS или Statistica. Существуют целые гайды по тому, как тыкать в кнопочки внутри, чтобы сделать весь необходимый анализ, и даже не задумываясь, что именно происходит. R лучше в ряде существенных пунктов: во-первых, он позволяет сохранять и шерить скрипты подготовки и анализа (второе есть и в указанных продуктах, но этим мало кто пользуется); во-вторых, он позволяет на порядок более гибко и прозрачно готовить, анализировать и визуализировать данные; в-третьих, у него огромное и всегда готовое прийти на помощь комьюнити, регулярно снабжающее потенциальных исследователей новыми удобными библиотеками и идеями по обработке данных.

R почему-то очень распространился именно в социально-научной среде за рубежом и отчасти в России. Хотя это справедливо не для всех наук: лингвисты, например, в подавляющем большинстве своём предпочитают Python. Как минимум из-за более разработанного аппарата NLP.

Мнение IT-разработчика

Андрей Гроза, Backend разработчик digital-агентства Rutorika.

Хеш «четкий»

Ханс Петер Лун из IBM еще в 1940-е разрабатывал системы для анализа информации, в том числе исследовал вопросы хранения, передачи и поиска текстовых данных. Это привело его к созданию алгоритмов преобразования, а затем и к хешированию информации в качестве способа поиска телефонных номеров и текста. Так индексация и концепция «разделяй и властвуй» сделали свои первые шаги в области вычислительной техники.

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

Мы привыкли ассоциировать хеш-функции с криптографическими хеш-функциями. Это распространенный инструмент, который используется для решения целого ряда задач, таких как:

  • аутентификация;
  • электронная подпись;
  • обнаружение вредоносного ПО (как файлов, так и их маркеров компрометации).

В сегодняшней статье речь пойдет о том, как различные алгоритмы хеширования помогают нам бороться с зловредным ПО.

R или Python?

Цифровой Дискурс обратился за комментариями к экспертам-аналитикам, начинающим цифровым гуманитариям и представителям бизнеса. Часть респондентов работает с обоими языками, часть только с одним.

Мнение аналитика

Анастасия Кузнецова, свободный аналитик, автор блога «настенька и графики» (ВКонтакте, Telegram).

Я по образованию социолог, с первого курса мы изучали R для анализа данных и исследований в области computational social science. Это было большим удивлением, так как меньше всего ожидаешь встретить программирование на факультете социологии.

В итоге же R оказался полезным навыком. У него простой синтаксис, а начать изучать R можно даже самому. Он был создан под статистический анализ данных, с чем отлично справляется. Пакетов под R сделали тоже достаточно, что предоставляет возможности для социально-сетевого и текстового анализа в социальных и гуманитарных науках. А интеграция с Google Analytics, Яндекс.Метрикой и базами данных будут полезны маркетологам.

Читать еще:  Что показали на октябрьской презентации Apple 2018

Мнение участника Python-комьюнити

Михаил Корнеев, сооснователь сообщества Moscow Python.

Мне кажется сравнивать Python и R напрямую не очень корректно. R — язык узкоспециализированный, Python — язык общего назначения. Это значит, что разобравшись с R вы будете иметь возможность работать с данными. Задачи, выходящие за рамки анализа данных и представления результатов, потребуют изучения и использования других языков. Изучение Python за счет богатых возможностей немного сложнее, но зато вы сможете решать любые возникшие задачи, не ограничивая себя.

Мнение аналитика и автора курса по R

Алексей Селезнёв, руководитель отдела аналитики в компании Netpeak, автор множества пакетов на R, автор онлайн-курса «Язык R для интернет – маркетинга» и методички по R.

Практически любую задачу в области сбора, трансформации, очистки и визуализации данных одинаково эффективно могут решить как R, так и Python.

Python я бы рекомендовал тем, кто помимо анализа, планирует заниматься веб-программированием. R более удобен для манипуляции с данными, имеет большие возможности по визуализации данных (пакет ggplot2).

Принято считать, что синтаксис Python проще, чем R, а порог вхождения в него ниже. Мне сложно об этом судить, но могу сказать, что на базовом R сейчас уже почти никто не пишет. Весь код реализуется на основе популярных пакетов, которые делают его синтаксис максимально компактным. Так, популярный пакет dplyr имеет SQL like синтаксис, и поддерживает конвейерный стиль написания кода, что позволяет избежать сохранения результата промежуточных шагов в отельные переменные.

Если подытожить всё вышесказанное, то мои рекомендации следующие:

  • если речь идёт о задачах работы с данными, то выбирайте R;
  • если о веб-программировании, то Python.

Мнение продуктового аналитика

Алексей Макаров, продуктовый аналитик CoMagic, автор telegram-канала Datalytics.

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

Говоря про получение данных, важно упомянуть, что метод решения задачи зависит от источника данных. Например, если необходимо получить данные из социальных сетей, то в первую очередь стоит познакомиться с тем как работать с API этой социальной сети:

  1. поищите примеры кода в документации или любительских статьях;
  2. запустите этот код у себя;
  3. адаптируйте его под свои нужды.

Для некоторых сервисов вы можете найти готовые библиотеки. В этом случае вам уже не нужно самому пытаться использовать API, за вас это сделает библиотека. К примеру, у Facebook есть открытая библиотека для Python. Библиотеки помогут вам, если вы занимаетесь анализом маркетинговых данных. Так, для Google Analytics есть отличная библиотека, позволяющая в несколько строчек кода вытащить статистику посещаемости сайта. Если вы хотите использовать данные, полученные с сайтов, то тогда вам нужно заняться веб-парсингом. Для этого есть отличный инструмент BeautifulSoup, который позволяет извлекать структурированную информацию из HTML-страничек.

В плане обработки данных всё немного проще. В среде аналитиков данных стандартом является библиотека Pandas. Он включает в себя огромный функционал для различных манипуляций с данными:

  • статистическая обработка,
  • очистка,
  • трансформация,
  • агрегация.

Pandas может стать достойной заменой Excel, если вы много работаете с обработкой массивов данных.

Python обладает большими возможностями и для визуализации данных. Можно начать с освоения библиотеки Bokeh или Chartify.

Особую популярность Python получил в сфере машинного обучения. В этой отрасли на нем написано большое число библиотек. Есть простой в освоении sklearn, для профессионалов есть высокопроизводительный TensorFlow.

Мнение директора мастерской по R

Александр Фенин, социальный психолог, директор мастерской «Анализ данных в социальных науках», Product Management в Яндекс.Учебник.

Александр Фенин, будучи директором мастерской «Анализа данных в социальных науках», дал развернутое интервью про «Язык R в гуманитарных и социальных исследованиях». Рекомендуем позже ознакомиться с полным текстом интервью, а пока приводим цитату из беседы с Александром:

Зачастую для научных работ психологи пользуются программой Excel, в лучшем случае такими статистическими продуктами, как SPSS или Statistica. Существуют целые гайды по тому, как тыкать в кнопочки внутри, чтобы сделать весь необходимый анализ, и даже не задумываясь, что именно происходит. R лучше в ряде существенных пунктов: во-первых, он позволяет сохранять и шерить скрипты подготовки и анализа (второе есть и в указанных продуктах, но этим мало кто пользуется); во-вторых, он позволяет на порядок более гибко и прозрачно готовить, анализировать и визуализировать данные; в-третьих, у него огромное и всегда готовое прийти на помощь комьюнити, регулярно снабжающее потенциальных исследователей новыми удобными библиотеками и идеями по обработке данных.

R почему-то очень распространился именно в социально-научной среде за рубежом и отчасти в России. Хотя это справедливо не для всех наук: лингвисты, например, в подавляющем большинстве своём предпочитают Python. Как минимум из-за более разработанного аппарата NLP.

Мнение IT-разработчика

Андрей Гроза, Backend разработчик digital-агентства Rutorika.

«Нечеткий» хеш — SSDeep

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

Нечеткое хеширование — это метод, при котором программа, такая как, например, SSDeep, вычисляет кусочные хеши от входных данных, то есть использует так называемое контекстно вызываемое кусочное хеширование. В англоязычных источниках этот метод называется context triggered piecewise hashing (CTPH aka fuzzy hashing).

На самом деле классификаций нечетких хешей довольно много. Например, по механизму работы алгоритмы делятся на piecewise hashing, context triggered piecewise hashing, statistically improbable features, block-based rebuilding. По типу обрабатываемой информации их можно разделить на побайтовые, синтаксические и семантические. Но если речь заходит о нечетких хешах, то это, как правило, CTPH.

Алгоритм SSDeep разработан Джесси Корнблюмом для использования в компьютерной криминалистике и основан на алгоритме spamsum. SSDeep вычисляет несколько традиционных криптографических хешей фиксированного размера для отдельных сегментов файла и тем самым позволяет обнаруживать похожие объекты. В алгоритме SSDeep используется механизм скользящего окна rolling hash. Его еще можно назвать рекурсивным кусочным хешированием.

Часто CTPH-подобные хеши лежат в основе алгоритмов локально чувствительных хешей — locality-sensitive hashing (LSH). В их задачи входит поиск ближайших соседей — approximate nearest neighbor (ANN), или, проще говоря, похожих объектов, но с чуть более высокоуровневой абстракцией. Алгоритмы LSH используются не только в борьбе с вредоносным ПО, но и в мультимедиа, при поиске дубликатов, поиске схожих генов в биологии и много где еще.

Алгоритм SSDeep

Как работает SSDeep? На первый взгляд, все довольно просто:

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

Virus Total использует SSDeep, который выполняет нечеткое хеширование на загружаемых пользователями файлах. Пример — по ссылке.

Virus Total использует SSDeep

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Борис Осепов

Специалист Group-IB. Увлекаюсь средствами анализа вредоносного ПО. Люблю проверять маркетинговые заявления на практике 🙂

Александр Мессерле

ИБтивист. Исследую в ИБ то, что движется. То, что не движется, кладу в песочницу.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector