Exemple #1
0
    def run(self, url):
        # URLs not being processing
        if not self.__check_urlBlackList(url):
            try:
                objfile = ObjFile(url)
                # Zeitmessung Start
                self.task.update({"started_on": datetime.datetime.now()})

                # Download the file
                objfile = self.__process_url(url)

                # Permittet Type and file must be processed
                if objfile.file.is_permittedType() and self.isFileToProcess(
                        objfile):
                    # PreProcessing e.g. unpacking
                    objfile = self.__run_preProcessing(objfile)

                    # Run processing-plugins
                    results = self.__run_processing(objfile)

                    if results:
                        log.debug(results)
                        # Run Yara on results
                        yaraHits = self.__runYara(results)

                        if yaraHits:
                            results.update(yaraHits)

                        # Run report-plugins
                        self.__run_reporting(results, objfile)
                elif not objfile.file.is_permittedType():
                    log.warn(
                        "url %s does not provide any allowed file type (%s)" %
                        (url, objfile.file.get_type()))
            except urllib2.HTTPError as e:
                log.warn("Unable to perform HTTP request (http code=%s)" % e)
            except urllib2.URLError as e:
                log.warn("Unable to establish connection: %s" % e)
            except IOError as e:
                log.warn("Unable to establish connection: %s" % e)
            except Exception, e:
                import traceback
                log.warn(traceback.print_exc())
                log.warn("Thread(" + self.processName +
                         ") - %s - Error parsing %s" % (e, url))
            finally:
Exemple #2
0
            url_dl = urllib2.urlopen(request, timeout=30).read()
        except urllib2.HTTPError as e:
            raise e
        except urllib2.URLError as e:
            raise e
        except Exception, e:
            raise IOError("Thread(" + self.processName +
                          ") - %s - Error parsing %s" % (e, url))
        finally:
            # Removing SOCKS Tor Proxy
            socket.socket = originalSocket

        log.info("Download from URL %s" % url)

        try:
            objfile = ObjFile(url)
            objfile.set_file_from_stream(url_dl)
        except Exception, e:
            raise Exception("Thread(" + self.processName +
                            ") - %s - Error create ObjFile %s" % (e, url))

        return objfile

    def _setScore(self, score):
        self.totalScore = self.totalScore + score
        self.numberScores = self.numberScores + 1

    def _getScoring(self):
        if self.numberScores != 0:  # division by zero would be a run-time error
            average = float(self.totalScore) / self.numberScores
            average = round(average, 1)