throbber
USOO7353.538B2
`
`(12) United States Patent
`Sample
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,353,538 B2
`Apr. 1, 2008
`
`(54) SERVER RESOURCE MANAGEMENT,
`ANALYSIS, AND INTRUSION NEGATION
`
`(75) Inventor: Char Sample, Ellicott City, MD (US)
`
`(*) Notice:
`
`(73) Assignee: Federal Network Systems LLC,
`Arlington, VA (US)
`-
`0
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 4 days.
`(21) Appl. No.: 10/290,961
`(22) Filed:
`Nov. 8, 2002
`
`3/2001 Nguyen et al.
`6,202,070 B1
`4/2001 Krishnan et al. ........... 370/468
`6,222,856 B1
`6.356,863 B1* 3/2002 Sayle .......................... 703/27
`6,389,129 B1
`5/2002 Cowan
`6,466.980 B1 * 10/2002 Lumelsky et al. .......... TO9,226
`6,557,035 B1 * 4/2003 McKnight ................... TO9,224
`6,564,243 B1
`5/2003 Yedidia et al.
`6,622,226 B1
`9/2003 Dussud ....................... 711/159
`6,654,745 B2 11/2003 Feldman
`6,681,232 B1* 1/2004 Sistanizadeh et al. .... 707/104.1
`6,760,747 B2
`7/2004 Allard et al.
`6,782,398 B
`& 2004 Bahl
`6,804,778 B1
`10/2004 Levi et al.
`
`(65)
`
`Prior Publication Data
`
`(Continued)
`
`(51) Int. Cl.
`(2006.01)
`G06F II/00
`(2006.01)
`G06F 2/14
`(2006.01)
`G06F 2/16
`(2006.01)
`G06F 5/8
`(2006.01)
`GOSB 2.3/OO
`(2006.01)
`HO4K I/OO
`(2006.01)
`HO4L 9/OO
`(52) U.S. Cl. .............................. 726/23: 726/1; 726/26;
`726/25: 713/164.713/165: 713/166713/167
`709/226: 718/105
`(58) Field of Classification Search ................ 709/219,
`709/224, 229, 233,235, 226; 713/151, 201,
`713/165, 166, 167: 714/47; 726/23, 24,
`726/25, 1: 718/105: 716/164
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`5,774,668 A * 6/1998 Choquier et al. ........... 709,223
`5,852,717 A 12/1998 Bhide et al.
`5,864,683 A
`1/1999 Boebert et al.
`5.991,795 A 11/1999 Howard
`6,106,575 A * 8/2000 Hardwick ................... 717,119
`
`RU
`
`2189072
`
`9, 2002
`
`OTHER PUBLICATIONS
`Carleton University. “Managing your Unix Disk Quota'. http://
`mathstat.carleton.caf-help? cuota?quota.html. Aug. 22, 2002.
`
`(Continued)
`Primary Examiner Kambiz Zand
`Assistant Examiner Michael J Simitoski
`
`(57)
`
`ABSTRACT
`
`A console host and intrusion negation system (CHAINS)
`includes a host component 202 and a console component
`203. The host component 202 monitors resources at a
`server 501-503. Resources that are becoming overloaded
`can be throttled back. Reports relating to resource usage may
`be transmitted to the console component. At the console
`component, resource reports from multiple host components
`may be viewed and managed.
`
`25 Claims, 6 Drawing Sheets
`
`
`
`
`
`Console
`Component
`
`Server
`
`202
`
`Component
`
`Cloudflare - Exhibit 1087, page 1
`
`

`

`US 7,353,538 B2
`Page 2
`
`6,832,256
`7,039,673
`7,124,403
`2001/0044840
`2002, 0046264
`2002/0065911
`2002/0066034
`2002/0101819
`2002/0103916
`2002/0108060
`2002/0129088
`2002/0133603
`2002. O157020
`2002fO161868
`2002fO161891
`2002fO161913
`2002fO166046
`2002fO184363
`2002fO194340
`2002fO194490
`2003/0O23873
`2003/0028642
`2003/0028803
`2003/0051142
`2003/0056116
`2003/O115244
`2003. O154284
`2003/O154399
`
`U.S. PATENT DOCUMENTS
`Toga
`Abbott et al.
`Price et al. ................. 717/127
`Carleton ..................... 709,223
`Dillon et al.
`Von Klopp et al.
`Schlossberg et al.
`... 370,229
`Goldstone .........
`Chen et al. ................. 709,229
`Takamoto et al.
`Zhou et al.
`Mitomo et al.
`Royer
`Paul et al. .................. TO9,221
`Higuchi et al. ...
`... TO9,226
`Gonzalez et al. ........... 709/233
`Bidarahalli et al. ..
`... 713.2
`Viavant et al. ...... ... 709,224
`Ebstyne et al. ...
`... 709,226
`Halperin et al. ............ T13/200
`Ben-Itzhak
`Agarwal et al. ............ TO9,226
`Bunker et al.
`Hidalgo et al.
`Bunker et al.
`... 709/105
`Molloy et al. ....
`Bernardin et al. .......... TO9,226
`Zuk et al.
`
`12, 2004
`5, 2006
`10, 2006
`11, 2001
`4, 2002
`5, 2002
`5, 2002
`8, 2002
`8, 2002
`8, 2002
`9, 2002
`9, 2002
`10, 2002
`10, 2002
`10, 2002
`10, 2002
`11, 2002
`12, 2002
`12, 2002
`12, 2002
`1, 2003
`2, 2003
`2, 2003
`3, 2003
`3, 2003
`6, 2003
`8, 2003
`8, 2003
`
`2003/015894.0 A1* 8/2003 Leigh ......................... TO9,226
`2004.0003290 A1
`1/2004 Malcolm
`2004/0044771 A1
`3/2004 Allred et al. ............... 709,227
`Chakraborty et al.
`2004.0054791 A1
`3, 2004
`2004/0088,571 A1
`5, 2004
`Jerrim et al.
`
`OTHER PUBLICATIONS
`
`Estan, Cristian et al. “New Directions in Traffic Measurement and
`Accounting, 2001 ACM IMW'01, pp. 75-80.*
`Giuffrida, Mark et al. “Novell Netware Evaluation'. http://www.
`ifs.umich.edu/~ifs/RD/NetWare/netware-eval.html, Mar. 1994.
`Kargil, Franket al. “Protecting Web Servers from Distributed Denial
`of Service Attacks”, Mar. 2001 WWW10, pp. 514-524.*
`Packeteer. “PacketShaper 4000 Getting Started Version 4.0', Mar.
`1999.*
`Stephenson, Peter “Investigating Computer Crime”, 2000 CRC
`Press LLC, http://www.infoSecuritynetbase.com, Appendix A and
`Chapter 4.*
`Person, Ron et al. "Chapter 22, Working with Disks and Disk
`Drives”, 1997, <http://safariexamples.informit.com/07897 13993/
`books/win95/ch22.htm>.
`Cook, Dave. “Understanding Windows 2000 Disk Quotas', Oct.
`2001 PC Network Advisor.
`TCU. “Windows 2000 Transitions', Summer 2001.*
`Symantec. “Norton AntiVirus Corporate Edition Implementation
`Guide”, 2000 Symantec Corporation, pp. i-iii. 17-21, 23-26, 181
`214.
`* cited by examiner
`
`
`
`Cloudflare - Exhibit 1087, page 2
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet 1 of 6
`
`US 7,353,538 B2
`
`
`VIOLJONES
`001
`Jasn-pugSOL
`
`
`||||
`
`|I||
`
`WEOL
`
`'gE01
`
`JaNIaS
`
`Ww
`
`Looe
`
`alo
`
`Jasn-pug
`
`|Janes
`
`|“Bi
`
`Cloudflare - Exhibit 1087, page 3
`
`Cloudflare - Exhibit 1087, page 3
`
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet 2 of 6
`
`US 7,353,538 B2
`
`Sng
`
`0 || ?
`
`JOSS30OJ)
`
`ZZ
`
`
`
`08
`
`90 ||
`
`Cloudflare - Exhibit 1087, page 4
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet 3 of 6
`
`US 7,353,538 B2
`
`
`
`OZZ
`
`JOSS0001)
`
`
`
`
`
`quêuod?JOO ?SOH SNIVHO
`
`Cloudflare - Exhibit 1087, page 5
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet 4 of 6
`
`US 7,353,538 B2
`
`“pus
`
`
`
`0}Payeyuusues]
`
`VIV
`
`ajosuoo
`
`60
`v
`
`‘JUSsUOdLUCO
`
`Jelpowedaye|
`
`‘uonoe
`
`80P
`
`JOSSE9014
`
`oBesn
`
`&P|OYSSIU}<
`
`CLP
`
`
`
`JElpewasaye]
`
`‘uolae
`
`ON
`
`[eIDoWad
`
`‘uoljoe
`
`LLP
`
`abesojss|
`
`
`
`<oBesnsoiaep
`
`éPIOYSetU}
`
`SOV
`
`SOA
`
`AsOWSuuS|
`
`ON
`
`cor
`
`SO,
`
`COV
`
`Ayaoe
`
`ye[eAa|
`
`UONEOIUNWUWOO
`
`<soeLayul
`
`Eploysasyy
`
`CLP
`
`JoJeSIUlLUpeLely
`
`"syINsaJJo
`
`oye|
`
`jeipowad
`
`‘suonoe
`
`ON
`
`Cloudflare - Exhibit 1087, page 6
`
`Cloudflare - Exhibit 1087, page 6
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet S of 6
`
`US 7,353,538 B2
`
`? - ) ? ? ? ? ? ? ?ws •
`
`G -61-|
`
`
`
`
`
`
`
`Cloudflare - Exhibit 1087, page 7
`
`

`

`U.S. Patent
`
`Apr. 1, 2008
`
`Sheet 6 of 6
`
`US 7,353,538 B2
`
`
`
`Cloudflare - Exhibit 1087, page 8
`
`

`

`1.
`SERVER RESOURCE MANAGEMENT,
`ANALYSIS, AND INTRUSION NEGATION
`
`US 7,353,538 B2
`
`RELATED APPLICATIONS
`
`This application is related to the concurrently-filed appli
`cation Ser. No. 10/290,834, titled “Systems and Methods For
`Preventing Intrusion at a Web Host.”
`
`BACKGROUND OF THE INVENTION
`
`10
`
`15
`
`25
`
`30
`
`A. Field of the Invention
`The present invention relates generally to computer net
`works, and more particularly, to resource management of
`server computers in a public network, such as the Internet.
`B. Description of Related Art
`Network computer servers, such as computers that trans
`mit HTML (HyperText Markup Language) documents to
`client computing devices on the Internet, may interact and
`receive data requests from many different end-users. It is
`frequently important that these computer servers maintain
`high levels of uptime. For example, if a server for an
`e-commerce site fails to respond to user requests, the site
`may lose sales.
`There are many reasons why a server, or a group of
`servers, may fail. For example, the server may experience
`software or hardware errors that cause the server to fail.
`Additionally, the server may experience resource-related
`problems, such as too many users trying to simultaneously
`communicate with the server. Such resource-related prob
`lems can be “natural resource problems in which too many
`bona fide users are trying to access the system simulta
`neously or malicious problems such as denial of service
`(DoS) or distributed denial of service (DDoS) attacks. In a
`DoS or DDoS attack, a compromised system or a multitude
`of compromised systems flood a server with incoming
`messages in an attempt to overwhelm the available server
`resources. Legitimate users of the server may then be denied
`service by the server due to the overload of its resources.
`Accordingly, server System availability is an important
`40
`concern for network servers, such as Internet servers. Con
`ventional hardware solutions, such as clustering and
`failover, offer Some assurances in this area by offering more
`resources to the users. However, these solutions can fail
`when faced with automated DoS and DDoS attacks that
`simply keep taking resources.
`Accordingly, there is a need in the art to improve resource
`management in the face of attacks on system resources.
`
`35
`
`45
`
`SUMMARY OF THE INVENTION
`
`Systems and methods consistent with the principles of this
`invention implement a console host intrusion negation sys
`tem (CHAINS) that monitors selected resources on one or
`more computer servers and throttles back resource usage
`when a server resource is overburdened.
`A method consistent with an aspect of the invention
`includes monitoring resources associated with a network
`server and comparing activity levels of the resources to
`predetermined threshold activity levels. The method further
`includes reducing usage of one of the resources when the
`activity level associated with the resource increases above
`the predetermined threshold activity level.
`A second aspect consistent with the invention is directed
`to a computer server that includes a processor, a communi
`cation interface, and a memory containing instructions. The
`instructions, when executed by the processor, cause the
`
`50
`
`55
`
`60
`
`65
`
`2
`processor to monitor a usage level of the processor, the
`communication interface, and the memory. The instructions
`additionally compare the usage level of the communication
`interface to a first threshold and throttle back a number of
`active network connections when the usage level of the
`communication interface is greater than the first threshold;
`compare the usage level of the memory to a second threshold
`and shut down inactive processes when the usage level of the
`memory is above the second threshold; and compare the
`usage level of the processor to a third threshold and shut
`down inactive processes when the usage level of the pro
`cessor is above the third threshold.
`Yet another aspect of the present invention is directed to
`a system that includes a number of first computing devices
`and a second computing device. The first computing devices
`include a host Software component configured to monitor
`resources of the first computing device and throttle back
`resource usage when resources of the first computing
`devices are being used above predetermined threshold lev
`els. The second computing device includes a console soft
`ware component configured to display alerts when the
`resources of the first computing devices are being used
`above the predetermined threshold levels.
`Yet another aspect consistent with the present invention is
`directed to a method that includes displaying information
`relating to resources of remote computers, receiving infor
`mation defining threshold levels for the resources at the
`remote computers, and transmitting the information defining
`the threshold levels for the resources to the remote comput
`ers. The remote computers throttle back resource usage
`when a resource usage level exceeds the threshold levels.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The accompanying drawings, which are incorporated in
`and constitute a part of this specification, illustrate the
`invention and, together with the description, explain the
`invention. In the drawings,
`FIG. 1 is a diagram illustrating an exemplary system in
`which concepts consistent with the invention may be imple
`mented;
`FIG. 2 is a diagram of an exemplary computing device
`that may correspond to one of the servers in FIG. 1;
`FIG. 3 is a diagram conceptually illustrating the interac
`tion of a host component with elements of the server shown
`in FIG. 2;
`FIG. 4 is a flow chart illustrating operation of a host
`component consistent with an aspect of the invention;
`FIG. 5 is a diagram illustrating an implementation of a
`console component consistent with aspects of the invention;
`and
`FIG. 6 is a diagram illustrating an exemplary graphical
`user interface (GUI) that may be displayed by the console
`component.
`
`DETAILED DESCRIPTION
`
`The following detailed description of the invention refers
`to the accompanying drawings. The same reference numbers
`may be used in different drawings to identify the same or
`similar elements. Also, the following detailed description
`does not limit the invention. Instead, the scope of the
`invention is defined by the appended claims and equivalents
`of the claim features.
`As described below, a console host and intrusion negation
`system (CHAINS) monitors selected resources on one or
`more computer servers. Chains may include one or more
`
`Cloudflare - Exhibit 1087, page 9
`
`

`

`3
`host software components and a console Software compo
`nent. The host component resides on a server computer and
`monitors resource usage at the server. If a particular resource
`is used at a level above a preset threshold, the host compo
`nent may take remedial action. The remedial action may
`include, for example, throttling back the resource or noti
`fying a user via the console component.
`System Overview
`FIG. 1 is a diagram illustrating an exemplary system 100
`in which concepts consistent with the present invention may
`be implemented. System 100 may include a number of
`end-user computing devices 101A and 101B, a network 102,
`and server computers 103A-103D (collectively referred to as
`servers 103). End-user computing devices 101 may include
`personal computers or the like through which users connect
`to network 102. Network 102 may include any type of
`network, such as a local area network (LAN), a wide area
`network (WAN), a virtual private network (VPN), an intra
`net, the Internet, or a combination of networks. End-user
`computing devices 101 and servers 103 may connect to
`network 102 via wired, wireless, and/or optical connections.
`Servers 103 may respond to requests for information from
`end-user computing devices 101. For example, servers 103
`may be HTML servers that interact with end-user computing
`devices 101 through hyper-text transfer protocol (HTTP)
`sessions to transmit HTML web pages to users. Server 103
`may include a cluster of servers, such as the three servers
`103A-103C contained in cluster 105. The servers
`103A=103C in cluster 105 may include a load-balancing
`mechanism through which the servers may jointly handle
`requests from end-user computing devices 101 in Such a
`manner as to balance the distribution of work among the
`servers in cluster 105.
`FIG. 2 is a diagram of an exemplary computing device
`that may correspond to one of servers 103. Server 103 may
`include bus 210, processor 220, main memory 230, read
`only memory (ROM) 240, storage device 250, input device
`260, output device 270, and communication interface 280.
`40
`Bus 210 permits communication among the components of
`Server 103.
`Processor 220 may include any type of conventional
`processor or microprocessor that interprets and executes
`instructions. Main memory 230 may include a random
`access memory (RAM) or another type of dynamic storage
`device that stores information and instructions for execution
`by processor 220. ROM 240 may include a conventional
`ROM device or another type of static storage device that
`stores static information and instructions for use by proces
`sor 220. Storage device 250 may include a magnetic and/or
`optical recording medium and its corresponding drive.
`Input device 260 may include one or more conventional
`mechanisms that permit an operator to input information to
`computing device 103. Such as a keyboard, a mouse, a pen,
`a number pad, a microphone and/or biometric mechanisms,
`etc. Output device 270 may include one or more conven
`tional mechanisms that output information to the operator,
`including a display, a printer, speakers, etc. Communication
`interface 280 may include any transceiver-like mechanism
`that enables computing device 103 to communicate with
`other devices and/or systems. For example, communication
`interface 280 may include mechanisms for communicating
`with another device or system via a network, such as
`network 102.
`In one implementation, main memory 230 may include
`computer programming instructions that implement a
`
`4
`CHAINS host software component 202 and/or console soft
`ware component 203. The operation of host component 202
`and console component 203 will be described in more detail
`below.
`
`Chains
`
`FIG. 3 is a diagram conceptually illustrating the interac
`tion of CHAINS host component 202 with resources asso
`ciated with server 103. In particular, host component 202
`may interact with communication interface 280, storage
`device 250, memory 230, and processor 220. In general,
`these elements of server 103 can be considered to be
`resources of server 103. Host component 202 monitors and
`controls the activity level of these resources.
`FIG. 4 is a flow chart illustrating operation of host
`component 202 consistent with an aspect of the invention.
`Host component 202 may begin by checking an activity
`level of communication interface 280. This may include
`checking the number of open connections between server
`103 and end-user computing devices 101. An end-user
`computing device 101 that wishes to receive information
`from server 103 begins by transmitting a request for a
`connection with server 103. Server 103, in turn, can accept
`or reject the connection. Additionally, server 103 may keep
`track of the number of open connections at any particular
`time.
`Host component 202 maintains a threshold level relating
`to the activity level of communication interface 280. The
`threshold level may be set by a user either locally at server
`103 or, as will be described in more detail below, from a
`remote computer running console component 203. The
`threshold level may be derived manually by the user, or
`automatically, based on historical activity levels. Host com
`ponent 202 may check to determine whether the activity
`level of communication interface 280 is above the threshold
`(Act 402). If it is, host component 202 may take remedial
`actions to effectively throttle back the number of active
`connections (Act 403). Such actions can include closing
`open connections. For example, host component 202 may
`first close connections that are open but inactive. If the
`number of connections is still too high, host component 202
`may close connections that the server 103 classifies as lower
`priority connections. If the number of connections is still too
`high, host component 202 may begin to randomly close open
`connections. In addition, while the number of open connec
`tions is above the threshold, host component 202 may refuse
`any new connection requests from end-user computing
`devices 101.
`In addition to checking an activity level of communica
`tion interface 280, host component 202 may check usage of
`memory 230. When memory capacity exceeds a predeter
`mined threshold level (e.g., b 95% of memory 230 is full),
`host component 202 may take memory-related remedial
`actions (Acts 405 and 406). These actions may include, for
`example, shutting down inactive processes (often referred to
`as Zombie processes).
`Host component 202 may also check processor usage.
`When the load on processor 220 is above a predetermined
`threshold (e.g., 90% of total processor capacity), host com
`ponent 220 may take remedial actions (Acts 408 and 409).
`These actions may be similar to the actions taken in Act 406,
`and may include, for example, shutting down inactive pro
`cesses or shutting down lower priority processes.
`Host component 202 may also check the capacity of
`storage device 250, such as a hard disk drive(s). When
`storage device 250 has exceeded a predetermined threshold
`
`US 7,353,538 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Cloudflare - Exhibit 1087, page 10
`
`

`

`5
`capacity (e.g., 95% of capacity), host component 220 may
`again take remedial action, (Acts 411 and 412). Such as
`redirecting future disk write commands to console (i.e., to a
`monitor) or compressing non-critical files, such as log files.
`Host component 202 may alert administrators of the
`actions taken in Acts 403, 406, 409, and 412 (Act 413). The
`alert may take the form of an e-mail, a pager notice, or a
`screen alert to an operator. Additionally, host component 202
`may transmit an indication of the alert to a remote computer
`(Act 414). More particularly, consistent with an aspect of the
`invention, console component 203, residing at the remote
`computer, may receive the alert. Console component 203
`may be configured to receive and monitor alerts from a
`number of host components 202 running on a number of
`different servers 103. This aspect of the invention is
`described in more detail below.
`One of ordinary skill in the art will recognize that com
`mands to check processor load, storage device load, and
`network connection load are well known, and are thus not
`described in detail herein.
`FIG. 5 is a diagram illustrating an implementation of
`console component 203 consistent with aspects of the inven
`tion. Console component 203 may execute on a computing
`device 504, such as a server computer 103, and communi
`cate with one or more host components 202. As shown in
`25
`FIG. 5, console component 203 is connected to a number of
`host components 202, executing at servers 501-503.
`Servers 501 and 502 may be a group of clustered servers
`that are connected locally or through a local area network to
`console component 203. Server 503 may be coupled
`remotely to console component 203 via wide area network
`51O.
`Each of host components 202 may operate to transmit
`information relating to their generated alerts (see FIG. 4. Act
`414). Operators local to console component 203 may view
`the alert information from multiple host components 202
`and manage threshold settings for the host components 202.
`FIG. 6 is a diagram illustrating an exemplary graphical
`user interface (GUI) 600 that may be displayed by console
`component 203. GUI 600 may include an output section 601
`and input section 610. Console component 203 may display
`alerts received from host components 202 to output section
`601. In input section 610, operators may change configura
`tion information, Such as the threshold values, for a particu
`lar host component 202. Input section 610 may include a
`selection box 611 through which the user may select the host
`component 202 that the user is configuring. As shown in
`FIG. 6, the host component 202 at the server called
`“Server3” is being configured. Input section 610 may addi
`tionally include input boxes 612-615 for inputting threshold
`information relating to the memory usage threshold, the
`processor usage threshold, the connection threshold, and the
`disk usage threshold, respectively.
`In addition to merely monitoring and logging resource
`alerts from host components 202, console component 203
`may provide analysis and resource management functions.
`For example, console component 203 may correlate
`resource alerts from multiple host components 202. If a
`number of host components 202 generate similar resource
`alerts at approximately the same time, this may indicate that
`a concerted DoS attack is being performed against these
`computers. Console component 203 may then output infor
`mation to a user indicating a possible DoS attack.
`In some implementations, console component 203 may
`reallocate resources among servers based on alerts received
`from host components 202. For example, if host component
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,353,538 B2
`
`10
`
`15
`
`6
`202 at server 501 issues a disk resource alert, console
`component 203 may instruct server 501 to begin using the
`disk resources of server 502.
`
`CONCLUSION
`
`The CHAINS components described above operate to
`ensure that servers do not crash because of issues relating to
`resource overload. By constantly monitoring resources of
`various servers and throttling back resource access when the
`resources of a server are over taxed, the CHAINS compo
`nent helps to ensure that the server will continue to operate.
`Sometimes the best method for preventing attacks such as
`DoS and DDoS attacks is to prevent the attack from occur
`ring in the first place. By keeping servers under DoS and
`DDoS attacks from failing, an attacker may give up and
`move on to a more susceptible target.
`The foregoing description of preferred embodiments of
`the invention provides illustration and description, but is not
`intended to be exhaustive or to limit the invention to the
`precise form disclosed. Modifications and variations are
`possible in light of the above teachings or may be acquired
`from practice of the invention. Moreover, while a series of
`acts have been presented with respect to FIG. 4, the order of
`the acts may be different in other implementations consistent
`with the present invention. Moreover, non-dependent acts
`may be performed in parallel.
`Certain portions of the invention have been described as
`software that performs one or more functions. The software
`may more generally be implemented as any type of logic.
`This logic may include hardware, such as an application
`specific integrated circuit or a field programmable gate array,
`software, or a combination of hardware and software.
`No element, act, or instruction used in the description of
`the present application should be construed as critical or
`essential to the invention unless explicitly described as such.
`Also, as used herein, the article 'a' is intended to include
`one or more items. Where only one item is intended, the term
`'one' or similar language is used.
`The scope of the invention is defined by the claims and
`their equivalents.
`What is claimed:
`1. A method for managing resources, comprising:
`monitoring a plurality of resources associated with a
`network server, the plurality of resources including at
`least an activity level at a communication interface of
`the network server and an activity level corresponding
`to memory usage of the network server,
`comparing activity levels of the plurality of resources to
`predetermined threshold activity levels; and in
`response to the comparing,
`reducing usage of one of the plurality of resources when
`the activity level associated with the one of the plurality
`of resources increases above the predetermined thresh
`old activity level associated therewith, reducing usage
`including reducing the activity level at the communi
`cation interface of the network server when the respec
`tive activity level increases above the predetermined
`threshold activity level associated therewith, and
`including shutting down inactive processes to thereby
`reduce memory usage of the network server when the
`memory usage increases above the predetermined
`threshold activity level associated therewith.
`2. The method of claim 1, wherein determining an activity
`level at the communication interface includes keeping track
`of a number of open network connections.
`
`Cloudflare - Exhibit 1087, page 11
`
`

`

`US 7,353,538 B2
`
`10
`
`15
`
`7
`3. The method of claim 1, wherein monitoring a plurality
`of resources further includes:
`determining usage of a processor of the network server.
`4. The method of claim 3, wherein monitoring a plurality
`of resources further includes:
`determining capacity of a hard disk drive associated with
`the network server.
`5. The method of claim 1, further comprising:
`alerting a user when the activity level associated with the
`one of the plurality of resources increases above the
`predetermined threshold activity level.
`6. The method of claim 5, wherein alerting the user
`includes transmitting an alert to a remote computer.
`7. The method of claim 1, wherein the predetermined
`threshold activity levels are set by a user from a remote
`computer.
`8. A computer server comprising:
`at least one processor;
`a communication interface; and
`a memory containing instructions that when executed by
`the at least one processor cause the processor to:
`monitor a usage level of the communication interface,
`the memory, and at least one of the at least one
`processor;
`compare the usage level of the communication inter
`face to a first threshold and reduce a number of active
`network connections when the usage level of the
`communication interface is greater than the first
`threshold;
`compare the usage level of the memory to a second
`threshold and shut down inactive processes when the
`usage level of the memory is above the second
`threshold; and
`compare the usage level of the monitored processor to
`a third threshold and shut down inactive processes
`when the usage level of the monitored processor is
`above the third threshold.
`9. The computer server of claim 8, further comprising:
`a magnetic storage device, wherein
`the memory contains additional instructions that when
`40
`executed by the processor cause the processor to:
`compare a usage level of the magnetic storage device to
`a fourth threshold and compress files on the magnetic
`storage device when the usage level of the magnetic
`storage device is above the fourth threshold.
`10. The computer server of claim 8, wherein the first,
`second, and third thresholds are set remotely.
`11. The computer server of claim 8, wherein the memory
`contains additional instructions that when executed by the
`processor cause the processor to transmit a resource alert to
`a remote computer.
`12. A system comprising:
`a plurality of first computing devices, each of the plurality
`of first computing devices including a corresponding
`host software component configured to monitor
`resources of the corresponding first computing device,
`the resources including at least a usage level of a
`communication interface, computer random access
`memory, and a processor, the host Software component
`reducing resource usage, including reducing the usage
`level of the communication interface, computer random
`access memory or processor, when, in response to the
`monitoring, resources of the corresponding first com
`puting device are being used above respective prede
`termined threshold levels, the host software component
`reducing the usage level of computer random access
`memory including the host Software component shut
`
`30
`
`8
`ting down inactive processes when the respective usage
`level increases above a threshold level thereof, and
`a second computing device including a console software
`component configured to display alerts when any one
`or more of the resources of the first computing device
`are being used above the predetermined threshold lev
`els.
`13. The system of claim 12, wherein when the second
`computing device receives alerts from multiple ones of the
`first computing devices, the second computing device out
`puts information describing a possible denial of service
`attack.
`14. The system of claim 12, wherein the second comput
`ing device transmits the predetermined threshold levels to
`the first computing device.
`15. The system of claim 12, wherein the second comput
`ing device is located remotely from the first computing
`device.
`16. The system of claim 12, wherein the first computing
`devices are network servers.
`17. A computer-readable medium containing instructions
`that when executed by a processor cause the processor to:
`monitor a plurality of resources associated with a network
`server, the monitored plurality of resources including at
`least an activity level at a communication interface of
`the network server and an activity level corresponding
`to memory usage of the network server,
`compare activity levels of the plurality of resources to
`predetermined threshold activity levels; and in
`response to the comparing,
`reduce usage of one of the plurality of resources when the
`activity level associated with the one of the plurality of
`resources increases above the predetermined threshold
`activity level associated with the on

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