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 details)

Uploaded Source

File details

Details for the file EcotrustAPI-1.3.0.tar.gz.

File metadata

  • Download URL: EcotrustAPI-1.3.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for EcotrustAPI-1.3.0.tar.gz
Algorithm Hash digest
SHA256 03f8d791c34a427db0d67f484642ce9295f58835acf7e60dc3ae8e10c211ac58
MD5 7290ab92220d57f5cbe47502004c460c
BLAKE2b-256 cce9ab8d5aef63949a20f9387daf3a29c5e95ebe920d354b7b835af4a31f4c65

See more details on using hashes here.

Supported by

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