Abstract:
A method, programmed medium and system are provided for a server-based security manager application to support a self-cleaning operation on a remote computerized device. When a computer device has been reported as being missing for example, the security manager server application will cause the device to take pro-determined actions such as un-installing predetermined applications contained on the device and removing all persisted data associated with such predetermined applications.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to information processing systems and more particularly to a methodology and implementation for enabling selective removal of data and application from electronic devices. 
     BACKGROUND OF THE INVENTION 
     Many device and computer system applications persist data on a device using various applications. Such devices include, but are not limited to, computerized desktop and device systems, including laptops, pads, cell phones or any device that has network capability and can run software. As used herein, the term “device” refers to any electronic system capable of storing data, and/or applications and accessing private or public networks such as the Internet. 
     Stored data on such devices may or may not contain sensitive or confidential information and may or may not be encrypted. When a device is lost or stolen this data should be wiped from the device. Remote device wiping of application and corresponding or associated data is typically something that is handled by a Device Manager (MDM) client running on the device. Some applications also have the ability to remotely take action when the device is lost and stolen. Clients typically must be always running or connected in order to accomplish this remote administration. Many device users do not like the requirement to have an MDM client constantly running on the device. These connected type application can take up precious resources, including memory and CPU cycles. 
     It should also be noted that devices running on some operating systems are also limited to the number of “slots” at any given time. For example, in one operating system, there is a slot maximum of 32. Each running process takes up one of these slots and each DLL in memory also takes up a slot. Once the 32 slots are filled the OS will start killing application causing the device to have unpredictable behavior. 
     Thus, there is a need to provide a device and processing system which is enabled to provide self-cleaning when the device is reported missing by a user. 
     SUMMARY OF THE INVENTION 
     A method, programmed medium and system are provided for a security manager application running on a server to support a self-cleaning operation of a remote device. When a computer device has been reported as being lost or stolen or simply missing, the security manager server application will take appropriate predetermined actions which may include, for example, un-installing predetermined applications contained on the remote computer device and removing all persisted data associated with such predetermined applications. 
     In one exemplary embodiment, a new call to the device&#39;s application security manager server is made at system initialization time and the device user is prompted to provide the device user or owner&#39;s name, device owner&#39;s company name, device ID, the OS information, etc. The first call to the device&#39;s application security manager program running on the application security manager server requires the device application to gather and store the device information in a device information file, device registry or any other persistent storage means that is enabled for that particular device. Subsequent calls by this device application or any other device application on the device will have access to this information and will not have to obtain it. Obtaining this device information is required only once per device regardless of how many applications on that device are utilizing this system. The application/security manager server, will respond to a call from the device and if the device had previously been reported as lost, stolen, or missing, the server will send code to the device and the device will respond by taking predetermined actions such as to clean the device of all persisted data and uninstall itself. 
     Such actions can include a removal of predetermined applications and associated data from the device which can be accomplished by the device itself by, for example, making an API call to the operating system running the device without requiring any separate security monitoring software or application to foe running on the device. Other actions may include a soft or hard reset or a complete wipe of the device and a recording of the time and GPS location of the device when the device was cleaned. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A better understanding of the present invention can be obtained when the following detailed description of a preferred embodiment is considered in conjunction with the following drawings, in which: 
         FIG. 1  is an illustration of one embodiment of a system in which the present invention may be implemented; 
         FIG. 2  is a block diagram showing several of the major components of an exemplary computer system or device using the present invention; 
         FIG. 3  is a flow chart illustrating an exemplary sequence of operations which may be implemented in a system in accordance with the present invention; and 
         FIG. 4  is a flow chart illustrating an exemplary sequence of operations which may be implemented in a security manager server in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The various methods discussed herein may be implemented within a computer system which includes processing means, memory, storage means, input means and display means. Since the individual components of a computer system which may be used to implement the functions used in practicing the present invention are generally known in the art and composed of electronic components and circuits which are also generally known to those skilled in the art, circuit details beyond those shown are not specified to any greater extent than that considered necessary as illustrated, for the understanding and appreciation of the underlying concepts of the present invention and in order not to obfuscate or distract from the teachings of the present invention. Although the invention is illustrated in the context of a networked computer system using a laptop computer or other portable device, it is understood that disclosed methodology may also be applied in many other available and future devices and systems such as desktop computer systems, cell phones and personal wireless and other hand-held devices. Such devices may include any of many available input systems, including touch-sensitive screens or touch-sensitive input pads, to achieve the beneficial functional features described herein. 
     Device applications can utilize the disclosed system by simply adding a new call to an application/security manager program running on a security manager server at program initialization time. The device will provide, inter alia, the device owner&#39;s name, device owners, company name, device ID, and the OS information. The first call to the application/security manager will require the device application to gather this information, however, subsequent calls by this device application or any other device application on the device will have access to this information and will not require additional information input, in other words, obtaining this information should only happen once per device regardless of how many applications on that device are utilizing this system. 
     Mostly all of the support for the remote cleaning feature is packaged in a way that it can be easily shared by all of the device applications on the device. After the server has received and logged in a request to remove wipe or erase the device for any reason, for example if the device has been reported as simply misplaced by the owner or is missing, lost or stolen, the application/security manager, will not respond to any subsequent call from the device. The server security application will then send instructions to the device and the device application can take the necessary action at that point which will typically be to clean the device of all persisted data and uninstall predetermined applications. Other actions can of course be done such as a complete device wipe. When the device application makes a call to some shared logic, which could be installed at a call center, the various device wipe actions are performed in response to a receipt of the call after a device had been reported missing. The call center is also enabled to update the application/security manager and related information files accordingly. 
     In operation, when an application on a device runs for the first time on a device, and it is determined that this is the first time the application has been run on the device, the application calls the security manager server with an initialization/registration request. The application can detect the first run on a device by, for example, checking the system registry to see if application keys are stored for this feature. The device user then provides requested application/device information and the server acknowledges the device/application pair and returns a token. The information about this application/device pair is stored on server and the token from application manager server is stored by device in the device registry and the application selected by the device user proceeds to run as normal on the device. 
     When a device owner calls a Help desk to request a device wipe, for example if the device has been lost or stolen, the Help desk informs application manager team about the request and application manager on the application manager server is updated accordingly. If, anyone attempts to run an application, for example if someone tries to open an email account using the device after a request has been received by the server to wipe the device, the application manager server detects that the calling device had previously been marked as missing and sends a command down to device application to send up certain information then issue a wipe device command. The application on device then calls the security application manager feature on device to wipe the device and the device is wiped clean in accordance with predetermined instructions which could include wiping predetermined applications and/or data associated with predetermined applications on the device. The application manager software on server, in one example, records time and location of this event and sends a report to the registered device owner/user by a predetermined channel such as via an email notification which can be independently accessed by the user/owner. 
     The disclosed system has the security server issuing the wipe command to the client device. The disclosed system does not, however, require any special software to be run on the device. Thus, any device application that can be run on the device can choose to participate in the disclosed security system without the need to have any special device manager software included in the application. 
       FIG. 1  illustrates an exemplary environment in which the present invention may be implemented. As shown, an application security manager server  101  which includes an application security manager program, is accessible through an interconnection network  103 , for example the Internet, from any of a plurality of devices including, inter alia, a laptop computer device  105 , a device  107  such as a cell phone, a tablet or pad device  109  and a desktop computer device  111 . The disclosed system is enabled to use the application security manager server  101  to selectively wipe or erase predetermined applications and/or data associated, with such applications from any device  105 - 111  when such action is requested by a user/owner of the device if, for example, the device is missing or has been lost or stolen. 
       FIG. 2  illustrates i general several of the major components of a computer system which may be used to implement the present invention. As shown, a processor system  201  is connected to a main bus  203 . The main bus  203  is also coupled to, inter alia, system memory  205 , a local storage system  207 , a network interface  209 , and an input interface  211 . The main bus is also connected to a display system  217 . The input and/or display system may also comprise a touch-sensitive screen or optically-sensitive input pad (not shown). Additional systems such as a GPS system on the device, which are not shown, may also foe coupled to the system main bus  203 . The basic components shown in  FIG. 2  may be implemented in the server  101  as well as any of the other devices  105 - 111  illustrated in  FIG. 1 . 
     A flow chart describing an exemplary operational sequence which may be implemented in a device to accomplish the results described above is shown in  FIG. 3 . As shown, when the process is initiated and a new application is opened on a device, the security server  101  is called and the device provides information  301  to the server which may include device-specific information and device applications information present on the device. 
     The device security information may be provided automatically by the device if a file has been previously established, on the device. After receiving the device security information, the server checks its records to determine if the device has been reported as missing, lost or stolen, and then sends a response  303  back to the device. If the device had previously been reported as missing, the server will send a response  303  back to the device indicating that device-cleaning action is required, and the device will take appropriate predetermined actions  307  such as sending current time and GPS location information (possibly including other predetermined application data back to the server, before wiping or removing predetermined applications and data, or wiping the entire device or performing a hard or soft reset of the device. If the server  101  determined that the device had not been previously reported as missing, lost or stolen, then the response from the server back to the device would indicate that no security action is required and the device would continue  305  to run the device application selected by the user in a normal fashion. 
     In the example, when the server receives the requested application/device information from the device, a token is returned to the device and after the token is received by the device, it is stored in the device and the device continues by running the opened application in a normal manner. The token use is optional and is used as a security token to prove that the security server is authentic. 
     A flow chart describing an exemplary operational sequence which may be implemented in a security manager server to accomplish the application/data removal operation discussed above is shown in  FIG. 4 . As shown, when a device is reported as missing  401 , the server records the fact that the device has been reported missing  403  and when a device application is subsequently opened, the security server sends instructions to the device to perform a predetermined security action  405 . Upon receiving the security action code from the server  101 , the device will, for example, determine the current time and location of the device and send this information to the security server to be recorded  407  at the server before the device itself performs the predetermined security actions in the device. The device owner may then be notified  409  by separate predetermined channels  409 , such as by separate email or message account, that the predetermined security actions have been performed by the device and the last known location of the device. 
     The device may also be only selectively cleaned to remove only predetermined ones of the device applications so that, for example, the GPS function of the device may, as predetermined by the user, continue to operate and send location information back to the security server after the device has been only selectively cleaned of sensitive applications and/or data. 
     The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
     It is understood that the specific example presented herein is not intended to be limiting since the functional combinations disclosed herein may be implemented in many different environments and application including, for example, application involving the visualization of business processes and movement of emails, task lists, task list items and other system data components within an overall system data containment environment or application. 
     The method, system and application of the present invention has been described in connection with a preferred embodiment as disclosed herein. The disclosed methodology may be implemented in a wide range of sequences, menus and screen designs to accomplish the desired results as herein illustrated. Although an embodiment of the present invention has been shown and described in detail herein, along with certain variants thereof, many other varied embodiments that incorporate the teachings of the invention may be easily constructed by those skilled in the art, and even included or integrated into a processor or CPU or other larger system integrated circuit or chip. The disclosed methodology may also be implemented solely or partially in program code stored in any storage device, including any portable or fixed, volatile or non-volatile memory device, including CDs, RAM and “Flash” memory, or other semiconductor, optical, magnetic or other memory capable of storing code, from which it may be loaded into other memory units and executed to achieve the beneficial results as described herein. The disclosed methodology may also be implemented using any available input and/or display systems including touch-sensitive screens and optically-sensitive input pads. Accordingly, the present invention is not intended to foe limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention.