def RunXinetdCheck(self, chk_id, svc, disabled, sym, found, xinetd=False, should_detect=True): host_data = self.SetKnowledgeBase() cfgs = parsers_test_lib.GenXinetd(svc, disabled) pathspecs, files = artifact_test_lib.GenPathspecFileData(cfgs) data = list(self.parser(None, pathspecs, files)) # create entries on whether xinetd itself is setup to start or not if xinetd: cfgs = parsers_test_lib.GenInit( "xinetd", "the extended Internet services daemon") pathspecs, files = artifact_test_lib.GenPathspecFileData(cfgs) lsb_parser = linux_service_parser.LinuxLSBInitParser() data.extend(list(lsb_parser.ParseFiles(None, pathspecs, files))) host_data["LinuxServices"] = self.SetArtifactData(parsed=data) results = self.RunChecks(host_data) if should_detect: self.assertCheckDetectedAnom(chk_id, results, sym, found) else: self.assertCheckUndetected(chk_id, results)
def testSkipBadLSBInit(self): """Bad Init entries fail gracefully.""" empty = "" snippet = r"""# Provides: sshd""" unfinished = """ ### BEGIN INIT INFO what are you thinking? """ paths = ["/tmp/empty", "/tmp/snippet", "/tmp/unfinished"] vals = [empty, snippet, unfinished] stats, files = parsers_test_lib.GenTestData(paths, vals) parser = linux_service_parser.LinuxLSBInitParser() results = list(parser.ParseMultiple(stats, files, None)) self.assertFalse(results)
def testSkipBadLSBInit(self): """Bad Init entries fail gracefully.""" empty = "" snippet = r"""# Provides: sshd""" unfinished = """ ### BEGIN INIT INFO what are you thinking? """ data = { "/tmp/empty": empty.encode("utf-8"), "/tmp/snippet": snippet.encode("utf-8"), "/tmp/unfinished": unfinished.encode("utf-8"), } pathspecs, files = artifact_test_lib.GenPathspecFileData(data) parser = linux_service_parser.LinuxLSBInitParser() results = list(parser.ParseFiles(None, pathspecs, files)) self.assertFalse(results)
def testParseLSBInit(self): """Init entries return accurate LinuxServiceInformation values.""" configs = parsers_test_lib.GenInit("sshd", "OpenBSD Secure Shell server") stats, files = parsers_test_lib.GenTestData(configs, itervalues(configs)) parser = linux_service_parser.LinuxLSBInitParser() results = list(parser.ParseMultiple(stats, files, None)) self.assertIsInstance(results[0], rdf_client.LinuxServiceInformation) result = results[0] self.assertEqual("sshd", result.name) self.assertEqual("OpenBSD Secure Shell server", result.description) self.assertEqual("INIT", result.start_mode) self.assertCountEqual([2, 3, 4, 5], result.start_on) self.assertCountEqual([1], result.stop_on) self.assertCountEqual([ "umountfs", "umountnfs", "sendsigs", "rsyslog", "sysklogd", "syslog-ng", "dsyslog", "inetutils-syslogd" ], result.start_after) self.assertCountEqual( ["rsyslog", "sysklogd", "syslog-ng", "dsyslog", "inetutils-syslogd"], result.stop_after)