def testParseXinetd(self): """Xinetd entries return accurate LinuxServiceInformation values.""" configs = parsers_test_lib.GenXinetd("telnet", "yes") configs.update(parsers_test_lib.GenXinetd("forwarder", "no")) pathspecs, files = artifact_test_lib.GenPathspecFileData(configs) parser = linux_service_parser.LinuxXinetdParser() results = list(parser.ParseFiles(None, pathspecs, files)) self.assertLen(results, 2) self.assertCountEqual(["forwarder", "telnet"], [r.name for r in results]) for rslt in results: self.assertFalse(rslt.start_on) self.assertFalse(rslt.stop_on) self.assertFalse(rslt.stop_after) if rslt.name == "telnet": self.assertFalse(rslt.start_mode) self.assertFalse(rslt.start_after) self.assertFalse(rslt.starts) else: self.assertEqual( rslt.start_mode, rdf_client.LinuxServiceInformation.StartMode.XINETD) self.assertCountEqual(["xinetd"], list(rslt.start_after)) self.assertTrue(rslt.starts)
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 testParseXinetd(self): """Xinetd entries return accurate LinuxServiceInformation values.""" configs = parsers_test_lib.GenXinetd("telnet", "yes") configs.update(parsers_test_lib.GenXinetd("forwarder", "no")) stats, files = parsers_test_lib.GenTestData(configs, itervalues(configs)) parser = linux_service_parser.LinuxXinetdParser() results = list(parser.ParseMultiple(stats, files, None)) self.assertEqual(2, len(results)) self.assertItemsEqual(["forwarder", "telnet"], [r.name for r in results]) for rslt in results: self.assertFalse(rslt.start_on) self.assertFalse(rslt.stop_on) self.assertFalse(rslt.stop_after) if rslt.name == "telnet": self.assertFalse(rslt.start_mode) self.assertFalse(rslt.start_after) self.assertFalse(rslt.starts) else: self.assertEqual("XINETD", str(rslt.start_mode)) self.assertItemsEqual(["xinetd"], list(rslt.start_after)) self.assertTrue(rslt.starts)