예제 #1
0
def test_json_feed_with_config():
    with open('test_data/amazon_ip_ranges.json') as ip_ranges_json:
        ip_ranges = json.load(ip_ranges_json)

    feed_name_to_config = {
        'AMAZON': {
            'url': 'https://ip-ranges.amazonaws.com/ip-ranges.json',
            'extractor': "prefixes[?service=='AMAZON']",
            'indicator': 'ip_prefix',
            'indicator_type': FeedIndicatorType.CIDR,
            'fields': ['region', 'service']
        }
    }

    with requests_mock.Mocker() as m:
        m.get('https://ip-ranges.amazonaws.com/ip-ranges.json', json=ip_ranges)

        client = Client(url='https://ip-ranges.amazonaws.com/ip-ranges.json',
                        credentials={
                            'username': '******',
                            'password': '******'
                        },
                        feed_name_to_config=feed_name_to_config,
                        insecure=True)

        indicators, _ = fetch_indicators_command(client=client,
                                                 indicator_type='CIDR',
                                                 feedTags=['test'],
                                                 auto_detect=False)
        assert len(
            jmespath.search(expression="[].rawJSON.service",
                            data=indicators)) == 1117
예제 #2
0
def test_json_feed_no_config():
    with open('test_data/amazon_ip_ranges.json') as ip_ranges_json:
        ip_ranges = json.load(ip_ranges_json)

    with requests_mock.Mocker() as m:
        m.get('https://ip-ranges.amazonaws.com/ip-ranges.json', json=ip_ranges)

        client = Client(url='https://ip-ranges.amazonaws.com/ip-ranges.json',
                        credentials={
                            'username': '******',
                            'password': '******'
                        },
                        extractor="prefixes[?service=='AMAZON']",
                        indicator='ip_prefix',
                        fields=['region', 'service'],
                        insecure=True)

        indicators = fetch_indicators_command(client=client,
                                              indicator_type='CIDR')
        assert len(
            jmespath.search(expression="[].rawJSON.service",
                            data=indicators)) == 1117