Skip to main content

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)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page