This disclosure relates generally to a system and method for providing assured database updates via a one-way data link.
Protection of computer or data networks from undesired and unauthorized data disclosure, interception or alteration has been a perennial concern in the field of computer and network security, for which firewalls and anti-spyware software have been developed to address security threats to computers and networks connected to the Internet and to protect them from possible cyber-attacks, such as Trojan horse-type viruses or worms that may trigger undesired and unauthorized data disclosure by these computers and networks. However, for high security computer networks, such as those used by government agencies, intelligence communities, and certain commercial applications, conventional network security devices such as firewalls may not provide sufficiently reliable protection from undesired disclosure.
A high level of network security can be attained through the use of one-way data links, which isolate secure networks from security breaches (i.e., undesired and unauthorized data flow out of the secure network) while still allowing data from a low security environment to enter the network in a controlled manner or vice versa. Various systems and methods have been developed for implementing one-way data transfer to a secure network, including both hardware and software implementations of one-way data links.
Software solutions include standard Internet firewalls as well as operating systems configured with specialized rules for restricted unidirectional information flow. Systems such as these are designed to have great flexibility, but are now being asked to perform strict unidirectional data transfer. The complexity of software-implemented one-way data transfer is such that it is difficult to validate and verify that the controlled interface is strictly one-way, failsafe and resistant to reconfiguration through administrator error or malicious intent. Additionally, it is difficult to prove in complex systems that data is not bypassing the one way security feature.
As an alternative to software-based one-way data transfer, hardware-based unidirectional interfaces have also been developed. Since such systems implement the unidirectional policy of the controlled interface in hardware, the one-way nature and non-bypassable operation of the device can be validated to a high degree of assurance. Highly engineered solutions, such as the Owl Computing Technologies DualDiode, (described in U.S. Pat. No. 8,068,415, the disclosure of which is incorporated herein by reference) provide a direct point-to-point optical link between the enclaves. The DualDiode one-way data link includes an optical transmitter (on the send side) coupled to an optical receiver (on the receive side) via an optical fiber that crosses the boundary from the send side to the receive side. The unidirectionality of the data transfer is enforced in the circuitry of the network interface cards at both enclave endpoints and in the cable interconnects (because there are no optical receiving devices coupled to the optical fiber on the send side and no optical transmitting devices coupled to the optical fiber on the receive side). In this way, the hardware provides an added layer of assurance of unidirectional information flow and non-bypassable operation. In contrast to software based one-way data transfer systems, it is easy to prove that data is not bypassing the DualDiode. One problem that arises in such systems, however, is the detection of transmission errors for data passing from a transmitting server to a receiving server, since no feedback is provided (or could be provided) from the receiving server to the transmitting server in view of the one-way nature of the transmission along the one-way link coupling the transmitting server to the receiving server. This can be particularly troublesome when the data passing across the one-way link constitutes database update information for updating a remote database at a server coupled to the receiving server so that the remote database includes the same information as a reference database on the send side. This is because the transmitting server will not have any way to identify and correct transmission errors. As a result, any database update data lost during transmission cannot be recovered and the remote database will not be fully updated to match the reference database.
Accordingly, there is a need for a system and method which assures that a remote database receives every database update message transmitted across a one-way data link. Additionally, there is a need for a way to automatically recover when messages are missed due to networking or power issues.
In one aspect, a system is provided for assuredly copying information from a reference database to a remote database. The reference database has an associated log file including sequential entries for each change made to the reference database. The system includes a send server coupled to a first network, a receive server coupled to a second network, and a one-way data link for unidirectional transfer of information from the send server to the receive server. A monitor application is also provided for reading the log file at predetermined intervals, for generating a set of database update information including each new entry in the log file, for providing the new set of database update information with sequence information, and for sequentially forwarding each set of database update information to the send server. Finally, an update application is provided for receiving each set of database update information and for updating the remote database based on entries included in each received set of database update information. The send server is configured to forward each received set of database update information to the receive server via the one-way data link and to store each set of database update information in a memory in the send server. The send server is also configured to, after receipt of all sets of database update information in a current group, to compress all of the stored sets of database update information into a single compressed file and to forward the single compressed file to the receive server. The receive server is configured to receive each set of database update information from the send server via the one-way data link, to extract sequence information from a current set of database update information and to compare the extracted sequence information with sequence information for an immediately previously received set of database update information to determine if the current set of database update information was received in proper sequential order. The receive server is also configured to forward the current set of database update information to the update application via the second network if the current set of database update information was determined to be received in proper sequential order. The receive server is also configured to receive the single compressed file from the send server via the one-way data link, to decompress the single compressed file and to store all of the decompressed sets of database update information from the single compressed file in a memory in the receive server. The receive server is also configured to, if the current set of database update information was determined not to be received in proper sequential order, to discard each subsequent set of database update information in the current group, to identify an initial set of database update information in the memory in the receive server that corresponds to a next sequential set of database update information to the previously received set of database update information, and to read and forward the identified initial set of database update information and each subsequent sequential set of database update information in the memory in the receive server to the update application.
In one embodiment, the monitor application and reference database are within a server coupled to the first network and the monitor application is configured to forward each set of database update information to the send server via the first network, and the update application and remote database are within a server coupled to the second network, with the receive server is configured to forward each set of database update information to the update application via the second network. In another embodiment, the monitor application and reference database are within the send server, and the update application and remote database are within a server coupled to the second network, with the receive server is configured to forward each set of database update information to the update application via the second network. In yet another embodiment, the monitor application and reference database are within a server coupled to the first network and the monitor application is configured to forward each set of database update information to the send server via the first network, and the update application and remote database are within the receive server. In a still further embodiment, the monitor application and reference database are within the send server, and the update application and remote database are within the receive server.
In one embodiment, each set of database update information is stored as a database update file. The sequence information may be stored as part of a filename for each database update file or may be stored within each database update file.
In another embodiment, the sets of database update information are included within packets of information. Such packets of information may include UDP/IP packets or TCP/IP sockets communicating with a delimiting protocol between information sequences.
In another aspect, a method is provided for assuredly copying information from a reference database to a remote database. The reference database has an associated log file including sequential entries for each change made to the reference database. The log file is read at predetermined intervals, a set of database update information is generated including each new entry in the log file, and the new set of database update information is provided with sequence information. In a send server, each set of database update information is forwarded to a receive server via a one-way data link and each set of database update information is stored in a memory in the send server. After receipt of all sets of database update information in a current group in the send server, all of the stored sets of database update information are compressed into a single compressed file and the single compressed file is forwarded to the receive server. In the receive server, each set of database update information is received from the send server via the one-way data link, sequence information is extracted from a current set of database update information and the extracted sequence information is compared with sequence information for an immediately previously received set of database update information to determine if the current set of database update information was received in proper sequential order. If the current set of database update information was determined to be received in proper sequential order, the remote database is updated based on entries included in the current set of database update information. At the receive server, the single compressed file from the send server is received via the one-way data link, the single compressed file is decompressed and all of the decompressed sets of database update information from the single compressed file is stored in a memory in the receive server. Finally, if the current set of database update information was determined not to be received in proper sequential order, each subsequent set of database update information in the current group is discarded, an initial set of database update information in the memory in the receive server that corresponds to a next sequential set of database update information to the previously received set of database update information is identified, and the remote database is updated based on entries included in the identified initial set of database update information and each subsequent sequential set of database update information in the memory in the receive server.
The features, functions, and advantages can be achieved independently in various embodiments of the present disclosure or may be combined in yet other embodiments in which further details can be seen with reference to the following description and drawings.
The following detailed description, given by way of example and not intended to limit the present invention solely thereto, will best be understood in conjunction with the accompanying drawings in which:
In the present disclosure, like reference numbers refer to like elements throughout the drawings, which illustrate various exemplary embodiments of the present invention.
Referring now to the drawings, and in particular to
The database update system 100 includes in a presently preferred embodiment a monitor application 109 running on first server 106, a send server 115, a one-way data link 116, a receive server 122 and an update application 132 running on second server 107. First server 106 and send server 115 are each coupled to first network 112 via respective conventional network interfaces 111, 113. Second server 107 and receive server 122 are each coupled to a second network 130 via respective conventional network interfaces 131, 129. In one alternative embodiment, the reference database 104 and monitor application 109 may be included within send server 115 (instead of on a separate server 106). In another alternative embodiment, the remote database 105 and the update application 132 may be included within receive server 122 (instead of on a separate server 107). As evident, in a still further embodiment, the reference database 104 and monitor application 109 may be included within send server 115 (instead of on a separate server 106) and the remote database 105 and the update application 132 may be included within receive server 122 (instead of on a separate server 107).
The first server 106, the send server 115 and the first network 112 are all within the first network domain 101. The second server 107, the receive server 122 and the second network 130 are each within the second network domain 103. Send server 115 can transfer information to receive server 122 via the one-way data link 116, but, because of the nature of the one-way data link (which is preferably an Owl DualDiode System), receive server 122 cannot transmit any information (or signals of any kind) to send server 115. Database update system 100 allows database update information to be transmitted from reference database 104 in first network domain 101 to remote database 105 in the second network domain 103 while maintaining the sanctity of first network domain 101 (because the one-way data link 116 prevents any information of any kind, even acknowledgement signals, from entering first network domain 101. This is particularly useful when the first network domain 101 requires high security as typically required for industrial process control networks for power plants or other sensitive manufacturing processes, but information stored within the reference database 104 is also needed outside the first (secure) network domain 101, e.g., in a corporate business network in the second network domain 103.
Monitor application 109 running on first server 106 repetitively reads log file 108 to keep track of changes thereto and, either at regular predetermined intervals or upon a predetermined number of changes added to log file 108, writes each of the new entries into a new file 110 designated “FILE_0X” in
Input application 114 at send server 115 receives each of the FILE_0X files 110 and forwards such file to a first input of send application 118 for transmission across one-way data link 116. Input application 114 also stores each of the received FILE_0X files 110 in a memory 120 in send server 115, providing a send-side backup copy of each file 110 (shown as FILE_01 to FILE_N in block 121). A send-side backup application 119 in send server 115 monitors memory 120 and, when N files have been stored (constituting the complete current group), compresses all of the backup files (i.e., FILE_01 to FILE_N) together and then forwards the compressed file to a second input of send application 118 for transmission across one-way data link 116.
A receive application 123 in receive server 122 receives the data stream from one-way data link 116 and forwards each respective FILE_0X file 110 directly to a forward application 125 running on receive server 122. Receive application 123 also forwards the compressed file (constituting all of the most recent files FILE_01 to FILE_N in the current group) to a receive-side backup application 126, which decompresses the file and stores the decompressed files in a memory 127 (the decompressed files are shown as FILE_01 to FILE_N in block 128 in
Forward application 125 on receive server 122 receives each FILE_0X file 110 and compares the index X (obtained either from the filename or from sequence information stored in the file) to the index of the immediately preceding FILE_0X file 110. As shown in
However, in the event that a transmission error occurs and one or more of the FILE_0X files 110 is not received, forward application 125 identifies, based on the index number (sequence information), that a file was not received and stops sending the received FILE_0X files 110 to update application 123 until all of the files in the current group have been received. A new group may be identified when the index for the current file 110 is less than the index for the previously received file, for example. This is shown in
Although the present invention has been particularly shown and described with reference to the preferred embodiments and various aspects thereof, it will be appreciated by those of ordinary skill in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. In particular, although the database update information discussed above is transmitted as a file, such information may also be included in packets of information such UDP/IP packets or TCP/IP sockets communicating with a delimiting protocol between information sequences. It is intended that the appended claims be interpreted as including the embodiments described herein, the alternatives mentioned above, and all equivalents thereto.
Number | Name | Date | Kind |
---|---|---|---|
4672601 | Ablay | Jun 1987 | A |
5282200 | Dempsey et al. | Jan 1994 | A |
5703562 | Nilsen | Dec 1997 | A |
5742792 | Yanai | Apr 1998 | A |
5769527 | Taylor et al. | Jun 1998 | A |
5889935 | Ofek | Mar 1999 | A |
5983332 | Watkins | Nov 1999 | A |
6052797 | Ofek | Apr 2000 | A |
6108787 | Anderson et al. | Aug 2000 | A |
6178427 | Parker | Jan 2001 | B1 |
6262993 | Kirmse | Jul 2001 | B1 |
6415329 | Gelman et al. | Jul 2002 | B1 |
6529917 | Zoltan | Mar 2003 | B1 |
6546422 | Isoyama et al. | Apr 2003 | B1 |
6578022 | Foulger et al. | Jun 2003 | B1 |
6609183 | Ohran | Aug 2003 | B2 |
6665268 | Sato et al. | Dec 2003 | B1 |
6728213 | Tzeng et al. | Apr 2004 | B1 |
6745209 | Holenstein et al. | Jun 2004 | B2 |
6792432 | Kodavalla et al. | Sep 2004 | B1 |
6807166 | Ohura | Oct 2004 | B1 |
6988148 | Sheth | Jan 2006 | B1 |
7016085 | Gonzalez et al. | Mar 2006 | B2 |
7095739 | Mamillapalli et al. | Aug 2006 | B2 |
7246156 | Ginter et al. | Jul 2007 | B2 |
7260833 | Schaeffer | Aug 2007 | B1 |
7339929 | Zelig et al. | Mar 2008 | B2 |
7356581 | Hashimoto | Apr 2008 | B2 |
7370025 | Pandit | May 2008 | B1 |
7389323 | Tanimoto | Jun 2008 | B2 |
7403946 | Taylor | Jul 2008 | B1 |
7440424 | Nam et al. | Oct 2008 | B2 |
7454366 | Kato | Nov 2008 | B2 |
7512116 | Ohura | Mar 2009 | B2 |
7529943 | Beser | May 2009 | B1 |
7720903 | Huckins | May 2010 | B1 |
8068415 | Mraz | Nov 2011 | B2 |
8352450 | Mraz et al. | Jan 2013 | B1 |
8555273 | Chia | Oct 2013 | B1 |
20010027453 | Suto | Oct 2001 | A1 |
20020003640 | Trezza | Jan 2002 | A1 |
20020029281 | Zeidner et al. | Mar 2002 | A1 |
20020118671 | Staples et al. | Aug 2002 | A1 |
20030058810 | Petronic | Mar 2003 | A1 |
20030119568 | Menard | Jun 2003 | A1 |
20030195932 | Tanabe et al. | Oct 2003 | A1 |
20030225798 | Norcott | Dec 2003 | A1 |
20040058710 | Timmins et al. | Mar 2004 | A1 |
20040103199 | Chao et al. | May 2004 | A1 |
20040236874 | Largman et al. | Nov 2004 | A1 |
20050033990 | Harvey et al. | Feb 2005 | A1 |
20050055382 | Ferrat et al. | Mar 2005 | A1 |
20050055385 | Sinha et al. | Mar 2005 | A1 |
20050193024 | Beyer et al. | Sep 2005 | A1 |
20050201373 | Shimazu et al. | Sep 2005 | A1 |
20050216520 | He et al. | Sep 2005 | A1 |
20050259587 | Wakumoto et al. | Nov 2005 | A1 |
20060114566 | Ohmori et al. | Jun 2006 | A1 |
20060153092 | Matityahu et al. | Jul 2006 | A1 |
20060153110 | Morgan et al. | Jul 2006 | A1 |
20060173850 | Auer et al. | Aug 2006 | A1 |
20060209719 | Previdi et al. | Sep 2006 | A1 |
20070019683 | Kryzyanowski | Jan 2007 | A1 |
20070223158 | Ma et al. | Sep 2007 | A1 |
20090024612 | Tang et al. | Jan 2009 | A1 |
20120124573 | Mamtani | May 2012 | A1 |
Number | Date | Country |
---|---|---|
2045750 | Aug 2009 | EP |
2004105297 | Dec 2004 | WO |
2010132647 | Nov 2010 | WO |
2012012266 | Jan 2012 | WO |
Entry |
---|
M. Anderson, C. North, J. Griffin, R. Milner, J. Yesberg, K. Yiu, “Starlight: Interactive Link,” 1996, Defence Science & Technology Organisation, Salisbury, South Australia, Australia. |
“Interactive Link White Paper,” Jul. 27, 2001, Tenix Defence Pty Ltd, Mawson Lakes, South Australia, Australia. |
“Veto Uni-directional Network Bridge and Data Pump Applications White Paper”, UNB and DPA White Paper by Tenix Datagate Pty Ltd, 2002, pp. 1-6. |
Westmacott J., “Unidirectional Networking: GIAC Security Essential Certification Practical Assignment Version 1.46”, SANS Institute, 2003. |
Nilsen, Curt A., Information security implementations for Remote Monitoring; Symposium on Int'l Safeguards, Int'l Atomic Energy Agency, Vienna, Austria, Oct. 13-17, 1997. |
Nilsen, Curt A. et al., The Secure Data Mirror; INMM; Nuclear Materials Managemenet; vol. XXVII (No. 2), 39th Annual Mtg. Proceedings, Naples, FL, Jul. 26-30, 1998, pp. 1322-1327. |
Kang, M.H. et al: “Design and Assurance Strategy for the NRL Pump,” Computer, IEEE Service Center, Los Alamitos, CA, US, vol. 31, No. 4, Apr. 1998, pp. 56-63. |
Moore, Andrew P.: “Network Pump (NP) Security Target,” Naval Research Laboratory Washington DC 20375-5320, [Online], May 29, 2000, pp. I-54, Retrieved from the Internet: URL:http://chacs.nrl.navy.mil/publications/CHACS/2000/2000moore-NPST.pdf&- gt; [retrieved on Jul. 30, 2012]. |
Kang M.H. et al: “A Network Pump,” IEEE Transactions on Software Engineering, IEEE Service Center, Los Alamitos, CA, US, vol. 22, No. 5, May 1, 1996, pp. 329-338. |
Kang M.H. et al: “An Architecture for multilevel secure interoperability,” Computer Security Applications Conference, 1997. Proceedings., 13th Annual San Diego, CA, USA Dec. 8-12, 1997, Los Alamitos, CA USA, IEEE Comput. Soc, US, Dec. 8, 1997, pp. 194-204. |
Davidson, J.A.: “Asymmetric Isolation,” Computer Security Applications Conference, 1996., 12th Annual San Diego, CA, USA Dec. 9-13, 1996, Los Alamitos, CA, USA, IEEE Comput. Soc. US, Dec. 9, 1996, pp. 44-54. |
Search and Examination Report for GB Application No. GB 1311652.0 dated Dec. 20, 2013. |
Number | Date | Country | |
---|---|---|---|
20150370826 A1 | Dec 2015 | US |
Number | Date | Country | |
---|---|---|---|
62015689 | Jun 2014 | US |