analyzing-sbom-for-supply-chain-vulnerabilities
Ajuda seu agente a encontrar falhas de segurança em softwares. Ele analisa a lista de componentes de um programa para identificar riscos.
O que ela faz
Esta ferramenta analisa um arquivo chamado SBOM, que lista todos os componentes de um software. Ela verifica se algum desses componentes tem vulnerabilidades de segurança conhecidas, ajudando a entender os riscos na cadeia de suprimentos do software.
Quando usar
- ✓Quando uma nova lei exige a análise de segurança do software.
- ✓Para verificar o risco de softwares de terceiros.
- ✓Ao receber um software novo e querer saber seus riscos.
Exemplo do que pedir para a IA
“Analise este SBOM e me diga se há vulnerabilidades conhecidas nos componentes.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta lê o arquivo SBOM, compara os componentes listados com um banco de dados de vulnerabilidades conhecidas (NVD) e calcula um nível de risco. Ela também pode mostrar como as vulnerabilidades podem se espalhar através das dependências do software.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-sbom-for-supply-chain-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/analyzing-sbom-for-supply-chain-vulnerabilities/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Análise de SBOM para Vulnerabilidades na Cadeia de Suprimentos
Quando Usar
- Um novo requisito regulatório (EO 14028, EU CRA) exige a análise de SBOM para entregas de software
- A equipe de segurança precisa avaliar o risco de terceiros escaneando SBOMs fornecidas por fornecedores
- O pipeline de CI/CD requer verificações automatizadas de vulnerabilidade contra SBOMs geradas
- A resposta a incidentes precisa determinar se uma CVE recém-divulgada afeta o software implantado
- A equipe de compras requer avaliação de risco da cadeia de suprimentos para aquisição de software
Não use para escaneamento de vulnerabilidades em tempo de execução de sistemas ativos; use ferramentas de escaneamento de contêineres (Trivy, Grype CLI) ou scanners de vulnerabilidade baseados em host (Nessus, Qualys) em vez disso.
Pré-requisitos
- Arquivo SBOM no formato CycloneDX JSON (v1.4+) ou SPDX JSON (v2.3+)
- Python 3.9+ com bibliotecas requests, networkx e packaging instaladas
- Chave de API NVD (gratuita, em https://nvd.nist.gov/developers/request-an-api-key) para limites de taxa mais altos
- Acesso à rede à API NVD (https://services.nvd.nist.gov/rest/json/cves/2.0)
- Opcionalmente: syft para geração de SBOM, grype para validação cruzada
Fluxo de Trabalho
Etapa 1: Gerar SBOM (se não fornecido)
Use syft para criar um SBOM a partir de uma imagem de contêiner ou diretório de projeto:
# Generate CycloneDX JSON from a container image
syft alpine:latest -o cyclonedx-json > sbom-cyclonedx.json
# Generate SPDX JSON from a project directory
syft dir:/path/to/project -o spdx-json > sbom-spdx.json
# Generate from a running container
syft docker:my-app-container -o cyclonedx-json > sbom.json
Syft suporta mais de 30 ecossistemas de pacotes, incluindo npm, PyPI, Maven, módulos Go, apt, apk e RPM. O SBOM gerado inclui nomes de pacotes, versões, licenças, identificadores CPE e referências PURL (Package URL).
Etapa 2: Analisar SBOM e Extrair Componentes
Analise o SBOM para extrair todos os componentes de software com seus identificadores:
Estrutura JSON CycloneDX:
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"components": [
{
"type": "library",
"name": "lodash",
"version": "4.17.20",
"purl": "pkg:npm/lodash@4.17.20",
"cpe": "cpe:2.3:a:lodash:lodash:4.17.20:*:*:*:*:*:*:*",
"licenses": [{"license": {"id": "MIT"}}]
}
],
"dependencies": [
{"ref": "pkg:npm/express@4.18.2", "dependsOn": ["pkg:npm/lodash@4.17.20"]}
]
}
Estrutura JSON SPDX:
{
"spdxVersion": "SPDX-2.3",
"packages": [
{
"name": "lodash",
"versionInfo": "4.17.20",
"externalRefs": [
{"referenceType": "purl", "referenceLocator": "pkg:npm/lodash@4.17.20"},
{"referenceType": "cpe23Type", "referenceLocator": "cpe:2.3:a:lodash:lodash:4.17.20:*:*:*:*:*:*:*"}
],
"licenseConcluded": "MIT"
}
],
"relationships": [
{"spdxElementId": "SPDXRef-express", "relatedSpdxElement": "SPDXRef-lodash",
"relationshipType": "DEPENDS_ON"}
]
}
Etapa 3: Correlacionar Componentes com o Banco de Dados CVE da NVD
Consulte a API NVD 2.0 para encontrar vulnerabilidades conhecidas para cada componente:
import requests
NVD_API = "https://services.nvd.nist.gov/rest/json/cves/2.0"
def search_cves_by_cpe(cpe_name, api_key=None):
params = {"cpeName": cpe_name, "resultsPerPage": 50}
headers = {"apiKey": api_key} if api_key else {}
resp = requests.get(NVD_API, params=params, headers=headers, timeout=30)
resp.raise_for_status()
return resp.json().get("vulnerabilities", [])
def search_cves_by_keyword(keyword, version=None, api_key=None):
params = {"keywordSearch": keyword, "resultsPerPage": 50}
headers = {"apiKey": api_key} if api_key else {}
resp = requests.get(NVD_API, params=params, headers=headers, timeout=30)
resp.raise_for_status()
return resp.json().get("vulnerabilities", [])
A API NVD suporta busca por nome CPE (mais preciso), palavra-chave, ID CVE e intervalos de datas. Limites de taxa: 5 requisições/30 segundos sem chave de API, 50 requisições/30 segundos com chave.
Etapa 4: Construir Grafo de Dependência e Identificar Riscos Transitórios
Construa um grafo direcionado de dependências para rastrear a propagação de vulnerabilidades:
import networkx as nx
def build_dependency_graph(sbom):
G = nx.DiGraph()
# Adicionar nós para cada componente
for comp in sbom["components"]:
G.add_node(comp["purl"], name=comp["name"], version=comp["version"])
# Adicionar arestas de relacionamentos de dependência
for dep in sbom.get("dependencies", []):
for child in dep.get("dependsOn", []):
…
Perguntas frequentes
O que é um SBOM?
SBOM significa 'Software Bill of Materials' (Lista de Materiais de Software). É como uma lista de ingredientes para um software, detalhando todos os componentes, bibliotecas e suas versões.
O que são vulnerabilidades de cadeia de suprimentos?
São falhas de segurança em componentes de software que foram criados por outras pessoas ou empresas. Se um componente tem uma falha, o software que o utiliza também fica em risco.
Preciso de uma chave de API?
Uma chave de API (Application Programming Interface) ajuda a ferramenta a consultar o banco de dados de vulnerabilidades mais rapidamente. Não é obrigatória, mas é recomendada para um uso mais eficiente.
Detalhes
Descrição original do autor
Parses Software Bill of Materials (SBOM) in CycloneDX and SPDX JSON formats to identify supply chain vulnerabilities by correlating components against the NVD CVE database via the NVD 2.0 API. Builds dependency graphs, calculates risk scores, identifies transitive vulnerability paths, and generates compliance reports. Activates for requests involving SBOM analysis, software composition analysis, s
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5489
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
data-throughput-accelerator
Faz seu agente acelerar a movimentação de grandes volumes de dados. Ele encontra gargalos e garante que os dados sejam transferidos de forma rápida e correta.
affaan-m/ECC
inventory-demand-planning
Ajuda seu agente a prever a demanda de produtos em lojas. Ele otimiza o estoque e planeja quando fazer promoções para vender mais.
affaan-m/ECC
market-research
Ajuda seu agente a realizar pesquisas de mercado e análises competitivas. Fornece resumos com atribuição de fontes.
affaan-m/ECC