US20010042214A1 - Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer - Google Patents
Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer Download PDFInfo
- Publication number
- US20010042214A1 US20010042214A1 US09/800,314 US80031401A US2001042214A1 US 20010042214 A1 US20010042214 A1 US 20010042214A1 US 80031401 A US80031401 A US 80031401A US 2001042214 A1 US2001042214 A1 US 2001042214A1
- Authority
- US
- United States
- Prior art keywords
- code
- scanner
- proscribed
- protocol
- intercepting
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012546 transfer Methods 0.000 title abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000004891 communication Methods 0.000 claims description 28
- 241000700605 Viruses Species 0.000 claims description 3
- 238000012552 review Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000009434 installation Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000004224 protection Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- 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/564—Static detection by virus signature recognition
-
- 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
Definitions
- the present invention relates to apparatus and methods for intercepting, examining and controlling code, data and files and their transfer. More particularly, the present invention relates to apparatus and methods for intercepting, examining and controlling proscribed or predetermined code, data and files and their transfers.
- code as used hereinafter generally includes “data” and “files”
- code can infect a single computer system or entire network and so posit a security risk to the computer system or network.
- the user and/or administrator (generally referred to hereinafter as “user”) may wish to intercept, examine and/or control such code.
- the user might also wish to intercept, examine and/or control other code as well, for example, code which the user does not know to be hostile, but wishes to intercept nonetheless, for example, potentially sexually or racially harassing email, junk email, etc. This latter type of code is known hereinafter as “predetermined code”.
- Antivirus or other similar packages attempt to protect the system or network from hostile, malicious, predetermined and/or proscribed code (generally referred to hereinafter as “proscribed code.”)
- VFIND® from CyberSoft, Inc.
- a firewall is generally used to intercept proscribed code or protect against hostile or unauthorized access. When a firewall is installed, communications are routed through the firewall, and the firewall determines whether particular code is authorized to pass to the internal network.
- Firewalls have a number of disadvantages. A firewall must be placed at a “choke point” at which a network (an “internal” network) interfaces with one or more other networks (an “external” network.) Although placement of a security device at a choke point is proper practice, because all traffic must travel through the choke point, the firewall becomes a potential central point of failure: if the firewall fails, the entire connection to the network fails. Additionally, the firewall will usually add latency to the connection by performing its function.
- This firewall latency often degrades, linearly or logarithmically, the bandwidth such that all available bandwidth cannot be utilized. Also, since a firewall does not exist between the users on the internal network, a user can attack the internal system. It is an observation within the security industry that 80% of all attacks against a system originate on the internal network while only 20% of attacks originate from an external network.
- firewalls alone cannot provide efficient, effective, and transparent protection for any machine or network.
- the present invention comprises apparatus and methods for intercepting, examining, and controlling code.
- the present invention may operate on a single computer system or multiple systems depending on the operating system and other variables.
- the present invention may, in various embodiments, process, that is, intercept, examine, and/or control any or all code streams in a computer or network.
- Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code.
- the preferred embodiments monitor transfers from a system using a protocol parser which may be placed on the client system, the server system, or other intermediate system or component.
- the protocol parser is a Unix® STREAMS module and driver activated when an application opens a STREAMS device of the proper type.
- the protocol parser is a WinNT driver activated when an application opens a communications channel.
- the protocol parser is placed so as to intercept code passing through the channel which uses the TCP protocol.
- Other possible parameters in the especially preferred embodiments include interception of code traveling through specific TCP port numbers, or code traveling in specific directions (e.g. from an external network to internal network). In other embodiments, any code parameters known in the art may be used as interception parameters.
- the code is sent by the parser to a protocol scanner.
- the protocol scanner in turn reviews the code it has received from the parser.
- the protocol scanner will pass some, all, or none of the code flowing through it to a proscribed code scanner.
- This proscribed code scanner may be an antivirus scanner, pattern scanner, and/or content scanner or other types. This proscribed code scanner, depending on its settings, may pass some, all or none of the code passing through it.
- the code passing through the intercept module is not intercepted, that is, passed to the protocol scanner, it is returned to the communications channel. Similarly, if the code passing through the protocol scanner is not intercepted, that is, passed to the proscribed code scanner, it is returned to the communications channel.
- the embodiments of the present invention process code by intercepting or diverting code from a communication channel, processing it, and then reintroducing it (or not as desired) into that channel.
- the preferred embodiments do not change the nature of the communication, and process code transparently to the applications, unless a problem is discovered.
- the preferred embodiments may, if desired, be configured to notify the application and/or the user notified, among other actions.
- FIG. 1 is a schematic diagram of operation of a preferred embodiment.
- FIG. 2 is a schematic diagram of operation of a preferred embodiment.
- FIG. 3 is a schematic diagram of operation of a preferred embodiment.
- the preferred embodiments process code.
- the preferred embodiments process, that is, intercept, examine, and/or control any or all code streams transferred through any number of connections in a computer or network.
- Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code.
- a preferred embodiment of the present invention runs on a Unix® platform that supports STREAMS such as System V, Sun Solaris®, IBM AIX®, HP-UX®, etc.
- STREAMS such as System V, Sun Solaris®, IBM AIX®, HP-UX®, etc.
- the use of STREAMS in this embodiment promotes ease of installation and use. For example, installation on a computer of this STREAMS embodiment means the Unix® kernel on the computer would not have to be recompiled as might be the case with a non-STREAMS embodiment.
- embodiments uses Sun Solaris® operating system Unix® terminology. However, it should be specifically understood that embodiments can be implemented in other Unix® and Unix®-like platforms, including but not limited to Linux® and its variants, as well as other operating system platforms including but not limited to Microsoft Windows® NT, Windows® 2000, Windows® 95, 98 and Me, IBM OS/390, MacOS, VxWorks® and others.
- the preferred embodiment is comprised of both platform dependent and platform independent code as well, thus increasing portability and simplifying porting to new platforms.
- the embodiments will comprise both types of code although it is possible and within the scope of the present invention to construct an embodiment wholly in platform dependent code. Similarly it is possible and within the scope of the present invention to construct an embodiment wholly in platform independent code.
- the Unix® kernel is the operating system.
- the kernel is invisible to the user yet controls the system resources and hardware.
- the user may want to use a telecommunications program in order to call another computer. She opens the program and instructs the program to call a mainframe.
- the program in turn issues a call to the kernel to open the communications device, in this case a serial port device.
- the kernel receives the call and looks up the device in its character device switch table.
- the character device switch table provides the kernel with the appropriate device specific routine: in this case an open call. Subsequent commands from the program will be similarly interpreted by the kernel.
- any specific devices with a STREAMS implementation have a special field in the character device switch table that points to a streams initialization structure. Opening the STREAMS device will open the STREAMS device driver as well as create a Stream head to access the device driver.
- One or more STREAMS modules may be inserted between the STREAMS device and Stream head.
- STREAMS modules can process code passing through the Stream, If, for example, taking the above example regarding the opening of a telecommunications program, the user opens her program in a Unix®-STREAMS environment with a STREAMS serial port device, when the program calls the kernel to open the serial port device, a STREAMS serial port device driver will be opened and a Stream head will be created.
- a STREAMS module may be inserted as well depending on the configuration of that particular Stream. STREAMS modules are generally inserted into the Stream automatically through use of an “autopush” list which is referred to by the kernel when a Stream is opened.
- tpicept a kernel module, in an appropriate directory or directories, in order to provide the module to the kernel when called.
- tpicept will provide both a STREAMS module as well as a STREAMS device driver to the system as is discussed in further detail below.
- tpicept is linked to a number of path names, so that the file can be called by a number of names and used in a number of ways, e.g., links are established in /usr/kernel/drv and /usr/kernel/strmod so that the file may be used both as a STREAMS driver and STREAMS module.
- the protocol scanner cyb_protocold and the proscribed code scanner are also installed at this time in appropriate directories, e.g., /usr/s/bin.
- the “old” or existing autopush lists for the TCP protocol layer is deleted and a new list containing the STREAMS module tpicept is added.
- tpicept will be pushed onto the stream that is created when a TCP streams device is opened.
- the embodiments may be started by any of a number of manners as is known in the art. For example, no separate procedure is necessary to start the operation of the kernel module tpicept. It operates as soon as called.
- the other major components, the protocol scanner and the proscribed code scanner, may be made operational through an executable file.
- the configuration of the preferred embodiments also allows for loading on startup of the system. Of course, other embodiments may load when desired by the user. However, loading upon start-up limits user tampering with the security procedures which may be desirable for network administration.
- the embodiment is operational.
- the embodiment remains in the system until a STREAMS device that the embodiment has been configured to intercept is opened.
- the especially preferred embodiments intercept code at the TCP layer, however, the Unix® embodiments of the present invention are not limited to interception at the TCP layer. Rather, the Unix® embodiments of the present invention can intercept., examine and/or control code in any Stream. Of course, other embodiments, on other platforms, may also intercept code at other locations on a communications channel or layers in a communications stack.
- FIG. 1 shows an example of a process of a preferred embodiment.
- Code passing back and forth between the Web browser and the NIC STREAMS device is being intercepted at the HTTP—TCP interface by the STREAMS module tpicept.
- tpicept may or may not transfer the code to a protocol scanner, cyb_protocold, depending upon, in this embodiment, specific configurations that include port interception settings. (The dashed line in the figure shows this optional transfer.)
- cyb_protocold the protocol scanner
- the STREAMS module may also be configured by varying its insertion at any particular data communications layer and/or protocol.
- the module is inserted to intercept code at the upstream side of TCP.
- the STREAMS module has been inserted here in this embodiment because TCP is a multiplexer for different applications and connections, including those applications and connections to the Internet. Thus, this embodiment intercepts traffic at a “choke point” of the system.
- other protocols and/or other layers may be intercepted as desired.
- tpicept if tpicept intercepts the code according to its configuration, it sends the code (through a STREAMS queue pair not shown here) to the protocol scanner, cyb_protocold. Cyb_protocold then may transfer the code to the proscribed code scanner through interprocess communication, e.g., a socket. (The dashed line in the figure shows this optional transfer.) The decision by cyb_protocold to transfer the code depends upon its configuration settings and these settings can be varied as desired in this embodiment.
- the scanner may be configured to intercept code on specific TCP ports such as SMTP (usually port 25 ) or HTTP (usually port 80 ) (As should be clear, both the protocol scanner and the STREAMS module can be configured by port interception settings); may be configured to intercept certain file types such as *.exe files; etc.
- the protocol scanner could be configured as a protocol dependant scanner, that is, to presume that traffic on particular port will always be a certain protocol. Those ports which have not been configured for interception by this embodiment will pass traffic transparently.
- “protocol independent” scanning that is, scanning by ignoring the actual port used, could be configured. Protocol independent scanning provides a higher level of security and may be desirable in some cases when non-standard ports are used for well-known protocols (HTTP is the most common example of this).
- the proscribed code scanner analyzes the code according to its configuration settings. These settings can take numerous forms, including scanning for specific proscribed code or code segments, calculating hash codes of the code or code segment and then scanning a database of proscribed hash codes, etc. If the code is acceptable, the proscribed code scanner provide an indicator to cyb_protocold which in turn wilt send the code back through tpicept and from there back to the communication stream In this case, the process will have been transparent, that is, the interception process will not have disturbed the application. Thus, this embodiment has minimal impact on the performance of the computer and networking connections.
- the proscribed code scanner will indicate the code is not acceptable. In the especially preferred embodiments, that indication will be sent directly to the user and/or the application. In other embodiments, the indicator may result in access to the code being denied; in extracting the proscribed code from the remainder; in quarantining and saving or transferring the proscribed code for analysis or deleted; the proscribed code could be modified; the proscribed code could be sent to an administrator or security department or firm; etc.
- more than one instance of the embodiment will be utilized if the user has more than one application running and/or more than one communications channel opened. For example, if a user opens a sendmail and network card communication channel and a Netscape Navigator® and a modem communication channel, two code streams will be created, both using TCP. Both will be intercepted according to the process of the preferred embodiments. Moreover, if channels are opened using other protocols at the Transport layer, or other protocols at other layers, embodiments of the present invention can be used to intercept those communications, with an appropriate kernel module.
- any configuration parameters are not limited to predetermined parameters.
- the interception parameters of the intercept module, protocol scanner and the proscribed code scanner may be configured in various ways in various embodiments.
- the user may configure and reconfigure the parameters as desired.
- a user may decide to intercept all code, or the embodiment could request parameters as code is being transferred or could request an interception decision as the code is being transferred.
- the choice of predetermined, non predetermined, or no interception parameters, and what parameters to change could be offered to either or both end-users or network administrators.
- protocol scanner may be written as one or more STREAMS modules, and the connections to and from the intercept module and the proscribed code scanner would be modified appropriately.
- FIG. 1 Another especially preferred embodiment is written for the Windows® NT platform.
- installation of this embodiment begins with installing csiservice.exe in an appropriate directory or directories, e.g., WinNT ⁇ Systern32 ⁇ , as well as csitcpip.sys, an NT driver, in an appropriate directory or directories (usually, WinNT ⁇ System32 ⁇ drivers).
- csiservice.exe provides the driver to the system when called.
- the protocol scanner and the proscribed code scanner are also installed at this time in appropriate directories, e.g., WinNT ⁇ System32 ⁇ .
- csiservice.exe After rebooting, csiservice.exe calls the driver, which in turn, will call the protocol scanner if code is transmitted through a communications stack which the driver has been configured to intercept.
- the interception settings and processes which may be set in any of a number of ways, are as described above with regard to the UNIX® preferred embodiments.
- FIG. 3 shows an example of a process of a preferred WinNT embodiment intercepting code in a NIC communications stack.
- various embodiments may process, that is, intercept, examine, and/or control any or all code streams transferred through any number of communication channels in a computer or network. Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code.
- Embodiments can be ported to other Unix® and Unix®-like platforms, including but not limited to Linux® and its variants, as well as other operating system platforms including but not limited to Microsoft Windows® NT, Windows® 2000, Windows® 95, 98 and Me, IBM OS/390, MacOS, VxWorks® and others.
- the preferred embodiments may be used on a single machine, with a connection to another machine or system, network or the Internet. Preferred embodiments may also be used on a separate machine or system inserted in a communications channel, including but not limited to another computer, proxy server, firewall, router and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is a continuation-in-part of co-pending U.S. Ser. No. 09/244,154, entitled “NETWORK TRAFFIC INTERCEPTING METHOD AND SYSTEM,” filed on ______, by Peter V. Radatti and David J. Harding, which disclosure is incorporated herein by reference;
- and is related to co-pending application Ser. No. ______, entitled “APPARATUS AND METHODS FOR INTERCEPTING, EXAMINING AND CONTROLLING CODE, DATA AND FILES AND THEIR TRANSFER,” filed on same date herewith, by Peter V. Radatti and Timothy R. Eliseo, which disclosure is incorporated herein by reference.
- The present invention relates to apparatus and methods for intercepting, examining and controlling code, data and files and their transfer. More particularly, the present invention relates to apparatus and methods for intercepting, examining and controlling proscribed or predetermined code, data and files and their transfers.
- The rise of the Internet and networking technologies has resulted in the widespread transfer of code, data and files between computers. This material is not always what it seems to be. For example, code that is accessed on a remote machine and downloaded to a computer system can contain hostile algorithms that can potentially destroy code, crash the system, corrupt code or worse. Some of these hostile algorithms are viruses, worms, and Trojan horses.
- Hostile, malicious and/or proscribed code, data and files (“code” as used hereinafter generally includes “data” and “files”) can infect a single computer system or entire network and so posit a security risk to the computer system or network. The user and/or administrator (generally referred to hereinafter as “user”) may wish to intercept, examine and/or control such code. The user might also wish to intercept, examine and/or control other code as well, for example, code which the user does not know to be hostile, but wishes to intercept nonetheless, for example, potentially sexually or racially harassing email, junk email, etc. This latter type of code is known hereinafter as “predetermined code”.
- Antivirus or other similar packages attempt to protect the system or network from hostile, malicious, predetermined and/or proscribed code (generally referred to hereinafter as “proscribed code.”) VFIND®, from CyberSoft, Inc., is one such product that protects systems and networks from proscribed code. Any programs standing alone, such as VFIND®, must be run by the user, however, and run frequently, otherwise the protections offered by the programs are lost. Also, these programs is do not generally intercept proscribed code as the code is transferred from machine to machine, nor do these programs protect against hostile or unauthorized access to a machine or network.
- A firewall is generally used to intercept proscribed code or protect against hostile or unauthorized access. When a firewall is installed, communications are routed through the firewall, and the firewall determines whether particular code is authorized to pass to the internal network. Firewalls have a number of disadvantages. A firewall must be placed at a “choke point” at which a network (an “internal” network) interfaces with one or more other networks (an “external” network.) Although placement of a security device at a choke point is proper practice, because all traffic must travel through the choke point, the firewall becomes a potential central point of failure: if the firewall fails, the entire connection to the network fails. Additionally, the firewall will usually add latency to the connection by performing its function. This firewall latency often degrades, linearly or logarithmically, the bandwidth such that all available bandwidth cannot be utilized. Also, since a firewall does not exist between the users on the internal network, a user can attack the internal system. It is an observation within the security industry that 80% of all attacks against a system originate on the internal network while only 20% of attacks originate from an external network.
- Accordingly, because of these and other known disadvantages, firewalls alone cannot provide efficient, effective, and transparent protection for any machine or network.
- Therefore, it would be beneficial to have an automatic system and method for simply and effectively scanning incoming and outgoing code in an efficient and effective manner transparently or almost transparently to the end-user, with little or no operational effort required by the user.
- Accordingly, it is an object of the present invention to provide apparatus and methods that intercept, control, and/or examine code.
- It is yet another object of the present invention to provide apparatus and methods that simply and effectively intercept, control, and/or examine incoming and outgoing code in an efficient and effective manner transparently or almost transparently to the enduser, with little or no operational effort required by the user.
- The present invention comprises apparatus and methods for intercepting, examining, and controlling code. The present invention may operate on a single computer system or multiple systems depending on the operating system and other variables. The present invention may, in various embodiments, process, that is, intercept, examine, and/or control any or all code streams in a computer or network. Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code.
- Although the present invention can be implemented on various platforms, the preferred embodiments are used in Unix® and various Windows® environments, such as NT, 2000, 95, 98 and Me.
- The preferred embodiments monitor transfers from a system using a protocol parser which may be placed on the client system, the server system, or other intermediate system or component. In the especially preferred Unix® embodiments, the protocol parser is a Unix® STREAMS module and driver activated when an application opens a STREAMS device of the proper type. In the especially preferred Windows® NT embodiments, the protocol parser is a WinNT driver activated when an application opens a communications channel.
- In the especially preferred embodiments, the protocol parser is placed so as to intercept code passing through the channel which uses the TCP protocol. Other possible parameters in the especially preferred embodiments include interception of code traveling through specific TCP port numbers, or code traveling in specific directions (e.g. from an external network to internal network). In other embodiments, any code parameters known in the art may be used as interception parameters.
- If the configuration and parameters of the intercept module result in code interception, the code is sent by the parser to a protocol scanner. The protocol scanner in turn reviews the code it has received from the parser. Depending upon its configuration, which in the preferred embodiment include port interception designation, file type interception designation, and other parameters, the protocol scanner will pass some, all, or none of the code flowing through it to a proscribed code scanner. This proscribed code scanner may be an antivirus scanner, pattern scanner, and/or content scanner or other types. This proscribed code scanner, depending on its settings, may pass some, all or none of the code passing through it.
- If the code passing through the intercept module is not intercepted, that is, passed to the protocol scanner, it is returned to the communications channel. Similarly, if the code passing through the protocol scanner is not intercepted, that is, passed to the proscribed code scanner, it is returned to the communications channel.
- Thus, the embodiments of the present invention process code by intercepting or diverting code from a communication channel, processing it, and then reintroducing it (or not as desired) into that channel. By intercepting or diverting code from a communication channel, the preferred embodiments do not change the nature of the communication, and process code transparently to the applications, unless a problem is discovered. In that case, the preferred embodiments may, if desired, be configured to notify the application and/or the user notified, among other actions.
- FIG. 1 is a schematic diagram of operation of a preferred embodiment.
- FIG. 2 is a schematic diagram of operation of a preferred embodiment.
- FIG. 3 is a schematic diagram of operation of a preferred embodiment.
- The preferred embodiments process code. The preferred embodiments process, that is, intercept, examine, and/or control any or all code streams transferred through any number of connections in a computer or network. Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code.
- A preferred embodiment of the present invention runs on a Unix® platform that supports STREAMS such as System V, Sun Solaris®, IBM AIX®, HP-UX®, etc. The use of STREAMS in this embodiment promotes ease of installation and use. For example, installation on a computer of this STREAMS embodiment means the Unix® kernel on the computer would not have to be recompiled as might be the case with a non-STREAMS embodiment.
- The following description of the embodiments uses Sun Solaris® operating system Unix® terminology. However, it should be specifically understood that embodiments can be implemented in other Unix® and Unix®-like platforms, including but not limited to Linux® and its variants, as well as other operating system platforms including but not limited to Microsoft Windows® NT, Windows® 2000, Windows® 95, 98 and Me, IBM OS/390, MacOS, VxWorks® and others.
- The preferred embodiment is comprised of both platform dependent and platform independent code as well, thus increasing portability and simplifying porting to new platforms. Generally, the embodiments will comprise both types of code although it is possible and within the scope of the present invention to construct an embodiment wholly in platform dependent code. Similarly it is possible and within the scope of the present invention to construct an embodiment wholly in platform independent code.
- The preferred embodiments that run in a Unix®-STREAMS environment are generally invisible. At least part of those embodiments operate within the Unix® kernel, and so a brief review of the operation of the kernel would be helpful to understanding those embodiments.
- The Unix® kernel is the operating system. The kernel is invisible to the user yet controls the system resources and hardware. For example, the user may want to use a telecommunications program in order to call another computer. She opens the program and instructs the program to call a mainframe. The program in turn issues a call to the kernel to open the communications device, in this case a serial port device. The kernel receives the call and looks up the device in its character device switch table. The character device switch table provides the kernel with the appropriate device specific routine: in this case an open call. Subsequent commands from the program will be similarly interpreted by the kernel.
- In a Unix®-STREAMS platform, any specific devices with a STREAMS implementation (a STREAMS device) have a special field in the character device switch table that points to a streams initialization structure. Opening the STREAMS device will open the STREAMS device driver as well as create a Stream head to access the device driver. One or more STREAMS modules may be inserted between the STREAMS device and Stream head. STREAMS modules can process code passing through the Stream, If, for example, taking the above example regarding the opening of a telecommunications program, the user opens her program in a Unix®-STREAMS environment with a STREAMS serial port device, when the program calls the kernel to open the serial port device, a STREAMS serial port device driver will be opened and a Stream head will be created. A STREAMS module may be inserted as well depending on the configuration of that particular Stream. STREAMS modules are generally inserted into the Stream automatically through use of an “autopush” list which is referred to by the kernel when a Stream is opened.
- Returning now to the description of the preferred embodiments, installation of this embodiment begins with installing tpicept, a kernel module, in an appropriate directory or directories, in order to provide the module to the kernel when called. In the especially preferred embodiments, tpicept will provide both a STREAMS module as well as a STREAMS device driver to the system as is discussed in further detail below. tpicept is linked to a number of path names, so that the file can be called by a number of names and used in a number of ways, e.g., links are established in /usr/kernel/drv and /usr/kernel/strmod so that the file may be used both as a STREAMS driver and STREAMS module. The protocol scanner cyb_protocold and the proscribed code scanner are also installed at this time in appropriate directories, e.g., /usr/s/bin.
- When installing the preferred embodiments, the “old” or existing autopush lists for the TCP protocol layer is deleted and a new list containing the STREAMS module tpicept is added. Thus tpicept will be pushed onto the stream that is created when a TCP streams device is opened.
- The embodiments may be started by any of a number of manners as is known in the art. For example, no separate procedure is necessary to start the operation of the kernel module tpicept. It operates as soon as called. The other major components, the protocol scanner and the proscribed code scanner, may be made operational through an executable file. The configuration of the preferred embodiments also allows for loading on startup of the system. Of course, other embodiments may load when desired by the user. However, loading upon start-up limits user tampering with the security procedures which may be desirable for network administration.
- Once installed, the embodiment is operational. The embodiment remains in the system until a STREAMS device that the embodiment has been configured to intercept is opened. The especially preferred embodiments intercept code at the TCP layer, however, the Unix® embodiments of the present invention are not limited to interception at the TCP layer. Rather, the Unix® embodiments of the present invention can intercept., examine and/or control code in any Stream. Of course, other embodiments, on other platforms, may also intercept code at other locations on a communications channel or layers in a communications stack.
- FIG. 1 shows an example of a process of a preferred embodiment. Code passing back and forth between the Web browser and the NIC STREAMS device is being intercepted at the HTTP—TCP interface by the STREAMS module tpicept. tpicept, may or may not transfer the code to a protocol scanner, cyb_protocold, depending upon, in this embodiment, specific configurations that include port interception settings. (The dashed line in the figure shows this optional transfer.) For example, if tpicept has been configured so as to only intercept TCP communications on port80 (usually HTTP), only code passing through port 80 will be sent to cyb_protocold. Code traveling though another port (e.g., through SMTP on port 25 from a mail application) will be returned to the communication stack.
- The STREAMS module may also be configured by varying its insertion at any particular data communications layer and/or protocol. In this embodiment, the module is inserted to intercept code at the upstream side of TCP. The STREAMS module has been inserted here in this embodiment because TCP is a multiplexer for different applications and connections, including those applications and connections to the Internet. Thus, this embodiment intercepts traffic at a “choke point” of the system. Of course, in other embodiments, other protocols and/or other layers may be intercepted as desired.
- Returning to FIG. 1, if tpicept intercepts the code according to its configuration, it sends the code (through a STREAMS queue pair not shown here) to the protocol scanner, cyb_protocold. Cyb_protocold then may transfer the code to the proscribed code scanner through interprocess communication, e.g., a socket. (The dashed line in the figure shows this optional transfer.) The decision by cyb_protocold to transfer the code depends upon its configuration settings and these settings can be varied as desired in this embodiment. For example, the scanner may be configured to intercept code on specific TCP ports such as SMTP (usually port25) or HTTP (usually port 80) (As should be clear, both the protocol scanner and the STREAMS module can be configured by port interception settings); may be configured to intercept certain file types such as *.exe files; etc. As another example, the protocol scanner could be configured as a protocol dependant scanner, that is, to presume that traffic on particular port will always be a certain protocol. Those ports which have not been configured for interception by this embodiment will pass traffic transparently. Alternatively, “protocol independent” scanning, that is, scanning by ignoring the actual port used, could be configured. Protocol independent scanning provides a higher level of security and may be desirable in some cases when non-standard ports are used for well-known protocols (HTTP is the most common example of this).
- If the code is not sent by the protocol scanner to the proscribed code scanner, it is returned to the STREAMS module, and then to the Stream.
- If the code is sent by the protocol scanner to the proscribed code scanner, the proscribed code scanner analyzes the code according to its configuration settings. These settings can take numerous forms, including scanning for specific proscribed code or code segments, calculating hash codes of the code or code segment and then scanning a database of proscribed hash codes, etc. If the code is acceptable, the proscribed code scanner provide an indicator to cyb_protocold which in turn wilt send the code back through tpicept and from there back to the communication stream In this case, the process will have been transparent, that is, the interception process will not have disturbed the application. Thus, this embodiment has minimal impact on the performance of the computer and networking connections.
- If the code is not acceptable, the proscribed code scanner will indicate the code is not acceptable. In the especially preferred embodiments, that indication will be sent directly to the user and/or the application. In other embodiments, the indicator may result in access to the code being denied; in extracting the proscribed code from the remainder; in quarantining and saving or transferring the proscribed code for analysis or deleted; the proscribed code could be modified; the proscribed code could be sent to an administrator or security department or firm; etc.
- The process of this embodiment is shown generally at FIG. 2.
- It should be noted that more than one instance of the embodiment will be utilized if the user has more than one application running and/or more than one communications channel opened. For example, if a user opens a sendmail and network card communication channel and a Netscape Navigator® and a modem communication channel, two code streams will be created, both using TCP. Both will be intercepted according to the process of the preferred embodiments. Moreover, if channels are opened using other protocols at the Transport layer, or other protocols at other layers, embodiments of the present invention can be used to intercept those communications, with an appropriate kernel module.
- Of course, any configuration parameters are not limited to predetermined parameters. For example, the interception parameters of the intercept module, protocol scanner and the proscribed code scanner may be configured in various ways in various embodiments. Moreover, the user may configure and reconfigure the parameters as desired. In yet other embodiments, there may need to be no interception parameters or no predetermination of interception parameters. For example, a user may decide to intercept all code, or the embodiment could request parameters as code is being transferred or could request an interception decision as the code is being transferred. Of course, in yet other embodiments, the choice of predetermined, non predetermined, or no interception parameters, and what parameters to change could be offered to either or both end-users or network administrators.
- Of course, other embodiments may be configured differently. For example the protocol scanner may be written as one or more STREAMS modules, and the connections to and from the intercept module and the proscribed code scanner would be modified appropriately.
- Another especially preferred embodiment is written for the Windows® NT platform. In this NT embodiment, installation of this embodiment begins with installing csiservice.exe in an appropriate directory or directories, e.g., WinNT\Systern32\, as well as csitcpip.sys, an NT driver, in an appropriate directory or directories (usually, WinNT\System32\drivers). csiservice.exe provides the driver to the system when called. The protocol scanner and the proscribed code scanner are also installed at this time in appropriate directories, e.g., WinNT\System32\.
- After rebooting, csiservice.exe calls the driver, which in turn, will call the protocol scanner if code is transmitted through a communications stack which the driver has been configured to intercept. The interception settings and processes, which may be set in any of a number of ways, are as described above with regard to the UNIX® preferred embodiments. FIG. 3 shows an example of a process of a preferred WinNT embodiment intercepting code in a NIC communications stack.
- It should be noted that various embodiments may process, that is, intercept, examine, and/or control any or all code streams transferred through any number of communication channels in a computer or network. Intercepting, examining and/or controlling code includes but is not limited to monitoring, blocking, logging, quarantining, discarding or transferring code. Embodiments can be ported to other Unix® and Unix®-like platforms, including but not limited to Linux® and its variants, as well as other operating system platforms including but not limited to Microsoft Windows® NT, Windows® 2000, Windows® 95, 98 and Me, IBM OS/390, MacOS, VxWorks® and others. The preferred embodiments may be used on a single machine, with a connection to another machine or system, network or the Internet. Preferred embodiments may also be used on a separate machine or system inserted in a communications channel, including but not limited to another computer, proxy server, firewall, router and the like.
- The above description and the views and material depicted by the figures are for purposes of illustration only and are not intended to be, and should not be construed as, limitations on the invention.
- Moreover, certain modifications or alternatives may suggest themselves to those skilled in the art upon reading of this specification, all of which are intended to be within the spirit and scope of the present invention as defined in the attached claims.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/800,314 US7389540B2 (en) | 1999-02-03 | 2001-03-06 | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/244,154 US6763467B1 (en) | 1999-02-03 | 1999-02-03 | Network traffic intercepting method and system |
US09/800,314 US7389540B2 (en) | 1999-02-03 | 2001-03-06 | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/244,154 Continuation-In-Part US6763467B1 (en) | 1999-02-03 | 1999-02-03 | Network traffic intercepting method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20010042214A1 true US20010042214A1 (en) | 2001-11-15 |
US7389540B2 US7389540B2 (en) | 2008-06-17 |
Family
ID=46257577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/800,314 Expired - Fee Related US7389540B2 (en) | 1999-02-03 | 2001-03-06 | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer |
Country Status (1)
Country | Link |
---|---|
US (1) | US7389540B2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180238A1 (en) * | 2005-12-21 | 2007-08-02 | Kohlenberg Tobias M | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
US20070220187A1 (en) * | 2006-03-20 | 2007-09-20 | Lawrence Kates | Virus-resistant computer with data interface for filtering data |
WO2008119149A1 (en) * | 2007-03-30 | 2008-10-09 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US7519990B1 (en) * | 2002-07-19 | 2009-04-14 | Fortinet, Inc. | Managing network traffic flow |
US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
US8060887B2 (en) | 2007-03-30 | 2011-11-15 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US20120023585A1 (en) * | 2004-05-19 | 2012-01-26 | Computer Associates Think, Inc. | Method and Systems for Computer Security |
US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763467B1 (en) * | 1999-02-03 | 2004-07-13 | Cybersoft, Inc. | Network traffic intercepting method and system |
US7461403B1 (en) * | 2001-08-03 | 2008-12-02 | Mcafee, Inc. | System and method for providing passive screening of transient messages in a distributed computing environment |
US7293290B2 (en) * | 2003-02-06 | 2007-11-06 | Symantec Corporation | Dynamic detection of computer worms |
WO2005062707A2 (en) * | 2003-12-30 | 2005-07-14 | Checkpoint Software Technologies Ltd. | Universal worm catcher |
GB2417865A (en) * | 2004-09-03 | 2006-03-08 | Marconi Comm Ltd | Monitoring and modifying communications between end nodes at an intermediate node |
US9692725B2 (en) | 2005-05-26 | 2017-06-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US8943304B2 (en) | 2006-08-03 | 2015-01-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US9621666B2 (en) | 2005-05-26 | 2017-04-11 | Citrix Systems, Inc. | Systems and methods for enhanced delta compression |
US9407608B2 (en) | 2005-05-26 | 2016-08-02 | Citrix Systems, Inc. | Systems and methods for enhanced client side policy |
US8561155B2 (en) | 2006-08-03 | 2013-10-15 | Citrix Systems, Inc. | Systems and methods for using a client agent to manage HTTP authentication cookies |
US8392977B2 (en) * | 2006-08-03 | 2013-03-05 | Citrix Systems, Inc. | Systems and methods for using a client agent to manage HTTP authentication cookies |
WO2009094657A1 (en) | 2008-01-26 | 2009-07-30 | Citrix Systems, Inc. | Systems and methods for fine grain policy driven cookie proxying |
WO2012092261A2 (en) | 2010-12-29 | 2012-07-05 | Citrix Systems, Inc. | Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination |
Citations (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5070528A (en) * | 1990-06-29 | 1991-12-03 | Digital Equipment Corporation | Generic encryption technique for communication networks |
US5278901A (en) * | 1992-04-30 | 1994-01-11 | International Business Machines Corporation | Pattern-oriented intrusion-detection system and method |
US5440723A (en) * | 1993-01-19 | 1995-08-08 | International Business Machines Corporation | Automatic immune system for computers and computer networks |
US5473769A (en) * | 1992-03-30 | 1995-12-05 | Cozza; Paul D. | Method and apparatus for increasing the speed of the detecting of computer viruses |
US5550984A (en) * | 1994-12-07 | 1996-08-27 | Matsushita Electric Corporation Of America | Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information |
US5682428A (en) * | 1995-02-13 | 1997-10-28 | Eta Technologies Corporation | Personal access management system |
US5802178A (en) * | 1996-07-30 | 1998-09-01 | Itt Industries, Inc. | Stand alone device for providing security within computer networks |
US5832228A (en) * | 1996-07-30 | 1998-11-03 | Itt Industries, Inc. | System and method for providing multi-level security in computer devices utilized with non-secure networks |
US5881151A (en) * | 1993-11-22 | 1999-03-09 | Fujitsu Limited | System for creating virus diagnosing mechanism, method of creating the same, virus diagnosing apparatus and method therefor |
US5931917A (en) * | 1996-09-26 | 1999-08-03 | Verifone, Inc. | System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US5987610A (en) * | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
US6009525A (en) * | 1997-08-29 | 1999-12-28 | Preview Systems, Inc. | Multi-tier electronic software distribution |
US6021510A (en) * | 1997-11-24 | 2000-02-01 | Symantec Corporation | Antivirus accelerator |
US6067410A (en) * | 1996-02-09 | 2000-05-23 | Symantec Corporation | Emulation repair system |
US6178505B1 (en) * | 1997-03-10 | 2001-01-23 | Internet Dynamics, Inc. | Secure delivery of information in a network |
US6334189B1 (en) * | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US20020007453A1 (en) * | 2000-05-23 | 2002-01-17 | Nemovicher C. Kerry | Secured electronic mail system and method |
US6357008B1 (en) * | 1997-09-23 | 2002-03-12 | Symantec Corporation | Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases |
US6389534B1 (en) * | 1997-06-30 | 2002-05-14 | Taher Elgamal | Cryptographic policy filters and policy control method and apparatus |
US6393568B1 (en) * | 1997-10-23 | 2002-05-21 | Entrust Technologies Limited | Encryption and decryption system and method with content analysis provision |
US20020073323A1 (en) * | 2000-07-14 | 2002-06-13 | Myles Jordan | Detection of suspicious privileged access to restricted computer resources |
US6549937B1 (en) * | 1999-07-21 | 2003-04-15 | Microsoft Corporation | System and method for multi-protocol communication in a computer network |
US6577920B1 (en) * | 1998-10-02 | 2003-06-10 | Data Fellows Oyj | Computer virus screening |
US20030131061A1 (en) * | 2001-11-28 | 2003-07-10 | Active Buddy, Inc. | Transparent proxy server for instant messaging system and methods |
US6697950B1 (en) * | 1999-12-22 | 2004-02-24 | Networks Associates Technology, Inc. | Method and apparatus for detecting a macro computer virus using static analysis |
US6721424B1 (en) * | 1999-08-19 | 2004-04-13 | Cybersoft, Inc | Hostage system and method for intercepting encryted hostile data |
US6763467B1 (en) * | 1999-02-03 | 2004-07-13 | Cybersoft, Inc. | Network traffic intercepting method and system |
US20040143763A1 (en) * | 1999-02-03 | 2004-07-22 | Radatti Peter V. | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer in instant messaging and peer-to-peer applications |
US6851057B1 (en) * | 1999-11-30 | 2005-02-01 | Symantec Corporation | Data driven detection of viruses |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5126728A (en) | 1989-06-07 | 1992-06-30 | Hall Donald R | ADP security device for labeled data |
US5319776A (en) | 1990-04-19 | 1994-06-07 | Hilgraeve Corporation | In transit detection of computer virus with safeguard |
DK170490B1 (en) | 1992-04-28 | 1995-09-18 | Multi Inform As | Data Processing Plant |
US5481735A (en) | 1992-12-28 | 1996-01-02 | Apple Computer, Inc. | Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network |
US5586266A (en) | 1993-10-15 | 1996-12-17 | International Business Machines Corporation | System and method for adaptive, active monitoring of a serial data stream having a characteristic pattern |
US5414833A (en) | 1993-10-27 | 1995-05-09 | International Business Machines Corporation | Network security system and method using a parallel finite state machine adaptive active monitor and responder |
US5623600A (en) | 1995-09-26 | 1997-04-22 | Trend Micro, Incorporated | Virus detection and removal apparatus for computer networks |
US5889943A (en) | 1995-09-26 | 1999-03-30 | Trend Micro Incorporated | Apparatus and method for electronic mail virus detection and elimination |
US5761424A (en) | 1995-12-29 | 1998-06-02 | Symbios, Inc. | Method and apparatus for programmable filtration and generation of information in packetized communication systems |
US5832208A (en) | 1996-09-05 | 1998-11-03 | Cheyenne Software International Sales Corp. | Anti-virus agent for use with databases and mail servers |
US5916305A (en) | 1996-11-05 | 1999-06-29 | Shomiti Systems, Inc. | Pattern recognition in data communications using predictive parsers |
US6421733B1 (en) | 1997-03-25 | 2002-07-16 | Intel Corporation | System for dynamically transcoding data transmitted between computers |
US6088803A (en) | 1997-12-30 | 2000-07-11 | Intel Corporation | System for virus-checking network data during download to a client device |
US6356951B1 (en) | 1999-03-01 | 2002-03-12 | Sun Microsystems, Inc. | System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction |
US20020004819A1 (en) | 2000-07-10 | 2002-01-10 | David Agassy | Device and method for data interception and updating |
-
2001
- 2001-03-06 US US09/800,314 patent/US7389540B2/en not_active Expired - Fee Related
Patent Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5070528A (en) * | 1990-06-29 | 1991-12-03 | Digital Equipment Corporation | Generic encryption technique for communication networks |
US5473769A (en) * | 1992-03-30 | 1995-12-05 | Cozza; Paul D. | Method and apparatus for increasing the speed of the detecting of computer viruses |
US5278901A (en) * | 1992-04-30 | 1994-01-11 | International Business Machines Corporation | Pattern-oriented intrusion-detection system and method |
US5440723A (en) * | 1993-01-19 | 1995-08-08 | International Business Machines Corporation | Automatic immune system for computers and computer networks |
US5881151A (en) * | 1993-11-22 | 1999-03-09 | Fujitsu Limited | System for creating virus diagnosing mechanism, method of creating the same, virus diagnosing apparatus and method therefor |
US5550984A (en) * | 1994-12-07 | 1996-08-27 | Matsushita Electric Corporation Of America | Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information |
US5682428A (en) * | 1995-02-13 | 1997-10-28 | Eta Technologies Corporation | Personal access management system |
US6067410A (en) * | 1996-02-09 | 2000-05-23 | Symantec Corporation | Emulation repair system |
US5832228A (en) * | 1996-07-30 | 1998-11-03 | Itt Industries, Inc. | System and method for providing multi-level security in computer devices utilized with non-secure networks |
US5802178A (en) * | 1996-07-30 | 1998-09-01 | Itt Industries, Inc. | Stand alone device for providing security within computer networks |
US5931917A (en) * | 1996-09-26 | 1999-08-03 | Verifone, Inc. | System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser |
US6178505B1 (en) * | 1997-03-10 | 2001-01-23 | Internet Dynamics, Inc. | Secure delivery of information in a network |
US6389534B1 (en) * | 1997-06-30 | 2002-05-14 | Taher Elgamal | Cryptographic policy filters and policy control method and apparatus |
US6009525A (en) * | 1997-08-29 | 1999-12-28 | Preview Systems, Inc. | Multi-tier electronic software distribution |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US6357008B1 (en) * | 1997-09-23 | 2002-03-12 | Symantec Corporation | Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases |
US6393568B1 (en) * | 1997-10-23 | 2002-05-21 | Entrust Technologies Limited | Encryption and decryption system and method with content analysis provision |
US6021510A (en) * | 1997-11-24 | 2000-02-01 | Symantec Corporation | Antivirus accelerator |
US6334189B1 (en) * | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US5987610A (en) * | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
US6577920B1 (en) * | 1998-10-02 | 2003-06-10 | Data Fellows Oyj | Computer virus screening |
US20040143763A1 (en) * | 1999-02-03 | 2004-07-22 | Radatti Peter V. | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer in instant messaging and peer-to-peer applications |
US20040230840A1 (en) * | 1999-02-03 | 2004-11-18 | Radatti Peter V. | Network traffic intercepting method and system |
US6763467B1 (en) * | 1999-02-03 | 2004-07-13 | Cybersoft, Inc. | Network traffic intercepting method and system |
US6549937B1 (en) * | 1999-07-21 | 2003-04-15 | Microsoft Corporation | System and method for multi-protocol communication in a computer network |
US6721424B1 (en) * | 1999-08-19 | 2004-04-13 | Cybersoft, Inc | Hostage system and method for intercepting encryted hostile data |
US6851057B1 (en) * | 1999-11-30 | 2005-02-01 | Symantec Corporation | Data driven detection of viruses |
US6697950B1 (en) * | 1999-12-22 | 2004-02-24 | Networks Associates Technology, Inc. | Method and apparatus for detecting a macro computer virus using static analysis |
US20020007453A1 (en) * | 2000-05-23 | 2002-01-17 | Nemovicher C. Kerry | Secured electronic mail system and method |
US20020073323A1 (en) * | 2000-07-14 | 2002-06-13 | Myles Jordan | Detection of suspicious privileged access to restricted computer resources |
US20030131061A1 (en) * | 2001-11-28 | 2003-07-10 | Active Buddy, Inc. | Transparent proxy server for instant messaging system and methods |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150089649A1 (en) * | 2002-07-19 | 2015-03-26 | Fortinet, Inc. | Hardware based detection devices for detecting network traffic content and methods of using the same |
US9118705B2 (en) | 2002-07-19 | 2015-08-25 | Fortinet, Inc. | Detecting network traffic content |
US10645097B2 (en) * | 2002-07-19 | 2020-05-05 | Fortinet, Inc. | Hardware-based detection devices for detecting unsafe network traffic content and methods of using the same |
US10404724B2 (en) | 2002-07-19 | 2019-09-03 | Fortinet, Inc. | Detecting network traffic content |
US9930054B2 (en) | 2002-07-19 | 2018-03-27 | Fortinet, Inc. | Detecting network traffic content |
US7519990B1 (en) * | 2002-07-19 | 2009-04-14 | Fortinet, Inc. | Managing network traffic flow |
US20090168651A1 (en) * | 2002-07-19 | 2009-07-02 | Fortinent, Inc | Managing network traffic flow |
US9906540B2 (en) | 2002-07-19 | 2018-02-27 | Fortinet, Llc | Detecting network traffic content |
US20160381045A1 (en) * | 2002-07-19 | 2016-12-29 | Fortinet, Inc. | Hardware based detection devices for detecting network traffic content and methods of using the same |
US9374384B2 (en) * | 2002-07-19 | 2016-06-21 | Fortinet, Inc. | Hardware based detection devices for detecting network traffic content and methods of using the same |
US8239949B2 (en) | 2002-07-19 | 2012-08-07 | Fortinet, Inc. | Managing network traffic flow |
US8918504B2 (en) | 2002-07-19 | 2014-12-23 | Fortinet, Inc. | Hardware based detection devices for detecting network traffic content and methods of using the same |
US8788650B1 (en) | 2002-07-19 | 2014-07-22 | Fortinet, Inc. | Hardware based detection devices for detecting network traffic content and methods of using the same |
US8789183B1 (en) | 2002-07-19 | 2014-07-22 | Fortinet, Inc. | Detecting network traffic content |
US8244863B2 (en) | 2002-07-19 | 2012-08-14 | Fortinet, Inc. | Content pattern recognition language processor and methods of using the same |
US8140660B1 (en) | 2002-07-19 | 2012-03-20 | Fortinet, Inc. | Content pattern recognition language processor and methods of using the same |
US20120023585A1 (en) * | 2004-05-19 | 2012-01-26 | Computer Associates Think, Inc. | Method and Systems for Computer Security |
US8590043B2 (en) * | 2004-05-19 | 2013-11-19 | Ca, Inc. | Method and systems for computer security |
US8024797B2 (en) | 2005-12-21 | 2011-09-20 | Intel Corporation | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
CN101313309B (en) * | 2005-12-21 | 2011-12-21 | 英特尔公司 | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
WO2007111662A3 (en) * | 2005-12-21 | 2008-02-21 | Intel Corp | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
US20070180238A1 (en) * | 2005-12-21 | 2007-08-02 | Kohlenberg Tobias M | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
US20090183253A1 (en) * | 2006-03-20 | 2009-07-16 | Lawrence Kates | Virus-resistant computer with data interface for filtering data |
WO2007108884A1 (en) * | 2006-03-20 | 2007-09-27 | Lawrence Kates | Virus-resistant computer with data interface for filtering data |
US20070220187A1 (en) * | 2006-03-20 | 2007-09-20 | Lawrence Kates | Virus-resistant computer with data interface for filtering data |
US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
US9579572B2 (en) | 2007-03-30 | 2017-02-28 | Uranus International Limited | Method, apparatus, and system for supporting multi-party collaboration between a plurality of client computers in communication with a server |
US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
WO2008119149A1 (en) * | 2007-03-30 | 2008-10-09 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US10180765B2 (en) | 2007-03-30 | 2019-01-15 | Uranus International Limited | Multi-party collaboration over a computer network |
US8060887B2 (en) | 2007-03-30 | 2011-11-15 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
US10963124B2 (en) | 2007-03-30 | 2021-03-30 | Alexander Kropivny | Sharing content produced by a plurality of client computers in communication with a server |
Also Published As
Publication number | Publication date |
---|---|
US7389540B2 (en) | 2008-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7389540B2 (en) | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer | |
US7917744B2 (en) | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer in instant messaging and peer-to-peer applications | |
US9876818B2 (en) | Embedded anti-virus scanner for a network adapter | |
US5896499A (en) | Embedded security processor | |
US6772345B1 (en) | Protocol-level malware scanner | |
US7716727B2 (en) | Network security device and method for protecting a computing device in a networked environment | |
EP1960866B1 (en) | System and method for providing network security to mobile devices | |
US8291498B1 (en) | Computer virus detection and response in a wide area network | |
EP2472817B1 (en) | System and method for optimization of execution of security tasks in local network | |
EP1564963B1 (en) | System and method for protecting a computing device from computer exploits delivered over a networked environment in a secured communication | |
US6763467B1 (en) | Network traffic intercepting method and system | |
US7231665B1 (en) | Prevention of operating system identification through fingerprinting techniques | |
US20020199120A1 (en) | Monitored network security bridge system and method | |
US20020157020A1 (en) | Firewall for protecting electronic commerce databases from malicious hackers | |
EP1564623A1 (en) | System and method for securing a computer system connected to a network from attacks | |
EP2132643B1 (en) | System and method for providing data and device security between external and host devices | |
US20010044904A1 (en) | Secure remote kernel communication | |
JP2010528550A (en) | System and method for providing network and computer firewall protection to a device with dynamic address separation | |
JPH11316677A (en) | Method for securing computer network | |
AU2005289538A1 (en) | Electronic computer system secured form unauthorized access to and manipulation of data | |
US7404212B2 (en) | Apparatus and methods for intercepting, examining and controlling code, data and files and their transfer | |
AU2004272201A1 (en) | Systems and methods for dynamically updating software in a protocol gateway | |
Hindocha | Threats to instant messaging | |
WO2001061473A1 (en) | Computer security using dual functional security contexts | |
Shyr et al. | Introduction to Linux networking and security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CYBERSOFT, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RADATTI, PETER V.;ELISEO, TIMOTHY R.;REEL/FRAME:011593/0445;SIGNING DATES FROM 20001227 TO 20001229 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
AS | Assignment |
Owner name: CYBERSOFT IP LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYBERSOFT INC;REEL/FRAME:055283/0265 Effective date: 20210202 |
|
AS | Assignment |
Owner name: CYBERSOFT INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYBERSOFT IP LLC;REEL/FRAME:059704/0710 Effective date: 20220412 |
|
AS | Assignment |
Owner name: CYBERSOFT, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CYBERSOFT IP LLC;REEL/FRAME:065248/0216 Effective date: 20231013 |