コード例 #1
0
    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)
コード例 #2
0
ファイル: services_test.py プロジェクト: mmaj5524/grr
    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)
コード例 #3
0
  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)