def data_example(self):
        data = PacketsExample()
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.nic.cl', 'qtype': 1}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.uchile.cl', 'qtype': 1}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.123456.cl', 'qtype': 2}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.123.cl', 'qtype': 1}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'dcc.uchile.cl', 'qtype': 1}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.niclabs.cl', 'qtype': 2}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'a.cl', 'qtype': 3}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'b.cl', 'qtype': 3}]})

        data.set_expected(1, {10: 2, 13: 2})
        data.set_expected(2, {13: 1, 14: 1})
        data.set_expected(3, {4: 2})

        data.put_information('QtypeVSQnamelen', [1, 2, 3])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({'flags': '0', 'source': '12345678', 'queries': [
                            {'qname': 'www.nic.cl.', 'qtype': 1}]})

        for i in range(12):
            data.add_packet({'flags': '0', 'source': '87654321', 'queries': [
                            {'qname': 'www.niclabs.cl.', 'qtype': 2}]})
            data.add_packet({'flags': '0', 'source': '8765432100', 'queries': [
                            {'qname': 'www.niclabs.cl.', 'qtype': 2}]})

        for i in range(25):
            data.add_packet({'flags': '0', 'source': '12348765', 'queries': [
                            {'qname': 'www.uchile.cl.', 'qtype': 3}]})
            data.add_packet({'flags': '0', 'source': '1234876500', 'queries': [
                            {'qname': 'www.uchile.cl.', 'qtype': 3}]})
            data.add_packet({'flags': '0', 'source': '12345678', 'queries': [
                            {'qname': 'www.uchile.cl.', 'qtype': 3}]})

        data.set_expected('IPv4', {1: 30, 2: 12, 3: 50})
        data.set_expected('IPv6', {2: 12, 3: 25})

        data.put_information('DnsIpVersionVSQtype', ['IPv4', 'IPv6'])

        return data
예제 #3
0
    def data_repeat_error(self):
        data = PacketsExample()
        data.put_information('problematicQNames', {
            'www.ni_c.cl', 'www.nic_labs.cl'})

        expected_list = []
        for i in range(3):
            data.add_packet({'dest': 'encrypted(dnsip1)',
                             'source': 'encrypted(ip1)',
                             'flags': '0',
                             'queries': [
                                 {'qname': 'www.ni_c.cl', 'qtype': '1'}]})
            expected_list.append({'server': 'encrypted(dnsip1)',
                                  'sender': 'encrypted(ip1)',
                                  'query': {
                                      'qname': 'www.ni_c.cl', 'qtype': '1'}})
        data.set_expected('www.ni_c.cl', expected_list)

        expected_list = []
        for i in range(2):
            data.add_packet({'dest': 'encrypted(dnsip2)',
                             'source': 'encrypted(ip2)',
                             'flags': '0',
                             'queries': [
                                 {'qname': 'www.nic_labs.cl', 'qtype': '2'}]})
            expected_list.append({'server': 'encrypted(dnsip2)',
                                  'sender': 'encrypted(ip2)',
                                  'query': {
                                      'qname': 'www.nic_labs.cl',
                                      'qtype': '2'}})
        data.set_expected('www.nic_labs.cl', expected_list)

        return data
예제 #4
0
    def data_example(self):
        data = PacketsExample()
        for i in range(50):
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.nic.cl.', 'qtype': 1}]})
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.uchile.cl.', 'qtype': 2}]})

        for i in range(50):
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.google.com.', 'qtype': 1}]})
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.facebook.com.', 'qtype': 2}]})

        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.asdf.net.', 'qtype': 3}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.qwerty.net.', 'qtype': 3}]})

        data.set_expected(1, {'cl': 50, 'com': 50})
        data.set_expected(2, {'cl': 50, 'com': 50})
        data.set_expected(3, {'net': 2})

        data.put_information('QtypeVSTld', [1, 2, 3])

        return data
예제 #5
0
    def data_example(self):
        data = PacketsExample()
        for i in range(3):
            data.add_packet({"flags": "0", "queries": [{"qname": u"www.nic.xn--cm-5ja."}]})
            data.add_packet({"flags": "0", "queries": [{"qname": u"www.uchile.cl."}]})
            data.add_packet(
                {
                    "flags": "0",
                    "queries": [{"qname": u"data-agkn-com-1198526359." + u"us-east-1.elb.amazonaws.com.imunimacu.cl."}],
                }
            )
            data.add_packet(
                {
                    "flags": "0",
                    "queries": [
                        {"qname": u"data-agkn-com-1198526359.us-east-1" + u".elb.amazonaws.com.xn--imunimacu-t6a.cl."}
                    ],
                }
            )

        data.set_expected(unicode("xn--cm-5ja", "utf8").encode("idna"), 3)
        data.set_expected(unicode("cl", "utf8").encode("idna"), 3)

        data.put_information("IdnVSTld", [unicode("cóm", "utf8").encode("idna"), unicode("cl", "utf8").encode("idna")])

        return data
예제 #6
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({"flags": "8000", "queries": [{"qname": "www.nic.cl"}]})
        data.set_expected("www.nic.cl", 5)

        for i in range(4):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.niclabs.cl"}]})
        data.set_expected("www.niclabs.cl", 4)

        for i in range(3):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.uchile.cl"}]})
        data.set_expected("www.uchile.cl", 3)

        for i in range(3):
            data.add_packet({"flags": "8000", "queries": [{"qname": "www.jerry.cl"}]})
        data.set_expected("www.jerry.cl", 3)

        for i in range(2):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.pinky.cl"}]})
        data.set_expected("www.pinky.cl", 2)

        data.put_information(
            "QNames", {"www.nic.cl", "www.niclabs.cl", "www.uchile.cl", "www.jerry.cl", "www.pinky.cl"}
        )
        return data
예제 #7
0
    def dataExample(self):
        data = PacketsExample()
        data.add_packet({'flags': '0', 'queries': []})

        data.set_expected('', 1)

        data.put_information('QNames', {''})
        return data
예제 #8
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'flags': '0', 'queries': [
                {'qname': 'www.nic.cl'}]})

        data.set_expected('512-1023', 5)

        data.put_information("EdnsBufsiz", ['512-1023'])

        return data
예제 #9
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.nic.cl'}]})

        data.set_expected(0, 5)

        data.put_information("Rcode", [0])

        return data
예제 #10
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'flags': '0', 'queries': [
                {'qname': 'www.nic.cl'}]})

        data.set_expected("set", 5)

        data.put_information('rdBit', ["set"])

        return data
예제 #11
0
    def data_without_alonePackets(self):
        data = PacketsExample({'queries': 2, 'answers': 2})

        data.add_packet({'flags': '8000', 'id': '1111'})
        data.add_packet({'flags': '0', 'id': '12cb'})
        data.add_packet({'flags': '8000', 'id': '12cb'})
        data.add_packet({'flags': '0', 'id': '1111'})

        data.set_expected('AloneAnswers', [])
        data.set_expected('AloneQueries', [])

        return data
예제 #12
0
    def data_without_answers(self):
        queries = [{'flags': '0', 'id': 'a6c7'}, {'flags': '0', 'id': '5433'},
                   {'flags': '0', 'id': 'a276'}, {'flags': '0', 'id': '4321'}]
        data = PacketsExample({'queries': len(queries), 'answers': 0})

        for query in queries:
            data.add_packet(query)

        data.set_expected('AloneAnswers', [])
        data.set_expected('AloneQueries', queries)

        return data
예제 #13
0
    def data_without_queries(self):
        answers = [{'flags': '8000', 'id': 'a6c7'}, {
            'flags': '8000', 'id': '5433'}, {'flags': '8000', 'id': 'a276'}]
        data = PacketsExample({'queries': 0, 'answers': len(answers)})

        for answer in answers:
            data.add_packet(answer)

        data.set_expected('AloneAnswers', answers)
        data.set_expected('AloneQueries', [])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({"flags": "8000", "source": "12345678", "queries": [{"qname": "www.nic.cl."}]})

        for i in range(25):
            data.add_packet({"flags": "8000", "source": "1234567890", "queries": [{"qname": "www.uchile.cl."}]})

        data.set_expected("udp", {"IPv4": 30, "IPv6": 25})

        data.put_information("TrafficVolumeResponses", ["udp"])

        return data
예제 #15
0
    def data_example(self):
        data = PacketsExample({'queries': 2, 'answers': 2})
        answer_without_query = {'flags': '8000', 'id': '1111'}
        query_without_answer = {'flags': '0', 'id': '3333'}

        data.add_packet(answer_without_query)  # Answer without query
        data.add_packet({'flags': '0', 'id': '12cb'})
        data.add_packet({'flags': '8000', 'id': '12cb'})
        data.add_packet(query_without_answer)  # Query without answer

        data.set_expected('AloneAnswers', [answer_without_query])
        data.set_expected('AloneQueries', [query_without_answer])

        return data
예제 #16
0
    def data_different_case(self):
        data = PacketsExample()
        data.put_information("problematicQName", "www.ni_c.cl")

        expected_list = []

        data.add_packet(
            {
                "dest": "encrypted(dnsip1)",
                "source": "encrypted(ip1)",
                "flags": "0",
                "queries": [{"qname": "www.ni_c.cl", "qtype": "1"}],
            }
        )
        expected_list.append(
            {"server": "encrypted(dnsip1)", "sender": "encrypted(ip1)", "query": {"qname": "www.ni_c.cl", "qtype": "1"}}
        )

        data.add_packet(
            {
                "dest": "encrypted(dnsip1)",
                "source": "encrypted(ip1)",
                "flags": "0",
                "queries": [{"qname": "WWW.NI_C.CL", "qtype": "1"}],
            }
        )
        expected_list.append(
            {"server": "encrypted(dnsip1)", "sender": "encrypted(ip1)", "query": {"qname": "WWW.NI_C.CL", "qtype": "1"}}
        )

        data.set_expected("www.ni_c.cl", expected_list)

        data.add_packet(
            {
                "dest": "encrypted(dnsip1)",
                "source": "encrypted(ip1)",
                "flags": "0",
                "queries": [{"qname": "wwww.ni_c.cl", "qtype": "1"}],
            }
        )
        data.add_packet(
            {
                "dest": "encrypted(dnsip1)",
                "source": "encrypted(ip1)",
                "flags": "0",
                "queries": [{"qname": "WWW:NI_C.CL", "qtype": "1"}],
            }
        )

        return data
예제 #17
0
    def data_only_answers(self):

        data = PacketsExample()
        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.nic.cl'}]})
        data.set_expected('www.nic.cl', 5)

        for i in range(3):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.jerry.cl'}]})
        data.set_expected('www.jerry.cl', 3)

        return data
예제 #18
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.nic.cl'}]})
        data.set_expected('www.nic.cl', 5)

        for i in range(3):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.jerry.cl'}]})
        data.set_expected('www.jerry.cl', 3)

        data.put_information('QNames', {'www.nic.cl', 'www.jerry.cl'})
        return data
예제 #19
0
    def data_different_case(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({"flags": "8000", "queries": [{"qname": "www.nic.cl"}]})
        for i in range(5):
            data.add_packet({"flags": "8000", "queries": [{"qname": "WWW.NIC.CL"}]})
        data.set_expected("www.nic.cl", 10)

        for i in range(5):
            data.add_packet({"flags": "8000", "queries": [{"qname": "WWW:NIC.CL"}]})
        for i in range(5):
            data.add_packet({"flags": "8000", "queries": [{"qname": "wwww.nic.cl"}]})
        data.put_information("criticalQName", "www.nic.cl")
        return data
예제 #20
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'dest': 'encrypted(dnsip1)',
                             'source': 'encrypted(ip1)',
                             'flags': '0',
                             'queries': [
                                 {'qname': 'www.ni_c.cl', 'qtype': '1'}]})

        data.set_expected("encrypted(ip1)", 5)

        data.put_information("src", ["encrypted(ip1)"])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.nic.cl.", "qtype": 1}]})
            data.add_packet({"flags": "0", "queries": [{"qname": "www.nic.cl.", "qtype": 2}]})

        for i in range(25):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.uchile.cl.", "qtype": 3}]})

        data.set_expected(1, {"www.nic.cl.": 30})
        data.set_expected(2, {"www.nic.cl.": 30})
        data.set_expected(3, {"www.uchile.cl.": 25})

        data.put_information("ChaosTypesAndNames", [1, 2, 3])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({'flags': '0', 'source': '12345678',
                             'queries': [{'qname': 'www.nic.cl.'}]})

        for i in range(25):
            data.add_packet({'flags': '0',
                             'source': '1234567890',
                             'queries': [{'qname': 'www.uchile.cl.'}]})

        data.set_expected('udp', {'IPv4': 30, 'IPv6': 25})

        data.put_information('TrafficVolumeQueries', ['udp'])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({'flags': '8000',
                             'queries': [{'qname': 'www.nic.cl.'}]})
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.niclabs.cl.'}]})

        for i in range(25):
            data.add_packet({'flags': '8000', 'queries': [
                            {'qname': 'www.uchile.cl.'}]})

        data.set_expected(0, {15: 55})

        data.put_information('RcodeVSReplylen', [0])

        return data
예제 #24
0
    def data_example(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet(
                {
                    "dest": "encrypted(dnsip1)",
                    "source": "encrypted(ip1)",
                    "flags": "0",
                    "queries": [{"qname": "www.ni_c.cl", "qtype": "1"}],
                }
            )

        data.set_expected("1", 5)

        data.put_information("Qtype", ["1"])

        return data
예제 #25
0
    def data_different_case(self):
        data = PacketsExample()

        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'www.nic.cl'}]})
        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'WWW.NIC.CL'}]})
        data.set_expected('www.nic.cl', 10)

        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'WWW:NIC.CL'}]})
        for i in range(5):
            data.add_packet({'flags': '8000', 'queries': [
                {'qname': 'wwww.nic.cl'}]})
        data.put_information('criticalQName', 'www.nic.cl')
        return data
예제 #26
0
    def data_repeat_error(self):
        data = PacketsExample()
        data.put_information("problematicQNames", {"www.ni_c.cl", "www.nic_labs.cl"})

        expected_list = []
        for i in range(3):
            data.add_packet(
                {
                    "dest": "encrypted(dnsip1)",
                    "source": "encrypted(ip1)",
                    "flags": "0",
                    "queries": [{"qname": "www.ni_c.cl", "qtype": "1"}],
                }
            )
            expected_list.append(
                {
                    "server": "encrypted(dnsip1)",
                    "sender": "encrypted(ip1)",
                    "query": {"qname": "www.ni_c.cl", "qtype": "1"},
                }
            )
        data.set_expected("www.ni_c.cl", expected_list)

        expected_list = []
        for i in range(2):
            data.add_packet(
                {
                    "dest": "encrypted(dnsip2)",
                    "source": "encrypted(ip2)",
                    "flags": "0",
                    "queries": [{"qname": "www.nic_labs.cl", "qtype": "2"}],
                }
            )
            expected_list.append(
                {
                    "server": "encrypted(dnsip2)",
                    "sender": "encrypted(ip2)",
                    "query": {"qname": "www.nic_labs.cl", "qtype": "2"},
                }
            )
        data.set_expected("www.nic_labs.cl", expected_list)

        return data
예제 #27
0
    def data_different_case(self):
        data = PacketsExample()
        data.put_information('problematicQName', 'www.ni_c.cl')

        expected_list = []

        data.add_packet({'dest': 'encrypted(dnsip1)',
                         'source': 'encrypted(ip1)',
                         'flags': '0',
                         'queries': [
                             {'qname': 'www.ni_c.cl', 'qtype': '1'}]})
        expected_list.append({'server': 'encrypted(dnsip1)',
                              'sender': 'encrypted(ip1)',
                              'query': {
                                  'qname': 'www.ni_c.cl', 'qtype': '1'}})

        data.add_packet({'dest': 'encrypted(dnsip1)',
                         'source': 'encrypted(ip1)',
                         'flags': '0',
                         'queries': [
                             {'qname': 'WWW.NI_C.CL', 'qtype': '1'}]})
        expected_list.append({'server': 'encrypted(dnsip1)',
                              'sender': 'encrypted(ip1)',
                              'query': {
                                  'qname': 'WWW.NI_C.CL', 'qtype': '1'}})

        data.set_expected('www.ni_c.cl', expected_list)

        data.add_packet({'dest': 'encrypted(dnsip1)',
                         'source': 'encrypted(ip1)',
                         'flags': '0',
                         'queries': [
                             {'qname': 'wwww.ni_c.cl', 'qtype': '1'}]})
        data.add_packet({'dest': 'encrypted(dnsip1)',
                         'source': 'encrypted(ip1)',
                         'flags': '0',
                         'queries': [
                             {'qname': 'WWW:NI_C.CL', 'qtype': '1'}]})

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(50):
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.nic.cl.', 'qtype': 1}]})
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.uchile.cl.', 'qtype': 2}]})

        for i in range(50):
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.google.com.', 'qtype': 1}]})
            data.add_packet({'flags': '0', 'queries': [
                            {'qname': 'www.facebook.com.', 'qtype': 2}]})

        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.asdf.net.', 'qtype': 3}]})
        data.add_packet({'flags': '0', 'queries': [
                        {'qname': 'www.qwerty.net.', 'qtype': 3}]})

        data.set_expected('udp', {15: 202})

        data.put_information('TrafficSizesQueries', ['udp'])

        return data
    def data_example(self):
        data = PacketsExample()
        for i in range(30):
            data.add_packet({"flags": "0", "queries": [{"qname": "localhost.", "qtype": 1}]})
            data.add_packet({"flags": "0", "queries": [{"qname": "localhost.", "qtype": 2}]})
            data.add_packet({"flags": "0", "queries": [{"qname": "x.root-servers.net.", "qtype": 2}]})

        for i in range(25):
            data.add_packet({"flags": "0", "queries": [{"qname": "www.uchile.cl.", "qtype": 3}]})
            data.add_packet({"flags": "0", "queries": [{"qname": "asdf.root-servers.net.", "qtype": 3}]})

        data.set_expected("localhost", {1: 30, 2: 30})
        data.set_expected("root-servers.net", {2: 30, 3: 25})
        data.set_expected("else", {3: 25})

        data.put_information("CertainQnamesVSQtype", ["localhost", "root-servers.net", "else"])

        return data
예제 #30
0
    def data_only_queries(self):

        data = PacketsExample()
        for i in range(4):
            data.add_packet({'flags': '0', 'queries': [
                {'qname': 'www.niclabs.cl'}]})
        data.set_expected('www.niclabs.cl', 4)

        for i in range(3):
            data.add_packet({'flags': '0', 'queries': [
                {'qname': 'www.uchile.cl'}]})
        data.set_expected('www.uchile.cl', 3)

        for i in range(2):
            data.add_packet({'flags': '0', 'queries': [
                {'qname': 'www.pinky.cl'}]})
        data.set_expected('www.pinky.cl', 2)

        return data