Biblioteca para interação com API do EcotrustET
Project description
# EcotrustAPI - Python3
Biblioteca que interage com a api do Ecotrust e normaliza alguns retornos da plataforma.
Ações possíveis pela lib
- Criar scan parametrizado e executá-lo
- Cadastrar ativo
- Obter detalhes do ativo
- Obter relatório
- Executar scans
Exemplo de uso
from ecotrust_api import EcotrustAPI
def test_criar_ativo(api_control):
"""
Cria um ativo na instância com os payloads abaixo, o padrão para cada chamada de api
é retornar um booleano err e uma mensagem que pode ser vazia ou populada com o retorno padrão da API.
Caso o ativo já exista, é retornado False e o endpoint retorna 500.
"""
success, msg = api_control.criar_ativo({
'name': 'Teste ativo criado pela API',
'value': 'testphp.com.br',
'type': 'fqdn',
'criticity': 'high',
'financeiro': 900000000,
'description': 'Ativo criado via API',
'tags': 'Ativo Externo'
})
return success, msg
def testar_criar_scan_parametrizado(api_control):
"""
Cria um scan parametrizado no Ecotrust Obs: Os ativos especificados devem estar previamente cadastrados no Ecotrust
!! Anteção, os ativos devem ser do tipo: fqdn/url/domain...; e não podem conter espaços.
Para criar e já iniciar um scan pontual, configure o campo start_scan com "now" para executar imediamente
após a criação do scan parametrizado.
"""
success, msg = api_control.criar_scan_parametrizado({
'title': 'Scan parametrizdo - API 4',
'description': 'Scan parametrizado 23 via API',
'sensor_nome': 'NET-SCAN',
'sensor_politica': 'Descoberta Portas Abertas (TCP/53,56,80,443,8080)',
'ativos': [
'teste.api.com.br',
'ecoit.com.br',
],
'start_scan': 'now',
'scan_type': 'single'
})
return success
def teste_aguardar_relatorio(api_control, scan_parametrizado_titulo):
"""
Chame o método `obter_reporte_se_disponivel` logo após a criação do scan parametrizado com o campo `start_time`
configurado como "now" ou execução de um scan já existente.
Raises:
NenhumScanRodando: Não há nenhum scan rodando para o scan parametrizado informado.
APIError: Erro ao efetuar parsing do JSON que o Ecotrust retorna.
"""
rel_ou_err = {}
while True:
success, rel_ou_err = api_control.obter_reporte_se_disponivel(scan_parametrizado_titulo)
if not success and rel_ou_err != '':
print(f"Erro ao obter relatório: {rel_ou_err}")
elif success:
print(f"Relatório obtido!")
return rel_ou_err # Relatório obtido (dict - json parseado)
elif not success and rel_ou_err == '':
print(f"Relatório não está disponível ainda.")
time.sleep(5)
if __name__ == '__main__':
instancia = "https://instancia.ecotrust.io"
api_control = EcotrustAPI("<token>", instancia)
testar_criar_scan_parametrizado(api_control)
relatorio = teste_aguardar_relatorio(api_control, 'Scan parametrizdo - API 4')
print(relatorio)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
EcotrustAPI-1.2.2.tar.gz
(5.7 kB
view hashes)