コード例 #1
0
ファイル: tests.py プロジェクト: triplekill/systemtap-ids-poc
    def test_01_getdata(self):
        data = dbaccess.getdata()
        self.failUnless(len(data.executables.keys()) > 0)

        for sequences in data.executables.values():
            for seq in sequences:
                self.assertEquals(len(seq), config.SEQUENCE_LENGTHS)
コード例 #2
0
ファイル: tests.py プロジェクト: MagicPwn/systemtap-ids-poc
    def test_01_getdata(self):
        data = dbaccess.getdata()
        self.failUnless(len(data.executables.keys()) > 0)

        for sequences in data.executables.values():
            for seq in sequences:
                self.assertEquals(len(seq), config.SEQUENCE_LENGTHS)
コード例 #3
0
ファイル: tests.py プロジェクト: triplekill/systemtap-ids-poc
    def test_02_putdata(self):
        # fail if fake executable is present BEFORE putdata
        data = dbaccess.getdata()
        self.failIf("no such executable" in data.executables)

        # adding fake executable
        data.executables["no such executable"] = [
            ('no', 'such', 'sequence'),
        ]
        dbaccess.putdata(data)

        # fail if NOT present AFTER putdata
        data = dbaccess.getdata()
        self.failUnless("no such executable" in data.executables)

        # removing
        del data.executables["no such executable"]
        dbaccess.putdata(data)

        # fail if fake executable is present after removing it
        data = dbaccess.getdata()
        self.failIf("no such executable" in data.executables)
コード例 #4
0
ファイル: tests.py プロジェクト: MagicPwn/systemtap-ids-poc
    def test_02_putdata(self):
        # fail if fake executable is present BEFORE putdata
        data = dbaccess.getdata()
        self.failIf("no such executable" in data.executables)

        # adding fake executable 
        data.executables["no such executable"] = [ 
            ('no', 'such', 'sequence'), 
        ]
        dbaccess.putdata(data)

        # fail if NOT present AFTER putdata
        data = dbaccess.getdata()
        self.failUnless("no such executable" in data.executables)
        
        # removing
        del data.executables["no such executable"]
        dbaccess.putdata(data)

        # fail if fake executable is present after removing it
        data = dbaccess.getdata()
        self.failIf("no such executable" in data.executables)
コード例 #5
0
def main():
    data = dbaccess.getdata()
    dbaccess.check_seq_length_consistency(data.sequence_lengths)

    while True:
        input_line = sys.stdin.readline()
        if not input_line:
            break

        execname, uid, calls = reader.line2data(input_line)

        if execname not in data.executables:
            continue

        known_seqs = tuple(data.executables[execname])

        minimum = min_distance(calls, known_seqs)

        if minimum > config.ALLOWED_MISMATCHES:
            print minimum, execname, calls
コード例 #6
0
def main():
    data = dbaccess.getdata()
    dbaccess.check_seq_length_consistency(data.sequence_lengths)

    while True:
        input_line = sys.stdin.readline()
        if not input_line:
            break

        execname, uid, calls = reader.line2data(input_line)

        if execname not in data.executables:
            continue

        known_seqs = tuple(data.executables[execname])

        minimum = min_distance(calls, known_seqs)

        if minimum > config.ALLOWED_MISMATCHES:
            print minimum, execname, calls
コード例 #7
0
ファイル: dbinfo.py プロジェクト: MagicPwn/systemtap-ids-poc
#!/usr/bin/python

import os

import config
import dbaccess

print "Database size:", os.stat(config.FILENAME).st_size / 1024, "KB\n"

reader = dbaccess.getdata()

execnames = reader.executables.keys()
print len(execnames), "executables\n"

with_counts = [ (len(reader.executables[execname]), execname)
    for execname in execnames ]

print "Top 10:"

for data in sorted(with_counts, reverse=True)[:10]:
    print data[1], data[0]

print
print round((reader.ending - reader.starting) / 60), "minutes"
コード例 #8
0
#!/usr/bin/python

import os

import config
import dbaccess

print "Database size:", os.stat(config.FILENAME).st_size / 1024, "KB\n"

reader = dbaccess.getdata()

execnames = reader.executables.keys()
print len(execnames), "executables\n"

with_counts = [(len(reader.executables[execname]), execname)
               for execname in execnames]

print "Top 10:"

for data in sorted(with_counts, reverse=True)[:10]:
    print data[1], data[0]

print
print round((reader.ending - reader.starting) / 60), "minutes"
コード例 #9
0
ファイル: tests.py プロジェクト: triplekill/systemtap-ids-poc
    def test_02_min_distance_real_data(self):
        data = dbaccess.getdata()
        known_seqs = tuple(data.executables[data.executables.keys()[0]])

        self.__min_distance_best_case(known_seqs)
        self.__min_distance_worst_case(known_seqs)
コード例 #10
0
ファイル: tests.py プロジェクト: MagicPwn/systemtap-ids-poc
    def test_02_min_distance_real_data(self):
        data = dbaccess.getdata()
        known_seqs = tuple(data.executables[data.executables.keys()[0]])

        self.__min_distance_best_case(known_seqs)
        self.__min_distance_worst_case(known_seqs)