Beispiel #1
0
 def test_registry_load(self):
     registry = Registry(parser=NXGraphCheckParser())
     registry.load_checks()
     self.assertGreater(len(registry.checks), 0)
Beispiel #2
0
from checkov.terraform.checks_infra.registry import Registry
from checkov.terraform.context_parsers.registry import parser_registry
from checkov.terraform.evaluation.base_variable_evaluation import BaseVariableEvaluation
from checkov.terraform.graph_builder.graph_components.attribute_names import CustomAttributes
from checkov.terraform.graph_builder.graph_to_tf_definitions import convert_graph_vertices_to_tf_definitions
from checkov.terraform.graph_builder.local_graph import LocalGraph
from checkov.terraform.graph_manager import GraphManager

# Allow the evaluation of empty variables
from checkov.terraform.parser import Parser
from checkov.terraform.tag_providers import get_resource_tags

dpath.options.ALLOW_EMPTY_STRING_KEYS = True

CHECK_BLOCK_TYPES = frozenset(['resource', 'data', 'provider', 'module'])
graph_registry = Registry(parser=NXGraphCheckParser())

class Runner(BaseRunner):
    check_type = "terraform"

    def __init__(self, parser=Parser(), db_connector=NetworkxConnector(), external_registries=None,
                 source="Terraform", graph_class=LocalGraph, graph_manager=None):
        self.external_registries = [] if external_registries is None else external_registries
        self.graph_class = graph_class
        self.parser = parser
        self.tf_definitions = None
        self.definitions_context = None
        self.breadcrumbs = None
        self.definitions_context = {}
        self.evaluations_context: Dict[str, Dict[str, EvaluationContext]] = {}
        self.graph_manager = graph_manager if graph_manager is not None else GraphManager(source=source,
Beispiel #3
0
from checkov.arm.registry import arm_resource_registry, arm_parameter_registry
from checkov.cloudformation.checks.resource.registry import cfn_registry as cfn_registry
from checkov.common.checks.base_check_registry import BaseCheckRegistry
from checkov.kubernetes.registry import registry as k8_registry
from checkov.serverless.registry import sls_registry
from checkov.dockerfile.registry import registry as dockerfile_registry

from checkov.terraform.checks.data.registry import data_registry
from checkov.terraform.checks.module.registry import module_registry
from checkov.terraform.checks.provider.registry import provider_registry
from checkov.terraform.checks.resource.registry import resource_registry
from checkov.terraform.checks_infra.checks_parser import NXGraphCheckParser
from checkov.terraform.checks_infra.registry import Registry as GraphRegistry, BaseRegistry as BaseGraphRegistry

tf_graph_registry = GraphRegistry(parser=NXGraphCheckParser())
tf_graph_registry.load_checks()

ID_PARTS_PATTERN = re.compile(r'([^_]*)_([^_]*)_(\d+)')


def get_compare_key(c):
    res = []
    for match in ID_PARTS_PATTERN.finditer(c[0]):
        ckv, framework, number = match.groups()
        numeric_value = int(number) if number else 0
        # count number of leading zeros
        same_number_ordering = len(number) - len(number.lstrip('0'))
        res.append((framework, ckv, numeric_value, same_number_ordering))
    return res