Exemple #1
0
 def create_asset(tags):
     return AssetDocument(ip_address='10.10.10.1',
                          os='Windows',
                          id=1,
                          confidentiality_requirement=Impact.LOW,
                          hostname='test-hostname',
                          tags=[tags])
Exemple #2
0
    def test_update_discovered_asset(self):
        asset = AssetDocument.get_or_create('10.0.0.1')
        self.assertEqual(asset.tags, [AssetStatus.DISCOVERED])
        self.assertEqual(1, Search().index(AssetDocument.Index.name).count())

        asset = AssetDocument(ip_address='10.0.0.1',
                              os='Windows',
                              id=1,
                              confidentiality_requirement='NOT_DEFINED',
                              integrity_requirement='NOT_DEFINED',
                              availability_requirement='NOT_DEFINED',
                              hostname='hostname_1')

        AssetDocument.create_or_update({asset.id: asset}, AssetConfigMock())
        thread_pool_executor.wait_for_all()

        self.assertEqual(1, Search().index(AssetDocument.Index.name).count())

        result = AssetDocument.search().filter(
            'term', ip_address='10.0.0.1').execute()
        uut = result.hits[0]

        self.assertEqual(uut.os, 'Windows')
        self.assertEqual(uut.ip_address, '10.0.0.1')
        self.assertEqual(uut.hostname, 'hostname_1')
        self.assertEqual(uut.tags, [])
Exemple #3
0
    def create(self, item: dict, iface: dict):
        asset = AssetDocument()
        for field in AssetDocument.get_fields_name():
            parser = getattr(self, field, None)
            try:
                if parser:
                    setattr(asset, field, parser(item, iface))
            except Exception as ex:
                LOGGER.debug(F'Unable to parse field {field} ex: {ex}')
                setattr(asset, field, 'UNKNOWN')

        asset.source = self.__config.name
        self.__parsed[asset.id] = asset
Exemple #4
0
def create_asset(ip_address='10.10.10.10',
                 asset_id=None,
                 hostname='HOSTNAME',
                 save=True) -> AssetDocument:
    if not asset_id:
        asset_id = ip_address

    asset = AssetDocument(id=asset_id,
                          ip_address=ip_address,
                          mac_address='mac_address',
                          os='Windows',
                          hostname=hostname,
                          confidentiality_requirement=Impact.LOW,
                          integrity_requirement=Impact.LOW,
                          availability_requirement=Impact.LOW)
    if save:
        asset.save()
    return asset