This disclosure relates generally to a system and method for secure cross-domain file transfer, and, more particularly, to a system and method for secure cross-domain file transfer which securely and efficiently transfers files from a source file storage system in a first network domain to a destination file storage system in a second separate network domain.
Many organizations have processing and communication environments which include different networks subject to differing levels of security. Such environments may include a highly secure network used to communicate confidential or secret information, and one or more less secure networks that do not process confidential or secret information. Such highly secure networks may have strict limitations on the type of data that can be imported thereto or exported therefrom. In addition, the data within a highly secure network may be subject to differing security requirements.
In some cases, a cross-domain solution (CDS) may be used to transfer data from a highly secure network (the source network) to a less secure network (the destination network), or vice versa. A CDS may be hardware-based in order to ensure that data may only pass from the source network to the destination network and to prevent data or any signal whatsoever from passing from the destination network to the source network. A CDS has an input coupled to the source network and an output coupled to the destination network. The CDS may receive information at the input via a particular protocol, e.g., Transmission Control Protocol (TCP) or User Datagram Protocol (UDP). The CDS may include a filter that filters the files or other data received at the input to prevent any malware or other harmful files from passing to the destination network or to ensure that only approved files received at the CDS input on the source network are passed to the destination network. One drawback of a CDS is that each file or set of data must be sequentially forwarded to the input of the CDS for transfer to the destination network. This can lead to long transfer times and a risk of data overflow on the transmit side of the CDS, due to the need for large nonvolatile storage devices (e.g., hard disks) and the consequent additional time need to write data to and then read from such storage devices.
Accordingly, there is a need for a system and method for secure cross-domain file transfer which overcomes the foregoing problems.
In a first aspect, a system is presented for secure cross-domain file transfer from a source file server connected to a first network in a first network domain to a destination file server connected to a second network in a second network domain. The system has a manifest manager application operating on a first hardware server computer in the first network domain and connected to the first network. The manifest manager application is for monitoring a predetermined directory on the source file server to determine when a new manifest file becomes stored therein, for downloading the new manifest file, and for issuing file transfer commands based on contents of the new manifest file. The new manifest file includes a list of files on the source file transfer to be transferred to the destination file server. The system also has a traffic manager application operating on the first hardware server computer for receiving the file transfer commands from the manifest manager application and for allocating one or more send-side worker threads operating on the first hardware server computer for downloading each file identified in the new manifest file from a file location on the source file server identified in the new manifest file. The system further has a send application operating on the first hardware server computer for receiving each file downloaded by the send-side worker threads and for forwarding each received file on an output. The system still further has a one-way link having an input coupled to the first hardware server computer to receive files from the output of the send application and an output. The one-way link is configured to transfer files only from the input to the output and to prevent any signal from passing from the output to the input. The one-way link provides the only communications pathway between the first network domain and the second network domain. The system also has a receive application operating on a second hardware server computer in the second network domain and connected to the second network. The second hardware server computer is coupled to the output of the one-way link. The receive application receives one or more files output from the one-way link and forwards each received file of the received one or more files on an output. Finally, the system has receive-side worker threads operating on the second hardware server computer. Each of the receive-side worker threads is configured to read a file output by the receive application and forward that read file to a file location on the destination file server corresponding to the original file location on the source file server.
In a further embodiment, the first hardware server computer may be connected to the first network via at least two separate network interface cards, with the manifest manager application configured to only use a first of the at least two separate network interface cards. The second hardware server computer may be connected to the second network via a single network interface card or via a plurality of network interface cards. The send application may be a Directory File Transfer System application. The receive application may be a Directory File Transfer System application. Each of the send-side worker threads may store each downloaded file in a nonvolatile memory. The send application may receive files from the send-side worker threads by reading each of the files from the nonvolatile memory. The output of the receive application may be connected to a nonvolatile memory such that each received file of the received one or more files that is forwarded on the output is stored in the nonvolatile memory. Each of the receive-side worker threads may read each file output by the receive application from the nonvolatile memory.
In another further embodiment, he manifest manager application may forward the new manifest file to the send application, the send application may forward the new manifest file on the output, the receive application may receive the new manifest file and store the new manifest file in a memory, and the receive-side worker threads may each compare a calculated hash-value of the file read from the output of the receive application with a corresponding hash-value for such file in the new manifest file and forward that read file to a file location on the destination file server only when the calculated hash-value matches the corresponding hash-value for such file in the new manifest file.
In yet another further embodiment, a send-side logging daemon may generate a syslog message indicating that one or more of the files listed in the new manifest file have been transferred, and the send-side logging daemon may forward the generated syslog message to the source file server. In still another further embodiment, a receive-side logging daemon may generate a syslog message indicating that one or more of the files listed in the new manifest file have been forwarded to the destination file server, and the receive-side logging daemon may forward the generated syslog message to the destination file server.
In a second aspect, a method is presented for secure cross-domain file transfer from a source file server in a first network domain to a destination file server in a second network domain. A predetermined file directory on a source file server in a first network domain is monitored to determine when a new manifest file is stored therein. The new manifest file, which lists files to be transferred from the source file server to a destination file, is retrieved. Each of the files listed in the manifest file is retrieved and each retrieved file is forwarded to an input of a one-way transfer link. Each file received at an output of the one-way transfer link is forwarded to a file storage location on the destination file server corresponding to the associated file storage location on the source file server.
In a further embodiment, the validity of the new manifest file may be verified after retrieving the new manifest file. Also, each of the files listed in the new manifest file may be verified as present in the associated file storage location after retrieving the new manifest file. Further, each of the files listed in the new manifest file may be retrieved without storing any of the retrieved files on a magnetic media-based storage device. Still further, each file received at an output of the one-way transfer link may be forwarded without storing any of the received files on a magnetic media-based storage device. Also, a first hardware server computer in a first network domain may monitor to determine when a new manifest file is stored therein, retrieve the new manifest file, and retrieve each of the files listed in the new manifest file. Finally, a second hardware server in a second network domain may forward each received file to a file storage location on the destination file server.
In another further embodiment, the new manifest file may be forwarded to the input of the one-way transfer link, the new manifest file may be received from the output of the one-way transfer link and stored in a memory, and a calculated hash-value of each received file may be compared with a corresponding hash-value for such file in the new manifest file and that received file may only be forwarded to the file location on the destination file server only when the calculated hash-value matches the corresponding hash-value for such file in the new manifest file.
In yet another further embodiment, a syslog message may be generated indicating that one or more of the files listed in the new manifest file have been transferred, and the generated syslog message may be forwarded to the source file server. In a still another further embodiment, a syslog message may be generated indicating that one or more of the files listed in the new manifest file have been forwarded to the destination file server, and the generated syslog message may be forwarded to the destination file server.
In a third aspect, a system for secure cross-domain file transfer from a source file server connected to a first network in a first network domain to a destination file server connected to a second network in a second network domain is presented. A first hardware server computer is provided in the first network domain and is connected to the first network. The first hardware server computer has an output connected to an input of a one-way link and is configured to monitor a predetermined directory on the source file server to determine when a new manifest file becomes stored therein, to download the new manifest file including a list of files on the source file transfer to be transferred to the destination file server, to download each file identified in the list of files in the new manifest file from a file location on the source file server identified in the new manifest file; and to forward each downloaded file on the output. The one-way link has an input coupled to the first hardware server computer to receive files forwarded on the output of the first hardware server computer and an output. The one-way link is configured to transfer files only from the input to the output and to prevent any signal from passing from the output to the input. The one-way link provides the only communications pathway between the first network domain and the second network domain. A second hardware server computer is provided in the second network domain and is connected to the second network. The second hardware server computer is connected to the output of the one-way link and is configured to receive each file output from the one-way link, and forward each received file to a file location on the destination file server corresponding to the original file location on the source file server.
In a further embodiment, the first hardware server computer may be configured to forward the new manifest file to the input of the one-way transfer link and the second hardware server computer may be configured to receive the new manifest file from the output of the one-way transfer link and store the new manifest file in a memory, and to compare a calculated hash-value of each received file with a corresponding hash-value for such file in the new manifest file and to only forward that received file to the file location on the destination file server only when the calculated hash-value matches the corresponding hash-value for such file in the new manifest file.
In another further embodiment, the first hardware server computer may be configured to generate a syslog message indicating that one or more of the files listed in the new manifest file have been transferred and to forward the generated syslog message to the source file server. In yet another further embodiment, the second hardware server computer may be configured to generate a syslog message indicating that one or more of the files listed in the new manifest file have been forwarded to the destination file server and to forward the generated syslog message to the destination file 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 disclosure 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 disclosure.
Referring now to the drawings and in particular to
Referring now to
As described below, the secure cross-domain file transfer system 100 of the present disclosure securely transfers files from source file server 105 in the first network domain 144 to destination file server 165 in the second network domain 146. Typically, the first network domain 144 has a security classification that is different from that of the second network domain 146. The secure cross-domain file transfer system 100 provides a hardware-enforced unidirectional data flow only from the first network 120 to the second network 160 because the send-side server computer 130 is coupled to the receive-side server computer 150 only via the one-way link 140 with no other connections (communication pathways of any sort) between first network 120 and second network 160. One-way link 140 is preferably formed by use of an optical fiber coupled between a send-only interface card installed in send-side server computer 130 and a receive-only interface card installed in receive-side server computer 150, as disclosed in the '415 patent. Owl Cyber Defense Solutions, LLC provides Communication Card Sets that include a pair of specially configured Asynchronous Transfer Mode (ATM) network interface cards (one for “send”, one for “receive”) and a fiber optic cable that are preferably used to form one-way link 140. In higher-bandwidth applications, one-way link 140 may be formed by multiple (two or more) Communication Card Sets (e.g., with two or more send-only interface cards installed in the send-side server computer 130 and two or more corresponding receive-only interface cards installed in receive-side server computer 150, each pair of send-only and receive-only interface cards coupled by a separate fiber optic cable).
Send-side server computer 130 is preferably coupled to first network 120 via a pair of network interface cards 135, 136. Likewise, receive-side server computer 150 is preferably coupled to second network 160 via a pair of network interface cards 153, 154. Each network interface cards 135, 136, 153, 154 is preferably a 10 Gigabit Ethernet (“GbE”) bonded network interface card. In higher-bandwidth applications, additional network interface cards may be used in send-side server computer 130 and receive-side server computer 150 to increase throughput. For lower bandwidth applications, a single network interface card 135 or 136 may be used in send-side server computer 130 and likewise a single network interface card 153 or 154 may be used in receive-side server computer 150.
Source file server 105 and destination file server 165 are each preferably a network file server configured to use Network File System (NFS) protocol for communication with clients on the associated network and to provide both read and write access to such clients. In a preferred embodiment, the source file server 105 and destination file server 165 each use NFS version 4 protocol. As shown in
Send-side server computer 130 includes a manifest manager application 133, a traffic manager application 132, one or more worker threads 131, a send application 134, a logging daemon application 137 and a results processor application 138. As discussed above, send-side server computer 130 also preferably includes two network interface cards 135, 136 for communication with first network 120 and a send-only network interface card (that is part of one-way link 140). Although the worker threads 131 are shown coupled to network interface card 135 and the manifest manager application 133 is shown coupled to network interface card 136 in
Manifest manager application 133 manages all aspects of manifest files stored in a reserved predetermined directory on source file server 105. Manifest manager application 133 monitors that predetermined file directory to locate and download each newly-available manifest file (e.g., via pathway 115 shown in
Validation of the manifest file ensures that the secure cross-domain file transfer system 100 only processes manifest files that are verified and validated, and which conform to the predetermined format. A copy of the manifest file itself may be transferred by secure cross-domain file transfer system 100 by listing the manifest file as one of the files included in the manifest file. This allows for reconciliation of files sent versus files received in the receive-side server computer 150.
Manifest manager application 133 preferably communicates with traffic manager application 132, results processor application 138, and logging daemon application 137 via one-way inter-process communication using message queue. Manifest manager application 133 sends information to traffic manager application 132 about the current manifest file to process. Manifest manager application 133 preferably sends information including status, error, and/or auditing information to the logging daemon application 137 and to the results processor application 138. In a further embodiment, manifest manager application 133 may separately forward each validated manifest file to send application 134 (via a connection not shown in
Traffic manager application 132 organizes and schedules the transfer of each of the files listed in the manifest file. Traffic manager application 132 receives information from manifest manager application 133 about the current manifest file to be processed. Preferably, traffic manager application 132 preferably sorts the files listed in the manifest file based on size and allocates one or more worker threads 131 for validating and copying an assigned associated file among the files listed in the manifest file. The allocation of worker threads 131 to files is preferably done based on file size, in order from largest file to smallest.
Each worker thread 131 reads the assigned file from the subdirectory identified in the manifest file (or alternatively from the manifest directory) on source file server 105 (via pathway 116 shown in
Results processor application 138 receives messages containing status information from the traffic manager application 132 and worker threads 131. The status information from traffic manager application 132 may include information about the start and completion of processing a manifest file. Results processor application 138 also aggregates the status information received from each of the worker threads 131 and creates a complete report specific to the manifest file currently being processed. This report is preferably in XML format. Results processor application 138 may additionally provide a tool, e.g., eXtensible Stylesheet Language Transformations (XLST), for converting the report from XML format to a more human-readable format. Results processor application 138 also sends a status message to manifest manager application 133 after the completion of processing all the files listed in a particular manifest file and error and auditing information to the logging daemon application 137 for logging.
The logging daemon application 137 receives log and auditing information from manifest manager application 133, traffic manager application 132, results processor application 138 and Post Process components. The logging daemon application 137 enters the received log and auditing information into an associated log file. In a further embodiment, logging daemon application 137 generates one or more syslog messages, subsequently forwarded to source file server 105, indicating that the transmission of the files listed on a particular manifest has been completed. Such syslog messages may be generated separately for each file or only after all the files in a particular manifest have been transferred. Source file server 105 may use such syslog messages to signal that such files are again available for use (i.e., such files may then be altered, etc.).
Receive-side server computer 150 includes a receive application 151, a post process application 155, one or more worker threads 152, a results processor application 156, and a logging daemon application 157. As discussed above, receive-side server computer 150 also preferably includes two network interface cards 153, 154 for communication with second network 160 and a receive-only network interface card (that is part of one-way link 140). The worker threads 152 are shown coupled to the two network interface cards 153 in
Receive application 151 is preferably one or multiple instances of the Directory File Transfer System (DFTS) Data Transfer System (receive side) provided by Owl Cyber Defense Solutions, LLC. Receive application 151 receives files on an input thereof that is connected to an output of one-way link 140 and copies such files to a temporary memory (preferably a volatile memory such as DRAM to increase throughput). Post process application 155 either monitors a directory coupled to receive application 151 to identify each newly-received file or receives information from receive application 151 indicating the receipt of a newly-received file. Post process application 155 then allocates one or more worker threads 152 to copy the newly-received file to the appropriate final location (e.g., based on file directory information included in the filename) on the destination file server 165 (e.g., via pathway 161 shown in
Results processor application 156 receives messages containing status information from the post process application 155 and worker threads 152. Results processor application 156 aggregates the status information received from each of the worker threads 152 and creates a complete report specific to the manifest file currently being processed. This report is preferably in XML format. Results processor application 156 may additionally provide a tool, e.g., eXtensible Stylesheet Language Transformations (XLST), for converting the report from XML format to a more human-readable format. Results processor application 156 also sends error and auditing information to the logging daemon application 157 for logging. Results processor application 156 also copies each report generated to the final destination file storage server.
Logging daemon application 157 receives log and auditing information from the results processor application 138 and the post process application 155. Logging daemon application 157 enters the received log and auditing information into an associated log file. In a further embodiment, logging daemon application 157 generates one or more syslog messages, subsequently forwarded to destination file server 165, indicating that files listed on a particular manifest have been stored on destination file server 165. Such syslog messages may be generated separately for each file or only after all the files in a particular manifest have been transferred. Destination file server 165 may use such syslog messages to signal to an end user that such files are now available for use.
Referring now to
Referring now to
Referring now to
The secure cross-domain file transfer system 600 also includes a receive-side server computer 650 which includes, preferably, up to four operating instances of worker threads 655a to 655d. Receive-side server computer 650 includes a one-way link driver 651 which receives files provided to the one-way link 140 by one-way link driver 643, and then forwards such files to one of the four operating instances of the Owl DFTS data transfer system application 652a to 652d. Each operating instance of the Owl DFTS data transfer system application 652a to 652d forwards a file received via the one-way link driver 651 to an associated directory 653a to 653d on a memory 654. Memory 654 is a volatile memory preferably formatted as a ram disk. The respective worker threads 655a to 655d are assigned to an associated one of the directories 653a to 653d and operate to forward a file newly written into the associated directory among directories 653a to 653d to a particular directory on the destination file server 165 (via second network 160 and an associated network interface card 153 or 154). The system disclosed herein speeds transfer speeds by eliminating bottlenecks in transfer that occur when using slower memories based on magnetic-media or solid-state drive media. In addition, because the files transferred are read from their native directory, the storage requirements at source file server 105 are great reduced because there is no need for any temporary staging directory. Finally, the hash value validation of each file ensures that none of the files transferred were spoofed between the time of publication of each manifest file and the actual time for file transfer.
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. It is intended that the appended claims be interpreted as including the embodiments described herein, the alternatives mentioned above, and all equivalents thereto.