Mitigation of geolocation based data remanence problems

A method, system, and/or computer program product modify a computer resource that has been moved to a new geolocation. One or more processors detect that a geolocation of a software resource has changed to a new geolocation. In response to detecting that the geolocation of the software resource has changed to the new geolocation, the processor(s) apply a geolocation based resource policy to alter the software resource.

BACKGROUND

The present disclosure relates to the field of computing devices, and specifically to computer resources utilized by computing devices. More specifically, the present disclosure relates to modifying a computer resource in response to a geophysical movement of the computer resource.

SUMMARY

A method, system, and/or computer program product modify a computer resource that has been moved to a new geolocation. One or more processors detect that a geolocation of a software resource has changed to a new geolocation. In response to detecting that the geolocation of the software resource has changed to the new geolocation, the processor(s) apply a geolocation based resource policy to alter the software resource.

DETAILED DESCRIPTION

With reference now to the figures, and in particular toFIG. 1, there is depicted a block diagram of an exemplary system and network that may be utilized by and/or in the implementation of the present invention. Some or all of the exemplary architecture, including both depicted hardware and software, shown for and within computer101may be utilized by software deploying server149and/or software resource server(s)153shown inFIG. 1and/or the managing computer201shown inFIG. 2.

Exemplary computer101includes a processor103that is coupled to a system bus105. Processor103may utilize one or more processors, each of which has one or more processor cores. A video adapter107, which drives/supports a display109(which in one or more embodiments of the present invention is a touch-screen display capable of detecting touch inputs onto the display109), is also coupled to system bus105. System bus105is coupled via a bus bridge111to an input/output (I/O) bus113. An I/O interface115is coupled to I/O bus113. I/O interface115affords communication with various I/O devices, including a keyboard117, a mouse119, a media tray121(which may include storage devices such as CD-ROM drives, multi-media interfaces, etc.), a transceiver123(capable of transmitting and/or receiving electronic communication signals), and external USB port(s)125. While the format of the ports connected to I/O interface115may be any known to those skilled in the art of computer architecture, in one embodiment some or all of these ports are universal serial bus (USB) ports.

As depicted, computer101is able to communicate with a software deploying server149and/or other devices/systems using a network interface129. Network interface129is a hardware network interface, such as a network interface card (NIC), etc. Network127may be an external network such as the Internet, or an internal network such as an Ethernet or a virtual private network (VPN). In one or more embodiments, network127is a wireless network, such as a Wi-Fi network, a cellular network, etc.

A hard drive interface131is also coupled to system bus105. Hard drive interface131interfaces with a hard drive133. In one embodiment, hard drive133populates a system memory135, which is also coupled to system bus105. System memory is defined as a lowest level of volatile memory in computer101. This volatile memory includes additional higher levels of volatile memory (not shown), including, but not limited to, cache memory, registers and buffers. Data that populates system memory135includes computer101's operating system (OS)137and application programs143.

OS137includes a shell139, for providing transparent user access to resources such as application programs143. Generally, shell139is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell139executes commands that are entered into a command line user interface or from a file. Thus, shell139, also called a command processor, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel141) for processing. While shell139is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.

As depicted, OS137also includes kernel141, which includes lower levels of functionality for OS137, including providing essential services required by other parts of OS137and application programs143, including memory management, process and task management, disk management, and mouse and keyboard management.

Application programs143include a renderer, shown in exemplary manner as a browser145. Browser145includes program modules and instructions enabling a world wide web (WWW) client (i.e., computer101) to send and receive network messages to the Internet using hypertext transfer protocol (HTTP) messaging, thus enabling communication with software deploying server149and other systems.

Application programs143in computer101's system memory (as well as software deploying server149's system memory) also include Logic for Modifying a Software Resource (LMSR)147. LMSR147includes code for implementing the processes described below, including those described inFIGS. 2-3. In one embodiment, computer101is able to download LMSR147from software deploying server149, including in an on-demand basis, wherein the code in LMSR147is not downloaded until needed for execution. In one embodiment of the present invention, software deploying server149performs all of the functions associated with the present invention (including execution of LMSR147), thus freeing computer101from having to use its own internal computing resources to execute LMSR147.

Also within computer101is a geolocation sensor151, which is able to detect the physical location of computer101and/or the orientation of computer101. For example, geolocation sensor151may incorporate global positioning system (GPS) sensors that identify the geophysical location of computer using signals from an array of space-based GPS satellites. Furthermore, location and positioning sensor151may identify a static IP address of computer101, which can be mapped to a physical location.

Also in communication with computer101are software resource server(s)153, which are hardware servers capable of serving (supplying) applications, databases, electronic files (e.g., text files, video files, audio files, etc.), virtual machines, etc.

The terms “location”, “geophysical location”, and “geolocation” are used interchangeably herein to describe a physical location of an object, such as a software resource stored on a storage device.

As described herein, the present invention provides a solution to appropriately modifying a software resource that has moved to a different geophysical location.

For example, a software resource (e.g., a text file, a database file, an audio file, a video file, a virtual machine (i.e., software that emulates a physical machine), etc.) may move from one physical location to another (e.g., from one data center to another data center, from one server blade to another server blade, from one country to another country, etc.). This movement (i.e., “migration”) may be physical (e.g., physically moving a storage drive from one physical location to another physical location) or electronic (e.g., transmitting the file over a network from one physical location to another physical location).

When such a movement/migration occurs, there may be a problem with the new location. For example, assume that an electronic medical record (EMR) file for a patient is stored in a first country that has no regulations regarding storage/sharing of EMR files (i.e., the EMR can be stored anywhere and shared with anyone). Assume further that a second country has very strict regulations regarding how the EMR is stored (e.g., encrypted, behind a firewall, etc.) and shared (e.g., with only predefined designated accessing parties). Thus, if an unencrypted/unsecured EMR is sent from the first country (where such EMRs are permissible) to the second country (where such EMRs are not permissible), then there is a problem. The present invention provides a solution to this problem.

With reference now toFIG. 2, assume that a software resource server153a(analogous to one of the software resource server(s)153shown inFIG. 1) contains (stores) a set of software resources202, such as the depicted set of data files. The software resource server153ais located in Zone A, which is a first geophysical location. In one or more embodiments, the first geophysical location is determined by readings from a geolocation sensor251a(analogous to geolocation sensor151shown inFIG. 1).

Assume now that one of the set of software resources202(i.e., software resource206a) is migrated (copied and/or moved) to a second software resource server153b(also analogous to one of the software resource server(s)153shown inFIG. 1) within Zone B (a second geophysical location that is identified by geolocation sensor251b(also analogous to geolocation sensor151shown inFIG. 1). This migration results in software resource206bresiding within the software resource server153bin Zone B.

In one embodiment, software resource206aand software resource206bare a same copy of a same resource. That is, in this embodiment software resource206amoves from software resource server153ato software resource server153b, such that software resource206ano longer resides within the software resource server153a.

In one embodiment, software resource206aand software resource206bare different copies of a same resource. That is, in this embodiment a copy of software resource206a(software resource206b) is stored in software resource server153b, such that software resource206ais retained within the software resource server153a.

The present invention presents various methods for determining whether or not the software resource206ahas migrated from software resource server153ato software resource server153b(i.e., has migrated from Zone A to Zone B).

In one embodiment of the present invention, the migration from Zone A to Zone B is detected when a relative location to another software resource changes. For example, assume that software resource206ais stored in a memory location that is X address lines away from software resource208ain software resource server153a. Assume further that 1) software resource208bis X address lines away from software resource206bbut is a different software resource than software resource208a(i.e., software resource208aand software resource208bare different software resources), and/or 2) software resource208aand software resource208bare the same software resource but software resource208bis now Y (instead of X) address lines away from software resource206b. This indicates that software resource206bis not within the software resource server153a, and thus is outside of Zone A. By examining the relative positions of software resources in various software resource servers, a managing computer201(analogous to computer101shown inFIG. 1) is able to determine the location (Zone B) of software resource server153b.

In one embodiment of the present invention, the locations of software resource server153aand software resource server153bare determined by a global positioning system (GPS) satellite210interrogating and validating geolocation sensors251a-251b(when architected as GPS positioning sensors). That is, GPS satellite210determines the geophysical location of geolocation sensor251aand geolocation sensor251b. However, geolocation sensor251bcould be a “fake” geolocation sensor that has been programmed to generate a false location signal.

For example, assume that geolocation sensor251bhas been nefariously replaced with a “fake” geolocation sensor, which outputs a location signal that reports, regardless of what GPS signal is being sent from GPS satellite210, that software resource server153bis currently in Zone A (rather than accurately reporting that software resource server153bis currently in Zone B). However, the original geolocation sensor251bwithin software resource server153bwas registered (e.g., using a uniform universal identifier—UUID) with the managing computer201, such that managing computer201only accepts GPS readings from the registered original geolocation sensor251b, not the nefarious replacement for geolocation sensor251b. If the managing computer201receives a GPS signal from the nefarious replacement geolocation sensor, then managing computer201will assume that the software resource server153band software resource206bare in Zone B (or some other zone other than Zone A), regardless of what geolocation signal is being received from the replacement geolocation sensor.

Once a determination is made that the software resource206a/206bhas moved from Zone A to Zone B, various modifications/actions can be taken on software resource206b.

For example and in one embodiment of the present invention, in response to determining that software resource206bis in Zone B, managing computer201(through whom all requests for software resource206bare handled) will refuse to provide software resource206bto the requester.

In another embodiment of the present invention, in response to determining that software resource206bis in Zone B, managing computer201will modify software resource206bbefore sending it to the requester. For example, if software resource206bis an electronic medical record (EMR), then managing computer201may redact certain privileged/sensitive data from the EMR before sending it to the requester.

In another embodiment of the present invention, assume that the software resource206bis a virtual machine, and Zone B only has resources capable of supporting a certain version of the virtual machine. In this scenario, the virtual machine will be modified accordingly by the managing computer201. For example, within Zone B there may be fewer processors, less storage space, etc. than are available within Zone A. As such, the virtual machine will be modified to be less powerful in Zone B (e.g., has less bandwidth, is capable of executing fewer instructions per second, etc.) than it was when configured for Zone A.

With reference now toFIG. 3, a high-level flow chart of one or more steps performed by one or more processors and/or other hardware devices to modify a computer resource that has been moved to a new geolocation is presented.

After initiator block301, one or more processors (e.g., within managing computer201shown inFIG. 2) detect that a geolocation of a software resource (e.g., software resource206b) has changed to a new geolocation (e.g., Zone B), as depicted inFIG. 2and described in block303inFIG. 3.

As described herein, in one embodiment of the present invention the new geolocation is detected by a global positioning system (GPS) sensor (e.g., geolocation sensor251bshown inFIG. 2) that is in communication with a GPS satellite (e.g., GPS satellite210shown inFIG. 2), where the GPS sensor is a component of a software resource server (e.g., software resource server153bshown inFIG. 2) that contains the software resource.

As described herein, in one embodiment of the present invention the GPS sensor is authenticated by a managing computer (e.g., managing computer201shown inFIG. 2) that detects the geolocation of the software resource server by using GPS sensor readings from the GPS sensor. In an embodiment of the present invention, if the managing computer201does not authenticate the geolocation sensor251b(i.e., the GPS sensor in the software resource server153b), then it will refuse to allow access to the software resource206b, will modify the software resource206b, etc.

As described in block305, in response to detecting that the geolocation of the software resource has changed to the new geolocation, the processor(s) apply a geolocation based resource policy to alter the software resource.

The flow chart ends at terminator block307.

In an embodiment of the present invention, the software resource is an electronic file that was stored in a previous geolocation (e.g., such as software resource206ain Zone A, as shown inFIG. 2). As described herein, the electronic file is from a first set of electronic files (e.g., set of software resources202shown inFIG. 2), where the electronic file is a first electronic file (e.g., software resource206a) that has a relative position to a second file (e.g., software resource208a) from the first set of electronic files. As shown inFIG. 2, the first electronic file has been moved into a second set of electronic files (e.g., set of software resources204shown inFIG. 2) at the new geolocation. In this embodiment, one or more processors (e.g., within managing computer201) determine a relative position of the first electronic file (e.g., software resource206b) to the second electronic file (e.g., software resource208b) from a second set of electronic files (e.g., set of software resources204). The processor(s) determine that the relative position of the first electronic file to the second electronic file from the second set of electronic files is different from the relative position of the first electronic file to the second electronic file from the first set of electronic files. Thus, in response to determining that the relative position of the first electronic file to the second electronic file from the second set of electronic files is different from the relative position of the first electronic file to the second electronic file from the first set of electronic files, the processor(s) determine that the geolocation of the software resource has changed to the new geolocation and delete the first electronic file from the second set of electronic files. Alternatively, in response to determining that the relative position of the first electronic file to the second electronic file from the second set of electronic files is different from the relative position of the first electronic file to the second electronic file from the first set of electronic files, the processor(s) block access to the first electronic file (e.g., for a requester of the first electronic file) from the second set of electronic files.

In an embodiment of the present invention, the software resource is an electronic database, such that applying the geolocation based resource policy deletes at least a portion of data in the electronic database. For example, assume that the electronic database is in a restricted zone. As such, the processor(s) will delete any sensitive data (due to enterprise policies, regulations, laws, etc.) that are not permitted to be electronically stored within that restricted zone. Alternatively, such sensitive data may be encrypted by the processor(s).

In an embodiment of the present invention, if the software resource has been moved, then the managing computer will track the identity of anyone who attempts to retrieve it after it has been moved. That is, in an embodiment of the present invention the software resource is an electronic database in a database server, such that applying the geolocation based resource policy causes the database server to: capture an identity of a requester of data from the electronic database; block access by the requester to the electronic database; and report the identity of the requester to a security management system.

In an embodiment of the present invention and as described herein, the software resource is a virtual machine (VM), and applying the geolocation based resource policy reduces a functionality of the VM (i.e., reduces its bandwidth, decreases the instructions per second that it can process, etc. based on available supporting resources in the new location).

In an embodiment of the present invention, the software resource is an application, and applying the geolocation based resource policy reduces a functionality of the application. For example, if the application has features A, B, and C while maintained within Zone A shown inFIG. 2, it may be modified to only have the features of A and C while within Zone B. For example, assume that the software resource206a/206bshown inFIG. 2is a controller for a petrochemical refinery. While in Zone A, software resource206awill be able to control all actuators, fire up all furnaces, etc., as well as report conditions within a petrochemical refinery. However, while in Zone B, software resource206bwill only be able to report conditions within petrochemical refinery, and will not be able to control actuators, furnaces, etc.

In an embodiment of the present invention, the software resource is a database in a database server, and applying the geolocation based resource policy causes the database server to: delete an unauthorized portion of the database, where the unauthorized portion has been predetermined to be unauthorized to be stored at the new geolocation; and retain an authorized portion of the database, where the authorized portion has been predetermined to be authorized to be stored at the new geolocation. That is, when software resource206amoves to Zone B (thus becoming software resource206b), some of the data will remain within software resource206bwhile other data within software resource206awill be deleted from software resource206b.

In an embodiment of the present invention, the software resource is a database in a database server, and applying the geolocation based resource policy causes the database server to label data from the database with a sensitivity level tag, where the sensitivity level tag is based on a current geolocation of the database. That is, assume that data from software resource206ais never sensitive as long as it is in Zone A. However, as soon as software resource206amigrates to Zone B (thus becoming software resource206b), some of the data becomes “sensitive”, due to legal restrictions, enterprise rules, etc. that are applicable to Zone B. At that point, the managing computer201will label the data that is now “sensitive” accordingly.

In an embodiment of the present invention, the geolocation based resource policy includes a set of actions to be carried out per geolocation transition. That is, each action (deleting data, modifying virtual machines, encrypting data, etc. as described herein) will be performed according to the particular location (e.g., “Zone”) in which the software resource is located. Such actions may therefore be different for each particular location.

In an embodiment of the present invention, the software resource is an electronic database, the geolocation based resource policy defines a state of availability for the data from the electronic database based on a current geolocation, and the state of availability is from a group consisting of the data being unencrypted, the data being encrypted, and the data being unavailable in any form. That is, based on where the software resource (e.g., data) has been migrated to, that data may remain unencrypted, may be encrypted, or may be blocked from access at all, depending on the location at which it is currently residing (after migration).

In an embodiment of the present invention, assume that the software resource (e.g., a database) was in an original location (e.g., Zone A inFIG. 2) before moving to the new geolocation (Zone B). Assume further that the software resource was in an unaltered state before moving to the new geolocation. Assume further that one or more processors have detected that the software resource has moved from the new geolocation (Zone B) back to the original location (Zone A). Thus in this embodiment, in response to detecting that the software resource has moved from the new geolocation back to the original location, one or more processors restore the software resource back to the unaltered state. This can be accomplished by one of the set of software resources202shown inFIG. 2having a backup/mirror copy of the original unaltered software resource, which is then used to restore the data.

The present invention may be implemented in one or more embodiments using cloud computing. Nonetheless, it is understood in advance that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.

Characteristics are as follows:

Deployment Models are as follows:

Workloads layer90provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation91; software development and lifecycle management92; virtual classroom education delivery93; data analytics processing94; transaction processing95; and computer resource modification processing96to modify a computer resource that has been moved to a new geolocation in accordance with one or more embodiments of the present invention as described herein.