throbber
( 19 ) United States
`( 12 ) Patent Application Publication ( 10 ) Pub . No .: US 2020/0097662 A1
`( 43 ) Pub . Date :
`Mar. 26 , 2020
`Hufsmith et al .
`
`US 20200097662A1
`
`IN
`
`( 54 ) COMBINED THREAT SCORE FOR
`CONTAINER IMAGES
`( 71 ) Applicant : CA , Inc. , Islandia , NY ( US )
`( 72 ) Inventors : Brian Hufsmith , Islandia , NY ( US ) ;
`William Mcallister , Islandia , NY ( US ) ;
`Mitchell Engel , Islandia , NY ( US )
`( 21 ) Appl . No .: 16 / 146,717
`Sep. 28 , 2018
`( 22 ) Filed :
`Related U.S. Application Data
`( 60 ) Provisional application No. 62 / 736,162 , filed on Sep.
`25 , 2018 .
`Publication Classification
`
`( 51 ) Int . Ci .
`GO6F 21/57
`H04L 9/06
`
`( 2006.01 )
`( 2006.01 )
`
`( 52 ) U.S. CI .
`CPC
`
`G06F 21/577 ( 2013.01 ) ; GO6F 2221/033
`( 2013.01 ) ; H04L 9/0643 ( 2013.01 )
`
`ABSTRACT
`( 57 )
`Provided is a process for determining threat scores for
`container images or distributed applications that consider the
`results of a multitude of different scanners and other factors
`such as context information which may include information
`about a given execution environment for the container
`image . Scanner results , or scanner properties , are deter
`mined for a container image or container images in a
`multi - container distributed application by various vulner
`ability scanners . The scanner properties determined by each
`vulnerability scanner are adjusted responsive to properties of
`the context and normalized to determine component threat
`scores for the container image . Then the component threat
`scores for the container image are combined to generate a
`combined threat score for the container image within the
`context of the execution environment .
`
`schema translator
`
`Axtr
`
`B xšt
`
`***
`
`C xlts
`
`controller
`
`results engine
`
`scan selecto :
`
`layer evaluator
`
`scais configurer
`
`vulnerability scanning engine
`
`12
`
`dev . comp .
`
`58
`
`cont . gs .
`
`scanner app . A
`
`scanner app . B
`
`scanner app . Z
`
`16
`
`16
`
`36
`
`36
`
`37 .
`
`apo
`COM
`
`52
`
`plugin
`
`vin .
`repository
`
`image
`18 ,
`sexsitory
`composition file
`respository
`
`app .
`
`spp .
`
`21
`
`cont .
`
`cont .
`
`cont .
`
`conta
`
`cont .
`
`container engine
`
`? ?
`
`container engine
`
`kere
`
`-32
`
`30
`
`kerne
`
`NIC
`Computing device
`
`NIC
`Mem
`coniputing device
`
`WIZ, Inc. EXHIBIT - 1078
`WIZ, Inc. v. Orca Security LTD.
`
`

`

`Patent Application Publication Mar. 26 , 2020 Sheet 1 of 10
`
`US 2020/0097662 A1
`
`schema translator
`
`B xitr
`
`* Na
`
`scan selector
`
`layer evaluator
`
`48 .
`
`scan configurer
`
`results engine
`54
`
`SO
`
`vulnerability scanning engine
`dev , comp .
`
`12
`
`20
`
`plugin
`
`58
`
`62
`
`scanner app . B
`
`16
`
`scanner app , Z
`
`164
`36
`
`app
`comp
`
`o 56
`
`repository
`
`18
`
`image
`repository
`respository
`
`app .
`
`container engine
`
`34
`
`37
`
`computing device
`26
`
`28
`
`FIG . 1A
`
`container engine
`
`OS
`
`CPU
`
`computing device
`
`

`

`Patent Application Publication
`
`Mar. 26 , 2020 Sheet 2 of 10
`
`US 2020/0097662 A1
`
`
`
`Container Score Record 101N
`
`
`
`
`
`Container Score Database
`
`102
`
`
`
`
`
`
`
`
`
`
`
`Properties 126 Version Container Score Record 101A Context
`
`History 127
`
`
`
`
`
`Score History 128
`
`Environments 129
`
`
`
`
`Config . Properties 106
`
`
`
`Properties 116 CVE Properties 111 Malware
`
`
`
`
`
`CWE Properties 121
`
`
`
`
`
`Container Scores 131
`
`100
`
`110
`
`
`
`CVE Evaluator
`
`
`
`Results Engine 54
`
`
`
`
`
`CWE Evaluator 120
`
`
`
`Container Scorer 130
`
`21
`
`Config . Evaluator
`105
`
`
`
`Malware Evaluator 115
`
`
`
`Context Evaluator 125
`
`
`
`Score Evaluator 135A
`
`
`
`Container Manager
`
`
`
`Score Evaluator 135B
`
`Dev . Comp . 58
`
`DE 60
`
`Plugin 62
`
`

`

`Patent Application Publication Mar. 26 , 2020 Sheet 3 of 10
`
`US 2020/0097662 A1
`
`obtain container image
`
`202
`
`200
`
`224
`
`filter potential vulnerabilities
`
`204
`
`layers ?
`yes
`
`select next layer
`
`206
`
`208
`
`210
`
`calculate metrics on potential vulnerabilities
`
`226
`
`228
`
`store results
`
`230
`
`cause results to be presented
`
`214
`
`designate selected scanner to scan
`selected layer in unified schema command
`
`select next scanner criteria
`
`216
`
`selected
`criteria satisfied by
`selected layer ?
`
`yes
`
`212
`
`translate unified schema command
`into scanner - specific schema command
`
`218
`
`command selected scanner to scan
`
`220
`
`receive results in scanner - specific schema
`
`222
`
`translate scanner - specific schema
`results into unified schema results
`
`

`

`Patent Application Publication Mar. 26 , 2020 Sheet 4 of 10
`
`US 2020/0097662 A1
`
`F obtain source code of a container image k
`
`352
`
`no
`
`analyze
`command ?
`
`354
`
`350
`
`command add a
`layer ?
`
`356
`
`Yes
`parse identifier of added code
`or other resource from command
`
`358
`
`query vulnerability repository with request
`for security vulnerabilities associated with
`added code or other resource
`
`360
`
`mitigated by other
`
`yes
`
`362
`
`annotate source code with an
`indication of vulnerability
`
`364
`
`yes
`
`sel . diff .
`
`366
`
`370
`
`additional
`info , req ?
`yes
`display vulnerability report
`
`368
`
`FIG . 3A
`
`

`

`Patent Application Publication
`
`Mar. 26 , 2020 Sheet 5 of 10
`
`US 2020/0097662 A1
`
`* o ***
`
`308
`
`
`
`Click here lana LERIE
`
`
`
`
`
`
`
`
`
`
`
`
`
`KUN apt - get install my softwaremmoperties - CORROR python Static analysis threat level is lowmmwm 306
`
`
`
`
`
`
`
`
`
`
`
`FIG . 38
`
`302
`
`302
`
`
`
`
`
`1998 199 200
`
`302
`
`300
`
`

`

`Patent Application Publication
`
`Mar. 26 , 2020 Sheet 6 of 10
`
`US 2020/0097662 A1
`
`302
`
`302
`
`zos / 1 . * { ******** / AM ) u " spau / UTP / 10 / 4 ) )
`
`FIG . 3C
`
`
`
`
`
`
`
`Image scan Results as of Mon Nov 27 12 16:28 EST 2017 for uhaantales COXOX than
`
`
`
`
`
`
`
`
`
`302 1 testing
`
`???
`
`30 %
`
`
`
`destolec untitled
`
`

`

`Patent Application Publication Mar. 26 , 2020 Sheet 7 of 10
`
`US 2020/0097662 A1
`
`400
`
`428
`
`Update Distributed
`Application Score
`Record
`
`402
`
`406
`
`408
`
`Obtain Container Image
`
`Determine Scanner
`Properties
`
`Create Container Score
`Record
`
`Obtain Distributed
`Application
`
`Determine Identifier ( s )
`for Container Image
`
`Create Distributed
`Application Score
`Record
`
`420
`
`421
`
`422
`
`426
`
`Yes
`
`Next
`Container ?
`
`430
`
`End
`
`FIG . 4
`
`

`

`Patent Application Publication Mar. 26 , 2020 Sheet 8 of 10
`
`US 2020/0097662 A1
`
`500
`
`Receive Request for
`Combined Threat Score
`
`502
`
`400
`
`No
`
`Score Record ?
`
`508
`
`Determine Weights for
`Scanner Properties
`
`Yes
`
`Scanner
`Property
`Weights
`
`504
`
`506
`
`512
`
`-510
`
`Determine Context
`Properties
`
`No
`
`Context
`Property
`Weights
`
`514
`
`Determine Weights for
`Context Properties
`
`516
`
`Yes
`Modify Scanner
`Property Weights based
`on Context Property
`Weights
`
`518
`
`520
`
`Generate Combined
`Threat Score
`
`Report Combined
`Threat Score
`
`FIG . 5
`
`

`

`Patent Application Publication
`
`Mar. 26 , 2020 Sheet 9 of 10
`
`US 2020/0097662 A1
`
`371
`
`
`
`Threat Score
`
`843
`
`
`
`Threat Score
`
`617
`
`
`
`Threat Score
`
`HIGH
`
`
`
`Threat Level
`
`
`
`Threat Level
`
`LOW
`
`
`
`Threat Level
`
`MEDIUM
`
`605
`
`603
`
`FIG . 6
`
`600
`
`
`
`Ubuntu Containers
`
`Ubuntu V1 5010
`
`
`
`
`
`mongo report card
`
`
`
`
`
`
`
`Last Scan Date : 01/05/18 05:00 PM
`
`Ubuntu V3 591A
`
`
`
`
`
`mongo report card
`
`Last Scan Date : 01/01/18 12:00 AM
`
`
`
`
`
`
`
`
`
`
`
`mongo report card
`
`
`
`
`
`
`
`Last Scan Date : 01/12/18 04:00 AM
`
`607
`
`+
`
`Ubuntu V2 5018
`
`

`

`Patent Application Publication
`
`Mar. 26 , 2020 Sheet 10 of 10 US 2020/0097662 A1
`
`NETWORK
`
`V / O DEVICE ( S )
`
`I / O DEVICE
`
`PROCESSOR 10109
`
`INSTRUCTIONS
`
`PROCESSOR
`
`FIG . 7
`
`

`

`US 2020/0097662 Al
`
`1
`
`Mar. 26 , 2020
`
`COMBINED THREAT SCORE FOR
`CONTAINER IMAGES
`
`CROSS - REFERENCE TO RELATED
`APPLICATIONS
`[ 0001 ] The present application claims the benefit of U.S.
`Provisional Patent Application No. 62 / 736,162 , filed on 25
`Sep. 2018 , which is incorporated by reference herein in its
`entirety .
`
`BACKGROUND
`
`1. Field
`[ 0002 ] The present disclosure relates generally to tooling
`for software development related to distributed applications
`and , more specifically , to techniques that combine metrics of
`heterogeneous vulnerability scans of container images .
`2. Description of the Related Art
`[ 0003 ] Distributed applications are computer applications
`implemented across multiple network hosts . The group of
`computers , virtual machines , or containers often each
`execute at least part of the application's code and cooperate
`to provide the functionality of the application . Examples
`include client - server architectures , in which a client com
`puter cooperates with a server to provide functionality to a
`user . Another example is an application having components
`replicated on multiple computers behind a load balancer to
`provide functionality at larger scales than a single computer .
`Some examples have different components on different
`computers that execute different aspects of the application ,
`such as a database management system , a storage area
`network , a web server , an application program interface
`server , and a content management engine .
`[ 0004 ] The different components of such applications ,
`such as those that expose functionality via a network
`address , can be characterized as services , which may be
`composed of a variety of other services , which may them
`selves be composed of other services . Examples of a service
`include an application component ( e.g. , one or more execut
`ing bodies of code ) that communicates via a network ( or
`loopback network address ) with another application com
`ponent , often by monitoring network socket of a port at a
`network address of the computer upon which the service
`executes .
`[ 0005 ]
`In many cases , the bodies of code and other
`resources by which the services are implemented can be
`challenging to secure . Often , the range of services is rela
`tively diverse and arises from diverse sets of bodies of code
`and other resources , thereby increasing the number of poten
`tial vulnerabilities . Further , such bodies of code and other
`resources can undergo relatively frequent version changes ,
`and in many cases the bodies of code and other resources ,
`are downloaded from third parties that create the bodies of
`code and other resources , such as public repositories that
`may be un - trusted or accorded less trust than code built
`in - house . Consequently , detecting and managing potential
`vulnerabilities in distributed application code and other
`resources can be particularly complex .
`[ 0006 ] Moreover , even in instances where potential vul
`nerabilities are detected , a degree to which they pose a threat
`in a given , and potentially highly complex , execution envi
`ronment of distributed application code and other resources
`
`is difficult to quantify or express in a usable manner . As a
`result , resources are often used without despite vulnerabili
`ties ( even if an administrator or developer is capable of
`performing a thorough analysis ) due to the computational
`and cognitive load associated with appropriately processing
`surfaced vulnerabilities .
`
`SUMMARY
`[ 0007 ] The following is a non - exhaustive listing of some
`asp
`of the present techniques . These and other aspects
`are described in the following disclosure .
`[ 0008 ] Some aspects include a process including : obtain
`ing , with one or more processors , a plurality of scanner
`properties pertaining to a container , the scanner properties at
`least comprising one or more Common Vulnerabilities and
`Exposures ( CVE ) scanner properties determined for the
`container by a first scanner and one or more Common
`Weakness Enumeration ( CWE ) scanner properties deter
`mined for the container be a second scanner ; determining
`weights for the plurality of scanner properties , each scanner
`property having an associated metric and value ; obtaining ,
`with one or more processors , context properties pertaining to
`an execution environment of the container ; determining ,
`with one or more processors , to which scanner properties
`each of the context properties applies within the execution
`environment and weights for the context properties ; modi
`fying , by one or more of the weights determined for one or
`more respective context properties , the weights for the
`scanner properties to which the respective context properties
`apply to determine modified weights for at least some of the
`scanner properties ; determining a combined threat score for
`the container based on the at least some of the scanner
`properties having the modified weights and the other scanner
`properties , and storing , with one or more processors , the
`combined threat score in memory .
`[ 0009 ] Some aspects include a tangible , non - transitory ,
`machine - readable medium storing instructions that when
`executed by a data processing apparatus cause the data
`processing apparatus to perform operations including the
`above - mentioned process .
`[ 0010 ] Some aspects include a system , including : one or
`more processors ; and memory storing instructions that when
`executed by the processors cause the processors to effectuate
`operations of the above - mentioned process .
`BRIEF DESCRIPTION OF THE DRAWINGS
`[ 0011 ] The above - mentioned aspects and other aspects of
`the present techniques will be better understood when the
`present application is read in view of the following figures
`in which like numbers indicate similar or identical elements :
`[ 0012 ]
`FIG . 1A is a block logical and physical architecture
`diagram of a computing environment having a scanning
`engine in accordance with some embodiments of the present
`techniques ;
`[ 0013 ] FIG . 1B is a block logical and physical architecture
`diagram of a computing environment having a results engine
`in accordance with some embodiments of the present tech
`niques ;
`[ 0014 ] FIG . 2 is a flowchart of an example of a process
`executed by the scanning engine of FIG . 1A to generate and
`apply test specifications in accordance with some embodi
`ments of the present techniques ;
`
`

`

`US 2020/0097662 A1
`
`2
`
`Mar. 26 , 2020
`
`FIG . 3A is a flowchart of an example of a process
`[ 0015 ]
`executed by a plugin of a integrated development environ
`ment to annotate code specifying container images with
`alerts relating to potential security vulnerabilities in accor
`dance with some embodiments of the present techniques ;
`[ 0016 ] FIG . 3B is an example of a user interface created
`by the process of FIG . 3A in accordance with some embodi
`ments of the present techniques ;
`[ 0017 ]
`FIG . 3C is another example of a user interface
`created by the process of FIG . 3A in accordance with some
`embodiments of the present techniques ;
`[ 0018 ]
`FIG . 4 is a flowchart of an example of a process
`executed by the scanning engine of FIG . 1A to generate
`container score records in accordance with some embodi
`ments of the present techniques ;
`[ 0019 ] FIG . 5 is a flowchart of an example of a process
`executed by the results engine of FIG . 1A or 1B to generate
`a combined threat score in accordance with some embodi
`ments of the present techniques ;
`[ 0020 ]
`FIG . 6 is an example of a user interface showing a
`combined threat score in accordance with some embodi
`ments of the present techniques ; and
`[ 0021 ] FIG . 7 is a block diagram of an example of a
`computing device with which the above - describe techniques
`may be implemented .
`[ 0022 ] While the present techniques are susceptible to
`various modifications and alternative forms , specific
`embodiments thereof are shown by way of example in the
`drawings and will herein be described in detail . The draw
`ings may not be to scale . It should be understood , however ,
`that the drawings and detailed description thereto are not
`intended to limit the present techniques to the particular
`form disclosed , but to the contrary , the intention is to cover
`all modifications , equivalents , and alternatives falling within
`the spirit and scope of the present techniques as defined by
`the appended claims .
`DETAILED DESCRIPTION OF CERTAIN
`EMBODIMENTS
`[ 0023 ] To mitigate the problems described herein , the
`inventors had to both invent solutions and , in some cases just
`as importantly , recognize problems overlooked ( or not yet
`foreseen ) by others in the field of software development
`tooling . Indeed , the inventors wish to emphasize the diffi
`culty of recognizing those problems that are nascent and will
`become much more apparent in the future should trends in
`industry continue as the inventors expect . Further , because
`multiple problems are addressed , it should be understood
`that some embodiments are problem - specific , and not all
`embodiments address every problem with traditional sys
`tems described herein or provide every benefit described
`herein . That said , improvements that solve various permu
`tations of these problems are described below .
`[ 0024 ] Several techniques are described below under dif
`ferent headings in all - caps . These techniques may be used
`together or independently , which is not to suggest that other
`descriptions are limiting .
`[ 0025 ] Selectively Applying Heterogeneous Vulnerability
`Scans to Layers of Container Images
`[ 0026 ] The above - described challenges with managing
`vulnerabilities in distributed applications are amplified when
`those applications are built with a particular type of archi
`tecture that has seen increased use in recent years . Many
`developers have migrated from instantiating services as
`
`discrete virtual machines to instantiating services as con
`tainers , for instance , DockerTM containers , Open Container
`Initiative ( OCI ) containers , or with KubernetesTM ( which is
`not to suggest that items in this list or any other herein
`describe mutually exclusive categories of items ) . Containers
`generally virtualize at the operating system level , in contrast
`to virtual machines that emulate the underlying hardware as
`well . OS - level virtualization affords a number of benefits ,
`including lower computational load , faster spin up , and
`sharing of resources across multiple containers within a
`given computing device , in some cases with multiple con
`tainers implemented on a single kernel . This should not be
`read to suggest that containers and virtual machines are
`incompatible , as some implementations may include one or
`more containers executed within a virtual machine , which
`may be one of several virtual machines on a given comput
`ing device .
`[ 0027 ] Another advantage of some container implemen
`tations is that container images are often constructed from
`multiple layers , also called intermediate images of read - only
`bodies of code and other resources ( other than a top layer )
`that can be reused across multiple container images .
`Mutable aspects of the container image , in some embodi
`ments , are isolated to a top , read - write layer , and the overall
`container image may be described as a collection of accu
`mulated differences between layers , in some cases , as speci
`fied by a Dockerfile document . As a result , container images
`are often relatively extensible , lightweight , and fast to
`deploy relative to other types of tooling for distributed
`applications serving a similar role .
`[ 0028 ] Some of the features that provide these perfor
`mance benefits , however , can make securing the distributed
`application more difficult . Various ones of the scanning
`engines available today provide different views into the
`vulnerabilities associated with a binary or a package in the
`operating system . The various scanning engines generally
`provide disparate and often conflicting information about the
`exposure surface with respect to the files and packages . This
`can get confusing and results in many false positives when
`occurring in the context of containers , and it can make it
`difficult to provide a holistic view into the exposure for a
`container , due to the layered nature of the container . Typical
`scanning techniques in this space do not provide multi
`sourced vulnerability assessments , which could leave expo
`sures undetected and unchecked . Further , a multi - source
`approach which includes both Common Vulnerabilities and
`Exposures ( CVE ) and Common Weakness Enumeration
`( CWE ) information is lacking . The terms “ common ” and
`“ weakness ” in these acronyms are not terms of degree and
`are , rather , part of the names of respective ontologies of
`documented vulnerabilities .
`[ 0029 ] Moreover , the various scanning engines available
`today do not quantify a degree to which the disparate
`potential vulnerabilities they detect pose a threat in a given ,
`and often highly complex , execution environment of dis
`tributed applications . Thus , in addition to the lack of a
`multi - sourced vulnerability assessment , there exists no
`multi - sourced vulnerability assessment that scores potential
`vulnerabilities within a context of a given execution envi
`ronment . As a result , a combined threat score for container
`images is lacking .
`[ 0030 ] None of this is to suggest that all embodiments
`must address all of these needs , as independently useful
`techniques are described , and some techniques may address
`
`

`

`US 2020/0097662 A1
`
`3
`
`Mar. 26 , 2020
`
`only a subset of these or other issues . Further , the preceding
`should not be taken to suggest that systems that suffer from
`these issues are disclaimed , and this qualification should not
`be read to suggest that any other subject matter described
`elsewhere herein is disclaimed .
`[ 0031 ] Some embodiments examine each ( e.g. , each of at
`least some of all , or each and every ) of the layers in a
`container image and determine consistency with respect to
`files and packages ( and other resources ) in each layer . Then
`based on the file / package information , some embodiments
`submit those files / packages and other resources to various
`vulnerability scanning engines ( including VeracodeTM and
`others enumerated below ) for vulnerability assessment .
`Based on results , some embodiments provide a relatively
`comprehensive report of the exposure associated with that
`container image .
`[ 0032 ] Some embodiments examine the scanner results , or
`scanner properties , determined for the container image by
`each of the various vulnerability scanning engines in view of
`a context of a given execution environment for the container
`image . The scanner properties determined by each vulner
`ability scanning engine are adjusted responsive to properties
`of the context and normalized to determine component
`threat scores for the container image . Then the component
`threat scores for the container image are combined to
`generate a combined threat score for the container image
`within the context of the execution environment . In this way ,
`the combined threat score represents an overall measure of
`the exposure associated with that container image within the
`context of the execution environment .
`[ 0033 ] By analyzing the data in each of the layers of a
`container , some embodiments extract the binaries and send
`them to the most appropriate scanning technique across
`multiple scanning engines . The binary and package infor
`mation may be assessed and sent to engines to acquire the
`CVE and CWE information for the binary . Once this is
`complete , some embodiments may apply algorithms to the
`results to generate a comprehensive view into the image to
`obtain a threat assessment , remediation recommendations
`and exposure report . Some embodiments engage multiple
`engines to obtain a vulnerability report and use the results of
`that report to provide a much more accurate threat level for
`any given package / binary in a container image relative to
`traditional approaches .
`[ 0034 ] Some embodiments determine a combined threat
`score for the container image as a whole , which in some
`cases takes into account the threat levels determined for the
`packages , binaries , and other resources within the container
`image and additional information to better represent an
`overall evaluation of risk associated with utilizing the con
`tainer . In some embodiments , this additional information , or
`context , includes properties relating to an execution envi
`ronment of the container image or other properties ( e.g. ,
`historical information ) relating to the container image that
`are not accounted for in traditional scanning techniques .
`Thus , for example , the threat levels for the packages , bina
`ries , and other resources may be adjusted based on the
`context properties to determine a combined threat score that
`accurately represents the exposure associated with using the
`container image .
`[ 0035 ] By using the multi - source scanning approach ,
`some embodiments may include information from the OS
`vendors as well as binary assessments from tools such as
`VeracodeTM . Further , some embodiments are extensible in
`
`virtue of a unified application program interface ( API ) , so
`other scanning results can be engaged as they become
`available without undertaking expensive and cumbersome
`rewrites of substantial portions of the code of some embodi
`ments .
`[ 0036 ] As container images are submitted to be scanned ,
`in some embodiments , a layer evaluator may break down the
`layers and submit detected binaries ( and other resources )
`over to other portions of the scanning engine to be evaluated .
`The scanning engine , in some embodiments , examines the
`information to determine the most appropriate ( or at least
`suitable ) scanning engine or engines to be used for the
`information submitted . The scanning engine may use one or
`more sources for the scans to run on . Each of at least some
`( or all ) of the scanners may use a shared scanner API ,
`allowing the results scanner properties to be reported
`back in
`a similar format despite the different scanning
`techniques . Once the full scan is complete , in some embodi
`ments , the information is packaged up and may be sent over
`to a result engine to be formatted and reported back .
`Additionally , the result engine may remove commonalities ,
`provide scoring information and mask out at least some
`( e.g. , all ) previously identified false positives . Further , in
`some embodiments , the result engine may analyze and
`modify one or more of the scanner properties based on
`contextual information . The information reported back may
`include one or more combined threat scores that takes into
`account the contextual information and the scanner proper
`ties .
`[ 0037 ] Algorithms in some embodiments of the scanning
`engine may to determine the best or suitable scanners among
`a diverse set of scanners , e.g. , so that packages go into
`package scanners , binaries are sent to binary scanners ( such
`as VeracodeTM ) , and so on for various resources types .
`Additionally , candidate scans may be evaluated for chance
`( or other measure ) of success . For example , binaries that
`include machine code without debug symbols , which would
`not succeed with a particular scanner that requires debug
`symbols , may be detected and , in response , sent to
`a
`different scanner . Jar files and scripts that can easily be
`scanned by multiple scanners may be submitted to any
`available suitable scanner in some embodiments , e.g. , by
`applying load balancing techniques based on a work queues
`of the various scanners .
`[ 0038 ]
`In some embodiments , these techniques may be
`implemented in a computing environment 10 ( e.g. , including
`each of the illustrated components ) shown in FIG . 1A by
`executing processes described below with reference to FIG .
`2 , 3A , 4 or 5 upon computing devices like those described
`below with reference to FIG . 7. In some mbodiments , the
`computing environment 10 may include a vulnerability
`scanning engine 12 , a plurality of computing devices 14 ,
`scanner applications 16 , a composition file repository 18 , a
`container manager 20 , and an image repository 22. These
`components may communicate with one another via a
`network 21 , such as the Internet and various other local area
`networks .
`[ 0039 ]
`In some embodiments , the computing environment
`10 may execute a plurality of different distributed applica
`tions , in some cases intermingling components of these
`distributed applications on the same computing devices and ,
`in some cases , with some of the distributed applications
`providing software tools by which other distributed appli
`cations are deployed , monitored , and adjusted . It is helpful
`
`

`

`US 2020/0097662 A1
`
`4
`
`Mar. 26 , 2020
`
`to generally discuss these applications before addressing
`specific components thereof within the computing environ
`ment 10. In some cases , such applications may be catego
`rized as workload applications and infrastructure applica
`tions . The workload applications may service tasks for
`which the computing environment is designed and provided ,
`e.g. , hosting a web - based service , providing an enterprise
`resource management application , providing a customer
`relationship management application , providing a document
`management application , providing an email service , or
`providing an industrial controls application , just to name a
`few examples . In contrast , infrastructure applications may
`exist to facilitate operation of the workload application .
`Examples include vulnerability scanning applications ,
`monitoring applications , logging applications , container
`management applications , and the like .
`[ 0040 ]
`In some embodiments , the computing devices 14
`may execute a ( workload or infrastructure ) distributed appli
`cation that is implemented through a collection of services
`that communicate with one another via the network 21 .
`Examples of such services include a web server that inter
`faces with a web browser executing on a client computing
`device via network 21 , an application controller that maps
`requests received via the web server to collections of respon
`sive functional actions , a database management service that
`reads or writes records responsive to commands from the
`application controller , and a view generator that dynamically
`composes webpages for the web server to return to the user
`computing device . Some examples have different compo
`nents on different computers that execute different aspects of
`the application , such as a database management system , a
`storage area network , a web server , an application program
`interface server , and a content management engine . Other
`examples include services that pertain to other application
`program interfaces , like services that process data reported
`by industrial equipment or Internet of things appliances .
`Often , the number of services is expected to be relatively
`large , particularly in multi - container applications imple
`menting a microservices architecture , where functionality is
`separated into relatively fine - grained services of a relatively
`high number , for instance more than 10 , more than 20 , or
`more than 100 different microservices . In some cases , there
`may be multiple instances of some of the services , for
`instance behind load balancers , to accommodate relatively
`high computing loads , and in some cases , each of those
`instances may execute within different containers on the
`computing devices as described below . These applications
`can be characterized as a service composed of a variety of
`other services , which may themselves be composed of other
`services . Services composed of other services generally
`form a service hierarchy ( e.g. , a service tree ) that terminates
`in leaf nodes composed of computing hardware each execut
`ing a given low level service . In some cases , a given node
`of this tree may be present in multiple trees for multiple root
`services .
`[ 0041 ] As multi - container applications or other distributed
`applications have grown more complex in recent years , and
`the scale of computing loads has grown , many distributed
`applications have been designed ( or redesigned ) to use
`more , and more diverse , services . Functionality that might
`have previously been implemented within a single thread on
`a single computing device ( e.g. , as different sub - routines in
`a given executable ) has been broken - up into distinct services
`that communicate via a network interface , rather than by
`
`a
`
`function calls within a given thread . Services in relatively
`granular architectures are sometimes referred to as
`“ microservice . ” These microservice architectures afford a
`number of benefits , including ease of scaling to larger
`systems by instantiating new components , making it easier
`for developers to reason about complex systems , and
`increased reuse of code across applications . It is expected
`that the industry will move towards increased us

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket