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
  • Executar scan de forma rápida

Exemplo execução de scan rápido

def main():
    token = '<token>'

    api = EcotrustAPI(token, "https://instancia.ecotrust.io/")

    """
       Se pular_execucao_com_erro=True, não será feito raise da exceção APIError se não for possível executar o scan 
       usando um sensor específico, e portanto será retornado os ID's dos scans que foram executados com sucesso,
       então há possibilidade de ser retornado um dict vazio "{}" caso todos falhem. 
       
       Retorna um dicionário com: 
         {'NET-SCAN': 96, 'DNS-SCAN': 97, 'MALWARE': 98, 'WEBAPP-OWASP': 99}
         
        Na forma: 
          {
             'SENSOR NOME': ID DO SCAN INICIADO
          }
          
        O único valor volátil é o ID do scan, o nome do sensor é IMUTÁVEL.
    """
    scans_ids = api.fast_scan("pudim.com.br", pular_execucao_com_erro=False)

    # scans_ids[SENSOR] = ID DO SCAN INICIADO MAPEADO PELO SENSOR

    # Com o id do scan é possível verificar se foi finalizado ou se aconteceu algum erro
    req_st = requests.get(f'https://instancia.ecotrust.io/scans/api/v1/by-id/{scans_ids["NET-SCAN"]}', headers={
        'Authorization': 'Token {}'.format(token)
    })

    # Se o status estiver FINISHED, o scan finalizou com êxito e o relatório do mesmo já está disponível
    if req_st.json()['status'] == 'finished':

        # Obtém relatório CSV especificando ID do Scan que finalizou
        requests.get(f'https://instancia.ecotrust.io/scans/api/v1/report/csv/{scans_ids["NET-SCAN"]}', headers={
            'Authorization': 'Token {}'.format(token)
        })

        # Obtém relatório HTML espcificando ID do Scan que finalizou
        requests.get(f'https://instancia.ecotrust.io/scans/api/v1/report/html/{scans_ids["NET-SCAN"]}', headers={
            'Authorization': 'Token {}'.format(token)
        })

        # Obtém relatório JSON espcificando ID do Scan que finalizou
        requests.get(f'https://instancia.ecotrust.io/scans/api/v1/report/json/{scans_ids["NET-SCAN"]}', headers={
            'Authorization': 'Token {}'.format(token)
        })


if __name__ == "__main__":
    main()

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.3.0.tar.gz (6.1 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