Ejemplo n.º 1
0
def _get_access_token(api_key):
    # this should be done just once in a day
    response = requests.post(base_url + '/get-access-token', json={'api_key': api_key})
    response.raise_for_status()
    response_json = response.json()
    token = response_json.get('result', '')
    os.environ['INTEZER_TOKEN'] = token
    os.environ['INTEZER_TOKEN_DATE'] = get_now_date_only()
    return token
Ejemplo n.º 2
0
def _get_access_token(api_key):
    # this should be done just once in a day
    response = requests.post(base_url + "/get-access-token",
                             json={"api_key": api_key})
    response.raise_for_status()
    response_json = response.json()
    token = response_json.get("result", "")
    os.environ["INTEZER_TOKEN"] = token
    os.environ["INTEZER_TOKEN_DATE"] = get_now_date_only()
    return token
Ejemplo n.º 3
0
def run(analyzer_name, job_id, filepath, filename, md5,
        additional_config_params):
    logger.info("started analyzer {} job_id {}"
                "".format(analyzer_name, job_id))
    report = general.get_basic_report_template(analyzer_name)
    try:
        api_key_name = additional_config_params.get("api_key_name", "")
        if not api_key_name:
            api_key_name = "INTEZER_KEY"
        api_key = secrets.get_secret(api_key_name)
        if not api_key:
            raise AnalyzerRunException("no api key retrieved")

        intezer_token = os.environ.get("INTEZER_TOKEN", "")
        intezer_token_date = os.environ.get("INTEZER_TOKEN_DATE", "")
        today = get_now_date_only()
        if not intezer_token or intezer_token_date != today:
            intezer_token = _get_access_token(api_key)
            if not intezer_token:
                raise AnalyzerRunException("token extraction failed")

        binary = general.get_binary(job_id)
        result = _intezer_scan_file(intezer_token, md5, filename, binary,
                                    additional_config_params)

        # pprint.pprint(result)
        report["report"] = result
    except AnalyzerRunException as e:
        error_message = (
            "job_id:{} analyzer:{} md5:{} filename: {} Analyzer Error {}"
            "".format(job_id, analyzer_name, md5, filename, e))
        logger.error(error_message)
        report["errors"].append(error_message)
        report["success"] = False
    except Exception as e:
        traceback.print_exc()
        error_message = (
            "job_id:{} analyzer:{} md5:{} filename: {} Unexpected Error {}"
            "".format(job_id, analyzer_name, md5, filename, e))
        logger.exception(error_message)
        report["errors"].append(str(e))
        report["success"] = False
    else:
        report["success"] = True

    general.set_report_and_cleanup(job_id, report)

    logger.info("ended analyzer {} job_id {}" "".format(analyzer_name, job_id))

    return report