SYSTEMS AND METHODS FOR REMOTE FORENSICS AND DATA SECURITY SERVICES OVER PUBLIC AND PRIVATE NETWORKS

20170366583 · 2017-12-21

    Inventors

    Cpc classification

    International classification

    Abstract

    Provided are systems and methods for employing remote forensics and data security services over public and private networks by obtaining full access to digital data from the non-transitory computer-readable media of geographically dispersed computing devices such that the entire physical or logical media from each device is fully accessible to one or more user computers over the network. This is achieved via WebSocket technology implemented in point-to-point connection configurations, WebSocket technology implemented in network based digital data software switch configurations, and in combinations thereof. Application of these systems and methods are generally employed for the purpose of conducting remote examinations and remediation efforts upon electronic data comprising non-transitory computer-readable media on a network accessible computing device. As a few examples, the application of these systems and methods may be applied for the purposes of data sharing, remote computer support, data recovery, data loss prevention, data backup, eDiscovery (electronic discovery), digital forensics, remote monitoring, audit compliance, incident response, security incident remediation, and mobile device data management purposes. Examples of computing devices include, but are not limited to, workstations, laptops, tablets, smart phones, network routers, network switches, mobile computing devices, electronic sensors, and any device comprising the Internet of Things (IoT).

    Claims

    1. A method of performing Internet based examination and remediation services upon a subject computer having a non-transitory computer-readable media comprising: executing on a software switch server a switch control program code configured to provide bidirectional communications via a communication protocol; executing on a subject computer a subject program code configured to provide bidirectional communications via a communication protocol; establishing a bidirectional connection over a communications network between the software switch and the subject computer via the communication protocol; executing a user program code on a user computer configured to provide bidirectional communications via a communication protocol; establishing a bidirectional connection over a communications network between the software switch and the user computer via the communication protocol; establishing a bidirectional connection over a communications network between the subject computer and user computer via the software switch, wherein no direct connection between the user computer and the subject computer is established; establishing a bidirectional connection over a communications network between the subject computer and user computer, wherein a direct connection between the user computer and the subject computer is established; executing commands from the user computer via the software switch server and to the subject computer which directs the subject computer to copy selected data stored in a non-transitory computer-readable media memory of the subject computer to a non-volatile memory on the user computer in a manner that catalogues and preserves the integrity of the data, wherein the communication protocol operates in accordance with a communication protocol standard that permits transmission of one or more write commands for writing data to a non-volatile memory, wherein the subject program code is configured to respond to at least one protocol command in accordance with the communication protocol standard, wherein the subject program code is optionally configured to not write data to the non-transitory computer-readable media of the subject computer in response to receiving the one or more write commands of the communication protocol standard from the user computer; establishing a secure, encrypted software switch connection over a communications network between the subject computer and the user computer; performing an examination, forensic analysis or eDiscovery process of the data stored on the subject computer via the software switch connection to the user computer; and outputting a report based on the examination, forensic analysis or eDiscovery process.

    2. The method according to claim 1, wherein the subject program code is configured to not write data to the non-transitory computer-readable media of the subject computer in response to receiving the one or more write commands of the communication protocol standard from the user computer.

    3. The method according to claim 1, further comprising logging onto a website using the user computer, registering information on the website, and downloading the client program code from the website.

    4. The method according to claim 1, further comprising downloading the subject program code from the cloud-based computer to the subject computer over the Internet.

    5. The method according to claim 1, wherein the only connection between the user computer and the subject computer is via the software switch server.

    6. The method according to claim 1, wherein the communication protocol is a non-proprietary communication protocol and the communication protocol standard is a non-proprietary communication protocol standard.

    7. The method according to claim 1, wherein the computer protocol comprises the WebSocket protocol, and the method further comprises exchanging encrypted communications over the Internet via SSL/TLS.

    8. The method according to claim 1, wherein the bidirectional communication protocol comprises the WebSocket protocol.

    9. The method according to claim 1, wherein the bidirectional communication protocol comprises encrypted communications over a communications network via HTTP.

    10. The method of claim 1, wherein the forensic analysis is conducted in a manner that is suitable for use in a court of law.

    11. The method of claim 1, wherein the forensic analysis is conducted such that the existing files or file system Metadata on the subject computer is not altered.

    12. The method of claim 1, further comprising copying file system Metadata from the subject computer and maintaining the file system Metadata during collection via the user computer.

    13. The method of claim 1, further comprising providing a computer file listing of all computer files, including deleted files for which entries remain in the file system tables of the subject computer, in the report.

    14. The method of claim 1, further comprising conducting the forensic analysis such that the original ESI file system Metadata is not altered on the subject computer and is forensically preserved at the time of collection on the user computer.

    15. The method of claim 1, further comprising collecting a forensic image of the subject computer to the user computer via the software switch.

    16. The method of claim 1, further comprising collecting a forensic image of the subject computer to the user computer via a direct connection.

    17. The method of claim 1, further comprising selecting and uploading data comprising at least one of file system Metadata date and time information, file name, folder name, file extension, and keyword searching from the subject computer to the user computer.

    18. The method of claim 1, further comprising conducting the forensic analysis without direct assistance from an expert forensics practitioner.

    19. A method of performing Internet based examination and remediation services upon a subject computer having non-transitory computer-readable media comprising: executing on a software switch server a software switch program code configured to provide bidirectional communications via the communication protocol; executing on the subject computer a subject program code configured to provide bidirectional communications via a communication protocol; establishing a bidirectional connection between the subject computer and the software switch server via the communication protocol; executing a client program code on a user computer configured to provide bidirectional communications via the communication protocol; establishing a bidirectional connection between the user computer and the software switch server; executing commands to the subject computer from the user computer which may traverse an established software switch server connection, or may be traverse an established direct connection, and direct the subject computer to copy selected data from a non-transitory computer-readable media of the subject computer to a non-volatile memory on the user computer in a manner that catalogues and preserves the integrity of the data, wherein the communication protocol operates in accordance with a communication protocol standard that permits transmission of one or more write commands for writing data to a non-volatile memory, wherein the subject program code is configured to respond to at least one protocol command in accordance with the communication protocol standard, wherein the subject program code is optionally configured to not write data to the non-transitory computer-readable media of the subject computer in response to receiving the one or more write commands via the communication protocol standard; performing an examination, forensic analysis or eDiscovery process of the data stored on the subject computer via the software switch connection to the user computer; and outputting a report based on the examination, forensic analysis or eDiscovery process.

    20. The method of claim 19, wherein the subject program code is optionally configured to not write data to the non-transitory computer-readable media of the subject computer in response to receiving the one or more write commands via the communication protocol standard.

    21. The method of claim 19, further comprising selecting and uploading data comprising at least one of file system Metadata date and time information, file name, folder name, file extension, and keyword searching from the subject computer to the user computer through the software switch server.

    22. A computer program product, comprising one or more computer usable media having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a subject computer, a software switch server, and a user computer to implement a method of performing a forensic investigation or eDiscovery process of the subject computer having a non-transitory computer-readable media, the computer program product comprising: a software switch program code for execution by the software switch server; a subject program code segment for execution by the subject computer; and a user program code segment for execution by the user computer, wherein the subject program code and the software switch program code are executable to establish a bidirectional connection between the subject computer and the software switch server via a communication protocol, wherein the software switch program code and the user program code are executable to establish a bidirectional connection between the user computer and the software switch server via a communication protocol, wherein the subject program code is executable to respond to commands in accordance with the communication protocol standard; wherein the subject program code is executable to not write data to the non-transitory computer-readable media in response to receiving the one or more write commands via the communication protocol standard, wherein the subject program code is executable to copy selected data from the non-transitory computer-readable media of the subject computer to the non-volatile memory of the user computer via the software switch server in a manner that catalogues and preserves the integrity of the data, and wherein the user program code is executable to perform a forensic analysis or eDiscovery process of the data stored on the subject computer via the connection from the user computer through the software switch server.

    23. The product according to claim 22, wherein the program code is executable to provide a direct connection between the user computer and the subject computer.

    24. The product according to claim 22, wherein the cloud-based computer comprises a software switch server, the software switch program code being executable on the software switch server, and the user program code is executable to provide a connection between a user computer and the software switch server, and the subject program code is executable to provide a connection between a subject computer and the software switch server, and the user directs the software switch computer to establish a connection between the user computer and the subject computer.

    25. The product according to claim 24, wherein the user program code is executable to provide a connection between the user computer and the software switch server.

    26. The product according to claim 24, wherein the subject program code is executable to provide a connection between the subject computer and the software switch server.

    27. The product according to claim 24, wherein the program code is executable to provide a software switched connection between the user computer and the subject computer.

    28. The product according to claim 24, wherein the program code is executable to provide a direct connection between the user computer and the subject computer.

    29. The product according to claim 24, wherein the user directs the software switch server to establish a software switch connection between the subject computer and user computer so that the data copied from the subject computer is stored at the user computer.

    30. The product according to claim 24, wherein the subject program code is executable to provide a direct connection between the subject computer and the user computer.

    31. A computer system constructed to perform examination and remediation services upon a subject computer having a non-transitory computer-readable media comprising: a software switch server constructed to provide bidirectional communications via a communication protocol over the Internet with the subject computer and a user computer; and a cloud-based software switch server constructed to provide bidirectional communications via a communication protocol over the Internet with the subject computer and user computer, the user computer comprising a non-volatile memory constructed to catalogue and preserve the integrity of data stored thereon, the subject computer comprising a non-volatile memory to which remote access by the user is desired, the software switch server being constructed so that the user directs the software switch server to establish a software switch or direct connection between the user computer and the subject computer, the software switch connection between the user computer and the subject computer being constructed so when commands are executed on the user computer that are intended for the subject computer the software switch server will direct those commands to the subject computer, the software switch connection between the user computer and the subject computer being constructed so commands are executed on the user computer to copy selected data stored in a non-transitory computer-readable media of the subject computer to the non-volatile memory on the user computer in a manner that catalogues and preserves the integrity of the data, wherein the communication protocol operates in accordance with a communication protocol standard that permits transmission of one or more write commands for writing data to a non-transitory computer-readable media, and the subject computer is optionally configured to not write data to the non-transitory computer-readable media of the subject computer.

    32. The computer system according to claim 31, wherein the software switch server is a software switch Virtual Machine running on a Virtual Machine server computer.

    33. The computer system according to claim 31, wherein the subject computer is configured to not write data to the non-transitory computer-readable media of the subject computer.

    34. The computer system according to claim 31, wherein the subject program code is constructed to translate commands from the non-transitory computer-readable media to a SCSI non-transitory computer-readable media device to be read only and cannot write to non-transitory computer-readable media in response to receiving any command including a write command

    35. A method of performing examination and remediation services upon a subject computer having a non-transitory computer-readable media with a control computer, comprising: executing subject program code on the subject computer, wherein the subject program code is constructed to translate commands from the non-transitory computer-readable media to a SCSI non-transitory computer-readable media device to be read only and optionally cannot write to non-transitory computer-readable media in response to receiving any command including a write command; executing subject program code on the subject computer wherein the subject computer establishes a secure authenticated connection with the user computer; executing user program code on the user computer wherein the user computer establishes a secure authenticated connection with the subject computer; executing user program code on the user computer wherein the user program code is constructed to send commands to control the operation of the subject computer; executing user program code on the user computer wherein the user computer is constructed to establish or disestablish connections between available subject computers; and establishing a secure authenticated bidirectional connection between the subject computer and the user computer, wherein execution of the subject program code provides raw physical or logical access to the subject computer non-transitory computer-readable media from the user computer.

    36. The method according to claim 35, wherein the subject program code is constructed to translate commands from the non-transitory computer-readable media to the SCSI non-transitory computer-readable media device to be read only and cannot write to non-transitory computer-readable media in response to receiving any command including a write command.

    37. The method according to claim 35, further comprising translating commands to or from the subject computer virtual, logical, or physical non-transitory computer-readable media device to a SCSI non-transitory computer-readable media device and rendering the device as a read-only non-transitory computer-readable media device on the user computer.

    38. The method according to claim 35, further comprising translating commands to or from the subject computer virtual, logical, or physical non-transitory computer-readable media device to a SCSI non-transitory computer-readable media device and rendering the device as a raw physical or logical non-transitory computer-readable media device on the user computer.

    39. The method according to claim 35, wherein execution of the subject program code provides read-only access to the subject non-transitory computer-readable media from the user computer.

    40. The method according to claim 35, wherein execution of the subject program code provides raw physical or logical access to the subject non-transitory computer-readable media from the user computer.

    41. The method according to claim 35, wherein execution of the subject program code translates communications to or from a standard non-transitory computer-readable media device to a SCSI device and renders the subject computer device as a read-only non-volatile memory device to the user computer.

    42. The method according to claim 41, wherein the standard non-transitory computer-readable media device is an ATA device.

    43. The method according to claim 35, wherein execution of the subject program code translates communications to or from a standard non-transitory computer-readable media device to a SCSI device and renders the subject computer device as a raw physical or logical non-volatile memory device to the user computer.

    44. The method according to claim 43, wherein the standard non-transitory computer-readable media device is an ATA device.

    45. The method according to claim 35, wherein execution of the subject program code translates communications to or from a virtual non-transitory computer-readable media device to a SCSI device and renders the subject computer device as a read-only non-volatile memory device to the user computer.

    46. The method according to claim 45, wherein the virtual non-transitory computer-readable media device is a RAID, iSCSI, Network Block Device, Logical Volume Manager, or TrueCrypt device.

    47. The method according to claim 37, wherein execution of the subject program code translates communications to or from a virtual non-transitory computer-readable media device to a SCSI device and renders the subject computer device as a raw physical or logical non-volatile memory device to the user computer.

    48. The method according to claim 41, wherein the virtual non-transitory computer-readable media device is a RAID, iSCSI, Network Block Device, Logical Volume Manager, or TrueCrypt device.

    49. A computer program product, comprising one or more computer usable media having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a first computer and a user computer to implement a method of performing a forensic investigation of the first computer, having a non-transitory computer-readable media, with the user computer, the computer program product comprising: a subject code segment for execution by the first computer; a user code segment for execution by the user computer; wherein the subject code segment and the user code segment are executable to establish a connection with a software switch server; wherein the software switch server is directed to patch the connections between the first computer and the subject computer such that data and commands can be transmitted between the subject computer and user computer via the switch computer over the patch between the established connections; wherein the communication protocol permits transmission of one or more write commands for writing data to a non-volatile, non-transitory, memory, wherein the subject code segment is executable to respond to a plurality of commands in accordance with the communication protocol; wherein the subject program code is constructed to translate commands from a non-transitory computer-readable media device to a SCSI non-transitory computer-readable media device to be read only and cannot write to non-transitory computer-readable media in response to receiving any command including a write command; and wherein the user code segment is executable to grant full access to the media of the subject computer via the software switch connection.

    50. A computer program product, comprising one or more computer usable media having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a first computer and a user computer to implement a method of performing a forensic investigation of the first computer, having a non-transitory computer-readable media, with the user computer, the computer program product comprising: a subject code segment for execution by the first computer; a user code segment for execution by the user computer; wherein the subject code segment and the user code segment are executable to establish direct bidirectional connections between the first computer and the subject computer such that data and commands can be transmitted between the subject computer and user computer between the established connections; wherein the communication protocol permits transmission of one or more write commands for writing data to a non-volatile, non-transitory, memory, wherein the subject code segment is executable to respond to a plurality of commands in accordance with the communication protocol; wherein the subject program code is constructed to translate commands from a non-transitory computer-readable media device to a SCSI non-transitory computer-readable media device to be read only and cannot write to non-transitory computer-readable media in response to receiving any command including a write command; and wherein the user code segment is executable to grant full access to the media of the subject computer via the direct connection.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0083] FIG. 1 illustrates the software switch media access system deployed as a cloud-based service according to the present invention.

    [0084] FIG. 2 illustrates the software switch media access system deployed as a customer dedicated appliance solution in a LAN-based (Local Area Network-based) scenario according to the present invention.

    [0085] FIG. 3 illustrates a point-to-point design implementation in use in a one to many connection configuration, provided as a standalone capability, illustrating one user computer connecting directly to two subject computers, without incorporating a software switch media access system.

    [0086] FIG. 4 illustrates one rendering of the invention employed as a user application. This screen capture shows a management console presenting several subject devices available for inspection. In this screen capture, the subject device “x64-2k8r2-sub” is presenting two (2) logical volumes, physical memory (pmem), and four (4) physical disks for inspection, and “disk-1” has been mounted using the invention to make it available to the examiner for inspection. This figure does not reveal whether the actual connection is a switched or point-to-point connection.

    [0087] FIG. 5 illustrates a method according to the present invention that employs switched or point-to-point WebSocket connections to engage bidirectional communications between user and subject computers, and whereupon every non-transitory computer-readable media device on a subject computer becomes a SCSI disk rendered to the user computer as a raw (physical or logical) non-transitory computer-readable media device.

    [0088] FIG. 6 illustrates a flow chart of an exemplary method according to the present invention rendered via a “switched connection” model.

    [0089] FIG. 7 illustrates a flow chart of an exemplary method according to the present invention rendered via a “direct connection” model.

    DETAILED DESCRIPTION OF THE INVENTION

    [0090] In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular networks, communication systems, computers, terminals, devices, components, techniques, storage devices, data and network protocols, software products and systems, operating systems, development interfaces, hardware, etc. in order to provide a thorough understanding of the present invention.

    [0091] However, it will be apparent to one skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. Detailed descriptions of well-known networks, computers, digital devices, storage devices, components, techniques, data and network protocols, software products and systems, development interfaces, operating systems, and hardware are omitted so as not to obscure the description of the present invention.

    [0092] The invention will now be explained with reference to the attached non-limiting Figures. The operations described in Figs. and herein can be implemented as executable code stored on a computer or machine readable non-transitory tangible storage medium (e.g., floppy disk, hard disk, ROM, EEPROM, nonvolatile RAM, CD-ROM, etc.) that are completed based on execution of the code by a processor circuit implemented using one or more integrated circuits; the operations described herein also can be implemented as executable logic that is encoded in one or more non-transitory tangible media for execution (e.g., programmable logic arrays or devices, field programmable gate arrays, programmable array logic, application specific integrated circuits, etc.).

    [0093] As shown in FIG. 1, the cloud-based computer system comprises at least one computer system, a “software switch server” 2. The term “cloud-based” is used in the broadest sense to mean any computer connected to the Internet. For the system to allow multiple customers to be served by the software switch server 2, the cloud-based computer system comprises at least one additional computer system, a “software switch management server” 1. The software switch server 2 and the software switch management server 1 are on separate computers, as shown in FIG. 1. While the invention is explained with reference to a separate software switch server 2 and software switch management server 1, the software switch management server 1 is used only in the cloud-based architecture to manage user accounts and for provisioning and de-provisioning software switch VM's (software switch Virtual Machine servers 2) when multiple software switch servers 2 are to be created and used to service multiple customers.

    [0094] A preferred cloud-based architecture is shown in FIG. 1. A software switch management server 1 is available to manage user accounts, and for provisioning and de-provisioning software switch Virtual Machine (VM) servers that are created on a Virtual Machine server 2. Virtual Machine servers 2 are located in the cloud, upon which customer dedicated software switch VM servers can be created on demand. A customer (in this case a user computer 6) can communicate with the software switch management server 1 to purchase software switch services via a user account using the command and control connection 3. The software switch management server 1 provisions a dedicated software switch VM server on the requested Virtual Machine server 2 over a command and control connection 5. The user computer 6 then receives the necessary information and credentials to access and control the dedicated software switch VM server over a command and control connection 3. The user program code is then installed and started on the user computer(s) 6, whereupon the user computer(s) 6 establish a command and control connection 10 to the dedicated software switch VM server 2. The subject program code is deployed and started on the subject computer(s) 8, whereupon each subject computer 8 establishes a command and control connection 10 to the dedicated software switch VM server 2. The subject program code is configured with information and credentials such that subject computer(s) 8 can connect only with the intended dedicated software switch VM server 2. The user instructs the software switch VM server 2 to establish a connection with an available subject computer 8 which creates a secure bidirectional data connection 4 between the user computer 6 and subject computer 8 via the software switch VM server 2. This bidirectional data connection 4 is a software switch connection between the two devices over which the non-transitory computer-readable media of the subject computer is made fully accessible to the user computer over the corporate network and the Internet. The connections are typically encrypted for security, and data traversing the connection may also be compressed for efficient use of the available upload and download bandwidth. The user computer 6 starts, stops, and controls software switch connections with subject device(s) 8 via the dedicated software switch VM server 2. There is no limit to the number of software switch VM servers 2 that can be created in this model. FIG. 1 presents one software switch VM server 2 serving one user computer 6 and one subject computer 8, but as a practical example, thousands of software switch VM servers could be created to serve thousands of users 6 and subjects 8.

    [0095] The registered customer can purchase temporary rights to use the system, which is typically delivered as a service via a cloud computing model, but can be deployed for exclusive use on a private network if cloud-based systems are not desired. Internet access is a prerequisite to use the system. As an example, the registered customer might be a lawyer representing a client in a civil lawsuit. That lawyer may need to inspect his client's subject computer(s) 8 for documents responsive to a discovery request in the litigation. That lawyer could use the systems to inspect his client's subject computer(s) 8 over the Internet from any user computer 6 via a software switch server 2. In this representative configuration there is no option to engage point-to-point connections between user and subject computers, thus the customer (user computer 6) can only connect to the subject computer(s) 8 via the software switch server 2, and cannot directly connect to the subject computer(s) 8. Subject computer(s) 8 are selected for inspection, and subject program code is deployed to one or more subject computers 8. When executed, the subject program code provides communications via a communication code to the software switch server 2. The subject computer 8 is then connected to the software switch server 2 so that the customer on the user computer 6 can access information on the subject computer 8 via the software switch server 2. This permits the customer to collect data from subject computers for later retrieval and analysis.

    [0096] User initiated WebSocket command and control connections 10 with the software switch 2 permit each User 6 to start, stop, and otherwise control their connections to subject devices via the dedicated software switch 2. Subject initiated WebSocket command and control connections 10 to the software switch 2 permit subjects to receive and respond to commands from the user. The service can comprise any number of explicit actions or instructions, but can be used to collect data from the subject computer(s) 8, and will store the collected data in a forensically sound manner to a storage location available to user computer 6. As an example, the customer (user) can enter a request into the user computer 6 to obtain files and file listings, including deleted files, from the subject computer 8. The software switch server 2 will pass the instruction to the subject computer 8 to copy the requested data directly to user computer 6. The copied data includes the files along with their original file system Metadata, if any. The communication protocols used can prevent the software switch server 2 from altering the data on the subject computer(s) 8. Thus, the original file system Metadata would not be altered on the subject computer(s) 8, and would be forensically preserved at the time of collection and stored in the non-volatile memory on the user computer 6. When the service actions are complete, the collected data is accessible to the customer for ongoing inspection and analysis.

    [0097] Upon review of the stored data, the customer may require additional inspections be performed in order to obtain additional data from one or more subject computer(s) 8. The customer would continue to use the system in the same manner as described above until the inspection effort is completed.

    [0098] At the completion of the forensic analysis, a report can be outputted.

    [0099] FIG. 2 illustrates the software switch media access system deployed as a customer dedicated appliance solution in a LAN-based (Local Area Network-based) scenario according to the present invention. The Software Switch 2 server is implemented as a dedicated appliance solution in a company network. In this example, several connections have been established by Remote User 6 and Local User 16 for a number of purposes.

    [0100] FIG. 2 shows an example with several switched connections on a Software Switch 2 server appliance employed in a corporate environment. The Software Switch 2 server may or may not use a VM implementation. Command and control connections 10 are also shown in this example.

    [0101] As shown in FIG. 2, a software switch connection has been established between Remote User Computer 6 and Remote Subject Computer 8 via the Software Switch 2. Such a connection would be established, for example, to facilitate a corporate examiner (user) conducting an investigation on a company subject computer located at a remote location. The connections are typically encrypted for security, and data traversing the connection may also be compressed for efficient use of the available upload and download bandwidth.

    [0102] As shown in FIG. 2, software switch connections have been established between Remote Computer User 6, and Remote Subject Computer 8 via the Software Switch 2. The several computer types shown for Remote Subject Computer 8 illustrate that the computer device may be any type of device comprising the Internet of Things (IoT) that contains non-transitory computer-readable media. The Software Switch 2 connections from Remote Computer User 6 to Remote Subject Computer 8 would permit the remote user to access Remote Subject Computer 8 data from anywhere on the Internet. This scenario enables secure examination and remediation of company computers regardless of their location, and regardless whether they are located on the LAN or over the Internet.

    [0103] As shown in FIG. 2, software switch data connections 4 have been established between Local User Computer 16, and Local Subject Computer 28 via the Software Switch 2. The Software Switch 2 data connections 4 from Local User Computer 16 to Local Subject Computer 28 permit the Local User Computer 16 to access Local Subject Computer 28 data via the company Local Area Network (LAN). This scenario exemplifies secure examinations of company computers located on the LAN. Other scenarios will be presented exemplifying secure examinations of company computers regardless of their location, regardless whether they are located on the LAN or over the Internet.

    [0104] As shown in FIG. 2, a direct point-to-point connection has been established between Local User Computer 16, and Local Subject Computer 18. FIG. 2 further illustrates how this connection can be achieved in multiple scenarios in accordance with the present invention. In one scenario, the Local User Computer 16 establishes a direct point-to-point connection to the Local Subject Computer 18 without utilizing the Software Switch 2, whatsoever. In this case only the command and control connection 10 and data connection 4 are used that are shown going directly between Local User Computer 16 and Local Subject Computer 18. In another scenario, Local User Computer 16 is utilizing the Software Switch 2, and desires to connect to Local Subject Computer 18. The Software Switch 2 has programmatically determined that the data connection is best served via WebSocket connections that will not flow through the Software Switch 2, and directs that the connection between the user and subject be rendered as a point-to-point connection, thereby establishing the direct point-to-point connection. In this case the command and control connection 10 and data connection 4 are used that are shown going directly between Local User Computer 16 and Local Subject Computer 18, as well as the command and control connections 10 that are shown going from Local User Computer 16 and Local Subject Computer 18 to the Software Switch 2.

    [0105] FIG. 3 illustrates the invention used in a scenario that does not utilize an intermediary software switch, thus only point-to-point connections are established between a User Computer 6 and Subject Computer(s) 8. FIG. 3 further illustrates the User Computer 6 collecting and preserving data from the Subject Computers 8 for future analysis, wherein the user utilizes the point-to-point connection to select data on the subject computer to be uploaded directly to the user computer for the collection and preservation of the data. User Computer 6 initiated WebSocket command and control connections 10 permit the user to start, stop, and otherwise control the connections to Subject Computer 8 devices, and permit Subject Computer 8 devices to receive and respond to commands from the user. The service can comprise any number of explicit actions or instructions, but can be used to collect data from the Subject Computer(s) 8, and will store the collected data in a forensically sound manner to a storage location available to the User Computer 6. As an example, the customer (user) can enter a request into the User Computer 6 to obtain a copy of all deleted files for which entries remain in the file system tables on the Subject Computer(s) 8. The Subject Computer 8 responds to the instruction and sends the requested data to User Computer 6. The data includes the files along with their original file system Metadata. The communication protocols used can prevent User Computer 6 actions from altering any data on the Subject Computer(s) 8. Thus, the original file system Metadata would not be altered on the Subject Computer(s) 8, and would be forensically preserved at the time of collection and stored in the non-volatile memory on the User Computer 6. When the service actions are complete, the collected data is accessible to the customer's User Computer 6.

    [0106] FIG. 4 illustrates one rendering of the invention employed as a user application. This is a screen capture that shows a management console presenting several subject devices available for inspection. In this screen capture, the subject device “x64-2k8r2-sub” is presenting two (2) logical volumes, physical memory (pmem), and four (4) physical disks for inspection, and “disk-1” has been mounted using the invention to make it available to the examiner for inspection. This figure does not reveal whether the actual connection is a switched or point-to-point connection.

    [0107] FIG. 5 illustrates a method according to the present invention that employs switched or point-to-point WebSocket connections to engage bidirectional communications between user and subject computers, and whereupon every non-transitory computer-readable media device on a subject computer becomes a SCSI disk rendered to the user computer as a raw (physical or logical) non-transitory computer-readable media device.

    [0108] FIG. 6 illustrates a flow chart of an exemplary method according to the present invention rendered via a “switched connection” model.

    [0109] FIG. 7 illustrates a flow chart of an exemplary method according to the present invention rendered via a “direct connection” model.

    [0110] Definitions for terms used herein are provided below.

    [0111] Authenticated: Having completed the process of verifying the digital identity of the sender of a communication, such as a request to log in.

    [0112] Availability: The degree to which data residing on a computer system is available to the user(s) who needs the data.

    [0113] Cloud-based command and control computer: A Cloud-based command and control computer is a cloud computing service located on the Internet, or “in the Cloud”, that runs command and control software. The command and control software manages connections and communications between the many customers that have user and subject computers that may be connected at any time. This service can incorporate a model of networked online computers which may or may not be hosted by third parties.

    [0114] Cloud Computing: Cloud Computing is Internet-based computing, whereby shared computer resources, software, storage space, and information, are provided to computers and other devices on demand over a suitable communications network.

    [0115] Communications network: A network of telecommunications links and nodes arranged so that messages may be passed from one part of the network to another over multiple links and through various nodes. Examples include the Internet, local area networks, wide area networks, wireless networks, and the Public Switched Telephone Network.

    [0116] Confidentiality: Ensuring that information is accessible only to those authorized to have access.

    [0117] Drive: A device for the mass storage of computer data; e.g. hard drive, thumb drive, flash drive, solid state drive, etc.

    [0118] eDiscovery (Electronic Discovery): eDiscovery refers to the discovery of electronically stored information (ESI) in the pre-trial phase of a lawsuit. Discovery refers to the means by which each party to a lawsuit can obtain evidence from the opposing party by means of various discovery devices, including, but not limited to, evidence that exists in the form of ESI.

    [0119] ESI (Electronically Stored Information): Per the Federal Rules of Civil Procedure (FRCP), ESI is understood to be information created, manipulated, communicated, stored, and best utilized in digital form, requiring the use of computer hardware and software.

    [0120] Forensically Sound: Forensically sound practices are those that do not violate the rules of evidence accepted by a court (e.g. Federal Rules of Evidence (FRE) in Courts of the United States of America). To be forensically sound, ESI (Electronically Stored Information) must be processed such that conclusions reached via analyzing the data can be used as evidence in a court of law. As one example, ESI collected for use in a USA court of law is to be processed in such a manner that the data can be identified and authenticated, as mandated by the FRE.

    [0121] Forensics: A scientific, systematic inspection conducted such that the results of the inspection can be used as evidence in a court of law.

    [0122] Integrity: Ensuring that information is alterable only by those authorized to do so.

    [0123] Internet: The worldwide, publicly accessible network of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP).

    [0124] Internet of Things (IoT): The interconnection of computing devices that may be embedded in almost any animate or inanimate object, including living and non-living entities, enabling them to send and receive data over the Internet.

    [0125] Raw storage media access: Provision of access at block-addressing (raw) level, leaving it to attaching systems to manage data or file systems on the attached media. When raw storage media access is provided to computer storage media, then complete access to all information on the subject media may be obtained.

    [0126] Read-only: If read-only access is provided to computer storage media, then it is not possible to write to the media given the provided access.

    [0127] Secure: Sound security practices have been applied to reasonably protect the confidentiality, integrity, and/or availability of a computer resource.

    [0128] Small Computer System Interface (SCSI): A term for interface standards developed by the International Committee on Information Technology Standards (INCITS) Technical Committee “T10”. T10 is responsible for SCSI storage interfaces and SCSI architecture standards (SAM, SAM-2, and SAM-3), which are used by SCSI, SAS, Fibre Channel, SSA, IEEE 1394, USB, and ATAPI. T10 is a Technical Committee of the International Committee on Information Technology Standards (INCITS) [http://www.incits.org]. INCITS is accredited by, and operates under rules that are approved by, the American National Standards Institute (ANSI) [http://www.ansi.org].

    [0129] Subject Computer: The computer system upon which remote access to the non-transitory computer-readable media is rendered is the subject computer.

    [0130] WebSocket: The WebSocket protocol, standardized by the IETF as RFC 6455, provides for fully bidirectional communications between two devices over a TCP connection. The IETF describes WebSockets in the Abstract of the RFC 6455 standard as follows: [0131] “The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP.”

    [0132] Cloud Computing is Internet-based computing, whereby shared computer resources, software, storage space, and information, are provided to computers and other devices on demand over a suitable communications network. The invention makes use of existing cloud computing technologies via one or more cloud-based computing servers, and via one or more cloud-based data-repository computers.

    [0133] Internet protocols used in the invention include the Hypertext Transport Protocol (HTTP) [RFC7540], and the related Transport Layer Security (TLS) [RFC6176] and Secure Socket Layer (SSL) [RFC6101] protocols. HTTP is the foundation of data communication for the World Wide Web. TLS and SSL are information security protocols that allow client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. There are various versions of TLS and SSL, and standard practice will be used to negotiate the specific protocol version to use to secure the digital data traversing the software switch and point-to-point Websocket connections. WebSocket Protocol [RFC6455] connections, which also incorporate the above mentioned protocols, provide for fully bidirectional communications between two devices over a TCP connection. The present invention makes use of this prior art to securely and efficiently transport electronically stored information (ESI) and system command and control traffic over the Internet, between subject computers and the software switch, between client (aka user) computers and the software switch, and for point-to-point connections between user and subject computers. By default, the WebSocket Protocol [RFC6455] uses port 80 for regular WebSocket connections and port 443 for WebSocket connections tunneled over Transport Layer Security (TLS). Additionally, one feature of the invention employs encryption methods such as the Advanced Encryption Standard (AES) to secure data traversing WebSocket connections via HTTP, for regular WebSocket connections that typically use port 80 which would not otherwise be encrypted.

    [0134] It is to be understood that the foregoing illustrative embodiments have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the invention. Words used herein are words of description and illustration, rather than words of limitation. In addition, the advantages and objectives described herein may not be realized by each and every embodiment practicing the present invention. Further, although the invention has been described herein with reference to particular structure, steps and/or embodiments, the invention is not intended to be limited to the particulars disclosed herein. Rather, the invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. Those skilled in the art, having the benefit of the teachings of this specification, may affect numerous modifications thereto and changes may be made without departing from the scope and spirit of the invention.