Перейти к основному содержимому
Версия: 1.6

Сканирование и отчеты Semgrep и Trivy

Сканирование и формирование отчетов Semgrep с помощью CLI

предупреждение

Отчет в формате JSON, загружаемый в TRON.ASOC, должен быть сохранен в кодировке в UTF-8 без BOM.

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

1. Сканирование с автоматическим выбором правил (--config=auto). Этот тип сканирования включает базовые правила для безопасности (security), ошибок (bugs) и стиля кода (correctness).

Чтобы запустить сканирование и формирование отчета, выполните команду:

semgrep scan --config=auto --metrics=on --json "C:\juice-shop-master" > auto_results.json

Сканирование Semgrep с автоматическим выбором правил

2. Сканирование с помощью специализированного набора для аудита безопасности (--config=p/security-audit). Этот тип сканирования включает только критические правила, связанные с уязвимостями (SQL-инъекции, XSS, десериализация, небезопасные криптографические алгоритмы, утечки чувствительных данных (API-ключи, пароли)).

Чтобы запустить сканирование и формирование отчета, выполните команду:

semgrep scan --config=p/security-audit --metrics=off --json "C:\juice-shop-master" > secaud_results.json

Сканирование Semgrep с помощью специализированного набора

3. Сканирование качества кода и читаемости (--config=p/code-review). Этот тип сканирования включает антипаттерны (дублирование, избыточность), сложные условия/циклы, неочевидные ошибки.

Чтобы запустить сканирование и формирование отчета, выполните команду:

semgrep scan --config=p/code-review --metrics=off --json "C:\juice-shop-master" > codereview_results.json

Ниже представлен пример отчета о Semgrep-сканировании.

{
"errors": [
],
"results": [
{
"check_id": "generic.secrets.security.detected-twitter-oauth.detected-twitter-oauth",
"end": {
"col": 38431,
"line": 1,
"offset": 38430
},
"extra": {
"engine_kind": "OSS",
"fingerprint": "fc255e575f2b938f11bf70bb737def0a1aa3ea044296972c9c6ff5b66b0d931064731b30406fc873b300c2bcf73cb66797513b709991e334fd355599d60d53d8_0",
"is_ignored": false,
"lines": "<![A-Z]>",
"message": "Twitter OAuth detected",
"metadata": {
"category": "security",
"confidence": "LOW",
"cwe": [
"CWE-798: Use of Hard-coded Credentials"
],
"cwe2021-top25": true,
"cwe2022-top25": true,
"impact": "MEDIUM",
"license": "Commons Clause License Condition v1.0[LGPL-2.1-only]",
"likelihood": "LOW",
"owasp": [
"A07:2021 - Identification and Authentication Failures"
],
"references": [
"https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures"
],
"semgrep.dev": {
"rule": {
"origin": "community",
"rule_id": "BYUNq8",
"url": "https://semgrep.dev/playground/r/A8TRG6/generic.secrets.security.detected-twitter-oauth.detected-twitter-oauth",
"version_id": "A8TRG6"
}
},
"shortlink": "https://sg.run/Lwb7",
"source": "https://semgrep.dev/r/generic.secrets.security.detected-twitter-oauth.detected-twitter-oauth",
"source-rule-url": "https://github.com/dxa4481/truffleHogRegexes/blob/master/truffleHogRegexes/regexes.json",
"subcategory": [
"audit"
],
"technology": [
"secrets",
"twitter"
],
"vulnerability_class": [
"Hard-coded Secrets"
]
},
"metavars": {},
"severity": "ERROR"
},
"path": "/somedir/somefile.js",
"start": {
"col": 37650,
"line": 1,
"offset": 37649
}
}
],
"version": "1.33.2"
}

Сканирование и формирование отчетов отчетов Trivy с помощью CLI

С помощью инструмента Trivy вы можете выполнять следующие сканирования:

  • сканирование уязвимостей (--scanners vuln);
  • сканирование чувствительных данных (secret);
  • сканирование конфигураций (misconfig);
  • сканирование лицензий (license).

Сканирование уязвимостей

Чтобы запустить сканирование уязвимостей, выполните команду:

trivy image --format json --scanners vuln --output "$(pwd)/vuln_malware_qa.json" pollysnegir/malware-qa:all-inclusive

Сканирование уязвимостей Trivy

Сканирование чувствительных данных и конфигураций

Чтобы запустить сканирование чувствительных данных и конфигураций, выполните команду:

trivy image --format json --scanners secret,misconfig --output "$(pwd)/secret_misconfig_malware-qa.json" pollysnegir/malware-qa:all-inclusive

Сканирование чувствительных данных и конфигураций Trivy

Комплексное сканирование

Чтобы запустить комплексное сканирование, выполните команду:

trivy image --format json --scanners vuln,secret,misconfig --output "$(pwd)/malware_qa.json" pollysnegir/malware-qa:all-inclusive

Комплексное сканирование Trivy

Формирование SBOM-отчетов

Чтобы сформировать SBOM-отчеты по результатам сканирования, выполните команду:

trivy image --format cyclonedx --output "$(pwd)/sbom_malware_qa.json" pollysnegir/malware-qa:all-inclusive

Формирование SBOM-отчетов Trivy

Ниже представлен пример SBOM-отчета о сканировании.

{
"SchemaVersion": 2,
"ArtifactName": "sbom.json",
"ArtifactType": "cyclonedx",
"Metadata": {
"ImageConfig": {
"architecture": "",
"created": "0001-01-01T00:00:00Z",
"os": "",
"rootfs": {
"type": "",
"diff_ids": null
},
"config": {}
}
},
"Results": [
{
"Target": "requirements.txt",
"Class": "lang-pkgs",
"Type": "pip",
"Vulnerabilities": [
{
"VulnerabilityID": "CVE-2013-7445",
"PkgID": "linux-libc-dev@6.1.55-1",
"PkgName": "linux-libc-dev",
"InstalledVersion": "6.1.55-1",
"Status": "will_not_fix",
"Layer": {
"Digest": "sha256:938cae48a646a95127345a544f75f4e0b83f5fa612858e524aedea6981af4a1e",
"DiffID": "sha256:dfe25755ef07309fcb76dd47b2bb21e6dd92adedce8d9aa7f5bbceaf7fc726c9"
},
"SeveritySource": "nvd",
"PrimaryURL": "https://avd.aquasec.com/nvd/cve-2013-7445",
"DataSource": {
"ID": "debian",
"Name": "Debian Security Tracker",
"URL": "https://salsa.debian.org/security-tracker-team/security-tracker"
},
"Title": "kernel: memory exhaustion via crafted Graphics Execution Manager (GEM) objects",
"Description": "The Direct Rendering Manager (DRM) subsystem in the Linux kernel through 4.x mishandles requests for Graphics Execution Manager (GEM) objects, which allows context-dependent attackers to cause a denial of service (memory consumption) via an application that processes graphics data, as demonstrated by JavaScript code that creates many CANVAS elements for rendering by Chrome or Firefox.",
"Severity": "HIGH",
"CweIDs": [
"CWE-399"
],
"VendorSeverity": {
"nvd": 3,
"redhat": 2,
"ubuntu": 2
},
"CVSS": {
"nvd": {
"V2Vector": "AV:N/AC:L/Au:N/C:N/I:N/A:C",
"V2Score": 7.8
},
"redhat": {
"V2Vector": "AV:N/AC:M/Au:N/C:N/I:N/A:P",
"V2Score": 4.3
}
},
"References": [
"https://access.redhat.com/security/cve/CVE-2013-7445",
"https://bugzilla.kernel.org/show_bug.cgi?id=60533",
"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-7445",
"https://lists.freedesktop.org/archives/dri-devel/2015-September/089778.html (potential start towards fixing)",
"https://nvd.nist.gov/vuln/detail/CVE-2013-7445",
"https://www.cve.org/CVERecord?id=CVE-2013-7445"
],
"PublishedDate": "2015-10-16T01:59:00.12Z",
"LastModifiedDate": "2015-10-16T16:22:25.587Z"
}
]
}
]
}
Нашли ошибку или неточность?