Modern managed information environments are injecting ever increasing levels of security capabilities. At one time, cryptographic operations for safeguarding data were time and computationally expensive such that they were typically reserved for highly sensitive government and financial contexts. As processor speed rises and memory capacities increase, the ability to perform cryptographic operations once only reserved to specialized, expensive hardware is now commonplace in many applications. Conventional off the shelf (OTS) applications embed cryptographic capabilities into software because it no longer creates a processing bottleneck to do so.
Further, as network capacities continue to rise, with increasing use of broadband (e.g. cable modem) Internet access and increasing popularity of WiFi capability (e.g. 802.11b/g wireless), the sheer quantity of data transmitted heightens the awareness that unencrypted transmissions (so called “plaintext”) run an increasing risk of divulging sensitive information. There is an emerging tendency to encrypt most or all data during transmission because there are minimal perceived drawbacks to doing so. Accordingly, data in transit between a source and a destination is often encrypted.
Managed information environments employ so-called “data level” security rather than more traditional application level security to relieve applications and database administrators from application specific changes and database (DB) access tokens such as privileges and access control lists (ACLS). A database or other repository of sensitive material is afforded scrutinized access via such data level security. Scrutinized access involves intercepting and analyzing requests and/or responses, and logging or optionally, filtering the requests and responses so that such data access transactions (requests and responses) are tracked. In a data level security environment, users are permitted to “see” particular parts or attributes of data, regardless of where such a request emanates. This is in contrast to conventional (application level) systems in which particular applications (regardless of the user) may be permitted to access restricted parts while other application specific access may be limited. Further, the modern trend toward application server (app-server) environments, away from traditional client-server architectures, tends to further attenuate the tie between an application and the operating or responsible user.
In a managed information environment employing data level security, requests and responses for data are identified with respect to the user (or other security credential) for which access criteria may be based. The resulting check may merely log the association between the actor and the data, or may proactively prevent or redact sensitive material—the primary focus is enabling an audit trail of data access and the party responsible for the access. Typically, a data level security approach identifies communications between the user applications and the database applications-in contrast to security code embedded in either- and scrutinizes the content contained in the communication while permitting it to pass unhindered along its intended route (i.e. to or from the database). Such a technique is colloquially referred to as “sniffing”—passively observing and logging the data sought and the responsible actor (i.e. user). However, the modern trend of encrypted communications presents challenges for data level security when encrypted transactions are “sniffed,” or intercepted, between the user application and the database. Alternatively, however, data level security may also conditionally restrict access by filtering or nullifying sensitive content.
One conventional approach involves providing the data security operations with the same cryptographic keys employed by the database software itself. This conventional approach, however, requires increased dissemination of keys and requires the security operations to keep step with the key management policies of the database, such as periodically changing and superceding the keys, and can be problematic to maintain. Further, such keys are often chosen and/or computed on the fly, so it may not be possible to identify the keys in advance (e.g. in the case of Diffie-Hellman exchange).
Configurations herein are based, in part, on the observation that content sensitive security approaches operate on decrypted (i.e. plaintext data), and therefore need to be able to decrypt the data if it is intercepted in transit between an application and the database. Accordingly, conventional data level security approaches suffer from the shortcoming that encrypted transactions may elude scrutiny because the intercepted transaction cannot be decrypted for analysis by the data level security operation. Such end-to-end encryption renders the data-in-transit unsuitable for conventional data level security approaches that intercept data access transactions in midstream for scrutiny and analysis.
In such a managed information environment, the database is typically accessed via a database management system (DBMS) responsible for receiving queries and other requests and generating responses. The DBMS manages the tables, joins, fetches and updates involved in generating the responses. The DBMS also permits users to select cryptographic security options (encryption), so that data in transit between a requestor (user) and the database remains secure (in so-called “ciphertext”). The DBMS may employ several mechanisms to encrypt the data in transit. These mechanisms differ by the manner and point at which the encrypted (ciphertext) data is decrypted into plaintext. In a data level security environment, the data level security mechanism operates on plaintext data. Hence, the data level security operations need to identify a point in the information stream where plaintext data is available for interception. Typically this is a point in the processing stream just after the decryption functionality has been invoked.
Accordingly, configurations herein substantially overcome the shortcomings of conventional approaches to intercepting and scrutinizing data in transit between an application and a database by identifying a transition point between the encrypted and plaintext data where the cryptographic operations are invoked, and transferring control of the data in transit to a database monitor application subsequent to the availability of the data in plaintext form. In other words, the database monitor application intercepts the data in transit at a point just beyond the decryption operation, performs analysis and logging operations, and returns the plaintext data to the expected data stream, therefore providing the DB security monitor with support for encryption of data in transit.
Transferring control of the cryptographic invocation involves examining the communications architecture to identify where the data-in-transit is delegated to a cryptographic operation, and inserting an appropriate interception mechanism to capture the unencrypted data in transit without disrupting the flow of the plaintext data to its intended destination. Typically, delegation to (i.e. invocation of) a cryptographic operation occurs via either a system call, a dynamically linked library call (DLL), or a direct static linkage call (i.e. a stack call). Identification of and insertion of an appropriate interception involves varying degrees of intrusiveness, discussed further below. The above shortcomings are substantially overcome by an architecture for intercepting secure data in transit by assessing and covering transaction paths into a particular node or entity such as a database. The architecture recognizes each path from which transactions may arrive and identifies a point in each path for interception of plaintext (unencrypted) data.
A system call is often identifiable by tracking an assigned processing unit (i.e. windows thread), and observing socket activity to a port associated with cryptographic operation. This approach is discussed further in copending U.S. patent application Ser. No. 11/642,432, entitled IDENTIFYING ATTRIBUTE PROPAGATION FOR MONITORING DATA REPOSITORY ACCESS, filed Dec. 20, 2006, incorporated herein by reference. Another mechanism includes the use of a DLL call to a cryptographic operation. Such an invocation may be intercepted by identifying a call signature to the cryptographic functions, and inserting a similarly named signature as a binding label (e.g. link entity) prior to the cryptographic invocation. The inserted signature is linked prior to the intended cryptographic operation, and serves to capture the plaintext data after itself calling the intended cryptographic operation. Other approaches employ end-to-end encryption, such that the cryptographic invocation is a static linkage from the DBMS process or thread. In such a scenario, the executable image is examined for machine instructions (i.e. opcodes) to branch or jump to the cryptographic function performing the decryption operation. The executable instructions invoking the cryptographic function are identified, and the instruction sequence in the executable image is modified to replace or follow the branch instruction with a jump to an instruction sequence for capturing the plaintext data, discussed further below.
A further scenario is presented by the use of an encryption service such as with an IPSEC implementation. IPSEC provides end-to-end encryption between two network endpoints, and is popular in VPN configurations because only the entry routers to the trusted VPN need employ IPSEC. Communications within the VPN are already covered, so other VPN nodes need not be modified, only the IPSEC endpoint routers. Communications to and from the IPSEC endpoint routers appear to be the source/destination, even if the communication is directed to another node deeper in the VPN, through the use of NAT (network address translation), common in such implementations.
The database security monitor provides support for encryption of data in transit by intercepting IPC invocations such as port reads to access plaintext data. By identifying a predetermined port or other IPC mechanism higher in the stack, i.e. after the IPSEC decryption, plaintext data in transit is interceptable by watching port reads on ports to which the plaintext data is directed.
In further detail, the system for monitoring secure data in transit in a database environment disclosed herein includes identifying a transfer of control to in a processing sequence a cryptographic operation, and determining an appropriate interception sequence operable to receive plaintext data returned from the cryptographic operation. The mechanism replaces the identified transfer of control with an interception sequence operable to forward plaintext data from the cryptographic application and forward it to a database monitor application, and return the plaintext data in an unmodified form to the processing sequence. Identifying the transfer of control includes identifying invocations to the cryptographic operations, including but not limited to operating system calls to an interprocess communication (IPC) mechanism, dynamically linked library (DLL) calls to invoke a decryption operation, and static linkages to the decryption operation.
The system provides an architecture for defining database security that includes identifying a stream of encrypted data in transit from a client to a host, such as a database server, and determining a transition from encrypted data to decrypted data, such that the transition (based on a transfer of control to the decryption) is indicative of invocation of a cryptographic operation to generate decrypted data from the encrypted data. The architecture determines an interception point following the determined transition, and selects, based on the encryption invocation, a manner of accessing the decrypted data at the determined interception point.
The foregoing and other objects, features and advantages of the invention will be apparent from the following description of particular embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
Configurations herein substantially overcome the shortcomings of conventional approaches to intercepting and scrutinizing data in transit between an application and a database by identifying a transition point between the encrypted and plaintext data where the cryptographic operations are invoked, and transferring control of the data in transit to a database monitor application subsequent to the availability of the data in plaintext form. The database monitor application intercepts the data in transit at a point just beyond the decryption operation, performs analysis and logging operations, and returns the plaintext data to the expected data stream.
Transferring control of the cryptographic invocation involves examining the communications architecture to identify where the data-in-transit is delegated to a cryptographic operation, and inserting an appropriate interception mechanism to capture the unencrypted data in transit without disrupting the flow of the plaintext data to its intended destination. Typically, delegation to (i.e. invocation of) a cryptographic operation occurs via either a system call, a dynamically linked library call (DLL), or a direct static linkage call (i.e. a stack call). Identification of and insertion of an appropriate interception involves varying degrees of intrusiveness, discussed further below. The above shortcomings are substantially overcome by the disclosed architecture for intercepting secure data in transit by assessing transaction paths into a database host. The architecture recognizes each path from which transactions may arrive and identifies a point in each path for interception of plaintext (unencrypted) data.
A typical database environment 100 often employs a data level security mechanism 154. Such a data level security mechanism focuses on the data access transactions 140, 142 to and from the database, rather than a privilege or access control list at an invoking application 122. The data level security mechanism 154 may include an external database security monitor 150, a database monitor agent 160, or a combination of these, effectively defining the data level security mechanism (database monitor) 154. As indicated above, security of the data in the database 126 is paramount. Accordingly, a database monitor 154 intercepts and scrutinizes the data access transactions 140, either by intercepting the transactions 140′ over a network connection to an interface, or by the database monitor agent 160 as transactions 140″. For performance reasons, it is often sought to capture the access transactions 140 on the network connection 132, prior to the interface 125, to offload security processing from the host 120. However, as will be discussed further below, certain contexts also employ the database monitor agent 160 on the host 120.
As discussed above, many database management systems 124 encrypt data access transactions 140 to avoid exposure of sensitive data items while in transit from an application GUI 112 to the database 126. Data access responses 142 may be similarly covered. However, the database monitor 154 operates on plaintext (unencrypted) data. Accordingly, the database monitor 154 identifies an interception point 172-1 . . . 172-4 (172 generally) corresponding to the transition of ciphertext to plaintext, and captures the plaintext transaction 140″ for scrutiny. Depending on the encryption employed by the particular DBMS 124, the interception point 172 may occur in one of several places. In the case of DBMS IPC interception (i.e. port read watching) shown as interception point 172-4, the interception point 172-4 is triggered by a port 187 read to read data passed from the interface 125 to the port 187 via arrow 99. The communication comes encrypted from the interface 125 and the SVC 158′ decrypts the data by calling the cryptographic operation 158. It then passes the unencrypted data to the DBMS 124, which is where the actual interception occurs, discussed further below.
When the cryptographic operation for decryption 158 is invoked from the interface 125, an interprocess communication (IPC) mechanism is employed to intercept the database access transaction 140 at the interface 125 from the network connection 132, typically by a port read on a socket, shown in interception zone 170-1. The interception point 172-1 is a predetermined port employed by the DBMS 124 for receiving database access transactions 140, and is effected by watching or establishing an intercept triggered on the predetermined port. In this manner, operating system (OS) calls to read the ports corresponding to database transactions 140 result in the database monitor reading the port, scrutinizing the data, and passing it along as intended to the DBMS 124, discussed in further detail in the copending U.S. patent application cited above.
The interception occurs in zone 170-2 when a dynamically linked list (DLL) invocation to the cryptographic operation is employed. A call signature (180,
In an end-to-end encryption scheme, the DBMS process 124 itself includes the invocation 172-3 to the decryption operation 158 via a static linkage. In this instance, the instructions in the executable image (the memory resident machine epodes) are examined to identify the invocation to the decryption operation, typically a stack call. The instructions are replaced with instructions to defer control to the database monitor 154, which then invokes the decryption operation 158 and scrutinizes the transaction 140. These mechanisms are discussed in further detail below with respect to
Security monitoring support for encryption of data in transit may also be provided by an alternate arrangement to address end-to-end encryption via an encryption service. In this configuration, the database server (DBMS) 124 is not doing the encryption/decryption itself, but some external service. A particular example includes IPSEC. If IPSEC is used, the monitor 154 cannot sniff on the network 132 because it is encrypted. Ipsec is beneficial because it provides end-to-end encryption in the TCP/IP protocol itself, and thus can be implemented in a gateway router to a VPN or trusted network space without affecting all nodes beyond the gateway router. The monitor 154 also cannot intercept at 172-1, as it still receives encrypted packets because it is too low in the stack. In such a scenario, show at interception point 172-4, kernel-level interception/sniffing support is employed to intercept IPC calls from the DBMS 124, similar to the mechanism employed in the copending application cited above. This type of interception allows the agent 160 to see socket and/or pipe reads/writes such that when the networking layers of the OS write to the database socket it is already decrypted.
Therefore, continuing to refer to
The interception point 172 is generally an increment in processing just subsequent to the decryption of the transaction 140, and may include modifying processing control just prior to invocation of the decryption operation 158. The zones 170 each include interception points 172, which define where in the processing stream 176 the database monitor operates 160 to intercept the transaction 140. An alternate number of zones 170 may also be employed depending on the appropriate interception mechanism for capturing the encrypted data in transit defined by the transaction 140. Each of the zones 170 includes an interception point 172 at which a transfer of control from the database processing sequence is injected with an interception to seamlessly and nondestructively record and scrutinize the transaction 140, and optionally permitting unhindered progression of the transaction 140 along the intended stream 176.
A decryption operation 158 invocation operates in zone 170-1 via a network interface 125 based mechanism through IPC mediums. There are several scenarios. A physical device may perform hardware based decryption, at or just prior to the interface 125. A secure socket layer (SSL) or secure shell (SSH) interface may also be employed. Such an implementation typically employs operating system (OS) calls to post a read on a port for receiving the transaction 140. An invocation to the port read is interceptable by watching the system (i.e. kernel) calls to read the port, a feature supported by most modern operating systems. Alternatively, the private key portion of the public key pair employed for the encryption may be known, but this approach typically invokes knowledge of the underlying key management logic, as outlined above. The implementation of system call interceptions are discussed further in the copending U.S. patent application cited above, incorporated by reference.
Such an interception occurs generally as outlined above via the IPC mechanism 184, by transferring control of the cryptographic operation 158 to invoke the database monitor 160 after the invocation of the cryptographic operation 158, shows by arrows 90 and 91, respectively.
Alternatively, the data in transit may be decrypted by a dynamic linkage (e.g. DLL) invocation. The DLLs 174-1 . . . 174-2 are bound by searching for a matching signature (e.g. typically a method or function header) in DLLs. The signature to a DLL 174-2 signature 180 for invoking the cryptographic operation 158 is superceded by a DLL 174-1 having a matching interception signature 182 to transfer control to the database monitor 160, at control point 172-2. The interception signature 182 links a method that invokes 92 the cryptographic operation 158 through the original signature 180, which in turn invokes 93 the cryptographic operation 158, then invokes 94 the database monitor 154 for scrutinizing the transaction 140. It should be noted that the invocation of the database monitor 154 need not be a particular static or dynamic linkage suggested by the arrows 90-98, but may be any suitable control for diverting the transaction 140 for scrutiny by the database monitor 160.
In the case of end-to-end encryption to the DBMS 124, in zone 170-3, the DBMS invokes 95 the cryptographic operation 158 via a static linkage, typically a branch instruction 190 (opcode) in the DBMS process. The interception point 172-3 corresponding to the branch 190 is identified by examining machine instructions (opcodes) in the executable image (set of instructions) for the branch 190 opcode. The branch is either replaced or immediately followed with a jump 192 instruction for directing the transaction 140 to the database monitor 160 for scrutiny. Direct modification of the instruction sequence at the opcode level is a positionally specific modification that may be performed by disassembling the memory resident image, scanning memory locations for values corresponding to both the call opcode and the label of the cryptographic operation 158, or other suitable procedure.
In an alternate configuration, discussed above, the security service 158′ is invoked by the DBMS process 124 or other process along the path 176. In this arrangement, the cryptographic operation 158 is invoked via an IPC call (in contrast to a stack call in the same process or address space discussed above) to the decryption service 158′. The database monitor 154 establishes a watch on the IPC mechanism, such as a port 187, to be employed for returning the decrypted (plaintext) data, shown by arrow 97, and delegates the intercepted data to the database monitor agent 160, as shown by arrow 98. As indicated above, the DBMS 124 intercepts the plaintext data by watching for port 187 reads, thus the (decrypted) data originates from the interface, as shown by arrow 99 (
Interception of encrypted data in transit includes locating a database access process 128, portal 124, or interface 125 such that the database access process is operable as an endpoint of an encrypted sequence 176 of data in transit, as depicted at step 302. The mechanism of transporting and decrypting the data in transit to the database is identified so that the existence of decrypted data in the stream 176 is located. The mechanism identifies, in the database access process 128, a transfer of processing control to a cryptographic operation 158, such that the cryptographic operation 158 is operable to generate decrypted data 175 from the encrypted sequence of data 176, as shown at step 303.
The database monitor 154 determines a transition 172 from encrypted data to decrypted data, in which the transition is indicative of invocation of a cryptographic operation to generate decrypted data 175 from the encrypted data 140, as disclosed at step 304. There are multiple points at which the transition may occur, because conventional database management systems employ multiple encryption arrangements. In the example shown, identifying a control point includes determining the usage of IPC connections employing a predetermined credential exchange using a certificate, as shown at step 305, or dynamic linked lists in which the application processes 122 are operable to invoke dynamic linkages 168 to receive ciphertext and generate the corresponding plaintext, as depicted at step 308. Another arrangement is a static linkage, in which end to end cryptographic operations are statically linked in an executable image (i.e. DBMS 124), as shown at step 309. Further, the IPC connections typically define either a secure interface including network ports operable to collect encrypted data in transit, as shown at step 306, or encapsulation of encrypted packets in a tunneled framing envelope, as disclosed at step 307. The usage of isolating particular port reads and tunneling is discussed further in the copending application cited above.
Based on the encryption arrangement, the database monitor 154 determines an interception point 172 following the determined transition, as shown at step 310. Interception occurs subsequent to availability of the plaintext (decrypted) data in the data stream 176, as soon as feasible in the flow 176-1 . . . 176-4. The database monitor 154 selects, based on the encryption invocation, a manner of accessing the decrypted data at the determined interception point 176, as shown at step 311. A check is performed, at step 312, to identify the manner of accessing the decryption operation 158 and the database monitor 154 replaces the transfer of processing control to the cryptographic operation 158 with a corresponding interception to extract the decrypted data. In the example shown, the database monitor identifies IPC mechanisms, dynamic linking (DLL) and static linkages from an executable image as manners of invoking the decryption operation 158, however other invocation mechanisms will be apparent to those of skill in the art.
If the check at step 312 indicates an IPC control mechanism 172-1, then the database monitor 154 establishes a watch or interrupt on system calls operable to access the IPC mechanism, as depicted at step 313. The watch allows the database monitor agent 160 to identify a call to an interprocess communication (IPC) mechanism, such as a port read, for receiving the access request, as disclosed at step 314, and performing an intervening read on the identified IPC mechanism to supercede preexisting application calls for receiving a database access request 140, as depicted at step 315.
If the check at step 312 indicates a DLL control mechanism 172-2, then identifying the transfer of processing control further includes identifying a call signature 180 to the cryptographic operation to invoke the decrypt operation 158 for received data 140, as shown at step 316. The database monitor 154 substitutes the identified call signature 180 with an interception signature 182 to forward the decrypted data 175 to the database monitor agent 160, as shown at step 317. Upon linking, the interception signature 182 is found first to transfer control to an interception operation, as shown at step 318, in which the interception operation is operable to intercept the decrypted data 175 for analysis by the database monitor application (agent) 160, shown as arrow 94, as disclosed at step 319. The interception operation invokes 92 the intended call signature 180, which in turn invokes 93 the decryption operation. The interception operation (signature 182) therefore sends 94 an intercepted copy of the data to the database monitor 160, in which the database monitor 154 is operable to scrutinize database access statements in the transaction 140.
The interception signature 182 returns control to a return from the invocation 168 to the identified call signature 180 with the decrypted data, as shown at step 320, therefore returning the decrypted data 175 as the result of the identified call signature 180 so that the database transaction 140 may continue unhindered along the path 176, as depicted at step 321.
If the check at step 312 indicated a static linkage, then accessing the decrypted data includes locating a database access process (i.e. DBMS) 124 operable to identify data access statements in the sequence of data, as depicted at step 322. The database access process is operable to receive the data access statements 140 in the data access request as encrypted units, as shown at step 323, and invoke cryptographic operations 158 to decrypt the data access statements 140 in to plaintext data from within the database access process 124 via a static linkage 95, as shown at step 324.
The database monitor 154 locates a control point 172-3 from which control is obtainable, as disclosed at step 325. For the static linkage, replacing the transfer of processing control further includes examining the executable image 124 to identify machine instructions 190 operable to branch to the encryption operation 158, as depicted at step 326. Examination of the executable image involves scanning or parsing the individual instructions (opcodes) in the sequence specified in the image, such as by disassembly, reverse engineering, or scanning the loaded program space in memory. The opcodes corresponding to the control transfer point 172-3, typically a branch instruction 190 with the label of the cryptographic operation 158, are identified. The return from the branch instruction 190 identifies availability of plaintext data in a processing sequence of data in transit to the database, as shown at step 327. The database monitor 154 inserts a control branch or jump 192 to direct the plaintext data to the database monitor 160, in which the database monitor 154 is operable to intercept the plaintext data, as shown at step 329. In the example shown, the machine instructions are opcodes operable to perform a stack call to the encryption operation, as shown at step 330, however alternate compilations, interpretations and static or dynamic binding mechanisms may be employed.
The database monitor overwrites the identified machine instructions (or inserts) with machine instructions 192 to call a function for communicating the database access request 140 to the database monitor application, as depicted at step 328, shown as arrow 96. The example jump instruction 192 shown may immediately follow or replace the branch instruction 190, and the control reverts back to the original database processing path 176 after invoking the cryptographic operation 158. Alternatively, other conditional or unconditional branching instructions may be employed.
Returning from steps 315, 321 or 330, depending on the transfer of control 176, the database monitor agent 160 receives decrypted data 175 returned from the cryptographic operation 158, as shown at step 331. This includes intercepting the decrypted data for analysis by the database monitor 154 by receiving it from the applicable interception, as shown at step 332, and sending the intercepted copy of the data to the database monitor agent 160, such that the database monitor 154 is operable to scrutinize the database access statements in the transaction 140, as shown at step 333. Sending the decrypted data 175 invokes analysis of the decrypted data by the database monitor 154, as shown at step 334. Concurrently, the interception point 176 may selectively return processing control from the interception to the database access process 190 along with unhindered decrypted data returned from the cryptographic operation 158. Depending on the operation of the database monitor 154, the monitor selectively allows or prohibits the transaction 140 to proceed. If the database monitor 154 does not intervene in the path 176, the mechanism forwards the decrypted data to the intended destination from the control point 172, as shown at step 335, thus returning the decrypted data in an unmodified form for further processing by the database access process 124 unbeknownst of the monitoring performed, as shown at step 336. The interception processing performed by the database monitor 154 therefore allows control to resume in the processing sequence unhindered from the control point 172 following interception of the plaintext data, as depicted at step 337. Interception processing relinquishes the transfer of control from the database monitor 154 back to the database access process 124 at a successive point in a control flow such that the interception processing is undetectable to the receiver of the decrypted data, as disclosed at step 338.
Those skilled in the art should readily appreciate that the programs and methods for interception of secure data in transit defined herein are deliverable to a processing device in many forms, including but not limited to a) information permanently stored on non-writeable storage media such as ROM devices, b) information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media, or c) information conveyed to a computer through communication media, for example using baseband signaling or broadband signaling techniques, as in an electronic network such as the Internet or telephone modem lines. The disclosed method may be in the form of an encoded set of processor based instructions for performing the operations and methods discussed above. Such delivery may be in the form of a computer program product having a computer readable medium operable to store computer program logic embodied in computer program code encoded thereon, for example. The operations and methods may be implemented in a software executable object or as a set of instructions embedded in a carrier wave. Alternatively, the operations and methods disclosed herein may be embodied in whole or in part using hardware components, such as Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), state machines, controllers or other hardware components or devices, or a combination of hardware, software, and firmware components.
While the system and method for interception of secure data in transit has been particularly shown and described with references to embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4451916 | Casper et al. | May 1984 | A |
4611205 | Eglise | Sep 1986 | A |
4672572 | Alsberg | Jun 1987 | A |
4956769 | Smith | Sep 1990 | A |
5224058 | Mickaels | Jun 1993 | A |
5261102 | Hoffman | Nov 1993 | A |
5299257 | Fuller et al. | Mar 1994 | A |
5325290 | Cauffman et al. | Jun 1994 | A |
5355474 | Thuraisngham et al. | Oct 1994 | A |
5557742 | Smaha et al. | Sep 1996 | A |
5594899 | Knudsen et al. | Jan 1997 | A |
5606668 | Shwed | Feb 1997 | A |
5701342 | Anderson et al. | Dec 1997 | A |
5737316 | Lee | Apr 1998 | A |
5758083 | Singh et al. | May 1998 | A |
5825772 | Dobbins et al. | Oct 1998 | A |
5826267 | McMillan | Oct 1998 | A |
5828666 | Focsaneanu et al. | Oct 1998 | A |
5835726 | Shwed et al. | Nov 1998 | A |
5845281 | Benson et al. | Dec 1998 | A |
5848233 | Radia et al. | Dec 1998 | A |
5881225 | Worth | Mar 1999 | A |
5884025 | Baehr et al. | Mar 1999 | A |
5953707 | Huang et al. | Sep 1999 | A |
5961582 | Gaines | Oct 1999 | A |
5963642 | Goldstein | Oct 1999 | A |
5974396 | Anderson et al. | Oct 1999 | A |
5978788 | Castelli et al. | Nov 1999 | A |
5978813 | Foltz et al. | Nov 1999 | A |
6009475 | Shrader | Dec 1999 | A |
6016491 | Kou | Jan 2000 | A |
6044376 | Kurtzman, II | Mar 2000 | A |
6049821 | Theriault et al. | Apr 2000 | A |
6052447 | Golden et al. | Apr 2000 | A |
6061797 | Jade et al. | May 2000 | A |
6070243 | See et al. | May 2000 | A |
6075926 | Atkins et al. | Jun 2000 | A |
6076168 | Fiveash et al. | Jun 2000 | A |
6081900 | Subramaniam et al. | Jun 2000 | A |
6085191 | Fisher et al. | Jul 2000 | A |
6088796 | Cianfrocca et al. | Jul 2000 | A |
6097399 | Bhatt et al. | Aug 2000 | A |
6105027 | Schneider et al. | Aug 2000 | A |
6119236 | Shipley | Sep 2000 | A |
6122403 | Rhoads | Sep 2000 | A |
6125447 | Gong | Sep 2000 | A |
6151601 | Papierniak et al. | Nov 2000 | A |
6192476 | Gong | Feb 2001 | B1 |
6205475 | Pitts | Mar 2001 | B1 |
6226749 | Carloganu et al. | May 2001 | B1 |
6230156 | Hussey | May 2001 | B1 |
6236996 | Bapat et al. | May 2001 | B1 |
6253321 | Nikander et al. | Jun 2001 | B1 |
6272641 | Ji | Aug 2001 | B1 |
6279010 | Anderson | Aug 2001 | B1 |
6298327 | Hunter et al. | Oct 2001 | B1 |
6304975 | Shipley | Oct 2001 | B1 |
6311272 | Gressel | Oct 2001 | B1 |
6330562 | Boden et al. | Dec 2001 | B1 |
6332163 | Bowman-Amuah | Dec 2001 | B1 |
6336996 | Steiner | Jan 2002 | B1 |
6341312 | French et al. | Jan 2002 | B1 |
6347374 | Drake et al. | Feb 2002 | B1 |
6347376 | Attwood et al. | Feb 2002 | B1 |
6356941 | Cohen | Mar 2002 | B1 |
6366952 | Pitts | Apr 2002 | B2 |
6393568 | Ranger et al. | May 2002 | B1 |
6442748 | Bowman-Amuah | Aug 2002 | B1 |
6460046 | Meek | Oct 2002 | B1 |
6480861 | Kanevsky et al. | Nov 2002 | B1 |
6496850 | Bowman-Amuah | Dec 2002 | B1 |
6505241 | Pitts | Jan 2003 | B2 |
6529909 | Bowman-Amuah | Mar 2003 | B1 |
6529948 | Bowman-Amuah | Mar 2003 | B1 |
6532465 | Hartley et al. | Mar 2003 | B2 |
6539396 | Bowman-Amuah | Mar 2003 | B1 |
6550057 | Bowman-Amuah | Apr 2003 | B1 |
6578068 | Bowman-Amuah | Jun 2003 | B1 |
6581052 | Slutz | Jun 2003 | B1 |
6601192 | Bowman-Amuah | Jul 2003 | B1 |
6606660 | Bowman-Amuah | Aug 2003 | B1 |
6609123 | Cazemier et al. | Aug 2003 | B1 |
6615253 | Bowman-Amuah | Sep 2003 | B1 |
6633936 | Keller et al. | Oct 2003 | B1 |
6636585 | Salzberg et al. | Oct 2003 | B2 |
6658091 | Naidoo et al. | Dec 2003 | B1 |
6658625 | Allen | Dec 2003 | B1 |
6678355 | Eringis et al. | Jan 2004 | B2 |
6681331 | Munson et al. | Jan 2004 | B1 |
6687702 | Vaitheeswaran et al. | Feb 2004 | B2 |
6694368 | An et al. | Feb 2004 | B1 |
6714778 | Nykanen et al. | Mar 2004 | B2 |
6789046 | Murstein et al. | Sep 2004 | B1 |
6807546 | Young-Lai | Oct 2004 | B2 |
6820082 | Cook et al. | Nov 2004 | B1 |
6842105 | Henderson et al. | Jan 2005 | B1 |
6851004 | Hayter et al. | Feb 2005 | B2 |
6941369 | Krack et al. | Sep 2005 | B1 |
6941472 | Moriconi et al. | Sep 2005 | B2 |
7038611 | Gounalis | May 2006 | B2 |
7043541 | Bechtolsheim et al. | May 2006 | B1 |
7080077 | Ramamurthy et al. | Jul 2006 | B2 |
7085834 | Delany et al. | Aug 2006 | B2 |
7089322 | Stallmann | Aug 2006 | B1 |
7111059 | Garcea et al. | Sep 2006 | B1 |
7136995 | Wann | Nov 2006 | B1 |
7171413 | Puz et al. | Jan 2007 | B2 |
7231378 | Lawson et al. | Jun 2007 | B2 |
7248568 | Loc et al. | Jul 2007 | B1 |
7308388 | Beverina et al. | Dec 2007 | B2 |
7337105 | Sugimoto | Feb 2008 | B2 |
7342896 | Ayyagari | Mar 2008 | B2 |
7426512 | Ben-Natan | Sep 2008 | B1 |
7437362 | Ben-Natan | Oct 2008 | B1 |
7506371 | Ben-Natan | Mar 2009 | B1 |
7567819 | Alone et al. | Jul 2009 | B2 |
7694134 | Witt et al. | Apr 2010 | B2 |
7904454 | Raab | Mar 2011 | B2 |
7933923 | Ben-Natan | Apr 2011 | B2 |
7945516 | Bishop et al. | May 2011 | B2 |
7970788 | Ben-Natan et al. | Jun 2011 | B2 |
20020007363 | Vaitzblit | Jan 2002 | A1 |
20020010800 | Riley et al. | Jan 2002 | A1 |
20020019944 | Kou | Feb 2002 | A1 |
20020027907 | Tateoka | Mar 2002 | A1 |
20020059451 | Haviv | May 2002 | A1 |
20020066033 | Dobbins et al. | May 2002 | A1 |
20020066038 | Mattsson et al. | May 2002 | A1 |
20020078384 | Hippelainen | Jun 2002 | A1 |
20020095496 | Antes et al. | Jul 2002 | A1 |
20020095603 | Godwin et al. | Jul 2002 | A1 |
20020104017 | Stefan | Aug 2002 | A1 |
20020129140 | Peled et al. | Sep 2002 | A1 |
20020129271 | Stanaway et al. | Sep 2002 | A1 |
20020133723 | Tait | Sep 2002 | A1 |
20020147726 | Yehia et al. | Oct 2002 | A1 |
20020147927 | Tait | Oct 2002 | A1 |
20020152399 | Smith | Oct 2002 | A1 |
20020154646 | Dubois et al. | Oct 2002 | A1 |
20020157020 | Royer | Oct 2002 | A1 |
20020177910 | Quarterman et al. | Nov 2002 | A1 |
20030028624 | Hasan et al. | Feb 2003 | A1 |
20030046302 | Miron | Mar 2003 | A1 |
20030056200 | Li et al. | Mar 2003 | A1 |
20030084320 | Tarquini et al. | May 2003 | A1 |
20030084328 | Tarquini et al. | May 2003 | A1 |
20030182580 | Lee | Sep 2003 | A1 |
20030217069 | Fagin et al. | Nov 2003 | A1 |
20030217149 | Crichton et al. | Nov 2003 | A1 |
20040024764 | Hsu et al. | Feb 2004 | A1 |
20040093506 | Grawrock et al. | May 2004 | A1 |
20040098415 | Bone et al. | May 2004 | A1 |
20040111344 | Fetter et al. | Jun 2004 | A1 |
20040111623 | Miller et al. | Jun 2004 | A1 |
20040117037 | Hinshaw et al. | Jun 2004 | A1 |
20040143733 | Ophir et al. | Jul 2004 | A1 |
20040168050 | Desrochers et al. | Aug 2004 | A1 |
20040255301 | Turski et al. | Dec 2004 | A1 |
20040260947 | Brady et al. | Dec 2004 | A1 |
20050005031 | Gordy et al. | Jan 2005 | A1 |
20050071337 | Baranczyk et al. | Mar 2005 | A1 |
20050071650 | Jo et al. | Mar 2005 | A1 |
20050086529 | Buchsbaum | Apr 2005 | A1 |
20050097149 | Vaitzblit et al. | May 2005 | A1 |
20050149537 | Balin et al. | Jul 2005 | A1 |
20050203921 | Newman et al. | Sep 2005 | A1 |
20060059154 | Raab | Mar 2006 | A1 |
20060242431 | LeCrone et al. | Oct 2006 | A1 |
20070112864 | Ben-Natan | May 2007 | A1 |
20070118543 | Yamamoto et al. | May 2007 | A1 |
20070180275 | Metzger et al. | Aug 2007 | A1 |
20080011843 | Barenburg et al. | Jan 2008 | A1 |
20080033960 | Banks et al. | Feb 2008 | A1 |
20080275843 | Lal et al. | Nov 2008 | A1 |
20090271453 | Ben-Natan | Oct 2009 | A1 |
20100131512 | Ben-Natan et al. | May 2010 | A1 |
20100132024 | Ben-Natan et al. | May 2010 | A1 |
Number | Date | Country |
---|---|---|
0398645 | Nov 1990 | EP |
9831124 | Jul 1998 | WO |
9966384 | Dec 1999 | WO |
Entry |
---|
Lunt et al., “IDES: A Progress Report,” IEEE, 1990. |
Jones Katherine, “Secure Internet Access to SAP's R/3: Keeping Dragons Out,” Int. J. Network Mgmt., vol. 8 © 1998, pp. 191-199. |
Joshi, James B. D., et al., “Security Models for Web-Based Applications,” Communications of the ACM, vol. 44, No. 2, Feb. 2001, pp. 38-44. |
Muller, Nathan J., “Improving Network Operations With Intelligent Agents,” Int. J. Network Mgmt., vol. 7, © 1997, pp. 116-126. |
Jaeger, T., et al., “Flexible Access Control Using IPC Redirection,” Proc. of the 7th Workshop on Hot Topics in Operating Systems, Mar. 29-30, 1999, pp. 191-196. |
Roscheisen, Martin, et al., “A Communication Agreement Frame-work for Access/Action Control,” 1996 IEEE Symposium on Security and Privacy, © 1996, pp. 154-163. |
Appenzeller, Guido, et al., “User-Friendly Access Control for Public Network Ports,” IEEE 0-7803-5417-6/99, © 1999, pp. 699-707. |
Balasubramaniyan, Jai Sundar, et al., “An Architecture for Intrusion Detection Using Autonomous Agents,” 14th Annual Computer Security Applications Conf. Proc., Phoenix, AZ, Dec. 7-11, 1998, pp. 13-24. |
Gangadharan, Muralidaran, et al., “Intranet Security with Micro-Firewalls and Mobile Agents for Proactive Intrusion Response,” IEEE Intl Conf. on Computer Networks and Mobile Computing, Beijing, China, Oct. 16-19, 2001, pp. 325-332. |
Miller, Sandra Kay, “The Trusted OS Makes a Comeback,” Computer, vol. 34, Issue 2, Feb. 2001, pp. 16-19. |
Microsoft Computer Dictionary, 5th Edition, Microsoft Press, Redmond WA, © 2002, p. 22. |
Chari, Suresh N., et al., “BlueBoX: A Policy-Driven, Host-Based Intrusion Detection System,” ACM Transactions on Information and System Security, vol. 6, No. 2, May 2003, pp. 173-200. |
Schepers, Filip, et al., “Network-Versus Host-Based Intrusion Detection,” Information Security Technical Report, vol. 3, Issue 4, © 1998, pp. 32-42. |
Levine, John, et al., “The Use of Honeynets to Detect Exploited Systems Across Large Enterprise Networks,” Proc. of the 2003 IEEE Workshop on Information Assurance, West Point, NY, Jun. 18-20, 2003, pp. 92-99. |
Kewley, Dorene L., et al., “DARPA Information Assurance Program Dynamic Defense Experiment Summary,” IEEE Transactions on Systems, Man and Cybernetics—Part A: Systems and Humans, vol. 31, No. 4, Jul. 2001, pp. 331-336. |
Ron Ben Natan, Implementing Database Security and Auditing: A Guide for DBAs, information security administrators and auditors, Elsevier Digital Press (May 2, 2005) pp. 95-108, 177-201, 242-266, 278-293, 324-326, 340-391. |
Newman, Aaron, Security Auditing in Microsoft SQL Server (Nov. 3, 2005) [retrieved from http://web.archive.org./web/20051227161250/www.appsecinc./presentations/Security—Auditing—MSSQL.pdf on Apr. 6, 2010]. |
Applicaton Security, Inc. AppRadar User Guide (Nov. 3, 2005) [retrieved from http://web.archive.org.web/20050204172218/http://www/appsecinc.com/techdocs/AppDetectiveUG.pdf on Apr. 5, 2010]. |
Guardium Press Release, “Guardium Introduces SQL Guard” (Feb. 9, 2004) [retrived from http://www.guardium.com/index.php/prprint/390 on Mar. 19, 2010]. |
Webster's II New College Dictionary. Houghton Mifflin Co. (1995). p. 231. |
Deri, L; Carbone R; Suin, S. Monitoring Networks Using Ntop (2001) [Retrieved from http://citeseer.ist.psu.edu/old/414959.html on Apr. 7, 2010]. |
Roesch, Martin. SNORT—Lightweight Intrusion Detection for Networks. Proceedings of LISA '99 13th Systems Administration Conference (Nov. 7-12, 1999) pp. 229-238 [retrieved from http://www.unenix.org on Apr. 6, 2010]. |
Silberzchatz, A; Korth, H.; Sudarshan, S. Database System Concept. 5th Edition. McGraw-Hill Publishing (May 17, 2005) pp. 934-936, 1078-1079. |
Guardium, Inc. Auditing, Compliance, and Privacy Through Effective Controls on Data Access and Usage (Mar. 22, 2005) [retrieved from http://guardium.com on Apr. 6, 2010]. |
Dar et al., “dbSwitchtm: towards a database utility,” Proceedings of the 2004 ACM SIGMOD international conference on Management of data, Jun. 2004 p. 892-896. Retrived from the Internet <URL:http//portal.acm.org/ft—gateway.cfm?id=1005726&type=pdf&coll=ACM&CFID=59243114&CFTOKEN=20435778>. |
Feamster et al., “A model of BGP routing for network engineering,” Proceedings of the joint international conference on Meaurement and Modeling of computer systems, Jun. 2004, p. 331-342. Retrieved from the internet:URL: http://portal.acm.org/ft—gateway.cfm?id=1005726&type=pdf&coll=ACM&dl=ACM&CFID=59243114&CFTOKEN=20435778>. |
SQL Guard Version 4.0.2 User Guide, Aug. 18, 2005. |
SQL Guard Version 4.0.2 Administrator Guide, Aug. 18, 2005. |
User Guide for SQL Guard Version 5.1, Jul. 14, 2006. |
Administrator Guide for SQL Guard Version 5.1, Jul. 21, 2006. |
Rao et al., “A New Neural Network Architecture for Efficient Close Proximity Match of Large Databases”, Database and Expert Systems Applications, 1997, Proceedings Eighth International Workshop Toulouse, France, Sep. 1-2, 1997, IEEE Comput. Soc. Sep. 1, 1997, pp. 444-449. |
Oyama, et al., “Speculative Security Checks in Sandboxing Systems,” (Apr. 2005), Proceedings of the 2005 International Parallel and Distributed Processing Symposium (IPDS), pp. 1-8. |
Mukhar et al., “Beginning Java Databases,” (2001), Wrox Press Ltd., pp. 262-264. |
Gray, “Interprocess Communications in Linux,” (2003), Pearson Hall PTR, pp. 451-453. |
Number | Date | Country | |
---|---|---|---|
20100131758 A1 | May 2010 | US |