Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
semgrep-rules — Коллекция моих правил Semgrep для облегчения исследования уязвимостей. | Kitploit
Инструменты/GitHubGitHub/0xdea/semgrep-rules
Статический анализ кода (SAST)Анализ уязвимостейАнализ КодаАнализ Бинарных ФайловОбучение и ОбразованиеПодобранные Ресурсы
GitHub0xdea/semgrep-rules

semgrep-rules

Коллекция моих правил Semgrep для облегчения исследования уязвимостей.

Репозиторий
86689255 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

semgrep-rules

validate

«Поверхность атаки — это уязвимость. Найти там баг — всего лишь деталь.»

— Марк Дауд

«Некоторые детали важнее других.»

— Федор Г. Пикус

Коллекция моих правил Semgrep для облегчения исследования уязвимостей.

Программа на C

Записи в блоге

  • https://hnsecurity.it/blog/semgrep-ruleset-for-c-c-vulnerability-research
  • https://hnsecurity.it/blog/automating-binary-vulnerability-discovery-with-ghidra-and-semgrep
  • https://hnsecurity.it/blog/big-update-to-my-semgrep-c-cpp-ruleset
  • https://hnsecurity.it/blog/streamlining-vulnerability-research-with-the-idalib-rust-bindings-for-ida-9-2/
  • https://hnsecurity.it/blog/my-semgrep-c-cpp-ruleset-is-ready-for-prime-time-again/

См. также

  • https://appsec.guide/docs/static-analysis/semgrep/
  • https://semgrep.dev/docs/writing-rules/overview
  • https://semgrep.dev/r

Инструкции по настройке и использованию

  1. Установите Semgrep.
  2. Чтобы использовать эти правила через реестр Semgrep, выполните следующие команды из корневой папки репозитория исходного кода цели:
# сканирование с высоким приоритетом (быстрые победы)
semgrep --severity ERROR --config "p/0xdea"

# сканирование с высоким и средним приоритетом (рекомендуется)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"

# полное сканирование (может включать пограничные находки и больше ложных срабатываний)
semgrep --config "p/0xdea"

В качестве альтернативы вы можете клонировать этот репозиторий GitHub локально и выполнить:

# полное сканирование
semgrep --config semgrep-rules/rules /путь/к/исходнику

# сканирование по конкретному правилу
semgrep --config semgrep-rules/rules/c/command-injection.yaml /путь/к/исходнику

[!TIP] Укажите флаг --no-git-ignore, чтобы сканировать файлы независимо от статуса отслеживания git или правил .gitignore.

Для более удобной работы я рекомендую сохранять вывод сканирования Semgrep в формате SARIF и использовать SARIF Explorer в VS Code:

semgrep --sarif --sarif-output=/путь/к/исходнику/SEMGREP.sarif --config semgrep-rules/rules /путь/к/исходнику
code /путь/к/исходнику # затем откройте файл SEMGREP.sarif в VS Code с помощью SARIF Explorer

Также смотрите включенный пример вывода SARIF.

Совместимость

Протестировано с Semgrep CLI 1.169.0.

Правила

C/C++

Проверенный в бою набор правил для C (и иногда C++).

переполнения буфера

  • insecure-api-gets. Использование небезопасной функции API gets.
  • insecure-api-strcpy-strcat. Использование потенциально небезопасных функций API strcpy, stpcpy, strcat.
  • insecure-api-sprintf-vsprintf. Использование потенциально небезопасных функций API sprintf и vsprintf.
  • insecure-api-scanf. Использование потенциально небезопасных функций API семейства scanf.
  • incorrect-use-of-strncat. Неправильный аргумент размера, переданный в strncat.
  • use-of-source-size-in-copy. Неправильный аргумент размера, переданный в strncpy, memcpy, snprintf и их варианты.
  • incorrect-use-of-sizeof. Случайное использование оператора sizeof для указателя вместо его целевого объекта.
  • unterminated-string-strncpy. Отсутствие явного завершения нулевым символом после strncpy и stpncpy.
  • off-by-one. Потенциальная ошибка на единицу.
  • unsafe-ret-snprintf-vsnprintf. Потенциально небезопасное использование возвращаемого значения snprintf и vsnprintf.
  • unsafe-ret-strlcpy-strlcat. Потенциально небезопасное использование возвращаемого значения strlcpy и strlcat.
  • pointer-subtraction. Потенциальное использование вычитания указателей для определения размера.
  • write-into-stack-buffer. Прямая запись в буфер, размещённый на стеке.

целочисленные переполнения

  • integer-wraparound. Потенциальные ошибки переполнения целых чисел.
  • unsafe-strlen. Приведение возвращаемого значения strlen к short может быть опасным.
  • integer-truncation. Потенциальные ошибки усечения целых чисел.
  • signed-unsigned-conversion. Потенциальные ошибки преобразования знаковых/беззнаковых типов.
  • incorrect-unsigned-comparison. Проверка беззнаковой переменной на отрицательность.

строки формата

  • format-string-bugs. Потенциальные ошибки строк формата.

управление памятью

Скачать инструмент