US11182480B2 - Identification of malware - Google Patents
Identification of malware Download PDFInfo
- Publication number
- US11182480B2 US11182480B2 US16/145,945 US201816145945A US11182480B2 US 11182480 B2 US11182480 B2 US 11182480B2 US 201816145945 A US201816145945 A US 201816145945A US 11182480 B2 US11182480 B2 US 11182480B2
- Authority
- US
- United States
- Prior art keywords
- website
- script
- scripts
- malware
- usage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000013515 script Methods 0.000 claims abstract description 253
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 7
- 238000010195 expression analysis Methods 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000006854 communication Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 9
- 238000005065 mining Methods 0.000 description 8
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- IUVCFHHAEHNCFT-INIZCTEOSA-N 2-[(1s)-1-[4-amino-3-(3-fluoro-4-propan-2-yloxyphenyl)pyrazolo[3,4-d]pyrimidin-1-yl]ethyl]-6-fluoro-3-(3-fluorophenyl)chromen-4-one Chemical compound C1=C(F)C(OC(C)C)=CC=C1C(C1=C(N)N=CN=C11)=NN1[C@@H](C)C1=C(C=2C=C(F)C=CC=2)C(=O)C2=CC(F)=CC=C2O1 IUVCFHHAEHNCFT-INIZCTEOSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2119—Authenticating web pages, e.g. with suspicious links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Definitions
- This disclosure relates in general to the field of information security, and more particularly, to the identification of malware.
- the field of network security has become increasingly important in today's society.
- the Internet has enabled interconnection of different computer networks all over the world.
- the Internet provides a medium for exchanging data between different users connected to different computer networks via various types of client devices.
- While the use of the Internet has transformed business and personal communications, it has also been used as a vehicle for malicious operators to gain unauthorized access to computers and computer networks and for intentional or inadvertent disclosure of sensitive information.
- Malicious software that infects a host computer may be able to perform any number of malicious actions, such as stealing sensitive information from a business or individual associated with the host computer, propagating to other host computers, and/or assisting with distributed denial of service attacks, sending out spam or malicious emails from the host computer, etc.
- One specific type of malware commonly referred to as cryptomining involves taking over a computer's resources without a user's explicit permission and using the resources for cryptocurrency mining.
- significant administrative challenges remain for protecting computers and computer networks from malicious and inadvertent exploitation by malicious software.
- FIG. 1 is a simplified block diagram of a system to help facilitate the identification of malware in accordance with an embodiment of the present disclosure
- FIG. 2 is a simplified block diagram of a portion of a to help facilitate the identification of malware in accordance with an embodiment of the present disclosure
- FIG. 3 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 4 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 5 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 6 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 7 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 8 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 9 is a simplified flowchart illustrating potential operations that may be associated with the system in accordance with an embodiment
- FIG. 10 is a block diagram illustrating an example computing system that is arranged in a point-to-point configuration in accordance with an embodiment
- FIG. 11 is a simplified block diagram associated with an example ARM ecosystem system on chip (SOC) of the present disclosure.
- FIG. 12 is a block diagram illustrating an example processor core in accordance with an embodiment.
- the phrase “A and/or B” means (A), (B), or (A and B).
- the phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C).
- FIG. 1 is a simplified block diagram of a system 100 to help facilitate the identification of malware in accordance with an embodiment of the present disclosure.
- an embodiment of system 100 can include network elements 102 a - 102 c , a server 104 , and cloud services 106 .
- Network elements 102 a - 102 c , server 104 , and cloud services 106 may be in communication with each other using network 108 .
- Each network element 102 a - 102 c can include memory, a computer processing unit (CPU), one or more processes, a security engine, and one or more resources.
- network element 102 a includes memory 110 , one or more CPUs 112 , one or more processes 114 a and 114 b , a display 116 , a security engine 118 , and one or more resources 142 a and 142 b .
- Security engine 118 can include a suspicious website database 122 and a suspicious script database 124 .
- Each of processes 114 a and 114 b may be a computer program, function, virtual network function (VNF), etc.
- Server 104 and cloud services 106 can each include a network security engine 126 .
- Network security engine 126 can include suspicious website database 122 and suspicious script database 124 .
- a malicious operator 128 may be in communication with network 108 and one or more of network element 102 a - 102 c .
- Malicious operator 128 can include malware 130 .
- Malware 130 may be cryptomining malware or some other malware that can take over a computer's resources (e.g., CPU 112 , resources 142 a and 142 b , etc.) without a user's explicit permission and use the resources without the user's explicit permission and/or for nefarious purposes.
- Each of resources 142 a and 142 b may be any physical or virtual component of limited availability within network element 102 a that malware may use without a user's permission. More specifically, each of resources 142 a and 142 b may be random access memory (RAM), a processor, a secondary processing unit such as a graphics card, cache space, network connections, etc.
- RAM random access memory
- processor a processor
- secondary processing unit such as a graphics card, cache space, network connections, etc.
- Security engine 118 can be configured to identify malware 130 . For example, as a user navigates to a website, security engine 118 can determine if the website includes malware 130 . More specifically, security engine 118 can be configured to identify the website and determine if the website or Uniform Resource Locator (URL) associated with the website matches an entry in suspicious website database 122 . In addition, security engine can be configured to identify scripts on the website and determine if any of the scripts match an entry in suspicious script database 124 . Further, security engine can be configured to analyze the script to determine if the script is related to malware or includes characteristics of malware.
- URL Uniform Resource Locator
- security engine 118 can be configured to determine a string format (e.g., string version) for a script and analyze the string format of the script to determine if the script is related to malware.
- security engine 118 can monitor the usage of CPU 112 and resources 142 a and 142 b to determine if the usage of CPU 112 and/or resources 142 a and 142 b of network element 102 a spike or exceed a threshold.
- the threshold provides an indication of the spike and the threshold may be as much as ninety percent capacity or more of CPU 112 and/or of resources 142 a and 142 b being used or a percentage increase of usage (e.g., a ninety-five percent increase in usage) of CPU 112 and/or resources 142 a and 142 b .
- a spike in the usage of CPU 112 and/or resources 142 a and 142 b of network element 102 a can be an indication of cryptomining malware.
- security engine 118 can be configured to determine what process or processes cause the spike (e.g., the browser caused the spike vs a CPU and/or resource intensive video editing process caused the spike) to help determine false positives.
- System 100 may be coupled to one another through one or more interfaces employing any suitable connections (wired or wireless), which provide viable pathways for network (e.g., network 108 ) communications. Additionally, any one or more of these elements of FIG. 1 may be combined or removed from the architecture based on particular configuration needs.
- System 100 may include a configuration capable of transmission control protocol/Internet protocol (TCP/IP) communications for the transmission or reception of packets in a network.
- TCP/IP transmission control protocol/Internet protocol
- System 100 may also operate in conjunction with a user datagram protocol/IP (UDP/IP) or any other suitable protocol where appropriate and based on particular needs.
- UDP/IP user datagram protocol/IP
- event ‘A’ occurs when event ‘B’ occurs” is to be interpreted to mean that event A may occur before, during, or after the occurrence of event B, but is nonetheless associated with the occurrence of event B.
- event A occurs when event B occurs if event A occurs in response to the occurrence of event B or in response to a signal indicating that event B has occurred, is occurring, or will occur.
- Reference to “one embodiment” or “an embodiment” in the present disclosure means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” or “in an embodiment” are not necessarily all referring to the same embodiment.
- Malicious software that infects a host computer may be able to perform any number of malicious actions, such as stealing sensitive information from a business or individual associated with the host computer, propagating to other host computers, assisting with distributed denial of service attacks, sending out spam or malicious emails from the host computer, etc.
- malicious software that infects a host computer may be able to perform any number of malicious actions, such as stealing sensitive information from a business or individual associated with the host computer, propagating to other host computers, assisting with distributed denial of service attacks, sending out spam or malicious emails from the host computer, etc.
- One way malicious operators can infect a host computer is to use cryptomining malware.
- Cryptomining malware (or cryptocurrency mining malware, cryptojacking, etc.), is a relatively new term that refers to software programs and malware components developed to take over a computer's resources and use them for cryptocurrency mining without a user's explicit permission.
- Cyber criminals have increasingly turned to cryptomining malware as a way to harness the processing power of large numbers of computers, smartphones, and other electronic devices to help them generate revenue from cryptocurrency mining.
- cyber criminals have also increasingly turned to browser-based cryptocurrency mining to help them generate revenue from mining.
- the website can include scripts that run in the background, which makes them extremely difficult to detect.
- the users cannot tell when the scripts are running and the scripts only run for as long as the user is on the website.
- some scripts allow the mining to continue even after the website has been closed by creating a hidden pop-up window.
- the hidden pop-up window can be hidden from the user's view such as sized to fit under a taskbar.
- the malware can tap into the resources of the user's computers and cause a degradation in computer performance and components. What is needed is a system and method to help identify malware, especially cryptomining malware.
- system 100 can be configured to analyze a website and determine if the website and/or any scripts associated with the website are in a blacklist (e.g., suspicious website database 122 and/or suspicious script database 124 ). If the website and/or any scripts associated with the website are not found in a blacklist, security engine 118 can analyze the scripts and determine if the scripts are related to malware.
- a blacklist e.g., suspicious website database 122 and/or suspicious script database 124 .
- security engine 118 can identify script tags for each script associated with the website and acquire a string format of the script. An analysis on the string format of the script can be performed to help determine if the script and/or website is associated with malware. More specifically, security engine 118 can identify script tags for each script associated with the website and acquire a string format of the script using an Extensible Markup Language/Hypertext Transfer Protocol (XML/HTTP) request. Then, a regular expression (REGEX) analysis can be performed on the string format of the script to help determine if the script and/or website is associated with malware.
- XML/HTTP Extensible Markup Language/Hypertext Transfer Protocol
- REGEX regular expression
- usage of the CPU e.g., CPU 112
- system resources e.g., resources 142 a and 142 b
- usage of the CPU and/or resources spike can be monitored to determine if the usage of the CPU and/or resources spike during browsing of the website. If usage of the CPU and/or resources spike, the website and/or scripts related to the website can be reported to a network security engine to determine if the website and/or scripts related to the website are related to malware.
- security engine 118 can be configured to identify a website and identify scripts associated with the website.
- the scripts can be identified using a webextension application programming interface (API) (e.g., WebRequest listener, MutationObserver, etc.).
- API application programming interface
- the webextension API can be used to identify scripts on the website as well as monitor http/https requests for websites that try to load a script from another source.
- Security engine 118 can also be configured to obtain script tags in each of the scripts associated with the website.
- the script tags can be acquired using an XML/HTTP request object to request data from a server.
- a responseText property returns the response as a string and the sting can be analyzed using REGEX.
- REGEX sometimes referred to as a rational expression
- REGEX is sequence of characters that define a search pattern. The pattern is then used by string searching algorithms to find operations on strings.
- Each character in a REGEX (that is, each character in the string describing its pattern) is either a metacharacter, having a special meaning, or a regular character that has a literal meaning.
- a metacharacter For example, in the REGEX “a.,” “a” is a literal character that matches just ‘a’, while “.” is a meta character that matches every character except a newline. Therefore, the REGEX “a.” matches, for example, “a”, or “ax”, or “a0”.
- metacharacters and literal characters can be used to identify text of a given pattern and can be used to identify malware. Pattern matches may vary from a precise equality to a very general similarity, as controlled by the metacharacters.
- Network 108 represents a series of points or nodes of interconnected communication paths for receiving and transmitting packets of information that propagate through system 100 .
- Network 108 offers a communicative interface between nodes, and may be configured as any local area network (LAN), virtual local area network (VLAN), wide area network (WAN), wireless local area network (WLAN), metropolitan area network (MAN), Intranet, Extranet, virtual private network (VPN), and any other appropriate architecture or system that facilitates communications in a network environment, or any suitable combination thereof, including wired and/or wireless communication.
- LAN local area network
- VLAN virtual local area network
- WAN wide area network
- WLAN wireless local area network
- MAN metropolitan area network
- Intranet Extranet
- VPN virtual private network
- network traffic which is inclusive of packets, frames, signals, data, etc.
- Suitable communication messaging protocols can include a multi-layered scheme such as Open Systems Interconnection (OSI) model, or any derivations or variants thereof (e.g., Transmission Control Protocol/Internet Protocol (TCP/IP), user datagram protocol/IP (UDP/IP)).
- OSI Open Systems Interconnection
- radio signal communications over a cellular network may also be provided in system 100 .
- Suitable interfaces and infrastructure may be provided to enable communication with the cellular network.
- packet refers to a unit of data that can be routed between a source node and a destination node on a packet switched network.
- a packet includes a source network address and a destination network address. These network addresses can be Internet Protocol (IP) addresses in a TCP/IP messaging protocol.
- IP Internet Protocol
- data refers to any type of binary, numeric, voice, video, textual, or script data, or any type of source or object code, or any other suitable information in any appropriate format that may be communicated from one point to another in electronic devices and/or networks. Additionally, messages, requests, responses, and queries are forms of network traffic, and therefore, may comprise packets, frames, signals, data, etc.
- Network elements 102 a - 102 c can each be a desktop computer, laptop computer, mobile device, personal digital assistant, smartphone, tablet, network appliances, servers, routers, switches, gateways, bridges, load balancers, or any other suitable device, component, element, or object operable to exchange information in a network environment.
- Server 104 can be a network element such as a server or virtual server and can be associated with clients, customers, endpoints, or end users wishing to initiate a communication in system 100 via some network (e.g., network 108 ).
- the term ‘server’ is inclusive of devices used to serve the requests of clients and/or perform some computational task on behalf of clients within system 100 .
- Cloud services 106 is configured to provide cloud services to network elements 102 a - 102 c .
- Cloud services may generally be defined as the use of computing resources that are delivered as a service over a network, such as the Internet.
- compute, storage, and network resources are offered in a cloud infrastructure, effectively shifting the workload from a local network to the cloud network.
- Network elements 102 a - 102 c may include any suitable hardware, software, components, modules, or objects that facilitate the operations thereof, as well as suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.
- each of network element 102 a - 102 c , server 104 , and cloud services 106 can include memory elements (e.g., memory 110 ) for storing information to be used in the operations outlined herein.
- Each of network elements 102 a - 102 c , server 104 , and cloud services 106 may keep information in any suitable memory element (e.g., disk, random access memory (RAM), read-only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), application specific integrated circuit (ASIC), etc.), software, hardware, firmware, or in any other suitable component, device, element, or object where appropriate and based on particular needs.
- RAM random access memory
- ROM read-only memory
- EPROM erasable programmable ROM
- EEPROM electrically erasable programmable ROM
- ASIC application specific integrated circuit
- any of the memory items discussed herein should be construed as being encompassed within the broad term ‘memory element.’
- the information being used, tracked, sent, or received in system 100 could be provided in any database, register, queue, table, cache, control list, or other storage structure, all of which can be referenced at any suitable timeframe. Any such storage options may also be included within the broad term ‘memory element’ as used herein.
- the functions outlined herein may be implemented by logic encoded in one or more tangible media (e.g., embedded logic provided in an ASIC, digital signal processor (DSP) instructions, software (potentially inclusive of object code and source code) to be executed by a processor, or other similar machine, etc.), which may be inclusive of non-transitory computer-readable media.
- memory elements can store data used for the operations described herein. This includes the memory elements being able to store software, logic, code, or processor instructions that are executed to carry out the activities described herein.
- network elements of system 100 may include software modules (e.g., security engine 118 , network security engine 126 , etc.) to achieve, or to foster, operations as outlined herein.
- modules may be suitably combined in any appropriate manner, which may be based on particular configuration and/or provisioning needs. In example embodiments, such operations may be carried out by hardware, implemented externally to these elements, or included in some other network device to achieve the intended functionality.
- the modules can be implemented as software, hardware, firmware, or any suitable combination thereof.
- These elements may also include software (or reciprocating software) that can coordinate with other network elements in order to achieve the operations, as outlined herein.
- each of network elements 102 a - 102 c , server 104 , and cloud services 106 may include a processor (e.g., CPU 112 ) that can execute software or an algorithm to perform activities as discussed herein.
- a processor can execute any type of instructions associated with the data to achieve the operations detailed herein.
- the processors could transform an element or an article (e.g., data) from one state or thing to another state or thing.
- the activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array (FPGA), an EPROM, an EEPROM) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.
- programmable logic e.g., a field programmable gate array (FPGA), an EPROM, an EEPROM
- FPGA field programmable gate array
- EPROM programmable read-only memory
- EEPROM electrically erasable programmable read-only memory
- ASIC application specific integrated circuitry
- FIG. 2 is a simplified block diagram of a portion of a system 100 to help facilitate the identification of malware in accordance with an embodiment of the present disclosure.
- network element 102 b can include memory 110 , CPU 112 , processes 114 a and 114 b , display 116 , security engine 118 , and resources 142 a and 142 b .
- Security engine 118 can include suspicious website database 122 , suspicious script database 124 , an allow website database 132 , an allow script database 134 , a script string engine 136 , a script analysis engine 138 , and a CPU and/or resource monitoring engine 140 .
- Server 104 and cloud services 106 can include network security engine 126 .
- Network security engine 126 can include suspicious website database 122 , suspicious script database 124 , and REGEX analysis engine 144 .
- REGEX analysis engine 144 can be configured to determine if a REGEX can identify a suspicious script and to create one or more REGEXs to identify a suspicious script.
- Allow website database 132 can include whitelisted websites or websites allowed by a user. In an example, a website in allow website database 132 will be allowed even if the website is listed in suspicious website database 122 or is deemed suspicious by security engine 118 . Allow script database 134 can include whitelisted scripts or scripts allowed by a user. In an example, a script in allow script database 134 will be allowed even if the script is listed in suspicious script database 124 or is deemed suspicious by security engine 118 .
- Script string engine 136 can be configured to identify script tags for each script associated with the website and acquire a string format of the script. More specifically, script string engine 136 can identify script tags for each script associated with the website and acquire a string format of the script using an XML/HTTP request. Script analysis engine 138 can be configured to analyze the string format of the script to help determine if the script and/or website is associated with malware. More specifically, script analysis engine 138 can be configured to perform a REGEX analysis on the string format of the script to help determine if the script and/or website is associated with malware.
- CPU and/or resource monitoring engine 140 can be configured to monitor CPU 112 and/or resources 142 a and 142 b to determine if the usage of CPU 112 and/or resources 142 a and 142 b spike during browsing of the website. If the usage of CPU 112 and/or resources 142 a and 142 b spike, the website and/or scripts related to the website can be reported to a network security engine to determine if the website and/or scripts related to the website are related to malware.
- REGEX analysis engine 144 can be configured to analyze a script related to malware and determine if a REGEX can be used to detect the script.
- REGEX analysis engine 144 can be used to create a REGEX that can be used to detect the script.
- an administrator may analyze a script related to malware and determine if a REGEX can be used to detect the script. If the REGEX cannot be used to detect the script, then the administrator can create a REGEX that can be used to detect the script.
- FIG. 3 is an example flowchart illustrating possible operations of a flow 300 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 300 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a website is accessed.
- the system determines if an HTTP request related to the website is blacklisted. For example, the system can determine if an HTTP request includes an entry in suspicious website database 122 .
- an HTTP request related to the website is blacklisted, then a notification is communicated to a user as well as an option for the user to allow the website and/or scripts related to the website, as in 306 .
- the system determines if the user allowed the website and/or scripts related to the website. If the user did not allow the website and/or scripts related to the website, then the website and/or scripts related to the website are blocked, as in 310 . If the user did allow the website and/or scripts related to the website, then the website and/or scripts related to the website are added to a while list, as in 312 . For example, the website can be added to allow website database 132 .
- the website is scanned for scripts, as in 314 .
- the system determines if any scripts related to the website were discovered. If no scripts related to the website were discovered, then the process ends. If scripts related to the website were discovered, then the system determines if any of the discovered scripts are blacklisted, as in 318 . For example, the system can determine if any of the scripts match an entry in suspicious script database 124 . If any of the discovered scripts are blacklisted, then a notification is communicated to a user along with an option for the user to allow the website and/or scripts related to the website, as in 306 .
- a string format of each of the discovered scripts is acquired, as in 320 .
- the string format of each script is analyzed to determine if the script relates to malware.
- the system determines if the script is related to malware. If the script is not related to malware, then the process ends. If the script is related to malware, then the script related to malware and/or the website are communicated to a network security engine, as in 328 .
- a notification is communicated to a user along with an option for the user to allow the website and/or scripts related to the website.
- FIG. 4 is an example flowchart illustrating possible operations of a flow 400 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 400 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a website is accessed.
- a string format of scripts for the website are discovered.
- the scripts can be discovered by using a webextension API (e.g., WebRequest listener, MutationObserver, etc.).
- the system determines if any of the discovered scripts are blacklisted.
- the system can determine if any of the scripts match an entry in suspicious script database 124 . If any of the discovered scripts are blacklisted, then the script and/or website are blocked, as in 408 . If any of the discovered scripts are not blacklisted, then a string format of each of the discovered scripts is acquired using an XML/HTTP request, as in 410 . At 412 , a REGEX analysis is performed on the string format for each script to determine if the script is related to malware. At 414 , the system determines if a script is related to malware. If a script is not related to malware, then the process ends. If a script is related to malware, then the script and/or website are communicated to a network security engine, as in 416 . At 408 , the script and/or website are blocked.
- FIG. 5 is an example flowchart illustrating possible operations of a flow 500 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 500 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a website is accessed.
- usage of the CPU and/or system resources is monitored.
- the system determines if usage of the CPU and/or system resources increase more than a threshold amount.
- the threshold amount can be set by the user or an administrator and may be over ninety percent usage of the CPU and/or system resources.
- FIG. 6 is an example flowchart illustrating possible operations of a flow 600 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 600 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a website is accessed.
- usage of the CPU and/or system resources are monitored.
- the system determines if usage of the CPU and/or system resources increase more than a threshold amount.
- the system determines if a predetermined amount of time has passed, as in 608 . If a predetermined amount of time has passed, then the process ends. If a predetermined amount of time has not passed, then usage of the CPU and/or system resources continues to be monitored, as in 604 .
- the predetermined amount of time can be set by the user or an administrator and may be one minute, three minutes, five minutes, etc. Generally, websites with cryptomining malware will begin using the CPU and/or system resources relatively quickly to gain the most benefit from the CPU and/or system resources.
- the system determines if an application related to the website is consuming the CPU and/or system resources, as in 610 . If an application not related to the website (e.g., a video editing application or some other CPU and/or system resources intensive application not related to the website) is consuming the CPU and/or system resources, then the process ends. If an application related to the website (e.g., a web browser) is consuming the CPU and/or system resources, then the website is reported to a network security engine for further analysis, as in 612 .
- an application related to the website e.g., a web browser
- FIG. 7 is an example flowchart illustrating possible operations of a flow 700 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 700 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a website is accessed.
- scripts for the website are acquired.
- the system determines if any of the discovered scripts are blacklisted. For example, the system can determine if any of the scripts match an entry in suspicious script database 124 .
- any of the scripts are blacklisted, then the script and/or website are blocked, as in 708 . If any of the scripts are not blacklisted, then a string format of each script is acquired, as in 710 .
- analysis is performed on the string format of each script to determine if a script is related to malware.
- the system determines if a script is related to malware. If a script is related to malware, then the script and/or website are communicated to a network security engine, as in 716 .
- the script and/or website are blocked. If a script is not related to malware, then usage of the CPU and/or system resources are monitored, as in 718 .
- the system determines if usage of the CPU and/or system resources increase more than a threshold amount. If usage of the CPU and/or system resources did not increase more than a threshold amount, then usage of the CPU and/or system resources continue to be monitored, as in 718 . If usage of the CPU and/or system resources did increase more than a threshold amount, then the website is reported to a network security engine for further analysis, as in 722 .
- FIG. 8 is an example flowchart illustrating possible operations of a flow 800 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 800 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a URL identifying a suspicious website and/or script is received.
- the suspicious website and/or script are analyzed to determine if the suspicious website and/or script are related to malware.
- the system determines if the suspicious website and/or script are related to malware. If the suspicious website and/or script are related to malware, then the website is added to a suspicious website database and/or the script is added to a suspicious script database, as in 808 .
- FIG. 9 is an example flowchart illustrating possible operations of a flow 900 that may be associated with the identification of malware, in accordance with an embodiment.
- one or more operations of flow 900 may be performed by security engine 118 , script string engine 136 , script analysis engine 138 , CPU and/or resource monitoring engine 140 , and REGEX analysis engine 144 .
- a URL identifying a suspicious website and/or script is received.
- the suspicious website and/or script are analyzed by an administrator to determine if the suspicious website and/or script are related to malware.
- the system or an administrator determines if the suspicious website and/or script are related to malware.
- an administrator can navigate to the website and investigate the website and scripts associated with the website to determine if the website and/or script are related to malware. If the suspicious website and/or script are not related to malware, then the process ends.
- the administrator may add the website and/or scripts to a clean database.
- the website can be added to allow website database 132 and the scripts can be added to allow script database 134 .
- the website is added to a suspicious website database and/or the script is added to a suspicious script database, as in 908 .
- the suspicious script is analyzed to determine if a current REGEX can be used to identify the script.
- the system or an administrator determines if a current REGEX can be used to identify the script. If the system (or administrator) determines a current REGEX can be used to identify the script, then the process ends. In an example, a check can be performed to ensure that the network element that sent the URL identifying the suspicious website and/or script has an updated REGEX to identify the suspicious website and/or script.
- a REGEX is created that is able to identify the suspicious script, as in 914 .
- the created REGEX is communicated to network elements to help the network elements identify suspicious websites and/or scripts.
- FIG. 10 illustrates a computing system 1000 that is arranged in a point-to-point (PtP) configuration according to an embodiment.
- FIG. 10 shows a system where processors, memory, and input/output devices are interconnected by a number of point-to-point interfaces.
- processors, memory, and input/output devices are interconnected by a number of point-to-point interfaces.
- one or more of the network elements of system 100 may be configured in the same or similar manner as computing system 1000 .
- system 1000 may include several processors, of which only two, processors 1002 a and 1002 b , are shown for clarity. While two processors 1002 a and 1002 b are shown, it is to be understood that an embodiment of system 1000 may also include only one such processor.
- Processors 1002 a and 1002 b may each include a set of cores (i.e., processors cores 1004 a and 1004 b and processors cores 1004 c and 1004 d ) to execute multiple threads of a program.
- the cores may be configured to execute instruction code in a manner similar to that discussed above with reference to FIGS. 1-8 .
- Each processor 1002 a and 1002 b may include at least one shared cache 1006 a and 1006 b respectively.
- Shared caches 1006 a and 1006 b may each store data (e.g., instructions) that are utilized by one or more components of processors 1002 a and 1002 b , such as processor cores 1004 a and 1004 b of processor 1002 a and processor cores 1004 c and 1004 d of processor 1002 b.
- Processors 1002 a and 1002 b may also each include integrated memory controller logic (MC) 1008 a and 1008 b respectively to communicate with memory elements 1010 a and 1010 b .
- Memory elements 1010 a and/or 1010 b may store various data used by processors 1002 a and 1002 b .
- memory controller logic 1008 a and 1008 b may be discrete logic separate from processors 1002 a and 1002 b.
- Processors 1002 a and 1002 b may be any type of processor and may exchange data via a point-to-point (PtP) interface 1012 using point-to-point interface circuits 1014 a and 1014 b respectively.
- Processors 1002 a and 1002 b may each exchange data with a chipset 1016 via individual point-to-point interfaces 1018 a and 1018 b using point-to-point interface circuits 1020 a - 1020 d .
- Chipset 1016 may also exchange data with a high-performance graphics circuit 1022 via a high-performance graphics interface 1024 , using an interface circuit 1026 , which could be a PtP interface circuit.
- any or all of the PtP links illustrated in FIG. 10 could be implemented as a multi-drop bus rather than a PtP link.
- Chipset 1016 may be in communication with a bus 1028 via an interface circuit 1030 .
- Bus 1028 may have one or more devices that communicate over it, such as a bus bridge 1032 and I/O devices 1034 .
- bus bridge 1032 may be in communication with other devices such as a keyboard/mouse 1038 (or other input devices such as a touch screen, trackball, etc.), communication devices 1040 (such as modems, network interface devices, or other types of communication devices that may communicate through a network), audio I/O devices 1042 , and/or a data storage device 1044 .
- Data storage device 1044 may store code 1046 , which may be executed by processors 1002 a and/or 1002 b .
- any portions of the bus architectures could be implemented with one or more PtP links.
- the computer system depicted in FIG. 10 is a schematic illustration of an embodiment of a computing system that may be utilized to implement various embodiments discussed herein. It will be appreciated that various components of the system depicted in FIG. 10 may be combined in a system-on-a-chip (SoC) architecture or in any other suitable configuration. For example, embodiments disclosed herein can be incorporated into systems including mobile devices such as smart cellular telephones, tablet computers, personal digital assistants, portable gaming devices, etc. It will be appreciated that these mobile devices may be provided with SoC architectures in at least some embodiments.
- SoC system-on-a-chip
- FIG. 11 is a simplified block diagram associated with an example ecosystem SOC 1100 of the present disclosure.
- At least one example implementation of the present disclosure can include the device pairing in a local network features discussed herein and an ARM component.
- the example of FIG. 11 can be associated with any ARM core (e.g., A-9, A-15, etc.).
- the architecture can be part of any type of tablet, smartphone (inclusive of AndroidTM phones, iPhonesTM), iPadTM, Google NexusTM, Microsoft SurfaceTM, personal computer, server, video processing components, laptop computer (inclusive of any type of notebook), UltrabookTM system, any type of touch-enabled input device, etc.
- ecosystem SOC 1100 may include multiple cores 1102 a and 1102 b , an L2 cache control 1104 , a graphics processing unit (GPU) 1106 , a video codec 1108 , a liquid crystal display (LCD) I/F 1110 and an interconnect 1112 .
- L2 cache control 1104 can include a bus interface unit 1114 , a L2 cache 1116 .
- Liquid crystal display (LCD) I/F 1110 may be associated with mobile industry processor interface (MIPI)/high-definition multimedia interface (HDMI) links that couple to an LCD.
- MIPI mobile industry processor interface
- HDMI high-definition multimedia interface
- Ecosystem SOC 1100 may also include a subscriber identity module (SIM) I/F 1118 , a boot read-only memory (ROM) 1120 , a synchronous dynamic random-access memory (SDRAM) controller 1122 , a flash controller 1124 , a serial peripheral interface (SPI) master 1128 , a suitable power control 1130 , a dynamic RAM (DRAM) 1132 , and flash 1134 .
- SIM subscriber identity module
- ROM read-only memory
- SDRAM synchronous dynamic random-access memory
- SPI serial peripheral interface
- suitable power control 1130 a dynamic RAM (DRAM) 1132
- flash 1134 a flash 1134
- one or more embodiments include one or more communication capabilities, interfaces, and features such as instances of BluetoothTM 1136 , a 3G modem 0138 , a global positioning system (GPS) 1140 , and an 802.11 Wi-Fi 1142 .
- GPS global positioning system
- the example of FIG. 11 can offer processing capabilities, along with relatively low power consumption to enable computing of various types (e.g., mobile computing, high-end digital home, servers, wireless infrastructure, etc.).
- such an architecture can enable any number of software applications (e.g., AndroidTM, Adobe® Flash® Player, Java Platform Standard Edition (Java SE), JavaFX, Linux, Microsoft Windows Embedded, Symbian and Ubuntu, etc.).
- the core processor may implement an out-of-order superscalar pipeline with a coupled low-latency level-2 cache.
- FIG. 12 illustrates a processor core 1200 according to an embodiment.
- Processor core 1200 may be the core for any type of processor, such as a microprocessor, an embedded processor, a digital signal processor (DSP), a network processor, or other device to execute code.
- DSP digital signal processor
- FIG. 12 a processor may alternatively include more than one of the processor core 1200 illustrated in FIG. 12 .
- processor core 1200 represents one example embodiment of processors cores 1004 a - 1004 d shown and described with reference to processors 1002 a and 1002 b of FIG. 10 .
- Processor core 1200 may be a single-threaded core or, for at least one embodiment, processor core 1200 may be multithreaded in that it may include more than one hardware thread context (or “logical processor”) per core.
- FIG. 12 also illustrates a memory 1202 coupled to processor core 1200 in accordance with an embodiment.
- Memory 1202 may be any of a wide variety of memories (including various layers of memory hierarchy) as are known or otherwise available to those of skill in the art.
- Memory 1202 may include code 1204 , which may be one or more instructions, to be executed by processor core 1200 .
- Processor core 1200 can follow a program sequence of instructions indicated by code 1204 .
- Each instruction enters a front-end logic 1206 and is processed by one or more decoders 1208 .
- the decoder may generate, as its output, a micro operation such as a fixed width micro operation in a predefined format, or may generate other instructions, microinstructions, or control signals that reflect the original code instruction.
- Front-end logic 1206 also includes register renaming logic 1210 and scheduling logic 1212 , which generally allocate resources and queue the operation corresponding to the instruction for execution.
- Processor core 1200 can also include execution logic 1214 having a set of execution units 1216 - 1 through 1216 -N. Some embodiments may include a number of execution units dedicated to specific functions or sets of functions. Other embodiments may include only one execution unit or one execution unit that can perform a particular function. Execution logic 1214 performs the operations specified by code instructions.
- back-end logic 1218 can retire the instructions of code 1204 .
- processor core 1200 allows out of order execution but requires in order retirement of instructions.
- Retirement logic 1220 may take a variety of known forms (e.g., re-order buffers or the like). In this manner, processor core 1200 is transformed during execution of code 1204 , at least in terms of the output generated by the decoder, hardware registers and tables utilized by register renaming logic 1210 , and any registers (not shown) modified by execution logic 1214 .
- a processor may include other elements on a chip with processor core 1200 , at least some of which were shown and described herein with reference to FIG. 10 .
- a processor may include memory control logic along with processor core 1200 .
- the processor may include I/O control logic and/or may include I/O control logic integrated with memory control logic.
- FIGS. 3-9 illustrate only some of the possible correlating scenarios and patterns that may be executed by, or within, system 100 . Some of these operations may be deleted or removed where appropriate, or these operations may be modified or changed considerably without departing from the scope of the present disclosure. In addition, a number of these operations have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered considerably.
- the preceding operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by system 100 in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the present disclosure.
- system 100 has been illustrated with reference to particular elements and operations that facilitate the communication process, these elements and operations may be replaced by any suitable architecture, protocols, and/or processes that achieve the intended functionality of system 100
- Example M1 is a method including identifying a website, determining scripts associated with the website, blocking the website if a script associated with the website is blacklisted, obtaining a string format of each of the determined scripts associated with the website, analyzing the string format of each of the determined scripts to determine if a specific script is related to malware, and blocking the website if the specific script is related to malware.
- Example M2 the subject matter of Example M1 can optionally include sending one or more uniform resource locators associated with the website to a network security engine for further analysis when usage of a computer processing unit increases more than a threshold amount during access to the website.
- Example M3 the subject matter of any one of the Examples M1-M2 can optionally include where the malware is cryptomining malware.
- Example M4 the subject matter of any one of the Examples M1-M3 can optionally include where the scripts associated with the website are determined using a webextension application programming interface.
- Example M5 the subject matter of any one of the Examples M1-M4 can optionally include where the string format of each of the determined scripts associated with the website is obtained using an Extensible Markup Language/Hypertext Transfer Protocol request.
- Example M6 the subject matter of any one of the Examples M1-M5 can optionally include where the string format of each of the determined scripts associated with the website are analyzed using a regular expression analysis to determine if the specific script is related to malware.
- Example M7 the subject matter of any one of the Examples M1-M6 can optionally include adding the specific script to a suspicious script database.
- Example C1 is at least one machine readable storage medium having one or more instructions that when executed by at least one processor, cause the at least one processor to identify a website, determine scripts associated with the website, block the website if a script associated with the website is blacklisted, obtain a string format of each of the determined scripts associated with the website, analyze the string format of each of the determined scripts to determine if a specific script is related to malware, and block the website if the specific script is related to malware.
- Example C2 the subject matter of Example C1 can optionally include where the one or more instructions that when executed by the at least one processor, further cause the processor to determine if usage of a computer processing unit increases more than a threshold amount during access to the website and send one or more uniform resource locators associated with the website to a network security engine for further analysis when usage of the computer processing unit increases more than a threshold amount during access to the website.
- Example C3 the subject matter of any one of Examples C1-C2 can optionally include where the malware is cryptomining malware.
- Example C4 the subject matter of any one of Examples C1-C3 can optionally include where the scripts associated with the website are determined using a webextension application programming interface.
- Example C5 the subject matter of any one of Examples C1-C4 can optionally include where the string format of each of the determined scripts associated with the website is obtained using an Extensible Markup Language/Hypertext Transfer Protocol request.
- Example C6 the subject matter of any one of Example C1-C5 can optionally include where the string format of each of the determined scripts associated with the website are analyzed using a regular expression analysis to determine if the specific script is related to malware.
- Example C7 the subject matter of any one of Examples C1-C6 can optionally include where the one or more instructions that when executed by the at least one processor, further cause the processor to add the specific script to a suspicious script database.
- an apparatus to determine a presence of cryptomining malware can include memory, at least one processor, and a security engine.
- the security engine can be configured to identify a website, determine one or more uniform resource locators associated with the website, block the website if a uniform resource locator associated with the website is blacklisted, determine scripts associated with the website, block the website if a script associated with the website is blacklisted, obtain a string format of each of the determined scripts associated with the website, analyze the string format of each of the determined scripts to determine if a specific script is related to malware, and block the website if the specific script is related to malware.
- Example A2 the subject matter of Example A1 can optionally include where the security engine is further configured to determine if usage of a computer processing unit increases more than a threshold amount during access to the website and send the one or more uniform resource locators associated with the website to a network security engine for further analysis when usage of the computer processing unit increases more than a threshold amount during access to the website.
- Example A3 the subject matter of any one of Examples A1-A2 can optionally include where the scripts associated with the website are determined using a webextension application programming interface.
- Example A4 the subject matter of any one of Examples A1-A3 can optionally include where the string format of each of the determined scripts associated with the website is obtained using an Extensible Markup Language/Hypertext Transfer Protocol request.
- Example A5 the subject matter of any one of Examples A1-A4 can optionally include where the string format of each of the determined scripts associated with the website are analyzed using a regular expression analysis to determine if the specific script is related to malware.
- Example A6 the subject matter of any one of Examples A1-A5 can optionally include where the security engine is further configured to add the specific script to a suspicious script database.
- Example X1 is a machine-readable storage medium including machine-readable instructions to implement a method or realize an apparatus as in any one of the Examples A1-A7, or M1-M7.
- Example Y1 is an apparatus comprising means for performing of any of the Example methods M1-M7.
- the subject matter of Example Y1 can optionally include the means for performing the method comprising a processor and a memory.
- Example Y3 the subject matter of Example Y2 can optionally include the memory comprising machine-readable instructions.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/145,945 US11182480B2 (en) | 2018-09-28 | 2018-09-28 | Identification of malware |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/145,945 US11182480B2 (en) | 2018-09-28 | 2018-09-28 | Identification of malware |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200104489A1 US20200104489A1 (en) | 2020-04-02 |
US11182480B2 true US11182480B2 (en) | 2021-11-23 |
Family
ID=69947626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/145,945 Active 2038-12-10 US11182480B2 (en) | 2018-09-28 | 2018-09-28 | Identification of malware |
Country Status (1)
Country | Link |
---|---|
US (1) | US11182480B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11695772B1 (en) * | 2022-05-03 | 2023-07-04 | Capital One Services, Llc | System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090049010A1 (en) * | 2007-08-13 | 2009-02-19 | Chandra Bodapati | Method and system to enable domain specific search |
US8185956B1 (en) * | 2008-03-31 | 2012-05-22 | Symantec Corporation | Real-time website safety reputation system |
US8903941B1 (en) * | 2009-09-14 | 2014-12-02 | Symantec Corporation | Method and apparatus for safe web browsing |
US20150200961A1 (en) * | 2014-01-15 | 2015-07-16 | International Business Machines Corporation | Determination and classification of defense measures in web applications |
US20150356524A1 (en) * | 2014-06-04 | 2015-12-10 | MONI Limited | System and method for executing financial transactions |
US20160164714A1 (en) * | 2014-12-08 | 2016-06-09 | Tata Consultancy Services Limited | Alert management system for enterprises |
US9398032B1 (en) * | 2009-07-09 | 2016-07-19 | Trend Micro Incorporated | Apparatus and methods for detecting malicious scripts in web pages |
US20170339165A1 (en) * | 2013-04-22 | 2017-11-23 | Imperva, Inc. | Automatic generation of attribute values for rules of a web application layer attack detector |
US20180012256A1 (en) * | 2016-07-06 | 2018-01-11 | Hiro Media Ltd. | Real-time monitoring of ads inserted in real-time into a web page |
US20180139180A1 (en) * | 2016-07-06 | 2018-05-17 | Hiro Media Ltd. | Real-time monitoring of web page code |
US20190243970A1 (en) * | 2018-02-06 | 2019-08-08 | AO Kaspersky Lab | System and method of detecting hidden behavior of a browser extension |
US20190364057A1 (en) * | 2018-05-24 | 2019-11-28 | Allot Communications Ltd. | System, device, and method of detecting cryptocurrency mining activity |
-
2018
- 2018-09-28 US US16/145,945 patent/US11182480B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090049010A1 (en) * | 2007-08-13 | 2009-02-19 | Chandra Bodapati | Method and system to enable domain specific search |
US8185956B1 (en) * | 2008-03-31 | 2012-05-22 | Symantec Corporation | Real-time website safety reputation system |
US9398032B1 (en) * | 2009-07-09 | 2016-07-19 | Trend Micro Incorporated | Apparatus and methods for detecting malicious scripts in web pages |
US8903941B1 (en) * | 2009-09-14 | 2014-12-02 | Symantec Corporation | Method and apparatus for safe web browsing |
US20170339165A1 (en) * | 2013-04-22 | 2017-11-23 | Imperva, Inc. | Automatic generation of attribute values for rules of a web application layer attack detector |
US20150200961A1 (en) * | 2014-01-15 | 2015-07-16 | International Business Machines Corporation | Determination and classification of defense measures in web applications |
US20150356524A1 (en) * | 2014-06-04 | 2015-12-10 | MONI Limited | System and method for executing financial transactions |
US20160164714A1 (en) * | 2014-12-08 | 2016-06-09 | Tata Consultancy Services Limited | Alert management system for enterprises |
US20180012256A1 (en) * | 2016-07-06 | 2018-01-11 | Hiro Media Ltd. | Real-time monitoring of ads inserted in real-time into a web page |
US20180139180A1 (en) * | 2016-07-06 | 2018-05-17 | Hiro Media Ltd. | Real-time monitoring of web page code |
US20190243970A1 (en) * | 2018-02-06 | 2019-08-08 | AO Kaspersky Lab | System and method of detecting hidden behavior of a browser extension |
US20190364057A1 (en) * | 2018-05-24 | 2019-11-28 | Allot Communications Ltd. | System, device, and method of detecting cryptocurrency mining activity |
Non-Patent Citations (3)
Title |
---|
DSM, Cryptojacking: The Threat, Detection, and Prevention, Aug. 23, 2008, pp. 1-7. (Year: 2008). * |
Mansoori et al, Empirical Analysis of Impact of HTTP Refereron Malicious Website Behavior and Delivery, IEEE, Mar. 25, 2016, pp. 941-948. (Year: 2016). * |
Mursch, How to Find Cryptojacking Malware, Feb. 7, 2018, pp. 1-7. (Year: 2018). * |
Also Published As
Publication number | Publication date |
---|---|
US20200104489A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11328063B2 (en) | Identification of malicious execution of a process | |
US20220046020A1 (en) | Security service for an unmanaged device | |
US10176344B2 (en) | Data verification using enclave attestation | |
US20210029150A1 (en) | Determining a reputation for a process | |
JP6526842B2 (en) | Malware detection | |
US9712545B2 (en) | Detection of a malicious peripheral | |
CN107960126B (en) | Exploit detection based on analytic events | |
US20160379003A1 (en) | Protection of sensitive data | |
US9961102B2 (en) | Detection of stack pivoting | |
US20150379268A1 (en) | System and method for the tracing and detection of malware | |
US20180007070A1 (en) | String similarity score | |
US10129291B2 (en) | Anomaly detection to identify malware | |
US11627145B2 (en) | Determining a reputation of data using a data visa including information indicating a reputation | |
US11182480B2 (en) | Identification of malware | |
US10963561B2 (en) | System and method to identify a no-operation (NOP) sled attack | |
US11386205B2 (en) | Detection of malicious polyglot files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MCAFEE, LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PARK, WILLIAM;CHAN, JASON;LI, WILSON SHING-HAY;REEL/FRAME:047007/0252 Effective date: 20180925 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT, NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:059354/0335 Effective date: 20220301 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, NEW YORK Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MCAFEE, LLC;REEL/FRAME:060792/0307 Effective date: 20220301 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |