Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.
User
Введение в IDAPython
На русском языке (и на Хабре, в частности) не так много статей по работе с IDAPython, попытаемся восполнить этот пробел.
Для кого. Для тех, кто уже умеет работать в IDA Pro, но ни разу не писал скрипты на IDAPython. Если вы уже имеете опыт написания скриптов под IDAPython, то вряд ли найдёте здесь что-то новое.
Чего здесь не будет. Мы не будем учить программированию на Python и базовой работе в IDA Pro.
Ваш цифровой след: Погружение в форензику Windows

В этой статье мы поговорим о методах поиска информации в операционной системе Windows — с целью выявления различных инцидентов. Это сведения о пользователях и входах, базовой информации системы, сетевом подключении, а также о восстановлении удаленных файлов, просмотрe открывавшихся документов, выявлении подключавшихся к компьютеру флешек и т. д. — данные, позволяющие установить факты нарушения безопасности или несанкционированного доступа. Затронем также тему этики при проведении экспертиз такого рода.
Может показаться, что для решения большинства из этих задач специальных знаний не требуется и достаточно простого владения компьютером на уровне уверенного пользователя. Что ж, может, так и есть. Хотите знать наверняка? Добро пожаловать под кат.
Организация памяти процесса

Управление памятью – центральный аспект в работе операционных систем. Он оказывает основополагающее влияние на сферу программирования и системного администрирования. В нескольких последующих постах я коснусь вопросов, связанных с работой памяти. Упор будет сделан на практические аспекты, однако и детали внутреннего устройства игнорировать не будем. Рассматриваемые концепции являются достаточно общими, но проиллюстрированы в основном на примере Linux и Windows, выполняющихся на x86-32 компьютере. Первый пост описывает организацию памяти пользовательских процессов.
Некоторые малоизвестные фичи, фокусы и причуды языка C
В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).
Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan()
не может устанавливать errno
, поскольку в определённых ситуациях поведёт себя как strtod()
» не слишком интересны.
ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.
Анатомия Hello World на языке C

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.
Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
RPC и способы его мониторинга

Всем привет!
Мы - команда исследователей-аналитиков киберугроз в компании R-Vision. Одной из наших задач является исследование возможных альтернативных и дополнительных источников событий для более точного детектирования атак.
И сегодня мы затронем такую тему мониторинга RPC. В статье мы рассмотрим возможные варианты логирования удаленных вызовов функций и процедур Microsoft Remote Procedure Call (MS-RPC), связанных с актуальными и популярными на сегодняшний день атаками.
Но вначале, разберемся в чем заключается базовая работа RPC и на каких механизмах она основывается. Это поможет нам понять какую информацию нам необходимо собирать и отслеживать при детектировании атак, связанных с удаленным вызовом процедур.
LAN-party для пентестеров: прорываемся к домен контроллеру через розетку
Сегодня расскажу про внутренний пентест, в ходе которого мы без учетной записи добрались до администратора домена.
В этом проекте использовались много разнообразных техник: от декомпиляции приложения и расшифровки извлеченных учетных данных, до повышения привилегий через базу данных на сервере и сбора информации от имени учетной записи компьютера. Под катом подробно разобрано, как они сложились в успешный вектор атаки.
Токены. От появления до продвижения в Active Directory

О токенах, используемых в операционных системах семейства Windows слышали многие, ведь они являются важным звеном, участвующим в контексте безопасности всей операционной системы. Данная статья является результатом моих наработок о токенах. В ходе написания данного материала я ставил перед собой следующие вопросы: откуда берутся токены? как устроены токены? как это работает на практике?
Первый MSI вымогатель: Magniber. История и анализ сложнейшего шифровальщика. Часть 2

Приветствую, читатели, эта статья является логическим продолжением анализа одного из самых сложных вымогателей — Magniber. В прошлой статье нам удалось разобраться с хронологией появления этого зловреда, а также провести статистический анализ первой ступени.
Напомню, что Magniber является достаточно старым вирусом, который пришел к нам из Южной Кореи. Если раньше вредоносная кампания была сосредоточена в основном на мелких и средних компаниях, то сейчас злоумышленники атакуют всех и вся. На данный момент вымогатель маскируется под разные типы файлов ( .Ink, .iso, .js, .exe), но в рамках анализа у нас классический представитель, подражающий Установщику Windows.
Владивосток: далёкий, праворульный, но всё равно «нашенский»

Потрясающий город. Живой и зелёный. Сопки, острова и море вокруг просто ласкают взгляд, уставший от плоскости средней полосы. Гордо взмывают ввысь вантовые мосты. Чувствуется дыхание Азии. Совсем не таким я представлял наш рубежный город на Тихом океане и конец Транссиба. Но рельеф города, придающий ему столь неповторимый вид, и место расположения накладывают очень большие ограничения на градостроительную деятельность, развитие транспорта и систему водоснабжения. Во многом именно с ним связано превращение Владивостока в автомобильную столицу, бытовые неурядицы 1990-х гг. и значимость проведения саммита АТЭС в 2012 г. Но обо всём по порядку.
UAC Bypass и вариации на тему детектирования. Часть 1

Привет, Хабр!
Сегодня мы хотим рассказать о возможных вариантах обхода контроля учётных записей пользователей (UAC) и способах их детектирования.
Если коротко, UAC (User Account Control) – механизм, поддерживаемый всеми последними версиями Windows, который призван предотвратить несанкционированныадминистративные действия, потенциально опасные для системы. UAC Bypass является достаточно распространённой атакой среди вредоносного ПО. Из последних ярких примеров – червь Raspberry Robin, который использует утилиту fodhelp.exe. Малварь, обнаруженный Microsoft в сетях сотен организаций, способен обходить User Account Control (UAC) в зараженных системах с помощью легитимных инструментов Windows. Поэтому мы решили не проходить UAC Bypass стороной, а подробно его изучить.
В данной статье мы проведем подробный разбор большого числа рабочих способов по обходу UAC и классифицируем их в категории, которые наиболее точно отражают возможный вариант выполнения атаки. После чего рассмотрим потенциальные способы детекта UAC Bypass.
Но для начала предлагаем ознакомиться с самим механизмом работы UAC немного глубже. Если для вас UAC не нуждается в представлении, то можете сразу переходить к разделу Способы обхода UAC.
ICMP-туннели. Что это и с чем едят?

Наши клиенты часто спрашивают нас о том, какие виды туннелирования трафика мы детектируем и блокируем с помощью UserGate NGFW. Давайте разберемся в том, что такое ICMP-туннелирование и как его определять.
Декодирование JPEG для чайников
[FF D8]
Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:
Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла:
Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.
Даже не зная, как происходит кодирование, мы уже можем кое-что извлечь из файла.
[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.
Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.
Платежные системы простыми словами. Как устроены и зачем нужны Mastercard, Visa, МИР и прочие

Россия уже больше года живет без Visa и Mastercard. За это время все мы успели четко понять, что платежные системы - это не просто логотипы на банковских картах. В этой статье разбираем, как работают платежные системы, что конкретно они делают, и почему не стоит недооценивать их значимость для экономики.
Моделируем кибератаки на энергосистемы и пытаемся разобраться с «гусями» в сети
Привет, Хабр! Когда-то у нас выходил материал по применению протокола SV на электроэнергетических объектах, в котором мы обещали разбор протокола GOOSE. Итак, время пришло.
В этом материале напомним читателям, зачем нужен этот протокол, кто его использует, как выглядят и из чего состоят GOOSE-сообщения. Покажем пример обмена устройствами таким трафиком, а также как, имея программно-аппаратный комплекс для моделирования в реальном времени, создать модель энергосистемы и провести опыт моделирования GOOSE-spoofing атаки на защищающие ее терминалы РЗА.
Надеемся, что статья будет полезна начинающим специалистам и специалистам, работающим с цифровыми технологиями в электроэнергетике, все-таки шпаргалки всегда полезны.
Kerberoasting v2

В статье «Итоги внутренних пентестов — 2020» от Positive Technologies сообщается, что в 61% внутренних тестирований на проникновение успешно применялась атака Kerberoasting. Это мотивировало меня разобраться в атаке, а также ответить на следующие вопросы: почему Kerberoasting так часто эксплуатируется и какие практики по защите существуют и успешно применяются на текущий момент.
Перед тем как перейти к сути атаки, полезно получить общее представление о том, как именно устроена проверка подлинности Kerberos.
Проверка подлинности
В проверке подлинности Microsoft по Kerberos участвуют:
Key Distribution Center (KDC) – Центр распространения ключей Kerberos, одна из служб безопасности Windows server. Работает на контроллере домена (DC);
Клиент, который хочет пройти проверку подлинности и получить доступ к сервису;
Сервер, к сервису которого пользователь хочет получить доступ.
Golden Ticket: разбираем атаку и методы ее детекта

Привет, Хабр! Сегодня мы хотим поговорить об атаке с применением известной техники Golden Ticket (Золотой билет). О том, что лежит в основе Golden Ticket атак и какие механизмы их реализации существуют, написано уже много. Поэтому в этой статье мы сфокусируемся на способах детектирования.
Те, кто хорошо знаком с Active Directory (AD), согласятся, что несмотря на то, что протокол аутентификации Kerberos, по-прежнему остается одним из самых безопасных, архитектурные особенности системы активно используются злоумышленниками для проведения кибератак. В том числе и с помощью Golden Ticket, которая нацелена на уязвимые системные настройки, слабые пароли или распространение вредоносного ПО. Атаки с использованием Золотых билетов весьма опасны. Злоумышленник не только нарушает обычные рабочие процессы аутентификации, но и получает неограниченный доступ к любой учетной записи или ресурсу в домене AD.
Многие специалисты уже довольно долгое время стремятся задетектировать технику Golden Ticket и на сегодняшний день есть разные методы для ее обнаружения. Мы разберем основные существующие примеры детекта Золотых билетов и расскажем о том, почему, как нам кажется, эти методы могут не сработать. А также приведем способ детектирования, который, опираясь на нашу практику, оказался более эффективным для выявления подобных атак. Мы не беремся утверждать, что предложенный нами метод является единственным верным способом детектирования Golden Ticket, скорее наша цель поделиться с вами успешным опытом обнаружения подобной атаки.
Типовые сценарии внедрения NGFW

Disclaimer
В данной статье приводятся лишь примеры типовых сценариев внедрения NGFW. Не стоит брать предложенные схемы за готовый шаблон. В реальной жизни, почти каждое внедрение уникально. Есть много подводных камней, на которые нужно обратить внимание перед планированием топологии сети. Но в целом, все варианты будут “крутиться” вокруг нескольких концептов. Их мы и постараемся обсудить.
Типовая архитектура сети с точки зрения ИБ
Прежде чем описывать варианты внедрения NGFW, мне бы хотелось обсудить несколько типичных сценариев использования средств сетевой защиты. Мы рассмотрим наиболее распространенные средства, которые есть практически в каждой компании (конечно же максимально упрощенно и поверхностно, иначе получится целая книга). Чаще всего на практике можно встретить три самых распространенных варианта:
Что делает центральный процессор, когда ему нечего делать

Мужик приходит устраиваться работать на стройку. Его спрашивает мастер:
— Что делать умеешь?
— Могу копать…
— А что еще?
— Могу не копать…
Не секрет, что современные процессоры работают очень быстро. Работа их заключается в постоянном извлечении из памяти инструкций и выполнения предписанных в них действий. Однако оказывается, по тем или иным причинам часто требуется притормозить этот процесс. В прикладных программах редко приходится задумываться о том, что при этом происходит с процессором. Но вот для создателей системного софта это далеко не праздный вопрос.
Неактивным процессор может быть не только для экономии энергии, но и в результате возникновения особых ситуаций, в процессе выполнения протоколов инициализации или как итог намеренных действий системных программ. Почему это интересно? При написании программных моделей (в том числе виртуальных машин) компьютерных систем, необходимо корректно моделировать переходы между состояниями виртуальных процессоров. В работе системных программ регулярно возникают ситуации, когда по тем или иным причинам ЦПУ должен «притормозить». Умение корректно использовать и моделировать эти ситуации зависит от знания и понимания спецификаций.
В статье фокус делается на программной стороне вопроса состояний процессора. Я не буду концентрироваться на деталях реализации (напряжения, пины, частоты и т.д.), так как 1) они существенно различаются между поколениями и моделями процессоров даже одной архитектуры, тогда как программный интерфейс остаётся обратно совместимым; 2) они не видны напрямую программам и ОС. Это попытка просуммировать информацию, разбросанную по многим страницам справочника Intel IA-32 and Intel 64 Software Developer Manual.
Начнём с простой и всем знакомой ситуации — процессор включён, бодр и весел.
Information
- Rating
- Does not participate
- Registered
- Activity