Записки потомственного it'шника
275 subscribers
509 photos
40 videos
204 files
1.65K links
Краткость — сестра таланта.
Автоматизация — мать порядка.
Ransomware'щики — боги.
Батя — программист over 80+ level.
Мать — бухгалтер, соскачившая с цифр на контдитерские изделия.
Ну а я — бакалавр ИБ по собственной воле.
Update: уже магистр.
Download Telegram
Forwarded from Протестировал (Sergey Bronnikov)
Репост из канала Данилы Кутенина (орфография и пунктуация автора) про тестирование движка для регулярных выражений:

В последние 2 недели периодически, когда мне было лень работать, я пытался сделать что-то интересное, но до большого и громкого поста не дотягивало. В любом случае, поделиться стоит.

Меня задолбали различные движки регулярных выражений и каждый раз, когда я смотрел на них, мне хотелось понять, как они под капотом тестируются. После изучения многих библиотек, я понял, что поддержка огромного количества токенов так грустно покрыто юнит тестами, что я захотел либо найти достойное тестирование (спойлер, не нашёл), либо десятки багов в этих движках. Суммарно за несколько дней я нашёл 11 багов, 2 в boost (уже были зарепорчены 1, 2), 4 новых в hyperscan, 5 новых в compile time regular expressions (будущие regex в плюсовом стандарте) и огромное количество (нет, просто капец тьму) несоответствия между синтаксисами различных движков, например, что в RE2 синтаксисе whitespace (\s) не поддерживается вертикальный tab \v, хотя во всех остальных движках оно одинаково поддерживается. Или даже лучше (не баг, различие в грамматиках):

#include <boost/regex.hpp>
#include <regex>
#include <iostream>

int main() {
{
std::regex e{"\\<\\<\\w+"};
std::cout << std::regex_search("a ", e) << std::endl; // prints 0
}
{
boost::regex e{"\\<\\<\\w+"};
std::cout << boost::regex_search("a ", e) << std::endl; // prints 1
}
}

Python RE, PCRE/PCRE2, RE2 прошли тестирование. Видимо, big tech является для них самым главным тестировщиком :)

В отличие от стандартного тестирования, я пытался сделать что-то новое, а именно

1. Создаем случайное валидное регулярное выражение, например, с помощью случайного дерева или автомата
2. Если движок отказывается его компилировать, это баг. Можно здесь ещё считать majority от движков и репортить те, которые не подчиняются ему
3. Создаем строки подходящие под это регулярное выражение, если они не матчатся, то это баг. Создаём почти подходящие строки, если они матчатся, это баг. Здесь я использовал идеи из статьи egret и питонячнее .sre_parse
4. Фаззим с помощью libfuzzer входные строки для поиска, пытаемся найти рантайм баги и сверяем корректность у majority движков

У многих движков настроен фаззинг, только они не проверяют полноту. К счастью, видимо, весь хлеб такого тестирования фаззинг у меня и забрал, мой план лишь быстрее увеличивал покрытие. Например, такой план увеличивал покрытие hyperscan до 90% за 2 часа, когда как обычный фаззинг делал это 3 дня.

Несмотря на баги, hyperscan всё ещё считаю лучшим движком by far от всех остальных. Там очень много очень классного кода, написано хорошо, работает очень быстро (сотни мегабайт в секунду). Недавно узнал, что там можно собирать регулярные выражения в satisfiability дерево, например, в ((1 & 2) | (!3 & 2)), где 1, 2, 3 — регулярные выражения. Так они ещё там внутри и оптимизируются.

Если говорить про различие синтаксисов, то есть неплохая табличка.

Ну, 11 багов, that ain't much but that's honest work. Надеялся на много десятков минимум :)
Facebook выложил в паблик инструмент Mariana Trench для анализа исходных кодов для Android и Java. До этого они уже выкладывали свои анализаторы исходников Zoncolan и Pysa (для Hack и Python) https://t.co/omuM4FuKqn
— Alexey Lukatsky (@alukatsky) Sep 30, 2021
Forwarded from oleg_log (Oleg Kovalov)
Вау, оказывается есть общие(?) хоткеи для навигации по командной строке. Некоторые в моем iTerm даже работают. Дадада, я не знал. (Спасибо подписчику :)
Forwarded from AI для Всех (Artemii)
This media is not supported in your browser
VIEW IN TELEGRAM
Как написать целый абзац для статьи на английском языке, всего лишь из одного предложения на русском?

Пишем одно предложение, переводим его на английский с помощью DeepL. Подаем его на вход в GPT-J, затем перефразируем его с помощью Wordtune и проверим грамматику Grammarly.

Поздравляю - у вас есть целый абзац текста. Нейросети рулят!

#ScientificML #writing
Forwarded from Neural Shit
Годный репозиторий - rclip

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

Под капотом CLIP от OpenAI
Forwarded from infosecurity
🚪 Lightweight UNIX backdoor for ethical hacking.

JadedWraith is a powerful backdoor capable of either listening on a TCP port or sniffing packets for a "magic" ICMP packet instructing the backdoor to either callback or listen. This is partly inspired by tools such as PRISM, however, unlike PRISM JadedWraith incorporates shoddy cryptography to obfuscate command and control. JadedWraith can be used to execute remote commands or upload follow on payloads.

🧷 https://github.com/phath0m/JadedWraith

#backdoor #hacking #UNIX
Forwarded from Open Source
​​nzyme

Nzyme - это свободная открытая система защиты Wi-Fi нового поколения.

Проект nzyme использует адаптеры Wi-Fi в режиме мониторинга для сканирования частот на предмет подозрительного поведения, в частности, мошеннических точек доступа и известных платформ атак WiFi.

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

Вы когда-нибудь задумывались, что делать, если поймаете злоумышленника?😉 С помощью nzyme вы сможете восстановить, что произошло, кто был злодеем, а кто был успешно взломан. nzyme также позволяет физически найти злоумышленника😳

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

https://github.com/lennartkoopmann/nzyme

Сайт: https://www.nzyme.org/

Документация и видео-инструкции: https://www.nzyme.org/docs/intro/
=============
Если нашел интересный софт, поделись с сообществом: @FOSS_triangle_bot
Forwarded from Алиса рассказывает
WIND - Windows in Docker — WHY? So you can run Windows "as a container"