Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
  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)