コード例 #1
0
    def testYumDetectUnsupportedTransport(self):
        artifact = "YumSources"
        parser = config_file.YumPackageSourceParser()
        sources = {
            "/etc/yum.repos.d/noproblems.repo":
            """\
# comment 1
[centosdvdiso]
name=CentOS DVD ISO
baseurl=https://mirror1.centos.org/CentOS/6/os/i386/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-6

# comment2
[examplerepo]
name=Example Repository
baseurl = https://mirror3.centos.org/CentOS/6/os/i386/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/CentOS/6/os/i386/RPM-GPG-KEY
""",
            "/etc/yum.repos.d/test.repo":
            """\
[centosdvdiso]
name=CentOS DVD ISO
baseurl=file:///mnt/
https://mirror1.centos.org/CentOS/6/os/i386/
""",
            "/etc/yum.repos.d/test2.repo":
            """\
[centosdvdiso]
name=CentOS DVD ISO
baseurl=http://mirror1.centos.org/CentOS/6/os/i386/
""",
            "/etc/yum.repos.d/file-test.repo":
            """\
[centosdvdiso]
name=CentOS DVD ISO
baseurl=file:///mnt/
""",
        }

        chk_id = "CIS-PKG-SOURCE-UNSUPPORTED-TRANSPORT"
        sym = "Found: Yum sources use unsupported transport."
        found = [
            "/etc/yum.repos.d/test.repo: transport: file,https",
            "/etc/yum.repos.d/test2.repo: transport: http",
            "/etc/yum.repos.d/file-test.repo: transport: file"
        ]
        results = self.GenResults([artifact], [sources], [parser])
        self.assertCheckDetectedAnom(chk_id, results, sym, found)
コード例 #2
0
    def testPackageSourceData(self):
        test_data = br"""
    # comment 1
    [centosdvdiso]
    name=CentOS DVD ISO
    baseurl=file:///mnt
    http://mirror1.centos.org/CentOS/6/os/i386/
    baseurl =ssh://mirror2.centos.org/CentOS/6/os/i386/
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-6

    # comment2
    [examplerepo]
    name=Example Repository
    baseurl = https://mirror3.centos.org/CentOS/6/os/i386/
    enabled=1
    gpgcheck=1
    gpgkey=http://mirror.centos.org/CentOS/6/os/i386/RPM-GPG-KEY-CentOS-6

    """
        file_obj = io.BytesIO(test_data)
        pathspec = rdf_paths.PathSpec(path="/etc/yum.repos.d/test1.repo")
        stat = rdf_client_fs.StatEntry(pathspec=pathspec)
        parser = config_file.YumPackageSourceParser()
        results = list(parser.Parse(stat, file_obj, None))

        result = [
            d for d in results if isinstance(d, rdf_protodict.AttributedDict)
        ][0]

        self.assertEqual("/etc/yum.repos.d/test1.repo", result.filename)
        self.assertEqual(4, len(result.uris))

        self.assertEqual("file", result.uris[0].transport)
        self.assertEqual("", result.uris[0].host)
        self.assertEqual("/mnt", result.uris[0].path)

        self.assertEqual("http", result.uris[1].transport)
        self.assertEqual("mirror1.centos.org", result.uris[1].host)
        self.assertEqual("/CentOS/6/os/i386/", result.uris[1].path)

        self.assertEqual("ssh", result.uris[2].transport)
        self.assertEqual("mirror2.centos.org", result.uris[2].host)
        self.assertEqual("/CentOS/6/os/i386/", result.uris[2].path)

        self.assertEqual("https", result.uris[3].transport)
        self.assertEqual("mirror3.centos.org", result.uris[3].host)
        self.assertEqual("/CentOS/6/os/i386/", result.uris[3].path)
コード例 #3
0
ファイル: config_file_test.py プロジェクト: mmaj5524/grr
    def testEmptySourceData(self):
        test_data = (b"# comment 1\n"
                     b"baseurl=\n"
                     b"# Trailing whitespace on purpose\n"
                     b"baseurl=      \n"
                     b"# Trailing whitespace on purpose\n"
                     b"baseurl =            \n"
                     b"baseurl\n"
                     b"# comment 2\n")

        file_obj = io.BytesIO(test_data)
        pathspec = rdf_paths.PathSpec(path="/etc/yum.repos.d/emptytest.repo")
        parser = config_file.YumPackageSourceParser()
        results = list(parser.ParseFile(None, pathspec, file_obj))

        result = [
            d for d in results if isinstance(d, rdf_protodict.AttributedDict)
        ][0]

        self.assertEqual("/etc/yum.repos.d/emptytest.repo", result.filename)
        self.assertEmpty(result.uris)
コード例 #4
0
ファイル: config_file_test.py プロジェクト: netspaces/grr
  def testEmptySourceData(self):
    test_data = ("# comment 1\n"
                 "baseurl=\n"
                 "# Trailing whitespace on purpose\n"
                 "baseurl=      \n"
                 "# Trailing whitespace on purpose\n"
                 "baseurl =            \n"
                 "baseurl\n"
                 "# comment 2\n")

    file_obj = io.StringIO(test_data)
    pathspec = rdf_paths.PathSpec(path="/etc/yum.repos.d/emptytest.repo")
    stat = rdf_client_fs.StatEntry(pathspec=pathspec)
    parser = config_file.YumPackageSourceParser()
    results = list(parser.Parse(stat, file_obj, None))

    result = [
        d for d in results if isinstance(d, rdf_protodict.AttributedDict)
    ][0]

    self.assertEqual("/etc/yum.repos.d/emptytest.repo", result.filename)
    self.assertEqual(0, len(result.uris))