CyberCodeReview
  • Главная
  • 🔦Auditor
    • 📥Установка
      • Установка
      • Обновление
    • 🎯Функционал
    • ⚙️Настройки
      • Интеграция с Security Center
        • Настройка активов продукта
        • Конфигуратор Auditor
        • Последовательности
          • Создание последовательности
          • Изменение цепочек
      • Прямое использование Auditor
        • Очистка
        • Учетные данные Docker
        • Обработчики
        • Персонализация
      • Задания
        • Технические задания
        • Задания сканирования
        • Настройка заданий
    • 🚀Запуск аудита
      • Интеграция с Security Center
        • Запуск аудита вручную
        • Запуск аудита по расписанию
      • Прямое использование Auditor
  • 🖥️Security Center
    • 📥Установка
      • Установка
      • Начало работы с Security Center
        • Параметры конфигурации
      • Обновление
      • Доступ к конечным точкам API Security Center
      • Перенос базы данных
      • FAQ: типичные ошибки в процессе развертывания
    • 🎯Функционал
      • Активные задачи
      • Метрики безопасности
        • Дашборд статистики критичности
        • WRT (Weighted Risk Trend)
        • Как работать с WRT (для руководителей команд)
        • Настройки метрик
          • SLA
        • CVSS
          • Правило CVSS
      • Дедупликатор
        • Правила базовой дедупликации
        • Правила расширенной дедупликации
      • Пользовательские отчеты
    • 🎣Валидатор
      • Создание правила
      • Фильтрация и сортировка фильтров
    • 🕷️Просмотр обнаружений
      • Просмотр всех уязвимостей
      • Объединение уязвимостей в группы
      • Доступные массовые действия
      • Просмотр отдельной уязвимости
      • Фильтры и сортировка
    • 🔬Сканеры
      • Импорт отчетов от сканеров в Security Center
        • Ручной импорт используя файл отчета
        • Импорт через Терминал используя файл отчета
        • Импорт через лямбда-функцию используя файл отчета
      • Описание сканеров
        • Сканеры кода
          • Bandit
          • Brakeman
          • Checkov
          • CodeQL
          • ESLint
          • Gemnasium
          • Gosec
          • Hadolint
          • KICS
          • PHP_CodeSniffer
          • Retire.js
          • Semgrep
          • SpotBugs
          • Terrascan
        • Сканеры секретов
          • Gitleaks
          • Trufflehog3
        • Сканеры зависимостей образа и кода
          • Trivy
          • Плагин Trivy vulners.com
        • Веб-сканеры
          • Arachni Scan
          • Acunetix
          • Burp Enterprise Scan
          • OWASP Zap
        • Сканеры инфраструктуры
          • Prowler
          • Subfinder
          • Naabu
          • Nessus
          • Nuclei
        • Сканеры мобильной безопасности
          • MobSFScan
        • Прочие сканеры
          • Dependency-Track
          • Snyk
      • Кастомные импортеры
        • Актуальные кастомные импортеры
    • 📊Jira
      • Настройка интеграции Jira
      • Настройка веб-хука Jira
    • Dependency Track
    • 🛠️Основные настройки Security Center
      • Настройка уведомлений
        • Интеграция
        • Критерии и расписание
        • Управление расписанием уведомлений
      • Настройки SSO
        • GitLab SSO
        • Microsoft SSO
        • Okta SSO
      • Управление ролями пользователей и контролем доступа
        • Управление пользователями
        • Создание и редактирование ролей
      • Настройки продукта
        • Создание продукта
        • Импорт репозиториев
        • Параметры продукта
        • Оценка рисков
        • Активы продукта
      • Интеграция с системой контроля версий (VCS)
      • Настройки сканера
        • Автозакрытие
        • Группировка обнаружений
        • Пользовательское описание Jira
        • Пользовательское сопоставление критичности
        • Настройка задач Auditor
      • Настройка ссылок репозиториев
      • Страница тегов
      • Экран активов
Powered by GitBook
On this page
  1. Security Center
  2. Сканеры
  3. Описание сканеров
  4. Сканеры кода

CodeQL

CodeQL - это мощный инструмент статического анализа для анализа и поиска уязвимостей в коде.

PreviousCheckovNextESLint

Last updated 10 months ago

Название импортера в Security Center: CodeQL Scan (SARIF)

CodeQL использует механизм семантического анализа кода для понимания его поведения и поиска потенциальных проблем безопасности, включая SQL-инъекции, межсайтовый скриптинг и многое другое. CodeQL можно использовать для анализа кода, написанного на широком спектре языков программирования, включая C++, Java, Python и JavaScript, что делает его универсальным инструментом для любой команды разработчиков.

CodeQL работает путем создания базы данных графов, которая моделирует поведение кода. Эта база данных позволяет CodeQL понять, как различные части кода взаимодействуют друг с другом, и выявить потенциальные проблемы безопасности, которые могут возникнуть в результате такого взаимодействия. CodeQL также предоставляет ряд мощных языков запросов, которые позволяют разработчикам создавать собственные запросы для поиска конкретных проблем безопасности или паттернов в коде.

Пример команды Curl

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=CodeQL Scan (SARIF)" -F "branch=dev" 

В этой команде используются следующие параметры:

  1. -X POST: задает используемый метод HTTP (в данном случае POST).

  2. -H "Authorization: Token <authorization_token>": задает , полученный от Security Center.

  3. -H "Content-Type: multipart/form-data": задает тип содержимого запроса.

  4. -F "file=@<report_file_path>": задает путь к файлу отчета, создаваемого сканером.

  5. -F "product_name=<product_name>": задает название сканируемого продукта.

  6. -F "product_type=<product_type>": задает тип сканируемого продукта.

  7. -F "scanner_name=<scanner_name>": задает имя сканера, используемого для создания отчета (CodeQL Scan (SARIF))

  8. -F "branch=<branch_name>": (необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию

Пример отчета:

{
  "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "Tool Name",
          "rules": [
            {
              "id": "R01"
                      ...
              "properties" : {
                 "id" : "java/unsafe-deserialization",
                 "kind" : "path-problem",
                 "name" : "...",
                 "problem.severity" : "error",
                 "security-severity" : "9.8",
               }
            }
          ]
        }
      },
      "results": [
        {
          "ruleId": "R01",
          "message": {
            "text": "Result text. This result does not have a rule associated."
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "fileURI"
                },
                "region": {
                  "startLine": 2,
                  "startColumn": 7,
                  "endColumn": 10
                }
              }
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "39fa2ee980eb94b0:1"
          }
        }
      ]
    }
  ]
}
🖥️
🔬
токен авторизации