Exemplo n.º 1
0
 def get_entry_info(self, entry):
     data = {}
     attrib = entry.attrib
     data[CveKey.CveId] = attrib.get(CVE_ID)
     data[CveKey.CveName] = attrib.get(CVE_NAME)
     data[CveKey.CveSev] = attrib.get(CVE_SEVERITY)
     data[CveKey.CvePublishedDate] = (r.epoch_time(
         timestamp_verifier(date_parser(attrib.get(CVE_PUBLISHED_DATE)))))
     data[CveKey.CveModifiedDate] = (r.epoch_time(
         timestamp_verifier(date_parser(attrib.get(CVE_MODIFIED_DATE)))))
     data[CveKey.CvssScore] = attrib.get(CVSS_SCORE)
     data[CveKey.CvssBaseScore] = attrib.get(CVSS_BASE_SCORE)
     data[CveKey.CvssImpactSubScore] = attrib.get(CVSS_IMPACT_SUBSCORE)
     data[CveKey.CvssExploitSubScore] = attrib.get(CVSS_EXPLOIT_SUBSCORE)
     data[CveKey.CvssVector] = self._parse_vectors(attrib.get(CVSS_VECTOR))
     data[CveKey.CvssVersion] = attrib.get(CVSS_VERSION)
     #if data[CveKey.CveId]:
     #    print '\nFOOBAR\n'
     #    print entry.tag
     #    print type(entry.tag)
     #    print data
     return (data)
Exemplo n.º 2
0
 def get_entry_info(self, entry):
     data = {}
     attrib = entry.attrib
     data[CveKey.CveId] = attrib.get(CVE_ID)
     data[CveKey.CveName] = attrib.get(CVE_NAME)
     data[CveKey.CveSev] = attrib.get(CVE_SEVERITY)
     data[CveKey.CvePublishedDate] = (
         r.epoch_time(
             timestamp_verifier(
                 date_parser(
                     attrib.get(CVE_PUBLISHED_DATE)
                 )
             )
         )
     )
     data[CveKey.CveModifiedDate] = (
         r.epoch_time(
             timestamp_verifier(
                 date_parser(
                     attrib.get(CVE_MODIFIED_DATE)
                 )
             )
         )
     )
     data[CveKey.CvssScore] = attrib.get(CVSS_SCORE)
     data[CveKey.CvssBaseScore] = attrib.get(CVSS_BASE_SCORE)
     data[CveKey.CvssImpactSubScore] = attrib.get(CVSS_IMPACT_SUBSCORE)
     data[CveKey.CvssExploitSubScore] = attrib.get(CVSS_EXPLOIT_SUBSCORE)
     data[CveKey.CvssVector] = self._parse_vectors(attrib.get(CVSS_VECTOR))
     data[CveKey.CvssVersion] = attrib.get(CVSS_VERSION)
     #if data[CveKey.CveId]:
     #    print '\nFOOBAR\n'
     #    print entry.tag
     #    print type(entry.tag)
     #    print data
     return(data)
Exemplo n.º 3
0
def store_package_info_in_db(
        username, customer_name, uri, method,
        size, md5, operating_system,
        uuid, name, severity, arch, major_version,
        minor_version, release_date=0.0,
        vendor_name=None, description=None,
        cli_options=None, support_url=None,
        kb=None, conn=None):

    PKG_FILE = TMP_DIR + uuid + '/' + name
    URL_PATH = 'https://localhost/packages/tmp/' + uuid + '/'
    url = URL_PATH + name

    if os.path.exists(PKG_FILE):
        if (isinstance(release_date, str) or
            isinstance(release_date, unicode)):

            orig_release_date = release_date
            if (len(release_date.split('-')) == 3 or len(release_date.split('/')) == 3):
                release_date = (
                    r
                    .epoch_time(date_parser(release_date))
                )

            else:
                release_date = (
                    r
                    .epoch_time(
                        timestamp_verifier(release_date)
                    )
                )

        data_to_store = {
            CustomAppsKey.Name: name,
            CustomAppsPerAgentKey.Dependencies: [],
            CustomAppsKey.RvSeverity: severity,
            CustomAppsKey.VendorSeverity: severity,
            CustomAppsKey.ReleaseDate: release_date,
            CustomAppsKey.VendorName: vendor_name,
            CustomAppsKey.Description: description,
            CustomAppsKey.MajorVersion: major_version,
            CustomAppsKey.MinorVersion: minor_version,
            CustomAppsKey.Version: major_version + '.' + minor_version,
            CustomAppsKey.OsCode: operating_system,
            CustomAppsKey.Kb: kb,
            CustomAppsKey.Hidden: 'no',
            CustomAppsKey.CliOptions: cli_options,
            CustomAppsKey.Arch: arch,
            CustomAppsKey.RebootRequired: 'possible',
            CustomAppsKey.SupportUrl: support_url,
            CustomAppsKey.Customers: [customer_name],
            CustomAppsPerAgentKey.Update: PackageCodes.ThisIsNotAnUpdate,
            CustomAppsKey.FilesDownloadStatus: PackageCodes.FileCompletedDownload,
            CustomAppsKey.AppId: uuid
        }
        file_data = (
            [
                {
                    FilesKey.FileUri: url,
                    FilesKey.FileSize: int(size),
                    FilesKey.FileHash: md5,
                    FilesKey.FileName: name
                }
            ]
        )
        try:
            updated = (
                r
                .table(CustomAppsCollection)
                .insert(data_to_store, upsert=True)
                .run(conn)
            )

            add_custom_app_to_agents(
                username, customer_name,
                uri, method, file_data,
                app_id=uuid
            )

            data_to_store['release_date'] = orig_release_date
            results = (
                GenericResults(
                    username, uri, method
                ).object_created(uuid, 'custom_app', data_to_store)
            )
            logger.info(results)

        except Exception as e:
            results = (
                GenericResults(
                    username, uri, method
                ).something_broke(uuid, 'custom_app', e)
            )
            logger.exception(e)
    else:
        results = (
            GenericResults(
                username, uri, method
            ).file_doesnt_exist(name, e)
        )
        logger.info(results)

    return(results)