All streams
Search
Write a publication
Pull to refresh
136
7.2

Редактор

Send message

Идеальный баг: Использование Путаницы Типов в Flash. Часть 1

Reading time6 min
Views1.7K
И снова здравствуйте! Уже завтра у нас стартуют занятия в новой группе по курсу «Реверс-инжиниринг». Традиционно делимся с вами переводом полезного материала по теме. Поехали!

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



Баг

CVE-2015-3077 — проблема путаницы типов в сеттерах фильтров Adobe Flash Button и MovieClip, которая позволяет спутать любой тип фильтра с любым другим. Я сообщила о нем в начале декабря 2015 года, и в мае его пофиксили. Баг происходит из-за того, что взломщик может перезаписать конструктор, используемый для инициализации объекта фильтра. Пример кода, воспроизводящего проблему, представлен ниже:
Читать дальше →

Что такое Strict Aliasing и почему нас должно это волновать? Часть 1

Reading time7 min
Views22K
(ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!)

Всем привет, уже через несколько недель мы запускаем новый поток по курсу «Разработчик С++». Этому событию и будет посвящен наш сегодняшний материал

Что такое strict aliasing? Сначала мы опишем, что такое алиасинг (aliasing), а затем мы узнаем, к чему тут строгость (strict).

В C и C ++ алиасинг связан с тем, через какие типы выражений нам разрешен доступ к хранимым значениям. Как в C, так и в C ++ стандарт определяет, какие выражения для именования каких типов допустимы. Компилятору и оптимизатору разрешается предполагать, что мы строго следуем правилам алиасинга, отсюда и термин — правило строгого алиасинга (strict aliasing rule). Если мы пытаемся получить доступ к значению, используя недопустимый тип, оно классифицируется как неопределенное поведение (undefined behavior — UB). Когда у нас неопределенное поведение, все ставки сделаны, результаты нашей программы перестают быть достоверными.

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



Чтобы лучше понять, почему нас должно это волновать, мы обсудим проблемы, возникающие при нарушении правил строго алиасинга, каламбур типизаций (type punning), так как он часто используется в правилах строгого алиасинга, а также о том, как правильно создавать каламбур, наряду с некоторой возможной помощью C++20, чтобы упростить каламбур и уменьшить вероятность ошибок. Мы подведем итоги обсуждения, рассмотрев некоторые методы выявления нарушений правил строго алиасинга.
Читать дальше →

Жизненный цикл кода на Python – модель выполнения CPython

Reading time11 min
Views16K
Всем привет! Наступила весна, а это значит, что до запуска курса «Разработчик Python» остается меньше месяца. Именно этому курсу и будет посвящена наша сегодняшняя публикация.


Читать дальше →

Delta-OMA (D-OMA): новый метод массового множественного доступа в 6G. Часть 1

Reading time8 min
Views2.4K
До запуска курса «Сетевой инженер» остаются считанные дни. В связи с этим хотим поделиться с вами первой частью материала по теме «Delta-OMA (D-OMA): новый метод массового множественного доступа в 6G». Поехали.

Аннотация — Новый метод множественного доступа, а именно дельта-ортогональный множественный доступ (D-OMA — delta orthogonal multiple access), представлен для массового доступа в сотовых сетях 6G будущего поколения. D-OMA основан на концепции распределенного большого координированного неортогонального множественного доступа с поддержкой многоадресной передачи (NOMA — non-orthogonal multiple access) с использованием частично перекрывающихся поддиапазонов для кластеров NOMA. Эффективность этой схемы демонстрируется с точки зрения пропускной способности для различных степеней перекрытия поддиапазонов NOMA. D-OMA также может использоваться для обеспечения повышенной безопасности в сетях беспроводного доступа как в восходящей линии связи, так и в нисходящей линии связи. Также обсуждаются вопросы практической реализации и открытые проблемы для оптимизации DOMA.


Читать дальше →

Анализ Буткита FinFisher

Reading time8 min
Views3.1K
Добрый вечер! Ровно через неделю у нас стартует курс «Реверс-инжиниринг», и сегодня мы хотим поделиться с вами переводом материала, который имеет прямое отношение к этому курсу. Поехали.

Недавно мы исследовали вредоносный буткит FinFisher, опубликованный WikiLeaks. Большинство компонентов версии для Windows были достаточно простыми, так что перейдём сразу к драйверу режима ядра и загрузочному коду.



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

Паттерны и анти-паттерны CI/CD. Часть 2

Reading time3 min
Views8.2K
Добрый день. Сегодня мы делимся с вами переводом второй части статьи «Паттерны и анти-паттерны CI/CD», приуроченной к запуску нового потока по курсу «DevOps практики и инструменты». Первую часть данной статьи можно прочитать здесь.

1.3 Паттерны и антипаттерны в тестировании

1.3.1 Автоматизация Тестирования

  • Паттерн: Автоматизируйте проверку и валидацию программного обеспечения, включив тестирование юнитов, компонентов, емкости, функционала и развертывания.
  • Анти-паттерны: Ручное тестирование юнитов, компонентов, развертывания и тд.
  • Юнит- Автоматизация тестов без зависимостей.
  • Компонент- Автоматизация тестов с зависимостями от других компонентов, баз данных и файловых систем.
  • Развертывание- Автоматизация тестов для проверки успешности развертывания и настройки. Иногда это называют “smoke”-тестированием.
  • Функционал- Автоматизация тестов для проверки поведения ПО с точки зрения пользователя.
  • Емкость- Автоматизация тестирования нагрузки и производительности в условиях, близких к эксплуатационным.

Читать дальше →

Машинно-синестетический подход к обнаружению сетевых DDoS-атак. Часть 2

Reading time10 min
Views2.3K
И снова здравствуйте. Сегодня мы продолжаем делиться материалом, приуроченным к запуску курса «Сетевой инженер», который стартует уже в начале марта. Мы видим, что многих заинтересовала первая часть статьи «Машинно-синестетический подход к обнаружению сетевых DDoS-атак» и сегодня хотим поделиться с вами второй — завершающей частью.

3.2 Классификация изображений в проблеме обнаружения аномалий

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


Читать дальше →

Паттерны и анти-паттерны CI/CD. Часть 1

Reading time4 min
Views16K
Всем привет! Друзья, в последний день зимы у нас запустится новый поток по курсу «DevOps практики и инструменты». В преддверии старта курса делимся с вами первой частью статьи: «Паттерны и анти-паттерны CI/CD».



Задача пайплайна развертывания состоит из трех частей:

  • Видимость: Все аспекты системы поставки — создание, развертывание, тестирование и выпуск — видны членам команды и способствуют совместной работе.
  • Обратная Связь: Члены команды узнают о проблемах, как только они происходят, дабы устранить их как можно скорее.
  • Непрерывное Развертывание: С помощью полностью автоматизированного процесса вы можете развертывать и выпускать любую версию программного обеспечения в любом окружении.
Читать дальше →

Открытый вебинар «Customer Journey: какой трафик и куда вести»

Reading time8 min
Views2.5K
Коллеги, в конце февраля этого года мы запускаем новый курс «Трафик-менеджер» и уже начали публиковать статьи, к нему приуроченные. Очередной материал подготовлен на основании открытого урока, который состоялся буквально на днях.

На нём мы рассмотрели Customer Journey: с какого момента он начинается, каких основных точек должен достигнуть клиент, чем путь клиента может завершиться. Также поговорили о каналах трафика и инструментах интернет-маркетинга, рассмотрели примеры путей клиентов и подумали о том, какой подойдёт именно вам.


Преподаватель — Андрей Гавриков, генеральный директор маркетинговой группы «Комплето».

Открытый вебинар «Работа: своя и чужая»

Reading time6 min
Views1.6K
Добрый день, друзья! Уже в этот четверг мы запускаем новый поток по курсу «Руководитель разработки». И сегодня хотим поделиться с вами транскрипцией открытого вебинара, который прошел на прошлой неделе.

Открытый вебинар «Работа: своя и чужая»

С одной стороны, фраза «это не моя работа» звучит отталкивающе: как-то не проактивно и некомандно. С другой стороны, всю работу сделать невозможно. То есть делать «не свою» работу — это равносильно НЕ делать свою работу! А это уже чревато…

Так как же отделить свою работу от не своей? Что считать своей работой? Что делать с не своей работой, если всё равно нас интересует конечный результат? Обо всём этом и многом другом мы поговорили на очередном открытом уроке курса «Руководитель разработки».



Преподаватель — Станислав Михальский, директор по разработке в компании «Биглион Технологии».

Работа и уровни деятельности

Формальное определение работы звучит так: «Работа — это деятельность человека, направленная на создание ценностей либо на удовлетворение потребностей других людей». Ключевое слово здесь — деятельность. Во-первых, любая деятельность предполагает наличие ресурсов (в нашем случае это время). Во-вторых, деятельность должна приводить к конечному результату. И эти два момента (ресурсы и конечный результат) всегда нужно строго контролировать.

Топ-7 стратегий контент-маркетинга, которые нельзя пропустить в 2019

Reading time6 min
Views3.4K
Всем привет! Друзья, уже в начале апреля стартует курс «SMM-специалист», именно этому мы хотим посвятить сегодняшнюю публикацию.

Пришло время серьезно подумать о ваших планах на контент-маркетинг в 2019 году. Контент — основа всего цифрового и социального, он всегда доступен, всегда связан с мобильным миром коммуникаций.

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

Контент — центральная точка, соединяющая бренд и покупателя — контент может достучаться до разума и сердца клиентов, помочь обратить на вас внимание, заставить их задуматься о вашем бренде. А может и совсем не справиться со всем перечисленным.



Если, вам удастся не просто продать услуги, а заговорить с аудиторией на подлинном, человеческом языке, используя контент для укрепления отношений, результаты экспоненциально возрастут.

Ниже представлены семь ключевых маркетинговых трендов, которыми вы не можете пренебрегать в 2019 году.
Читать дальше →

Открытый вебинар «Разработка высоконагруженных систем на PHP»

Reading time4 min
Views5.3K
Добрый вечер! В преддверии старта курса «Backend-разработчик на PHP» мы традиционно провели открытый урок. На нём поговорили о высоконагруженных системах, масштабировании, архитектуре. Детально рассмотрели HighLoad, а также основные подходы и тактики при разработке высоконагруженных систем.

Были поставлены следующие цели занятия:

  • обсудить, что такое архитектура систем и зачем она нужна;
  • обсудить, что такое High Load;
  • рассмотреть архитектурные тактики;
  • обсудить курс.

Преподаватель — Игорь Саханков, разработчик в Booking.com.

Машинно-синестетический подход к обнаружению сетевых DDoS-атак. Часть 1

Reading time7 min
Views4.4K
Всем, привет. В последнее время у нас большое количество новых запусков и сегодня хотелось бы анонсировать курс «Сетевой инженер», который стартует уже в начале марта. Традиционно начинаем делиться с вами полезным материалом по теме, и сегодня публикуем первую часть статьи «Машинно-синестетический подход к обнаружению сетевых DDoS-атак». Поехали!

Аннотация. По мнению авторов, системы обнаружения аномалий или ADS (anomaly detection systems), по-видимому, являются наиболее перспективным направлением в области обнаружения атак, поскольку эти системы могут обнаруживать, среди прочего, неизвестные атаки (нулевого дня). Для выявления аномалий авторы предлагают использовать машинную синестезию. В этом случае машинная синестезия понимается как интерфейс, который позволяет использовать алгоритмы классификации изображений в задаче обнаружения сетевых аномалий, позволяя использовать неспециализированные методы обнаружения изображений, которые в последнее время широко и активно развиваются. Предлагаемый подход заключается в том, что данные сетевого трафика проецируются в изображение. Из результатов экспериментов видно, что предлагаемый способ обнаружения аномалий показывает высокие результаты в обнаружении атак. На большой выборке значение комплексного показателя эффективности достигает 97%.

Читать дальше →

Открытый урок «Создание REST-клиентов на Spring»

Reading time9 min
Views43K
И снова доброго времени суток! Совсем скоро у нас стартует обучение очередной группы «Разработчик на Spring Framework», в связи с чем мы провели открытый урок, что стало уже традицией в преддверии запуска. На этом вебинаре говорили о разработке REST-клиентов с помощью Spring, а также детально узнали о таких технологиях, как Spring Cache, Spring Retry и Hystrix.

Преподаватель: Юрий Дворжецкий — тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.

Вебинар посетила совершенно разная аудитория, оценившая свои знания по Spring в пределах 0-6 баллов по 10-бальной шкале, однако, судя по отзывам, открытый урок показался полезным даже опытным пользователям.



Пару слов о Spring 5

Как известно, Spring Framework является универсальным и довольно популярным фреймворком для Java-платформы. Spring состоит из массы подпроектов или модулей, что позволяет решать множество задач. По сути, это большая коллекция «фреймворков во фреймворке», вот, например, лишь некоторые из них:

  • Spring IoC + AOP = Context,
  • Spring JDBC,
  • Spring ORM,
  • Spring Data (это целый набор подпроектов),
  • Spring MVC, Spring WebFlux,
  • Spring Security,
  • Spring Cloud (это ещё более огромный набор подпроектов),
  • Spring Batch,
  • Spring Boot.

Личная Agile-трансформация: гибкое путешествие к продуктивности

Reading time4 min
Views4.3K
Всем привет! Уже на следующей неделе мы запускаем курс «Руководитель разработки», который посвящен управленческой деятельности во всех её аспектах в контексте руководства командой разработчиков. В преддверии запуска делимся с вами переводом статьи, которая может стать полезной для будущих тимлидов.



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

Распаковка: загрузчик Dridex

Reading time7 min
Views2.1K
Доброй ночи, друзья! Менее чем через месяц у нас стартует курс «Реверс-инжиниринг», в связи с этим традиционно делимся полезным материалом по теме.

У некоторых читателей были проблемы с распаковкой начального загрузчика для Dridex (того, что был сброшен макросом), поэтому сегодня я покажу вам простой способ сделать это. Еще одна проблема, с которой сталкиваются люди, которую я не могу решить, это тот факт, что инфекционные цепочки Dridex имеют очень короткое время жизни, что делает практически невозможным реверс для большинства людей. Я объясню почему.

Текущая цепочка заражения Dridex имеет около 4 стадий:

  1. Офисный документ, содержащий макрос, запускает powershell-скрипт.
  2. Powershell-скрипт, который будет загружать упакованный загрузчик со взломанного сайта или sharepoint и запускать его.
  3. Упакованный загрузчик, который распакует сам себя и вставит код во вновь созданный процесс spoolsrv или svchost.
  4. Внедренный процесс, который будет связываться с сервером загрузчика, извлекать и выполнять настоящий двоичный файл бота.



Проблема для аналитиков состоит в том, что здесь сразу 2 точки сбоя: взломанный сайт, на котором размещен загрузчик, можно очистить или удалить учетную запись sharepoint, или же сервер загрузчика может быть остановлен (любой из них предотвратит успешное заражение). Кроме того, серверы загрузчиков часто поддерживают геозону (работают только в том случае, если ваш IP находится в стране, для которой он предназначен, и не является VPN), и как только загрузчик публично загружен, Dridex-группа имеет возможность занести его в черный список, навсегда заблокировав любого, кто его запускает, от контакта с любым C2s (Commercial Cloud Services).
Читать дальше →

Почему важна SRE документация. Ч. 3

Reading time9 min
Views2.6K
Всем добрый вечер! Спешим поделиться новостью о том, что уже в феврале у нас запускается новый поток по курсу «Devops — практики и инструменты», а это значит, что пора закончить начатое и опубликовать третью часть статьи: «Почему важна SRE документация». Поехали!

Документы для управления командами SRE

Командам SRE для эффективной работы необходима надежная и доступная документация.

Сайт команды

Примечание: Вместо сайта можно использовать отдельный спейс или раздел в Confluence/Wiki.

Сайт команды важен тем, что обеспечивает координацию информации и документации, связанной с командой SRE и ее проектами. Например в Google, многие команды SRE используют g3doc (внутренняя платформа документирования Google, где доки живут в исходном коде вместе со связанным кодом), а некоторые команды используют g3doc и Google Sites: в таком случае страницы g3doc тесно связаны с кодом/деталями реализации.

Устав команды



Команды SRE должны должны поддерживать опубликованный устав, в котором описываются мотивы работы и документируется текущая вовлеченность. Устав необходим для установления идентичности, основных целей и значения команды в рамках всей компании.
Читать дальше →

Лучшие нововведения социальных сетей в 2018 году

Reading time4 min
Views4.4K
И снова здравствуйте! Совсем немного времени остается до запуска нашего курса «SMM-специалист», в рамках которого вы узнаете о последних тенденциях и обучитесь работе с самыми актуальными инструментами онлайн-маркетинга для продвинутых специалистов.

О трендах 2019 года поговорим на курсах, а сегодня мы хотим поделиться материалом, который расскажет о лучших изменениях соцсетей в 2018 году.



Социальные сети постоянно меняются и эволюционируют для удовлетворения потребностей своих пользователей — иногда это к лучшему, иногда нет. Вне зависимости от того, действительно ли новые шоу на Facebook Watch стоят того, чтобы начать им пользоваться, или какой редизайн провел Snapchat, изменения в социальных сетях — противоречивая тема для миллионов людей, использующих эти сайты каждый день. Но иногда изменения поднимают весь сайт или приложение на новый уровень, улучшают пользовательский опыт (как минимум, делают его не таким утомительным). Поэтому посмотрим на лучшие изменения в социальных сетях за прошедший год.
Читать дальше →

Что такое управление API?

Reading time8 min
Views13K
Всем привет! Друзья, уже 21 февраля у нас стартует курс «Backend разработчик на PHP». В преддверии запуска курса хотим поделиться с вами переводом одного интересного материала. Приятного прочтения!

В октябре на конференции NGINX Conf 2018 мы анонсировали новый модуль управления API для контроллера NGINX. С этим продуктом мы укрепляем свои позиции в качестве самого развернутого шлюза API в отрасли — миллионы сайтов уже используют NGINX Open Source и NGINX Plus для обеспечения безопасной передачи трафика между серверными приложениями и потребителями API, предоставляемыми этими приложениями.



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

Как использовать сегментацию, таргетирование и позиционирование (STP) в разработке маркетинговой стратегии

Reading time7 min
Views17K
Добрый вечер, друзья! Сегодня поговорим о трафике, а именно STP. Данный материал приурочен к запуску курса «Трафик-менеджер», который стартует уже в конце февраля.

Сегодня Сегментация, Таргетирование и Позиционирование (Segmentation, Targeting and Positioning, сокращенно STP) — распространенная стратегия в Современном Маркетинге. Одна из самых часто используемых на практике маркетинговых моделей. В опросе о самых популярных маркетинговых моделях, STP заняла почетное второе место, уступив только преподобной SWOT/TOWs матрице. Такая популярность возникла относительно недавно, ведь раньше маркетинговые подходы основывались на самом продукте, а не покупателе. Например, в 1950-х основной маркетинговой стратегией была “товарная дифференциация”.



STP-модель полезна при создании плана маркетинговых коммуникаций, так как помогает маркетологам расставить приоритеты, а затем разработать и донести персонализированные и релевантные сообщения для вовлечения разных аудиторий.
Читать дальше →

Information

Rating
793-rd
Location
Россия
Works in
Registered
Activity