US10616308B2 - Systems and methods for harmful file rating and screening in online file transfers - Google Patents
Systems and methods for harmful file rating and screening in online file transfers Download PDFInfo
- Publication number
- US10616308B2 US10616308B2 US15/372,694 US201615372694A US10616308B2 US 10616308 B2 US10616308 B2 US 10616308B2 US 201615372694 A US201615372694 A US 201615372694A US 10616308 B2 US10616308 B2 US 10616308B2
- Authority
- US
- United States
- Prior art keywords
- torrent
- content
- file
- computing device
- identifier
- 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
Images
Classifications
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- 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/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- 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
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H04L67/2819—
-
- H04L67/42—
-
- 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/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
Definitions
- the present disclosure relates generally to systems and methods for providing security on computing devices, and specifically, to systems and methods for harmful file rating and screening in online file transfers.
- peers-to-peer file transfer protocols e.g., such as BitTorrentTM
- computing devices are vulnerable to security risks associated with the content being downloaded and processed.
- each file to be downloaded is divided into small information chunks called pieces or portions. These pieces are distributed amongst a number of peers, which collectively, are called a swarm.
- the computing device desiring to download the file may simultaneously request multiple pieces from different computers in the swarm. Upon being downloaded, these pieces may be made available for download by others in the swarm. Once all the pieces are obtained by the computing device, they can be re-assembled to form the original file or content desired.
- the BitTorrentTM protocol provides for a metadata file called a torrent file (e.g., with a .torrent file extension) that contains information about the content to be downloaded.
- This metadata may include the file names, sizes, folder structure, and cryptographic hash values (e.g., for verifying file integrity) of the content.
- the torrent file is associated with the content to be downloaded, but it does not contain the content itself.
- the torrent file may include information about the network locations of trackers.
- Trackers are network computers that assist computing devices find each other and form efficient swarms.
- a computing device may first obtain the corresponding torrent file by downloading it. Then, the computing device may be configured to have a BitTorrentTM client application process the torrent file. To learn the Internet locations of peers which may be sharing pieces, the client application connects to the trackers named in the torrent file (e.g., by providing a hash of the torrent to the tracker so that the tracker can identify the torrent file). Then the client connects directly to the peers in order to request pieces participate in a swarm. The client may also report progress to trackers, to help the tracker with its peer recommendations.
- BitTorrentTM client application process the torrent file.
- the client application connects to the trackers named in the torrent file (e.g., by providing a hash of the torrent to the tracker so that the tracker can identify the torrent file). Then the client connects directly to the peers in order to request pieces participate in a swarm. The client may also report progress to trackers, to help the tracker with its peer recommendations.
- BitTorrentTM protocol may operate in various configurations. For example, some torrents may be considered “trackerless”. In such configurations, trackers may not be required to provide the Internet locations of peers in the swarm. Instead, peers in the swarm may be stored as information in a Distributed Hash Table (DHT), and the hash of the torrent file may be used as a key in an entry of the DHT.
- DHT Distributed Hash Table
- the torrent client application may be part of a DHT network, so it may generate a hash of the torrent file and use it as a key to look up values for Internet locations of peers in the swarm in the DHT.
- a torrent file need not be directly downloaded and processed by the torrent client.
- a “magnet link” that incorporates the hash of the torrent file may be included directly into the Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) that may be processed by a web browser on the computing device.
- URI Uniform Resource Identifier
- URL Uniform Resource Locator
- the computing device may directly open the torrent client application available thereon.
- the torrent client application can then access the DHT to look up the Internet locations of participants in the swarm to start downloading pieces of the desired content.
- FIG. 1 is a block diagram of a system for screening files during online file transfers, in accordance with at least one embodiment of the present invention
- FIG. 2 is a flowchart diagram illustrating steps performed by a computing device and a content screening server when screening files during online file transfers, in accordance with at least one embodiment of the present invention
- FIG. 3 is a flowchart diagram illustrating steps performed by a content screening server and torrent servers when the content screening server retrieves rating information for content associated with a torrent file from the torrent servers, in accordance with at least one embodiment of the present invention
- FIG. 4 is a flowchart diagram illustrating steps performed by a content screening server and anti-virus servers when the content screening server retrieves rating information for content associated with a torrent file from anti-virus servers, in accordance with at least one embodiment of the present invention.
- FIG. 5 is an example user interface showing a warning screen at a computing device for when a potential harmful file is detected, in accordance with at least one embodiment of the present invention.
- a method of screening files during online file transfers at a computing device includes: identifying a torrent identifier for a torrent file, the torrent file being associated with content to be processed at the computing device; using the torrent identifier to search a data store, the data store having data indicating characteristics of the content associated with the torrent file, wherein the search locates the data indicating characteristics of the content associated with the torrent file in the data store; and based on the located data, controlling whether to process the content associated with the torrent file at the computing device.
- the data store is provided at a server, and to search the data store using the torrent identifier, the method further includes: transmitting the torrent identifier to the server, wherein the server is configured to determine the data indicating characteristics of the content associated with the torrent file in the data store, for transmission to the computing device; and receiving, from the server, the data indicating characteristics of the content associated with the content file.
- the data store is provided at the computing device.
- the torrent identifier is detected on a webpage received from a web server.
- the identifying the torrent identifier includes intercepting a request to download the torrent file initiated at the computing device, and wherein the request includes the torrent identifier.
- the request is initiated using a web browser on the computing device, and the intercepting is performed by the web browser determining that a Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) to be processed for the request includes the torrent identifier.
- URI Uniform Resource Identifier
- URL Uniform Resource Locator
- the intercepting is performed by a firewall prior to the request reaching a destination computing device from which the torrent file can be downloaded.
- the identifying the torrent identifier includes: scanning downloaded files for the torrent file, the scanning being performed based on file properties of the downloaded files; and upon locating the torrent file, parsing the torrent file for the torrent identifier.
- the file properties used to perform the scanning include the Internet media (MIME) type of the downloaded files.
- the data indicating characteristics of the content associated with the torrent file includes information indicating whether the content is safe for download to the computing device.
- the content associated with the torrent file includes a media file, and wherein the data indicating characteristics of the content includes information indicating the playback quality of the media file.
- the data indicating characteristics of the content associated with the torrent file is derived from a plurality of external torrent servers providing access to the torrent file.
- the method further includes: scanning the external torrent servers to obtain respective rating information for the content associated with the torrent file; and generating a combined rating for the content associated with the torrent file, based on the respective rating information obtained from the external torrent servers.
- the combined rating includes an average of the respective rating information obtained from the external torrent servers.
- the method further includes: determining an age of the rating information obtained from the external torrent servers; and wherein, the combined rating includes a weighted average of the respective rating information obtained from the external torrent servers, with older rating information being weighted more heavily in the weighted average.
- the torrent file includes an ‘info’ portion
- the torrent identifier includes an ‘info_hash’ of the ‘info’ portion.
- the torrent identifier includes a hash of the torrent file.
- the method further includes: identifying a content identifier associated with the content to be downloaded to the computing device; using the content identifier to perform a search for additional data that indicates characteristics of the content associated with the torrent file, wherein the search locates the additional data indicating characteristics of the content associated with the torrent file; wherein, the controlling whether to process the content at the computing device is performed in part based on the additional data.
- the content identifier includes a hash of the content associated with the torrent file.
- the content identifier is embedded within the torrent file, and the identifying the content identifier includes parsing the torrent file to locate the content identifier.
- the content associated with the torrent file is downloaded to the computing device, and the identifying the content identifier includes deriving the content identifier from the downloaded content.
- the additional data is derived from a plurality of external anti-virus servers configured to return information about the characteristics of the content based on the content identifier.
- the data indicating characteristics of the content, as determined from the torrent identifier, and the additional data indicating characteristics of the content, as determined from the content identifier have overlapping information.
- the content associated with the torrent file includes a plurality of files, and wherein the data indicating characteristics of the content includes a plurality of rating information that are each associated with a corresponding file of the plurality of files.
- the controlling whether to process the content includes determining whether to download the content to the computing device. In some embodiments, the controlling whether to process the content includes determining whether to open the content after the content has been downloaded to the computing device.
- a method of screening files during online file transfers at a server includes the server: receiving a torrent identifier for a torrent file from a computing device, the torrent file being associated with content to be processed at the computing device; determining, using the torrent identifier, data indicating characteristics of the content associated with the torrent file; and transmitting the data indicating characteristics of the content associated with the torrent file to the computing device, wherein based on the transmitted data, the computing device controls whether to process the content associated with the torrent file at the computing device.
- a computing device having a processor and a memory storing instructions for screening files during online file transfers, wherein when the instructions are executed by the processor, the processor: identifies a torrent identifier for a torrent file, the torrent file being associated with content to be processed at the computing device; uses the torrent identifier to search a data store, the data store having data indicating characteristics of the content associated with the torrent file, wherein the search locates the data indicating characteristics of the content associated with the torrent file in the data store; and based on the located data, controls whether to process the content associated with the torrent file at the computing device.
- the data store is provided at a server, and to search the data store using the torrent identifier, and the processor is further configured to: transmit the torrent identifier to the server, wherein the server is configured to determine the data indicating characteristics of the content associated with the torrent file in the data store, for transmission to the computing device; and receive, from the server, the data indicating characteristics of the content associated with the content file.
- the data store is provided at the computing device.
- the torrent identifier is detected on a webpage received from a web server.
- the identifying the torrent identifier includes intercepting a request to download the torrent file initiated at the computing device, and wherein the request includes the torrent identifier.
- the request is initiated using a web browser on the computing device, and the intercepting is performed by the web browser determining that a Uniform Resource Identifier (URI) or Uniform Resource Locator (URL) to be processed for the request includes the torrent identifier.
- URI Uniform Resource Identifier
- URL Uniform Resource Locator
- the intercepting is performed by a firewall prior to the request reaching a destination computing device from which the torrent file can be downloaded.
- the identifying the torrent identifier includes the processor: scanning downloaded files for the torrent file, the scanning being performed based on file properties of the downloaded files; and upon locating the torrent file, parsing the torrent file for the torrent identifier.
- the file properties used to perform the scanning include the Internet media (MIME) type of the downloaded files.
- the data indicating characteristics of the content associated with the torrent file includes information indicating whether the content is safe for download to the computing device.
- the content associated with the torrent file includes a media file, and wherein the data indicating characteristics of the content includes information indicating the playback quality of the media file.
- the data indicating characteristics of the content associated with the torrent file is derived from a plurality of external torrent servers providing access to the torrent file.
- the processor is further configured to: scan the external torrent servers to obtain respective rating information for the content associated with the torrent file; and generate a combined rating for the content associated with the torrent file, based on the respective rating information obtained from the external torrent servers.
- the combined rating includes an average of the respective rating information obtained from the external torrent servers.
- the processor is further configured to: determine an age of the rating information obtained from the external torrent servers; and wherein, the combined rating includes a weighted average of the respective rating information obtained from the external torrent servers, with older rating information being weighted more heavily in the weighted average.
- the torrent file includes an ‘info’ portion
- the torrent identifier includes an ‘info_hash’ of the ‘info’ portion.
- the torrent identifier includes a hash of the torrent file.
- the processor is further configured to: identify a content identifier associated with the content to be downloaded to the computing device; use the content identifier to perform a search for additional data that indicates characteristics of the content associated with the torrent file, wherein the search locates the additional data indicating characteristics of the content associated with the torrent file; wherein, the control of whether to process the content at the computing device is performed in part based on the additional data.
- the content identifier includes a hash of the content associated with the torrent file.
- the content identifier is embedded within the torrent file, and the identifying the content identifier includes parsing the torrent file to locate the content identifier.
- the content associated with the torrent file is downloaded to the computing device, and the identifying the content identifier includes deriving the content identifier from the downloaded content.
- the additional data is derived from a plurality of external anti-virus servers configured to return information about the characteristics of the content based on the content identifier.
- the data indicating characteristics of the content, as determined from the torrent identifier, and the additional data indicating characteristics of the content, as determined from the content identifier have overlapping information.
- the content associated with the torrent file includes a plurality of files, and wherein the data indicating characteristics of the content includes a plurality of rating information that are each associated with a corresponding file of the plurality of files.
- the controlling whether to process the content includes determining whether to download the content to the computing device. In some embodiments, the controlling whether to process the content includes determining whether to open the content after the content has been downloaded to the computing device.
- a server including a processor and a memory storing instructions for screening files during online file transfers at a computing device, wherein when the instructions are executed by the processor, the server: receives a torrent identifier for a torrent file from the computing device, the torrent file being associated with content to be processed at the computing device; determines, using the torrent identifier, data indicating characteristics of the content associated with the torrent file; and transmits the data indicating characteristics of the content associated with the torrent file to the computing device, wherein based on the transmitted data, the computing device controls whether to process the content associated with the torrent file at the computing device.
- a computer readable medium storing instructions for screening files during online file transfers at a computing device, wherein when the instructions are executed by a processor of the computing device, the instructions cause the processor to: identify a torrent identifier for a torrent file, the torrent file being associated with content to be processed at the computing device; use the torrent identifier to search a data store, the data store having data indicating characteristics of the content associated with the torrent file, wherein the search locates the data indicating characteristics of the content associated with the torrent file in the data store; and based on the located data, control whether to process the content associated with the torrent file at the computing device.
- a computer readable medium storing instructions for screening files during online file transfers at a computing device, wherein when the instructions are executed by a processor of a server, the instructions cause the server to: receive a torrent identifier for a torrent file from the computing device, the torrent file being associated with content to be processed at the computing device; determine, using the torrent identifier, data indicating characteristics of the content associated with the torrent file; and transmit the data indicating characteristics of the content associated with the torrent file to the computing device, wherein based on the transmitted data, the computing device controls whether to process the content associated with the torrent file at the computing device.
- a system for screening files during online file transfers including: a computing device including a processor and a memory storing instructions for screening files during online file transfers; and a server including a data store, the data store having data indicating characteristics of the content associated with a torrent file; wherein when the instructions are executed by the processor of the computing device, the processor: identifies a torrent identifier for the torrent file, the torrent file being associated with content to be processed at the computing device; and transmits the torrent identifier to the server.
- the server receives the torrent identifier from the computing device; determines, using the torrent identifier, data indicating characteristics of the content associated with the torrent file from the data store; and transmits the data indicating characteristics of the content associated with the torrent file to the computing device.
- the instructions stored at the computing device then further configure the processor of the computing device to: based on the data received from the server, control whether to process the content associated with the torrent file at the computing device.
- embodiments of the methods described herein may be implemented in hardware or software, or a combination of both.
- embodiments may be implemented in one or more computer programs executing on one or more programmable computing devices (e.g., the various devices and servers discussed below) including at least one processor (e.g., a microprocessor), a data storage device (including in some cases volatile and non-volatile memory and/or data storage elements), at least one communications interface (e.g., a network interface card for wired or wireless network communications), at least one input device, and at least one output device.
- the programmable computing devices may be a personal computer, laptop, personal data assistant, cellular telephone, smartphone device, tablet computer, smartwatch, and/or wireless device. Additional examples of programmable computing devices are also discussed below.
- Program code is applied to input data to perform the functions described herein and generate output information.
- the output information is applied to one or more output devices.
- each program, module, or application may be implemented in a high level procedural or object oriented programming and/or scripting language to communicate with a computer system.
- the programs can be implemented in assembly or machine language, if desired.
- the language may be a compiled or interpreted language.
- embodiments of the disclosure may be implemented in any computer programming language provided that the operating system (O/S) provides the facilities that may support the present disclosure.
- O/S operating system
- an embodiment of the present disclosure may be implemented in part in the JAVATM computer programming language (or other computer programming languages such as C or C++), but the web-related components of the present disclosure may more commonly be implemented using scripting languages typical for web development environments (e.g., JavaScript for client-side applications and PHP/Python/Perl for server-side applications).
- scripting languages typical for web development environments
- JavaScript for client-side applications
- PHP/Python/Perl for server-side applications
- the computing devices and methods as described herein may also be implemented as a transitory or non-transitory computer-readable storage medium configured with a computer program, wherein the storage medium so configured causes a computing device to operate in a specific and predefined manner to perform at least some of the functions as described herein.
- the medium may be provided in various forms, including one or more diskettes, compact disks, tapes, chips, wireline transmissions, satellite transmissions, internet transmission or downloadings, magnetic and electronic storage media, digital and analog signals, and the like.
- the computer useable instructions may also be in various forms, including compiled, non-compiled, bytecode, or other forms in which the instructions may be interpreted or translated.
- the subject system may be implemented as one or more software components stored on one or more computer servers that are accessible via one or more client machines in a client-server architecture.
- the system can be considered to be a hosted software offering or a software service in a software-as-a-service deployment.
- the system 100 may include a computing device 110 that is attempting to process content associated with a torrent file, and a content screening server 130 for providing data indicating characteristics of such content to the computing device 110 .
- the system 100 may also include one or more torrent servers 150 (only one is shown) and one or more swarm computing devices 120 (only one is shown), which partake in the peer-to-peer sharing of content associated with a torrent file with the computing device 110 .
- the system 100 may include one or more anti-virus servers 170 (only one is shown) that stores rating information for the content.
- Each of the computing device 110 , swarm computing device 120 , content screening server 130 , torrent server 150 , and anti-virus server 170 may be connected to a communications network such as the Internet 190 for facilitating communications.
- the term “content” relates to any electronic subject matter that may be the payload of a torrent file.
- such content may include one or more electronic files or folders.
- peer-to-peer protocols may be used to distribute files of many different types. Examples of types of files that may be distributed include academic papers or search results, open source software, or media files.
- the computing devices 110 may be various programmable computing devices (examples of which were noted above) that are configured with a torrent client 114 that acts as a client device in a peer-to-peer protocol such as BitTorrentTM.
- client devices in the BitTorrentTM protocol may, using browser 112 , first communicate with a torrent server 150 to identify a torrent file 155 that is associated with content desired to be processed at the computing device 110 .
- the torrent client 114 may process it to identify peer swarm computing devices 120 (e.g., through the use of trackers) that make available portions of the content 118 ′ residing thereon to be downloaded to the computing device 110 .
- the swarm computing device 120 may itself be executing a torrent client 114 ′, and the content portions 118 ′ to be downloaded to the computing device 110 may be stored on the file system 126 of the swarm computing device 120 .
- the content filter 105 may intervene to control whether the computing device 110 processes the content associated with the torrent file 155 obtained from the torrent server 150 . If content portions 118 are able to be downloaded, they would be stored on a file system 116 of computing device 110 .
- Various ways in which the content filter 105 may control whether the computing device 110 processes the potentially-harmful content is discussed below in the context of step 265 of FIG. 2 .
- the content filter 105 may be implemented as a software application (e.g., an anti-virus software application), a background process, a firewall, a browser plug-in, a plug-in component of a torrent client 114 , or any combination thereof. If implemented as a firewall, there may be different forms taken (e.g., as a software firewall executing on the computing device 110 , and/or as a software module executing on separate hardware off of the computing device 110 (not shown)). As discussed below with respect to step 205 of FIG. 2 , the way in which the content filter 105 is implemented may affect how it determines if a torrent file is being attempted to be processed at the computing device 110 .
- a software application e.g., an anti-virus software application
- a background process e.g., a firewall, a browser plug-in, a plug-in component of a torrent client 114 , or any combination thereof.
- a firewall there may be different forms taken (e.g., as a software firewall
- the content screening server 130 may be a suitable computing server that is configured to make available a content filter Application Programming Interface (API) 132 to be accessible by the content filter 105 on the computing device 110 .
- API Application Programming Interface
- the content filter API 132 may read data characteristics associated with the content from the content rating database 136 or the torrent rating database 138 , and provide such data to the content filter 105 so that it may use it to control whether the content is processed at the computing device 110 .
- the content rating database 136 may contain content-specific rating information 137 for various content.
- the combined content-specific rating information 137 may be indexed by content identifiers such as a hash of the content.
- the torrent rating database 138 may contain combined torrent-related rating information 139 for torrent files 155 .
- the combined torrent-related rating information 139 may be indexed by a torrent identifier such as a hash of the torrent.
- the combined torrent-related rating information 139 may not only refer to the quality or safety of the content associated with the torrent file 155 , but it may also contain data about characteristics of the content that is specific to the file type of the content. For example, where the content associated with the torrent file 155 is a media file, the combined torrent-related rating information 139 may indicate the playback quality of the media file.
- the combined torrent-related rating information 139 may include information related to the download process for the content such as the number of seeds making available complete copies of the content or the “availability” of the content (e.g., the number of distributed copies of the content potentially spread amongst multiple peers).
- the content screening server 130 may be provided with a rating application 134 that communicates with torrent server 150 and anti-virus server 170 to obtain rating information.
- the rating application 134 may communicate with a torrent web server 150 that makes normally also makes torrent files 155 available to torrent clients 114 .
- the rating application 134 may make requests of one or more torrent servers 150 , download such information for storage in torrent rating database 138 , and generate combined torrent-related rating information 139 for returning to the content filter 105 on computing device 110 when requested.
- the rating application 134 may also make requests of one or more anti-virus servers 170 to obtain content-specific rating information, download such information onto content rating database 136 , and generate combined content-specific rating information 137 for returning to content filter 105 on computing device 110 when requested.
- While the content filter API 132 and the rating application 134 are illustrated and discussed herein as separate modules, it will be appreciated that in alternate embodiments, the functionality provided by the different modules may be combined together into a single module or further separated into more than the described two modules, depending on the nature of the implementation.
- the content ratings database 136 and torrent rating database 138 in the content screening server 130 are described and illustrated as being stored in distinct and separate databases, in alternate embodiments, the different types of data may be stored together.
- the content screening server 130 may a dedicated server computer, mainframe, computer cluster, cloud-computing service or like computing resource.
- the components of the content screening server 130 may be implemented using a web technology stack such as LAMP (e.g., use of the Linux operating system, Apache web server, MySQL relational database management system, and the PHP programming language), or MicrosoftTM technologies such as a the .NET framework, SQL ServerTM database, and Internet Information Services (IISTM) web server.
- LAMP e.g., use of the Linux operating system, Apache web server, MySQL relational database management system, and the PHP programming language
- MicrosoftTM technologies such as a the .NET framework, SQL ServerTM database, and Internet Information Services (IISTM) web server.
- Various types of database technologies e.g., MySQL, OracleTM, or IBM DB2TM may be used to provide the database(s) described herein.
- database technologies e.g., MySQL, OracleTM, or IBM DB2TM
- variations in the technologies used to implement the described inventions may be possible
- Torrent server 150 may be a third-party torrent tracking server providing a website accessible by the browser 112 of computing device 110 .
- third-party torrent tracking websites offered by torrent servers 150 include KickassTorrents available at the Uniform Resource Locator (URL) ⁇ http://kat.cr>, or Torrentz available at ⁇ www.torrentz.eu>.
- An example torrent server 150 may have a torrent server application 152 (e.g., a web server application such as ApacheTM) from which a browser 112 on computing device 110 may download a torrent file 155 or from which a rating application 134 on content screening server 130 may obtain rating information for a torrent file 155 .
- the torrent server 150 may also include a torrents database 154 for storing torrent files 155 , as well as a ratings database 156 for storing torrent-related rating information 157 , as has been accumulated by that particular torrent server 150 .
- Anti-virus server 170 may be a third-party anti-virus server or cloud-computing service that provides an anti-virus API 172 for identifying malicious files and content.
- the anti-virus API 172 may have programming interfaces that allow searching by content identifiers such as hashes of the content, and may be accessed by the rating application 134 when the content screening server 130 attempts to generate a combined content-specific rating information 137 .
- the anti-virus server 170 may have a malicious file and rating database 174 storing content-specific information 175 related to malicious files and content. This database 174 is accessible by the anti-virus API 172 .
- Examples of third-party anti-virus servers 170 include those that may be made accessible by KasperskyTM.
- Internet 190 is illustrated in FIG. 1 as an example of a communications network that may facilitate communications amongst the devices and servers shown. However, it will be understood that other communications networks may also be possible. For example, the communication of messages described in the current disclosure may be performed (either wholly or partially) through proprietary or private networks, or cellular networks.
- the software functionality of the content screening server 130 is shown as being provided on a server that is separate from the computing device 110 .
- one or more of the content API 132 , rating app 134 , content database 136 , or torrent rating database 138 may be provided on the computing device 110 itself.
- the computing device 110 may be considered to be performing the various steps described herein as being performed by the contents screening server 130 (or its various respective modules), and the communications described as taking place between the computing device 110 and the content screening server 130 may be considered to be internal communications amongst modules within the computing device 110 .
- the computing device 110 may still receive data from external servers to update the content rating database 136 and/or the torrent rating database 138 .
- the functionality of content screening server 130 is included into an anti-virus software application executing on computing device 110 , such updates may accompany anti-virus signature updates provided to the anti-virus software application.
- FIG. 2 shown there generally as 200 is a method of screening files during online file transfers at a computing device.
- FIG. 2 shows the interactions between the computing device 110 and the content screening server 130 .
- the steps described as being performed by the computing device 110 may be performed by a processor provided on the computing device 110 , executing the content filter 105 .
- the steps described as being performed by the content screening server 130 may be performed by a processor provided on the content screening server 130 , executing the content filter API 132 .
- the computing device 110 may identify a torrent identifier for a torrent file that is associated with content to be processed at the computing device 110 .
- this may involve the computing device 110 detecting that a torrent identifier is being provided on a webpage that a user of the computing device 110 is attempting to access (e.g., being provided via a hyperlink that is accessible available on the webpage). This detection may be performed prior to such torrent identifier being made available for access at the computing device 110 (e.g., to block the hyperlink from even appearing within the browser application 112 ). Additionally or alternatively, the detection may be performed after such a torrent identifier is made available for access at the computing device 110 , so as to provide more flexibility and allow the user of the computing device 110 to attempt to access the torrent file.
- step 205 may involve the content filter 105 identifying the torrent identifier by intercepting a request to download the torrent file initiated at the computing device 110 .
- This may involve the content filter 105 acting to filter Hypertext Transfer Protocol (HTTP) requests initiated by the browser 112 at the computing device 110 , and then scanning for hash representations of torrent files (e.g., when a magnet link is used to access a torrent file) within the URI or URL. If a hash of a torrent file is identified within the URI or URL, then such hash can be considered the torrent identifier.
- HTTP Hypertext Transfer Protocol
- This interception a request function of the content filter 105 can be performed in different ways depending on how the content filter 105 is implemented.
- the content filter 105 may be implemented as a browser plug-in that intercepts HTTP requests made by the web browser 112 .
- the content filter 105 may be implemented as a software firewall so that the request is intercepted prior to it reaching a destination computing device (e.g., the torrent server 150 ) from which the torrent file 155 can be downloaded.
- the content filter 105 may be configured to intervene after a torrent file 155 has already been downloaded.
- the content filter 105 may be implemented as a plug-in to a torrent client 114 , and the content filter 105 may intercept a request to open a torrent file to begin downloading the content associated with the torrent file.
- the content filter 105 may be implemented as a software application that scans files downloaded by the browser 112 for torrent files. Upon locating a torrent file, the content filter 105 may identify the torrent identifier from the torrent file 155 .
- scanning may be performed in a number of ways.
- the scanning may be performed based on file extensions (e.g., locating files with a .torrent extension), file properties (e.g., the Internet media or MIME type) of the downloaded files, file names (e.g., by comparing the file name of a downloaded file against file names already known to be associated with torrent files), the URLs or URIs from which the files were downloaded (e.g., by comparing the URI or URL of a downloaded file against URIs or URLs that are known to be associated with providing torrent files), a hash of the downloaded file (e.g., by creating a hash of the downloaded file and comparing it against hash values that are known to be hashes of torrent files), or any combination of the foregoing.
- file extensions e.g., locating files with a .torrent extension
- file properties e.g., the Internet media or MIME type
- file names e.g., by comparing the file name of
- the content filter 105 may generate a hash of the torrent file 155 .
- Known hash algorithms e.g., MD5, SHA-1 may be used to generate such a ‘global’ hash.
- the content filter 105 may use the hash of the ‘info’ portion of the torrent file 155 as the torrent identifier.
- the hash of the ‘info’ portion of a torrent file may be called the ‘info_hash’ of the torrent file (and the ‘info’ portion of the torrent file may itself be made up of hashes of the individual ‘pieces’ of the payload for the torrent file 155 ).
- the content screening server 130 may be configured to receive either the hash of the entire torrent file (e.g., a ‘global’ hash) or the info_hash as the torrent identifier.
- the computing device 110 may transmit the torrent identifier to the content screening server 130 .
- the torrent identifier may be received at the content screening server 130 at step 215 .
- the content screening server 130 may determine data indicating characteristics of the content (that is the payload of the torrent file) attempted to be downloaded at the computing device 110 .
- the content screening server 130 may store data indicating characteristics of the content associated with the torrent file. For example, using the torrent identifier received at step 215 , the content screening server 130 may read data from the torrent rating database 138 to locate corresponding combined torrent-related rating information 139 relevant to that torrent identifier. As described in greater detail below with respect to FIG. 3 , the combined torrent-related rating information 139 may be read and combined from different torrent-related rating information 157 stored at multiple torrent servers 150 .
- the combined torrent-related rating information 139 may include information indicating whether the content is safe for download to the computing device. However, in some embodiments, step 220 may also retrieve data that is a result of analysis having been performed on the torrent file identified by the torrent identifier, such data having been included in the combined torrent-related rating information 139 .
- the analysis of the torrent file to generate rating information may take different forms.
- the file size of the content indicated in the torrent file may provide an indication of whether the actual payload content associated with the torrent is in fact the expected media file.
- an overly small file size may suggest that the content is not in fact a video file and instead may be a malicious of harmful file.
- an audio file with an overly large file size may also be suspect for the same reason.
- the information related to the download process for the content may be taken into account during this analysis.
- the number of leechers/seeders and the number of downloads may provide an indication as to whether the content is legitimately representative of what it is identified as. That is, a smaller number of leechers/seeders or downloads may suggest that the true payload content associated with the torrent is not actually the same as what the torrent represents it as, and that such payload content may potentially be harmful or malicious.
- the content associated with a torrent file may include a number of files or folders (and potentially a nested folder structure with files within the folders).
- the combined torrent-related rating information 139 may include rating information for each constituent file/folder of the content. Using such rating information, the content filter 105 may be able to identify particular files of the content as being unsafe, while indicating that certain other files are safe.
- the content screening server 130 may return the combined torrent-related rating information 139 read from the torrent rating database 138 as the data indicating characteristics of the content associated with the torrent identifier.
- the computing device 110 receives the data indicating characteristics of the content associated with the torrent identifier from the content screening server 130 .
- step 265 will now be discussed, prior to the discussion of optional steps 235 to 260 .
- Step 265 involves the computing device 110 controlling whether it processes the content based on the data received at step 230 .
- such controlling may involve determining whether to download the content to the computing device 110 .
- the controlling may result in a warning window that is displayed on the computing device 110 warning the user that the torrent file's target content they are attempting to download may be malicious.
- Such warning may provide an early alert to the user about a potential security risk associated with the content associated with the torrent file they are about to download, so as to enable them to confirm they want to proceed before the content is actually downloaded. This saves the user of the computing device 110 from damage resulting from downloading and executing malicious files.
- computing resources e.g., bandwidth, processing power, hard drive storage space, battery usage if on a mobile device, and/or usage towards Cellular Network/Internet Service Provider (ISP) data caps
- ISP Cellular Network/Internet Service Provider
- intercepting a request to download the content associated with the torrent file in this manner may be desirable over the operation of regular anti-virus software, which does not traditionally operate on torrent files.
- a torrent client 114 may immediately start downloading the content associated with the torrent file without the benefit of the check provided by the embodiments described herein; the computing device may only be protected when the anti-virus software scans and correctly identifies the files as being malicious or harmful once the content has been downloaded.
- the controlling performed at step 265 may also involve the computing device 110 determining whether to open the content after the content has been downloaded to the computing device 110 .
- this type of controlling may be performed if the content filter 105 is implemented as anti-virus software that intercepts actions related to opening of unknown files.
- the torrent-based data indicating characteristics of the content received at step 230 may serve as an additional source of information not used by traditional anti-virus software for determining whether downloaded content is malicious.
- a content filter 105 may be configured to operate with multiple modes of operation that range from highly-restrictive to less-restrictive. In such an environment, if the content filter 105 is set to a mode where it is less restrictive, it may be configured to not intervene prior to the downloading of the content, but only after the content has been downloaded. Although allowing the content to be downloaded may potentially be less secure, this mode may offer more flexibility for users who are familiar with the torrent files they are accessing and know them to be safe.
- the warning message 505 is for the scenario where the content filter 150 controls whether the content is to be processed before the content is to be downloaded to the computing device 110 .
- the example user interface has a ‘Proceed’ button 510 and a ‘Cancel’ button 515 to allow a user to select whether select whether they want to proceed or not in view of the detected potential harmfulness of the content associated with torrent file they are accessing.
- appropriate warning messages may be displayed in the case where the control of whether the content is to be processed is performed after the content has been downloaded to the computing device 110 .
- variations in the presentation of the user interface may be possible.
- Steps 235 - 260 relate to scenarios where the computing device 110 receives additional data indicating characteristics of the content associated with the torrent file based on a content identifier. This additional data provides the computing device 110 with an additional basis for controlling whether or not the computing device 110 should process the content.
- the computing device 110 may identify a content identifier associated with the content that is the target payload of the torrent file.
- the content filter 105 may permit downloading of the content associated with the torrent file.
- the computing device may derive the content identifier from the downloaded content (e.g., by generating a hash of the content and using it as the content identifier).
- the content identifier may be embedded within the torrent file, and step 235 may involve parsing the torrent file to locate the content identifier.
- the computing device 110 may transmit the content identifier to the content screening server 130 .
- the content identifier may be received at the content screening server 130 at step 245 .
- the content screening server 130 may determine additional data indicating characteristics of the content associated with the torrent file.
- the content screening server 130 may store data indicating characteristics of the content associated with the torrent file. For example, using the content identifier received at step 245 , the content screening server 130 may read data from the content rating database 136 to locate corresponding combined content-specific rating information 137 relevant to that content identifier. As described in greater detail below with respect to FIG. 4 , the combined content-specific rating information 137 may be generated by combining different content-specific rating information 175 stored at multiple anti-virus servers 170 .
- the content screening server 130 may return the combined content-specific rating information 137 read from the content rating database 136 as the additional data indicating characteristics of the content associated with the torrent identifier.
- the computing device 110 may receive the additional data indicating characteristics of the content associated with the torrent file from the content screening server 130 .
- steps 235 - 260 when the computing devices 110 proceeds to control whether to process the content at the computing device at step 265 , it may do so based in part on the additional data received at step 260 .
- the torrent-identifier based data and the content-identifier based data may have differing information, in some embodiments, they may also have overlapping information. For example, both sets of data may relate to the safety of the content.
- the additional data may be used by the computing device 110 as a way to confirm the torrent-identifier based data indicating characteristics of the content received at step 230 by the computing device 110 . For example, if the torrent-identifier based data received at step 230 indicates the content is potentially harmful, and the content-identifier based additional data received at step 260 also indicates that the content is potentially harmful; the additional data may act as a way to reduce the likelihood of intervention on the basis of a false positive.
- the content filter 105 may control whether the content is processed on the basis of the additional data received at step 260 . In this manner, the additional data may act as a secondary layer of protection to catch potentially harmful content that is not caught by the torrent-identifier based data received at step 230 .
- the content filter 105 may be configured to prioritize one set of data over another. In further embodiments, the content filter 105 may be configured to communicate the nature of the conflicting conclusions back to the content screening filter 130 so that the content filter API 132 executing thereon may align the combined content-specific rating information 137 with the combined torrent-related rating information 139 for future recipients of such data.
- FIG. 3 shown there generally as 300 is a flowchart diagram illustrating steps performed by a content screening server 130 and two torrent servers 150 , 150 ′ when the content screening server 130 retrieves torrent-related rating information for content associated with a torrent file, in accordance with at least one embodiment of the present invention.
- FIG. 3 shows the interactions between the content screening server 130 and two torrent servers 150 , 150 ′.
- the steps described as being performed by the content screening server 130 may be performed by a processor provided on the content screening server 130 , executing the rating application 134 .
- the content screening server 130 may scan the first and second torrent servers 150 , 150 ′ for rating information of content associated with a torrent file. This may be performed by sending requests for such rating information to the first torrent server 150 and the second torrent server 150 ′.
- the request for rating information may include a torrent identifier which, as noted above in the context of step 205 of FIG. 2 , may be generated by applying a hash algorithm to the torrent file or taking the info_hash portion of the torrent file.
- torrent servers 150 may generally be providing access to torrent files 155 to computing devices that wish to use the BitTorrentTM protocol to download content. Although illustrated in FIG. 1 as being hosted on the torrent server 150 , the phrase “providing access to the torrent file 155 ” as used herein includes situations where torrent servers 150 merely provide a link to a third-party hosting the torrent file 155 .
- the first torrent server 150 may receive the request for rating information from the content screening server 130 and return the torrent-related rating information 157 stored in its ratings database 156 .
- the second torrent server 150 ′ may receive the request for rating information from the content screening server 130 and return the torrent-related rating information 157 stored in its ratings database 156 .
- such rating information may be obtained by the rating application 134 on the content screening server 130 performing web crawling of web pages made available by a torrent server application 152 executing on torrent server 150 .
- the content screening server 130 receives, from the first torrent server 150 and the second torrent server 150 ′ respectively, first and second sources of rating information based on the torrent file.
- the content screening server 130 may proceed directly to step 345 without performing optional steps 335 and 340 .
- the content screening server 130 generates a combined torrent-based rating for the content, as generated from on the respective rating information received from the external first and second torrent servers 150 , 150 ′ at step 330 .
- the manner in which the rating application 134 at the content screening server 130 generates the combined rating may differ.
- the rating information constitutes a numerical value such as a percentage or a number of stars
- the combined rating may be an average of the respective rating information obtained from the external torrent servers 150 , 150 ′.
- the rating application 134 at the content screening server 130 may store such information into the torrent rating database 138 as the combined torrent-related rating information 139 , so that such information is available to be returned to a content filter 105 of a computing device 110 upon request.
- Step 335 involves determining the ages of the rating information obtained from the external first and second torrent servers 150 , 150 ′. This may be determined, for example, from the timestamps of the respective rating information received at step 330 .
- Step 340 involves generating weights for calculating a weighted average of the respective rating information from the first and second torrent servers 150 , 150 ′. These weights may be based on, for example, the ages determined at steps 335 in a manner where older rating information is treated as being more authoritative and accorded a higher weight.
- FIG. 4 shown there generally as 400 is a flowchart diagram illustrating steps performed by a content screening server 130 and two anti-virus servers 170 , 170 ′ when the content screening server 130 retrieves rating information for content associated with a torrent file, in accordance with at least one embodiment of the present invention.
- FIG. 4 shows the interactions between the content screening server 130 and two anti-virus servers 170 , 170 ′.
- the steps described as being performed by the content screening server 130 may be performed by a processor provided on the content screening server 130 , executing the rating application 134 .
- the content screening server 130 may scan the external first and second anti-virus servers 170 , 170 ′ for rating information of content associated with a torrent file. This may be performed by sending content identifiers of the content to the first anti-virus server 170 and the second anti-virus server 170 ′.
- the content identifiers may be identified by the rating application 134 from a hash of the content (e.g., a hash generated using the MD5 hash algorithm) found in a torrent file.
- the first anti-virus server 170 may receive the content identifier from the content screening server 130 and return the rating information 175 stored in its malicious file and ratings database 174 .
- the second anti-virus server 170 ′ may receive the content identifier from the content screening server 130 and return the rating information 175 stored in its malicious file and ratings database 174 .
- such rating information may be obtained by the rating application 134 on the content screening server 130 performing web crawling of web pages made available by an anti-virus server 170 .
- the content screening server 130 may receive, from the first anti-virus server 170 and the second anti-virus server 170 ′ respectively, first and second sources of rating information based on the content identifier.
- the content screening server 130 may generate a combined rating for the content, based on the respective rating information received from the external first and second anti-virus servers 170 , 170 ′ at step 430 .
- the manner in which the rating application 134 at the content screening server 130 generates the combined content-identifier based rating may differ.
- the rating information constitutes a numerical value such as a percentage or a number of stars
- the combined rating may be an average of the respective rating information obtained from the external anti-virus servers 170 , 170 ′.
- the rating application 134 at the content screening server 130 may store such information into the content rating database 136 as the combined content-specific rating information 137 , so that such information is available to be returned to a content filter 105 of a computing device 110 upon request.
- processes or blocks are presented in a given order, alternative examples may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternatives or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times.
- Software and other modules may be accessible via local memory, via a network, via a browser or other application in an Application Service Provider (ASP) context, or via other means suitable for the purposes described herein. Examples of the technology can also be practised in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- Data structures (e.g., containers) described herein may include computer files, variables, programming arrays, programming structures, or any electronic information storage schemes or methods, or any combinations thereof, suitable for the purposes described herein.
- a component e.g. a model, processor, scheduler, display, data store, software module, assembly, device, circuit, etc.
- reference to that component should be interpreted as including as equivalents of that component any component which performs the function of the described component (i.e., that is functionally equivalent), including components which are not structurally equivalent to the disclosed structure which performs the function in the illustrated exemplary embodiments of the invention.
- X and/or Y is intended to mean X or Y or both.
- X, Y, and/or Z is intended to mean X or Y or Z or any combination thereof.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (27)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/372,694 US10616308B2 (en) | 2015-12-08 | 2016-12-08 | Systems and methods for harmful file rating and screening in online file transfers |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562264715P | 2015-12-08 | 2015-12-08 | |
US15/372,694 US10616308B2 (en) | 2015-12-08 | 2016-12-08 | Systems and methods for harmful file rating and screening in online file transfers |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170163605A1 US20170163605A1 (en) | 2017-06-08 |
US10616308B2 true US10616308B2 (en) | 2020-04-07 |
Family
ID=58798624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/372,694 Active 2037-02-14 US10616308B2 (en) | 2015-12-08 | 2016-12-08 | Systems and methods for harmful file rating and screening in online file transfers |
Country Status (2)
Country | Link |
---|---|
US (1) | US10616308B2 (en) |
CA (1) | CA2951256C (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10911337B1 (en) * | 2018-10-10 | 2021-02-02 | Benjamin Thaddeus De Kosnik | Network activity monitoring service |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3086546A1 (en) * | 2018-01-18 | 2019-07-25 | Bevara Technologies, Llc | Browser navigation for facilitating data access |
US20210037071A1 (en) * | 2019-07-29 | 2021-02-04 | Steven Thomas Schoenwald | Efficient distribution and display of media |
CN111683102B (en) * | 2020-06-17 | 2022-12-06 | 绿盟科技集团股份有限公司 | FTP behavior data processing method, and method and device for identifying abnormal FTP behavior |
US20240045913A1 (en) * | 2022-08-03 | 2024-02-08 | Capital One Services, Llc | Systems and methods for active web-based content filtering |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198061A1 (en) * | 2004-02-17 | 2005-09-08 | David Robinson | Process and product for selectively processing data accesses |
US20110219448A1 (en) * | 2010-03-04 | 2011-09-08 | Mcafee, Inc. | Systems and methods for risk rating and pro-actively detecting malicious online ads |
US20120066346A1 (en) * | 2010-09-13 | 2012-03-15 | Microsoft Corporation | Reputation checking obtained files |
US8627463B1 (en) * | 2010-09-13 | 2014-01-07 | Symantec Corporation | Systems and methods for using reputation information to evaluate the trustworthiness of files obtained via torrent transactions |
US20150201250A1 (en) * | 2012-08-03 | 2015-07-16 | Vadim Vitalievich Yaroshenko | System for presenting multimedia content of optimum quality to an end user |
US20150334125A1 (en) * | 2014-05-16 | 2015-11-19 | Cisco Technology, Inc. | Identifying threats based on hierarchical classification |
-
2016
- 2016-12-08 CA CA2951256A patent/CA2951256C/en active Active
- 2016-12-08 US US15/372,694 patent/US10616308B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198061A1 (en) * | 2004-02-17 | 2005-09-08 | David Robinson | Process and product for selectively processing data accesses |
US20110219448A1 (en) * | 2010-03-04 | 2011-09-08 | Mcafee, Inc. | Systems and methods for risk rating and pro-actively detecting malicious online ads |
US20120066346A1 (en) * | 2010-09-13 | 2012-03-15 | Microsoft Corporation | Reputation checking obtained files |
US8627463B1 (en) * | 2010-09-13 | 2014-01-07 | Symantec Corporation | Systems and methods for using reputation information to evaluate the trustworthiness of files obtained via torrent transactions |
US20150201250A1 (en) * | 2012-08-03 | 2015-07-16 | Vadim Vitalievich Yaroshenko | System for presenting multimedia content of optimum quality to an end user |
US20150334125A1 (en) * | 2014-05-16 | 2015-11-19 | Cisco Technology, Inc. | Identifying threats based on hierarchical classification |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10911337B1 (en) * | 2018-10-10 | 2021-02-02 | Benjamin Thaddeus De Kosnik | Network activity monitoring service |
Also Published As
Publication number | Publication date |
---|---|
CA2951256A1 (en) | 2017-06-08 |
CA2951256C (en) | 2021-03-16 |
US20170163605A1 (en) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10616308B2 (en) | Systems and methods for harmful file rating and screening in online file transfers | |
US11356412B2 (en) | Secure analysis application for accessing web resources | |
US11310260B2 (en) | Secure analysis application for accessing web resources | |
US8037135B2 (en) | Automatic distributed downloading | |
US10574698B1 (en) | Configuration and deployment of decoy content over a network | |
US10360642B2 (en) | Global comments for a media item | |
US20140280859A1 (en) | Sharing control system and method for network resources download information | |
US20230188507A1 (en) | Domain specific browser identifiers as replacement of browser cookies | |
US9542864B2 (en) | Methods and apparatus for digital steganography | |
EP3491808B1 (en) | Interchangeable retrieval of content | |
WO2015006249A1 (en) | Saving third-party content to a content management system | |
EP3724805B1 (en) | Enhanced online privacy | |
US10931746B2 (en) | Managing content downloads | |
CN105812427B (en) | File uploads and method for down loading, device and file server | |
US20160156576A1 (en) | User device, cloud server and share link identification method | |
US9432273B2 (en) | System and method for monitoring bittorrent content and the computers that share bittorrent content | |
US11516279B2 (en) | Systems and methods for accessing multiple resources via one identifier | |
WO2018165602A1 (en) | Secure analysis application for accessing web resources via url forwarding | |
US10440100B2 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
US12120091B2 (en) | Secure analysis application for accessing web resources | |
US11483323B2 (en) | Techniques and/or systems to manage secure network connections | |
Gouge | A targeted denial of service attack on data caching networks | |
CN118861464A (en) | Method for loading webpage application content through native application, related device and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LAVASOFT CANADA INC., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MARTIN-BALE, ALEXANDER;ASSOULINE, DANIEL;REEL/FRAME:040602/0040 Effective date: 20160401 |
|
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: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: LAVASOFT SOFTWARE CANADA INC., CANADA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 040602 FRAME 0040. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNORS:MARTIN-BALE, ALEXANDER;ASSOULINE, DANIEL;REEL/FRAME:052019/0694 Effective date: 20200202 |
|
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: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
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 |