Threath Detection
Threath Detection
Threath Detection
ZOZ 2
U.S. Patent Aug. 11, 2015 Sheet 3 of 3 US 9,104,864 B2
Z09
//
US 9,104,864 B2
1. 2
THREAT DETECTION THROUGH THE preferred embodiment and the drawings. All documents men
ACCUMULATED DETECTION OF THREAT tioned herein are hereby incorporated in their entirety by
CHARACTERISTICS reference.
The threat detection facility 202 now waits for an event TABLE 7
capture 212. In this example, suppose that the object F1 is a 35 Object Genes Threats
run-time process that experiences a change. The event is
captured 212 and the content is passed on to the threat char- F1 G1, G10 T1(1,3)
acteristic detector 214. The threat characteristics analyzer F2 G31
218 than writes to the gene column of the threat table 220 for F3 G2 T1(1,3), T2(1,3)
the object F1. Referring to Table 4, the threat table for F1 40
shows that the threat characteristics analyzer 218 has inserted Referring to Table 8, a new event is captured, where the
the presence of the gene G1 from the event, where G1 is one gene G1 is detected in object F2, and a threat status indicator
of the three genes that constitute the threat T1, hence the of T1 (1.3) is entered into the column under threats for the
nomenclature T1 (1.3) in added as a threat status indicator in object F2 indicating that one of the three genes required to
the- threats column of table 4, where T1 is the threat, and (1.3) 45 identify threat T1 has been detected in the object F2.
indicates that one of the three genes has been detected toward
the identification of the threat T1 in the object F1. Note that TABLE 8
for the sake of describing this example through the following
tables, new threat table entries from new event captures will Object Genes Threats
be shown in bold.
50 F1 G1, G10 T1(1,3)
F2 G31, G1 T1(1,3)
TABLE 4 F3 G2 T1(1,3), T2(1,3)
Object Genes Threats
F1 G1 T1 (1,3)
Referring to Table 9, a new event is captured, where gene
F2 s 55 G9 is detected in object F3. G9 is not relevant to the threats
F3 listed in Table 1.
The following tables will now depict a series of threat table TABLE 9
updates resulting from a series of new events, where the threat Object Genes Threats
analyzer monitors the threats column of the threat table for "
conditions that indicate a threat is present, Such as in a threat f 3. . E.
status indicator of TH(2.2) indicating that two of two genes for F3 G2G9 E3 T2(1,3)
threat Tit has been found, or Titi (3.3) indicating that three of s 3~ 3 - a w-.
three genes for threat Titi has been found.
Referring to Table 5, a new event is captured, where the 65 Referring to Table 10, a new event is captured, where gene
gene G31 is detected in object F2. No entry is entered under G3 has detected object F1. Gene G3 is relevant to both threat
the threats column because G31 is not relevant to any of the T1 and threat T3. As a result, the threat status indicator for T1
US 9,104,864 B2
21 22
is changed from T1 (1.3) to T1 (2.3) to indicate that two of the trative example without undue complexity, but with sufficient
three genes have been detected. Additionally, a threat status detail to show how the process may proceed. In embodiments,
indicator for T3 is added to indicate that one of the two genes the number of objects monitored, and the number of threats
for the threat T3 has been detected in the object F1. considered may vary. They may be limited in Some manner or
they may be comprehensive to the extent of knowledge of the
TABLE 10 threat management facility 100. As stated, one of the advan
tages of the threat detection facility 202 may be the ability for
Object Genes Threats the threat detection facility 202 to scale to various applica
F1 G1, G10, G3 T1 (2.3), T3 (1,2) tions, and thereby provide match of the threat protection to
F2 G31, G1 T1(1,3) 10 the threat environment of the application, and thus improved
F3 G2, G9 T1(1,3), T2(1,3) performance over traditional techniques. For instance, threat
protection and performance requirements may be very differ
Referring to Table 11, a new event is captured, where gene ent between a mobile phone application and a desktop com
G3 is now detected in object F2. Similar to the last event puter application, and with the threat detection 202 as
captured in object F1, the detection of gene G3 is added to the 15 described herein may be optionally scaled to match desired
threat table for object F2, where the threat status indicator for performance and threat detection criteria. In embodiments,
T1 is changed from T1 (1.3) to T1 (2.3) to indicate that two of the threat tables used by the threat detection facility 202 may
the three genes have been detected, and additionally, a status be specific to the environment threat landscape, such as for
indicator for T3 is added to indicate that one of the two genes mobile, desktop, server, email server, gateway, centralized
for the threat T3 has been detected in the object F1. network nodes, and the like. In embodiments, the threat
detection facility 202 may utilize threat tables in a hierarchi
TABLE 11 cal manner for improved detection, such as in a hierarchy of
desktop, gateway, enterprise, and the like levels. In embodi
Object Genes Threats ments, the threat detection facility 202 may provide for multi
25 object protection by having the threat analyzer 222 compare
F1 G1, G10, G3 T1(2,3), T3 (1,2) across threat tables. For instance, the multi-object detection
F2 G31, G1, G3 T1 (2.3), T3 (1,2)
F3 G2, G9 T1(1,3), T2(1,3) may require that several objects be infected together in order
to detect a threat. In embodiments, a multi-object detection
Referring to Table 12, a new event is captured, where gene may be detected upon the full or partial detection of threats
30 within each of the multiple objects. For instance, the threat
G6 is detected in object F3. Gene G6 is relevant to threat T2, analyzer may be provided with an algorithm for determining
and so the status indicator for threat T2 is incremented to
indicate T202.3), showing that two of the three genes required the likelihood of a multi-object threat based on the extent to
to identify the threat T2 have been detected in object F3. which threats are completely detected. For example, a com
plete detection in one object, and partial detection in two
TABLE 12
35 other objects. In embodiments, the threat detection facility
may support the detection of threats based on not-gene’
Object Genes Threats detection, where the detection of a plurality of genes in com
bination with a non-detection of a plurality of genes results in
F1 G1, G10, G3 T1(2,3), T3 (1,2) a detection of a threat. For instance, the detection of threat T5
F2 G31, G1, G3 T1(2,3), T3 (1,2)
F3 G2, G9, G6 T1(1,3), T2(2.3)
40 determined with the detection of genes G4, G10, and G42 in
combination with the absence of the detection of gene G14.
Referring to FIG. 3, an embodiment flow diagram for the
Referring to Table 13, a new event is captured, where gene current disclosure is provided. In a first step 320, the process
G5 is detected in object F1. Gene G5 is relevant to threat T3, begins as a method of dynamic threat detection, where the
and represents the second of the two required genes to iden 45 process may be dynamic due to the ability of the threat detec
tify threat T3 as being detected in object F1. The threat ana tion facility 202 providing threat protection over time as
lyzer 222, which as been monitoring the threat tables, detects threat characteristics are detected and accumulated, to scale
the threat, and updates the threat status 228 to indicate that the the use of threat tables 220 for various computing platforms,
threat T3 has been detected in object F1. In embodiments, the applications, and threat environments, and the like. In a sec
threat detection facility may act on this information in a 50 ond step, providing a first database (e.g. the inverted threat
plurality of ways, such as alerting the user of the computer index 226) that correlates a plurality of threat characteristics
device, alerting administration 134, alerting security manage to a threat, wherein a presence of the plurality of the threat
ment 122, taking remedial actions 128, and the like. characteristics confirms a presence of the threat. The inverted
threat index 226 may be stored in a database, a listing, a table,
TABLE 13 55 and the like, where the threat analyzer 222 uses the content of
Object Genes Threats the inverted threat index 226 to update the threat tables 220 as
threat characteristics (e.g. genes) are detected and included
F1 G1, G10, G3, G5 T1 (2.3), T3 (2.2 into the threat tables from the threat characteristics analyzer.
F2 G31, G1, G3 T1(2,3), T3 (1,2) In a third step 308, detecting a change event in a computer
F3 G2, G9, G6 T1(1,3), T2(2,3) 60 run-time process, wherein the detecting is provided by the
event capture 212 in the computing device 204, and the run
The illustrative example presented in association with time process is run on the computer device 204, Such as where
tables 1-13 are meant to show how an embodiment of the the run-time process is a computer object run by the operating
threat detection facility 202 detects a threat through the accu system 208. In a forth step 310, testing the change event for a
mulation of threat characteristics detected in events in pro 65 presence of one or more of the plurality of characteristics
cesses run on a computing device 204. In this illustrative upon detection of the change event, wherein the threat char
example, events have been included to provide a fully illus acteristics detector 214 is extracting threat characteristics
US 9,104,864 B2
23 24
from the change event for possible insertion into threat tables The methods and systems described herein may be
220. In a fifth step 312, storing a detection of one of the deployed in part or in whole through a machine that executes
plurality of characteristics in a second database that accumu computer software on a server, client, firewall, gateway, hub,
lates detected characteristics for the computer run-time pro router, or other Such computer and/or networking hardware.
cess, where the second database is at least one threat table The Software program may be associated with a server that
220. In embodiments, the threat analyzer 222 may now be may include a file server, print server, domain server, internet
utilizing two databases for the detection of a threat, where one server, intranet server and other variants such as secondary
database is the inverted threat index 226 and the second server, host server, distributed server and the like. The server
database is the at least one threat table 220 being updated by may include one or more of memories, processors, computer
the threat characteristics analyzer 218 as threat characteristics
10 readable media, Storage media, ports (physical and virtual),
are detected in events. In a sixth step 314, identifying the communication devices, and interfaces capable of accessing
threat when each one of the plurality of characteristics other servers, clients, machines, and devices through a wired
appears in the second database. The threat analyzer 222, or a wireless medium, and the like. The methods, programs or
codes as described herein and elsewhere may be executed by
monitoring the at least one threat table 220, detects that a 15 the server. In addition, other devices required for execution of
threat is present when the at least one threat table 220 is methods as described in this application may be considered as
updated to show a completed detected threat. For instance, a part of the infrastructure associated with the server.
where all of the genes required for a threat to be present have The server may provide an interface to other devices
been detected for a given computer object. The threat ana including, without limitation, clients, other servers, printers,
lyzer may then update the threat status 228, and potentially database servers, print servers, file servers, communication
other actions upon detection of a threat, Such as described servers, distributed servers and the like. Additionally, this
herein. coupling and/or connection may facilitate remote execution
The methods and systems described herein may be of program across the network. The networking of some orall
deployed in part or in whole through a machine that executes of these devices may facilitate parallel processing of a pro
computer Software, program codes, and/or instructions on a 25 gram or method at one or more location without deviating
processor. The present invention may be implemented as a from the scope of the invention. In addition, any of the devices
method on the machine, as a system or apparatus as part of or attached to the server through an interface may include at
in relation to the machine, or as a computer program product least one storage medium capable of storing methods, pro
embodied in a computer readable medium executing on one grams, code and/or instructions. A central repository may
or more of the machines. The processor may be part of a 30 provide program instructions to be executed on different
server, client, network infrastructure, mobile computing plat devices. In this implementation, the remote repository may
form, stationary computing platform, or other computing act as a storage medium for program code, instructions, and
platform. A processor may be any kind of computational or programs.
processing device capable of executing program instructions, The software program may be associated with a client that
codes, binary instructions and the like. The processor may be 35 may include a file client, print client, domain client, internet
or include a signal processor, digital processor, embedded client, intranet client and other variants such as secondary
processor, microprocessor or any variant Such as a co-proces client, host client, distributed client and the like. The client
Sor (math co-processor, graphic co-processor, communica may include one or more of memories, processors, computer
tion co-processor and the like) and the like that may directly readable media, Storage media, ports (physical and virtual),
or indirectly facilitate execution of program code or program 40 communication devices, and interfaces capable of accessing
instructions stored thereon. In addition, the processor may other clients, servers, machines, and devices through a wired
enable execution of multiple programs, threads, and codes. or a wireless medium, and the like. The methods, programs or
The threads may be executed simultaneously to enhance the codes as described herein and elsewhere may be executed by
performance of the processor and to facilitate simultaneous the client. In addition, other devices required for execution of
operations of the application. By way of implementation, 45 methods as described in this application may be considered as
methods, program codes, program instructions and the like a part of the infrastructure associated with the client.
described herein may be implemented in one or more thread. The client may provide an interface to other devices includ
The thread may spawn other threads that may have assigned ing, without limitation, servers, other clients, printers, data
priorities associated with them; the processor may execute base servers, print servers, file servers, communication serv
these threads based on priority or any other order based on 50 ers, distributed servers and the like. Additionally, this
instructions provided in the program code. The processor coupling and/or connection may facilitate remote execution
may include memory that stores methods, codes, instructions of program across the network. The networking of some orall
and programs as described herein and elsewhere. The proces of these devices may facilitate parallel processing of a pro
Sor may access a storage medium through an interface that gram or method at one or more location without deviating
may store methods, codes, and instructions as described 55 from the scope of the invention. In addition, any of the devices
herein and elsewhere. The storage medium associated with attached to the client through an interface may include at least
the processor for storing methods, programs, codes, program one storage medium capable of storing methods, programs,
instructions or other type of instructions capable of being applications, code and/or instructions. A central repository
executed by the computing or processing device may include may provide program instructions to be executed on different
but may not be limited to one or more of a CD-ROM, DVD, 60 devices. In this implementation, the remote repository may
memory, hard disk, flash drive, RAM, ROM, cache and the act as a storage medium for program code, instructions, and
like. programs.
A processor may include one or more cores that may The methods and systems described herein may be
enhance speed and performance of a multiprocessor. In deployed in part or in whole through network infrastructures.
embodiments, the process may be a dual core processor, quad 65 The network infrastructure may include elements such as
core processors, other chip-level multiprocessor and the like computing devices, servers, routers, hubs, firewalls, clients,
that combine two or more independent cores (called a die). personal computers, communication devices, routing devices
US 9,104,864 B2
25 26
and other active and passive devices, modules and/or compo ing to software or hardware engineering practices, the
nents as known in the art. The computing and/or non-com depicted elements and the functions thereof may be imple
puting device(s) associated with the network infrastructure mented on machines through computer executable media
may include, apart from other components, a storage medium having a processor capable of executing program instructions
such as flash memory, buffer, stack, RAM, ROM and the like. stored thereon as a monolithic Software structure, as standa
The processes, methods, program codes, instructions lone software modules, or as modules that employ external
described herein and elsewhere may be executed by one or routines, code, services, and so forth, or any combination of
more of the network infrastructural elements. these, and all Such implementations may be within the scope
The methods, program codes, and instructions described of the present disclosure. Examples of Such machines may
herein and elsewhere may be implemented on a cellular net 10 include, but may not be limited to, personal digital assistants,
work having multiple cells. The cellular network may either laptops, personal computers, mobile phones, other handheld
be frequency division multiple access (FDMA) network or computing devices, medical equipment, wired or wireless
code division multiple access (CDMA) network. The cellular communication devices, transducers, chips, calculators, sat
network may include mobile devices, cell sites, base stations, ellites, tablet PCs, electronic books, gadgets, electronic
repeaters, antennas, towers, and the like. The cell network 15 devices, devices having artificial intelligence, computing
may be a GSM, GPRS, 3G, EVDO, mesh, or other networks devices, networking equipments, servers, routers and the like.
types. Furthermore, the elements depicted in the flow chart and
The methods, programs codes, and instructions described block diagrams or any other logical component may be imple
herein and elsewhere may be implemented on or through mented on a machine capable of executing program instruc
mobile devices. The mobile devices may include navigation tions. Thus, while the foregoing drawings and descriptions set
devices, cell phones, mobile phones, mobile personal digital forth functional aspects of the disclosed systems, no particu
assistants, laptops, palmtops, netbooks, pagers, electronic lar arrangement of Software for implementing these func
books readers, music players and the like. These devices may tional aspects should be inferred from these descriptions
include, apart from other components, a storage medium Such unless explicitly stated or otherwise clear from the context.
as a flash memory, buffer, RAM, ROM and one or more 25 Similarly, it will be appreciated that the various steps identi
computing devices. The computing devices associated with fied and described above may be varied, and that the order of
mobile devices may be enabled to execute program codes, steps may be adapted to particular applications of the tech
methods, and instructions stored thereon. Alternatively, the niques disclosed herein. All Such variations and modifications
mobile devices may be configured to execute instructions in are intended to fall within the scope of this disclosure. As
collaboration with other devices. The mobile devices may 30 Such, the depiction and/or description of an order for various
communicate with base stations interfaced with servers and steps should not be understood to require a particular order of
configured to execute program codes. The mobile devices execution for those steps, unless required by a particular
may communicate on a peer to peer network, mesh network, application, or explicitly stated or otherwise clear from the
or other communications network. The program code may be COInteXt.
stored on the storage medium associated with the server and 35 The methods and/or processes described above, and steps
executed by a computing device embedded within the server. thereof, may be realized in hardware, Software or any com
The base station may include a computing device and a stor bination of hardware and software suitable for a particular
age medium. The storage device may store program codes application. The hardware may include a general purpose
and instructions executed by the computing devices associ computer and/or dedicated computing device or specific
ated with the base station. 40 computing device or particular aspect or component of a
The computer Software, program codes, and/or instruc specific computing device. The processes may be realized in
tions may be stored and/or accessed on machine readable one or more microprocessors, microcontrollers, embedded
media that may include: computer components, devices, and microcontrollers, programmable digital signal processors or
recording media that retain digital data used for computing other programmable device, along with internal and/or exter
for some interval of time; semiconductor storage known as 45 nal memory. The processes may also, or instead, be embodied
random access memory (RAM); mass storage typically for in an application specific integrated circuit, a programmable
more permanent storage, such as optical discs, forms of mag gate array, programmable array logic, or any other device or
netic storage like hard disks, tapes, drums, cards and other combination of devices that may be configured to process
types; processor registers, cache memory, Volatile memory, electronic signals. It will further be appreciated that one or
non-volatile memory; optical storage such as CD, DVD: 50 more of the processes may be realized as a computer execut
removable media such as flash memory (e.g. USB sticks or able code capable of being executed on a machine readable
keys), floppy disks, magnetic tape, paper tape, punch cards, medium.
standalone RAM disks, Zip drives, removable mass storage, The computer executable code may be created using a
off-line, and the like; other computer memory Such as structured programming language such as C, an object ori
dynamic memory, static memory, read/write storage, mutable 55 ented programming language Such as C++, or any other high
storage, read only, random access, sequential access, location level or low-level programming language (including assem
addressable, file addressable, content addressable, network bly languages, hardware description languages, and database
attached storage, storage area network, bar codes, magnetic programming languages and technologies) that may be
ink, and the like. stored, compiled or interpreted to run on one of the above
The methods and systems described herein may transform 60 devices, as well as heterogeneous combinations of proces
physical and/or or intangible items from one state to another. sors, processor architectures, or combinations of different
The methods and systems described herein may also trans hardware and Software, or any other machine capable of
form data representing physical and/or intangible items from executing program instructions.
one state to another. Thus, in one aspect, each method described above and
The elements described and depicted herein, including in 65 combinations thereof may be embodied in computer execut
flow charts and block diagrams throughout the figures, imply able code that, when executing on one or more computing
logical boundaries between the elements. However, accord devices, performs the steps thereof. In another aspect, the
US 9,104,864 B2
27 28
methods may be embodied in Systems that perform the steps ciates each of a number of particular characteristics with
thereof, and may be distributed across devices in a number of one or more particular threats, and for each one of the
ways, or all of the functionality may be integrated into a one or more particular threats, further specifies how
dedicated, standalone device or other hardware. In another many particular characteristics are used to identify the
aspect, the means for performing the steps associated with the one of the one or more particular threats, thereby updat
processes described above may include any of the hardware ing the first database as threat characteristics are
and/or software described above. All such permutations and detected in change events; and
combinations are intended to fall within the scope of the identifying the threat when the number of relevant threat
present disclosure. characteristics appear in the second database.
While the invention has been disclosed in connection with 10 2. The computer program product of claim 1, wherein the
the preferred embodiments shown and described in detail, threat includes a malware threat to a computer facility.
various modifications and improvements thereon will 3. The computer program product of claim 1, wherein the
become readily apparent to those skilled in the art. Accord threat includes a violation of an enterprise security policy.
ingly, the spirit and scope of the present invention is not to be 4. The computer program product of claim 1, wherein the
limited by the foregoing examples, but is to be understood in 15 characteristic is a functionality of a computer program.
the broadest sense allowable by law. 5. The computer program product of claim 1, wherein one
All documents referenced herein are hereby incorporated of the threat characteristics is a property of a computer pro
by reference. gram.
What is claimed is: 6. The computer program product of claim 1, wherein one
1. A computer program product embodied in a non-transi of the threat characteristics is a portion of program code.
tory computer readable medium that, when executing on one 7. The computer program product of claim 1, wherein the
or more computers, performs the steps of computer run-time process includes at least one of an access
providing a first database that correlates a plurality of threat to a file, a process, a mutual exclusion object, and a registry
characteristics to a threat, wherein a presence of the key.
plurality of the threat characteristics confirms a presence 25 8. The computer program product of claim 1, wherein the
second database accumulates detected characteristics for
of the threat; each of a plurality of computer run-time processes.
detecting a change event in a computer run-time process;
testing the change event for a presence of one or more of the 9. The computer program product of claim 1, wherein the
plurality of threat characteristics upon detection of the first database correlates a different plurality of characteristics
change event; 30 to each one of a plurality of different threats.
storing a detection of one of the plurality of threat charac 10. The computer program product of claim 1, further
teristics in a second database that accumulates detected comprising code that performs the step of creating a new
threat characteristic for inclusion into the first database when
characteristics for the computer run-time process; the detected change event is identified as a new threat by a
scaling the plurality of threat characteristics in the first threat identification facility but is not currently in the first
database to a number of relevant threat characteristics 35
database.
based upon accumulated detected characteristics in the
second database using an inverted threat index that asso