Рекриптор
228 subscribers
88 photos
12 videos
3 files
263 links
Заметки на полях о практической безопасности и не только
Download Telegram
Фраза из сети: "Сейчас сервер на Байкале достать сложнее, чем наркотики" :) Понравилось :)
😁4
Посмеялись над CrowdStrike вдоволь? Вот вам! :)
👍3😢2😱1
Про сигнатуры антивирусов, обновление баз и обнаружение

Сигнатуры антивирусов - это давно уже не просто хэшики и наборы строчек. Под словом "сигнатуры" скрывается довольно широкий пласт технологий. Даже в статике (без запуска образца на исполнение) есть много подходов, которые считаются сигнатурными в широком смысле. Обнаружение на основе шаблонов, регулярных выражений, эмуляции кода, нечёткого хэширования (fuzzy hashing и deep hashing) - это всё сигнатурные подходы. Если есть сигнатуры, то есть и постоянно обновляемые базы сигнатур - антивирусные базы или, как некоторые называют, контент обнаружения. Эти базы, если присмотреться практически к любому антивирусу, содержат исполняемый код, в котором реализованы деревья поиска, распаковщики, эмуляторы и т.д. Это уже скомпилированные базы, которые практически для каждого антивируса уникальны. Эффективность каждого из этих подходов - отдельный дискуссионный вопрос вне рамок этого поста.
Про внутренности антивирусов можно долго говорить, но есть, с другой стороны, много источников на этот счёт. Хотя бы та же The Antivirus Hacker's Handbook. Поэтому долго распинаться не будем. Сказанного выше достаточно, чтобы понять, что сигнатур разных много, их надо постоянно обновлять, в них может закрасться ошибка. Следует отметить, что тестирование не всегда может эту ошибку выявить. Просто разных систем много, бывают всякого рода совпадения разных факторов, несовместимость разного софта и т.д. Поэтому есть работающий на практике подход. Есть ряд паттернов, при срабатывании которых не происходит выдачи предупреждений, блокировки функционирования, помещения объекта в карантин и подобных влияющих на работу системы действий. Вместо этого собирается статистика о срабатывании данного паттерна. Эта статистика "улетает" вендору. Одно из применений таких скрытых паттернов - это их тестирование. Если такой скрытый паттерн нормально работает, то можно и реакцию добавить впоследствии. Таким образом вероятность убить систему кривым апдейтом существенно падает. Понятно, что это не про отважный CrowdStrike, у которых даже сертификата ФСТЭК нету 😜

#антивирус #почитать
👍5
Атака Sitting Ducks , использующая особенности делегирования домена, позволяет в ряде случаев угнать этот самый домен. Угон домена - это действительно грустно. Возвращать долго. За это время успеют дискредитировать всё, до чего дотянутся: зарегистрируют почту, начнут спамить, письма получать, пароли от сервисов сбрасывать и прочим постыдным фишингом заниматься. Эдакий страйк. Классическая DNS имеет ряд недостатков, некоторые из которых хорошо описаны здесь. Здесь же предложена интересная, на мой взгляд, альтернатива классической DNS, использующая блокчейн

#offensive #блокчейн
👍3
Интересный цикл статей (пока там две) про теоретико-вероятностный взгляд на машинное обучение. Крайне полезная теоретическая база, которой зачастую не хватает даже опытным специалистам. Забавно, что несмотря на обилие разного рода курсов и вторых высших образований по ИИ, эту базу хорошо дают мало где. А если и дают, то не всегда хорошо увязывают с алгоритмами и подходами, которые из этой базы следуют. Понимание теоретической базы крайне важно прежде всего для тех, кто планирует работать у нас. Например, в нашей лаборатории VR Protect, где развивается несколько проектов в области ИИ и ML.

https://habr.com/ru/companies/ods/articles/713920/

#ии #почитать
👍4
Повторение - мать учения (c)

Набор небольших статей про азы разработки малвари. Тем, кто занимается борьбой с вредоносами, нужно очень хорошо понимать, как их создают: какой инструментарий используют, как защищают от отладки и анализа в песочницах, как работают в памяти (включая "ручное" развёртывание .Net-кода), как маскируют и обфусцируют, ну и всякие прочие трюки. Не сказать, что по ссылками какие-то совсем глубокие знания, но в качестве обзора техник вполне неплохо.

https://0xpat.github.io/Malware_development_part_1/
https://0xpat.github.io/Malware_development_part_2/
https://0xpat.github.io/Malware_development_part_3/
https://0xpat.github.io/Malware_development_part_4/
https://0xpat.github.io/Malware_development_part_5/
https://0xpat.github.io/Malware_development_part_6/
https://0xpat.github.io/Malware_development_part_7/
https://0xpat.github.io/Malware_development_part_8/
https://0xpat.github.io/Malware_development_part_9/

#windows #почитать #malware #offensive
👍2
Шпаргалочка по API-функциям Windows, используемым в разного рода активностях. Интересно, например, про инжект. Заодно и техники перечислены с кратким описанием. Полезно тем, кто пишет детекторы подозрительной активности, например

#windows #почитать #антивирус #malware #offensive
👍2
У Александра Леонова на канале появился, на мой взгляд, интересный пост про антивирус для Linux. Пост отсылает нас к вопросу другого известного в IT-отрасли человека, Дмитрия Комиссарова, о том, во что бы такое перспективное проинвестировать. Про инвестиции здесь не будем, оставим это профильным экспертам, но с технической точки зрения вопрос "а зачем отдельный антивирус под Linux, когда есть ... (здесь идёт обычно вендор), у которого решение под Linux тоже имеется" кажется довольно интересным, а ответ на него не так очевиден.

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

Кстати, об антивирусных базах и российской специфике. Многие антивирусы с большой историей в своих антивирусных базах содержат код. Часто это реализация алгоритма быстрого поиска типа Ахо-Корасик и производных, поиск в дереве хэшей и т.д. Мы об этом писали ранее. Это исторически сложившийся подход: относительно быстрый поиск, скомпилированные в код базы сложно реверсятся, сравнительно небольшие расходы памяти. В общем, плюсов хватает. Практически все Windows-антивирусы используют этот подход. Однако минусы тоже имеются. Например, как мы писали ранее в контексте инцидента с Crowd Strike, если сертифицированный антивирус скачивает апдейты с кодом, сертификат его формально протухает, ибо апдейты тоже должны быть сертифицированы. Учитывая динамику угроз, сертифицировать обновления надо пару раз в неделю. Даже с сертификацией процессов безопасной разработки звучит фантастически. Так что, если речь идёт об антивирусе для российских Linux-ов, которые на текущий момент подразумевают использование в организациях, где сертификация важна, этот нюанс с обновлениями нужно учитывать на архитектурном уровне.

Вообще тема интересная и писать можно долго, но на сегодня пока достаточно. Вывод: антивирусу для российских Linux-систем быть!

#антивирус #linux
👍5
Интересующиеся люди нашли опечатку в нашей статье про RC4OK и расхождение с исходниками. Мы поправили, свежая версия доступна на сайте IACR. RC4OK - модификация известного алгоритма RC4, созданная основателем блокчейн-платформы Emercoin Олегом Ховайко. Моя роль в этой работе аналитическая. Алгоритм получился супер-быстрым и довольно безопасным, о чём мы писали ранее. Радует, что люди интересуются, используют, портируют.

#криптография #rc4ok
👍5
Про Telegram и корпоративные коммуникации

Сегодня французы арестовали основателя Telegram Павла Дурова. Политику и прочие не профильные для нас подобные вещи отбросим, этим пусть другие занимаются. Наше дело - технологии.

Интересно, что сейчас из каждого утюга полетело, что, дескать, теперь мессенджер ненадёжен и надо корпоративные, служебные и прочие не для лишних ушей коммуникации в нём прекращать. На самом деле любой публичный облачный мессенджер изначально небезопасен. Групповые и обычные облачные чаты, понятно, хранятся где-то в облаке и могут быть расшифрованы (в случае с Signal групповые чаты реализованы специфически через end-to-end encryption, но они жутко тормозные). Но даже в случае end-to-end encryption есть нюанс с созданием общего ключа, ибо он зачастую генерируется алгоритмом Диффи-Хеллмана (или его производными), который, как известно, подвержен атаке "человек посередине" (MITM). Именно из-за этой самой возможного митма появилась, например, инфраструктура PKI, где сертификаты открытого ключа подписываются внешним доверенным арбитром - третьей стороной, которой все участники доверяют. Где эта сторона в случае с мессенджером? Мы снова должны доверять серверной инфраструктуре, находящейся непонятно где и доступ к которой имеет непонятно кто. Ну или, как вариант, обменяться неким секретом при встрече или по другому доверенному каналу (многие ли так делают?). Эпизодическая перегенерация ключей (по типу Double Ratchet, как у Signal) - это хорошо, но всегда вопрос в безопасном формировании того самого первого общего секрета. Так что даже с секретными чатами всё не так однозначно. Это если вести речь о переписке. Есть ещё данные о геолокации, например, доступные непонятно кому. Данные об интенсивности переписки. Данные о том, что коммуникация между людьми в принципе есть.

В сухом остатке облачный мессенджер в принципе не для конфиденциальных коммуникаций, включая корпоративные. Есть неплохие корпоративные on-premise решения (тот же express messenger). Ну или совсем на худой конец - сервер Rocket Chat развернуть (его строго желательно под VPN)

#криптография #мессенджер
👍7🤔1
Интересны измышления по типу "у каждого уважающего себя синдиката свой мессенджер со своим сервером, шахматами и поэтессами". Это прям как себе приклеить на лоб что-то заметное и интересное и расхаживать с покерфейсом, откинув назад чёлку. Стоит даже удалённо получить доступ к устройству любого участника такого синдиката, и, минимум, точка входа будет известна. Как минимум, стоит внимательно к ней присмотреться. А если ещё и приложение своё, да ещё и push-уведомления по моде сделаны, то совсем красота. При удачном стечении обстоятельств можно всех членов такого синдиката выявить разом. Жаль, что синдикаты так не делают :)

#мессенджер
Про мультилинейные отображения и как они связаны с групповыми чатами

В современной криптографии есть открытая проблема: эффективные мультилинейные криптографические отображения (cryptographic multilinear maps). Определение есть в Википедии, оно там хорошее. На русском про мультилинейные отображения есть небольшая статья в Киберленинке. Билинейное криптографическое отображение (cryptographic bilinear map) отсылает нас к знаменитой схеме выработки общего секрета - протоколу Диффи-Хеллмана и производным от него. Он надёжен, но предполагает наличие двух равноправных абонентов, которые вырабатывают общий секретный сеансовый ключ, которым шифруются сообщения между абонентами. То самое сквозное шифрование (end-to-end encryption). Однако, когда появляется третий абонент и далее, мы сталкиваемся с тем, что эффективного и практичного алгоритма выработки общего секрета этими равноправными абонентами пока нет. Тут надо что-то "колхозить" и находить компромисс между удобством использования и безопасностью.

Например, можно каждому абоненту в группе по Диффи-Хеллману сгенерировать сеансовые ключи с каждым другим абонентом в группе, а своё сообщение в группе просто шифровать отдельно для каждого другого пользователя. Например, у нас чат на N абонентов. Тогда мы шифруем наше сообщение N-1 раз и отправляем его им (каждому из них) через сервер мессенджера. Так реализовано, например, в Signal, о чём можно почитать здесь. Хочется группу на 100 абонентов? Ну... Бывает. Каждое отправляемое сообщение будет шифроваться 99 раз, а на сервере будет лежать 99 копий. Но зато здесь будет работать Double Ratchet - когда каждое сообщение шифруется отдельным ключом, а сервер не будет вообще в принципе знать, что есть какая-то группа и, если кто-то в произвольный момент получил доступ к серверу, то он мало что получит в итоге.

Можно поступить проще - когда создатель группы генерирует секретный ключ для группы, отсылает его каждому участнику (или даёт информацию, чтобы участник сам его вычислил), используя сквозное шифрование, а дальше все уже спокойно общаются. Это быстрее и удобнее, но Double Ratchet здесь работать не будет, а у группы появляется роль Администратора. Тем не менее, доступа к расшифрованной переписке у сервера не будет, хотя ряд атак станут возможны. Например, получение ключа с одного из устройств при доступе к серверу позволит читать всю переписку, в том числе на этом устройстве не сохранённую.

А можно шифровать только между сервером и абонентами, когда сервер имеет доступ к исходному контенту. Это когда совсем нечего скрывать

#мессенджер #криптография
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Один из наших инициативных образовательных проектов. С лёгкой руки нашего главного специалиста по электронике назвали его "Ковальски". Ковальски будет стоять у нас в офисе и провожать взглядом проходящих мимо. Сейчас слегка подёргивается и подтормаживает, но это лечится. По сути, на видео первая отладочная версия. Из софта в этом маленьком часовом есть детектор движения, трекер, библиотека для управления приводами. Всё сделано у нас в Рекрипте. Плюс, разработанный и напечатанный на 3D-принтере корпус. 3D-принтер у нас тоже есть :)
Для чего нам это? Потестировать и обкатать имеющиеся и разрабатываемые у нас программные компоненты, повысить их качество. Протестировать и обкатать эти компоненты в связке. Крайне важно для нас, что в этом и подобных проектах под кураторством наших опытных сотрудников принимают активное участие наши самые молодые специалисты - студенты Бауманки. Учатся работать с мануалами, сопутствующей математике, писать и отлаживать код (в том числе и низкоуровневый), реверсить (да, это тоже надо), схемотехнике и вообще работать с современной электроникой (в том числе не жечь её часто 😜), да и многому другому. Всему тому, что составляет основу современной робототехники

#робототехника #ковальски #ии #видеоаналитика
👍9👀2
Отличное довольно детальное описание архитектуры оптимизирующего jit-компилятора Maglev, используемого в Chrome. На низком уровне, как мы все любим. С упором в безопасность и примером эксплуатации уязвимости CVE-2023-4069.

#почитать #реверсинг #компилятор
👍2
Хорошее и достаточно полное исследование формата антивирусных баз Windows Defender с упором на простые сигнатуры (последовательности байт, строки). Интересно, что таких сигнатур на хосте не так уж и много - несколько сотен тысяч. Это объясняется в том числе большими объёмами памяти, необходимыми для развёртывания структур быстрого поиска, которые практически во всех антивирусах сейчас древовидные. Миллионы простых сигнатур по типу описываемых в исследовании - это сложно для движков, базирующихся, например, на Ахо-Корасик и производных от него. Даже с костылями по типу списков на третьем-четвёртом уровне дерева поиска выходит всяко не очень. Кто хочет убедиться, может попробовать скормить миллион простых сигнатур опенсорсному ClamAV и поглядеть, что будет. С деревьями хэшей плюс-минус та же история. Это одна из причин появления более сложных комплексных сигнатур, выходящих по своей сложности за рамки возможностей регулярных языков. А это тоже код в антивирусных базах

#антивирус #почитать
👍5