Стековые канарейки и где они обитают. Приручаем один из ключевых харденингов
Хабр, привет! Меня зовут Мария Недяк, я специализируюсь на разработке харденингов нашей собственной микроядерной операционной системы «Лаборатории Касперского» KasperskyOS. Если вкратце: мы стараемся сделать любые атаки на нашу ОС невозможными — или хотя бы очень дорогими :-) Один из главных...
PVS-Studio соответствует требованиям ГОСТ Р 71207—2024 (статический анализ программного обеспечения)
Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024, выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения. Рассмотрим функциональные возможности, реализованные в...
Поиск ошибок в юнит-тестах
Давно хотелось написать статью, что юнит-тесты — это хорошо, но не стоит забывать, что они тоже могут содержать ошибки. Сейчас встретился проект DPDK, тесты которого хорошо демонстрируют этот нюанс. Давайте посмотрим, как выглядят типичные ошибки в юнит-тестах, и как они выявляются с помощью...
[Перевод] Портируем декодер AV1 с С на Rust для повышения быстродействия и безопасности
AV1 становится всё более значимым видеоформатом, которому требуется безопасный и производительный декодер. Исходя из этой идеи, мы в тандеме с командой из Immutant создали rav1d, портировав на Rust написанный на С декодер dav1d. Перед вами первая из двух статей, посвящённых решению этой задачи. —...
Опасность устарела: несколько важных нюансов в новых стандартах C++
Undefined behavior (UB) — боль, знакомая каждому разработчику со стажем; эдакий «код Шредингера», когда не знаешь, правильно тот работает или нет. К счастью, стандарты языка С++20/23/26 привнесли относительно неопределенного поведения кое-что новое. И довольно важное, если вы — архитектор ПО, а...
Идеальный алгоритм шифрования? HASH-CRYPT
Кажется, я придумал новый алгоритм шифрования! Или такой уже существует? В любом случае - здесь есть его описание, и даже программа для проверки. > ENCRYPT...
Какую статью хочется прочитать в нашем блоге на тему C++, C# или Java?
Наша команда регулярно публикует теоретические статьи, пишет про поиск ошибок в открытых проектах, делает развлекательные посты. В общем, в нашем блоге много всего интересного и полезного. Однако не ходим ли мы по кругу с одними и теми же темами? Нам сложно взглянуть на нашу ленту публикаций со...
Вскрываем средство для DDoS-атак на российскую ИТ-инфраструктуру
Привет, Хабр! В начале апреля 2023 года на одном из хостов был обнаружен подозрительный файл mhddos_proxy_linux_arm64 (MD5: 9e39f69350ad6599420bbd66e2715fcb), загружаемый вместе с определенным Docker-контейнером. По открытым источникам стало понятно, что данный файл представляет из себя свободно...
Как закалялась сталь современной симметричной криптографии. Глава 2. Математическая криптография
Современные симметричные шифры, которыми мы пользуемся неявно, но повсеместно, появились в ходе своей многовековой эволюции, в ходе продолжительных и постоянных этапов собственного совершенствования. Каждый новый шаг улучшения приводил одновременно к разрушению старых уязвимых шифров и к порождению...
Развитие инструментария С++ программистов: статические анализаторы кода
Размер современных приложений и сложность языка C++ превышают возможности людей по всестороннему анализу текста программ на обзорах кода. Компенсационная методология – статический анализ кода. Читать дальше →...
Теперь PVS-Studio ещё лучше знает, что за зверь такой – strlen
Как-то так несправедливо сложилось, что мы почти не уделяем в наших заметках внимание усовершенствованию внутренних механизмов анализатора, в отличие от новых диагностик. Поэтому давайте для разнообразия познакомимся с новым полезным усовершенствованием, коснувшимся анализа потока данных. Читать...
Как PVS-Studio защищает от поспешных правок кода
Хотя только недавно была заметка про проект CovidSim, есть хороший повод вновь про него вспомнить и продемонстрировать пользу регулярного использования PVS-Studio. Бывает, что все мы спешим и вносим правки в код, потеряв сосредоточенность. Статический анализатор может оказаться здесь хорошим...
Espressif IoT Development Framework: 71 выстрел в ногу
Один из наших читателей обратил наше внимание на Espressif IoT Development Framework. Он нашёл ошибку в коде проекта и поинтересовался, смог бы её найти статический анализатор PVS-Studio. Именно эту ошибку анализатор пока найти не может, зато нашёл множество других. По мотивам этой истории и...
[Перевод] bdshemu: эмулятор шелл-кода в Bitdefender
Совсем скоро, 19 ноября, у нас стартует курс «Этичный хакер», а специально к этому событию мы подготовили этот перевод о bdshemu — написанном на языке C эмуляторе с открытым исходным кодом в Bitdefender для обнаружения эксплойтов на 32- и 64-битной архитектуре. Эмулятор очень прост, а благодаря...