SECURITY METHODS AND SYSTEMS
The present invention describes methods for improving security when accessing applications and other executable programs. In one exemplary method, a user is warned if an application that has never been previously run is being launched by the user. Other methods, as well as data processing systems and machine readable media, are also described.
This application is a divisional of co-pending U.S. application Ser. No. 11/112,152 filed on Apr. 22, 2005.
FIELD OF THE INVENTIONThe present invention generally relates to methods to improve security when accessing application programs. More specifically, the present invention relates to methods to improve user security when downloading and launching applications that are potentially unsafe.
BACKGROUND OF THE INVENTIONIt is nowadays commonplace for computer users to download applications or other executable programs from the Internet or other networks or sources with the intent of installing and running them in their computers. Although many such downloads come from trusted sources, executable programs originating from the Internet—or other sources where no significant security mechanism operates—can raise serious security concerns. In particularly malicious attacks, programs can be automatically downloaded and launched without the user's consent or knowledge, by simply visiting a website or clicking on a link embedded in an email, instant message or other electronic document. Once downloaded, a malicious program can associate itself with certain file types and wait until it is selected to process those files. When executed, the malicious program can cause considerable and permanent damage by deleting user files, stealing sensitive information, overwhelming operation of the CPU, spreading viruses, launching timed attacks on specific websites, etc. Clearly, a need exists to protect the vulnerability of users to such grave security breaches. Such considerations, however, must be tempered with a need to neither overly restrict users nor overburden them with warnings to the point of causing user fatigue. The present invention provides a solution that addresses both requirements.
SUMMARY OF THE DESCRIPTIONTo counteract potential security problems arising from downloading and launching malicious applications or executable programs (particularly those originating from possibly unsafe sources such as the Internet), the present invention proposes, in preferred embodiments, displaying warnings for a targeted category of applications prior to download and first-time launching. In one aspect of the invention, warnings are restricted to a category of applications, executable programs or archived files deemed to be high-risk as based on simple analysis. Restricting the warnings to high-risk categories of files reduces the likelihood of user fatigue. For example, in one embodiment of the invention, a warning is displayed prior to launching an application only if the application: 1) was never launched before by the user; 2) not explicitly chosen by the user (e.g. it was selected by the operating system from a configuration file when the user double-clicked on a document); and 3) originally downloaded from the Internet.
In one aspect of the invention, the operating system maintains a per-user system-wide history of applications and programs previously run by the user. Such a list is used by the operating system to determine if an application has been run before by the user.
In yet another aspect of the invention, the visual appearance of applications and executable programs deemed potentially untrustworthy (for example, those not yet run and originating form the Internet) is modified, for example, with cautionary markings, to passively alert the user. Because the icon and, name and extension for a file are controlled by the file itself and not the operating system, a malicious program can masquerade as a trusted file type by selecting an icon and name that hides its true nature. Cautionary markings attached to potentially unsafe files serve to alert the user that the file is indeed an executable program and that it may be unsafe to run. Another aspect of the invention involves associating cautionary markings to any files that, when opened, cause an application to be launched for the first time. In one embodiment of the invention, adding cautionary markings to unsafe applications and/or to files opened by unsafe applications can serve as an alternative to the first-launch warnings previously described. Cautionary markings provide a less intrusive means of alerting users than the active display of a warning and could lessen user fatigue.
In a further aspect of the present invention, a warning is displayed to the user prior to the download of an application that comes from a source that is deemed potentially risky. In one possible embodiment, such sources may include Internet downloads but exclude executable programs and archived files installed via root or administrator privilege. In another aspect of the invention, the user is likewise warned if an application that has just been downloaded initiates a launch without the user specifically requesting so. Such a warning messages may protect the user from particularly sophisticated attacks that will automatically launch a malicious program after it is downloaded.
In another aspect of the invention, archived files (such as disk images) being downloaded are analyzed to determine if any executables are part of the archive. The analysis could involve, for example, expanding the contents and looking at the raw data bits of every component file. If any executable is included in the archive, a warning alert is displayed, allowing the user to halt the download operation.
In yet another aspect of the invention, to further reduce the likelihood of user fatigue, the user can narrow down or select the type of warnings to be issued.
The following invention is described by way of example and not limitation on the figures of the accompanying drawings in which like references indicate similar elements.
The subject of the invention will be described with reference to numerous details and accompanying drawings set forth below. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of the present invention. However, in certain instances, well known or conventional details are not described in order to not unnecessarily obscure the present invention. It will be apparent to one skilled in the art that the present invention may be practiced without these specific details.
Access to the Internet 122 is typically provided by Internet service providers (ISPs), such as the ISP 124, and the ISP 126. Users on client systems, such as the client computer systems 102, 104, 118, and 120, generally obtain access to the Internet through Internet service providers, such as ISPs 124 and 126. Access to the Internet may facilitate transfer of information (e.g., email, text files, media files, etc.) between two or more digital processing systems, such as the client computer systems 102, 104, 118, and 120 and/or a Web server system 128. For example, one or more of the client computer systems 102, 104, 118, and 120 and/or the Web server 128 may provide document presentations (e.g., a Web page) to another one or more of the client computer systems 102, 104, 118, and 120 and/or Web server 128. For example, in one embodiment of the invention, one or more client computer systems 102, 104, 118, and 120 may request to access a document that may be stored at a remote location, such as the Web server 128. In the case of remote storage, the data may be transferred as a file (e.g., download) and then displayed (e.g., in a window of a browser) after transferring the file. In another embodiment, the document presentation may be stored locally at the client computer systems 102, 104, 118, and/or 120. In the case of local storage, the client system may retrieve and display the document via an application, such as a word processing application. Without requiring a network connection.
The Web server 128 typically includes at least one computer system to operate with one or more data communication protocols, such as the protocols of the World Wide Web, and as such, is typically coupled to the Internet 122. Optionally, the Web server 128 may be part of an ISP which may provide access to the Internet and/or other network(s) for client computer systems. The client computer systems 102, 104, 118, and 120 may each, with appropriate Web browsing software, access data, such as HTML documents (e.g., Web pages), which may be provided by the Web server 128.
The ISP 124 provides Internet connectivity to the client computer system 102 via a modem interface 106, which may be considered as part of the client computer system 102. The client computer systems 102, 104, 118, and 120 may be a conventional data processing system, such as a Power Mac G4 or iMac computer available from Apple Computer, Inc., a “network” computer, a handheld/portable computer, a cell phone with data processing capabilities, a Web TV system, or other types of digital processing systems (e.g., a personal digital assistant (PDA)).
Similarly, the ISP 126 provides Internet connectivity for the client computer systems 102, 104, 118, and 120. However, as depicted in
Note that while
As shown in
In a preferred embodiment of the invention, the system will generate a launch warning (usually and preferably before the application is allowed to be launched) when the user requests that a file be opened but does not explicitly select the application to open the file (in which case, the operating system will select it for the user or present the user with a list of candidate applications) and when the application that opens the file has not been run before. Thus, in order to alleviate user fatigue, in certain preferred embodiments the launch warning is limited to the first time an application is run; it does not apply (in certain preferred embodiments) when the user looks for and specifically selects the application by, for example, double clicking on it, and further, the warning does not apply (in certain preferred embodiments) to applications installed via root or administrator privilege.
The foregoing example may be considered to be an embodiment in which the warning occurs only the first time that the application is launched rather than (as in an alternative embodiment) each time the application is launched up to the nth time since the first launching, where n may be a reasonable number (e.g. n=2 or 3). In such an alternative embodiment, the warning may be given each time the application is launched up to the nth time after the first launching. For example, if n=4, then the warning is presented for the first launching and also the second and third launchings, and thereafter, the warnings are no longer presented. The value of n may be set by a user (e.g. in a system preference) or set automatically by the system (e.g. the system may ask the user whether the user is a novice or experienced user and set n higher for a novice than a setting of n for an experienced user). The presentation of the warnings may alternatively be based on the amount of time lapsed between launchings. For example, if a time lapsed between launchings of an application exceeds a period of time (e.g., 2 years) then a warning may be presented.
In a further aspect of the invention, the user can select to narrow down the scope of the launch warnings (for example, by not allowing warnings for applications launched from certain folders in the system). The user may narrow the scope at any time, by for example, editing the system or security settings. Similarly, every time a warning is displayed, the user can be presented with the option to edit the warnings parameters.
In another aspect of the invention, in order to determine if an application has been run before by a user, the operating system (OS) maintains a per-user history list 403 storing the applications that have been run by each particular user, as shown in
In yet a further aspect of the invention, applications and executable programs deemed potentially unsafe are visually marked in a unique, cautionary manner to alert the user, for instance, when displaying an unsafe applications' icon and/or name. Because the icon, name and extension of a file are controlled by the original source of the file and not the operating system, a malicious program can masquerade as a trusted application or document type by selecting an icon and name that conceals its true nature. The cautionary markings serve to alert the user that the file is indeed an executable program and that it has not been run before.
Another aspect of the invention involves visually marking the appearance of documents (as opposed to applications) which, if opened, will cause the operating system to select an application which has never been launched before. Hence, the cautionary markings would appear on files that, if opened, would trigger a “first launch” warning as described above. This ‘passive’ marking technique could be used in conjunction with the first-launch warning, or as an alternative to the first-launch warning. The cautionary marking of documents could also allow active disclosure of information about the potentially unsafe application that will open the document. The main difference with the cautionary marking previously described for unsafe applications is that the marking is now visually attached to all documents associated with the unsafe application, as opposed to being attached only to an unsafe application itself. In some embodiments of the invention, both the unsafe applications and the documents processed by unsafe applications can be marked. The marking may appear constantly or only when a user shows an interest in the application or document, such as when a user positions a cursor over the application or document or selects the application or document.
In another aspect of the invention, the same cautionary marking technique is applied to the display of URLs which, if opened, cause an unsafe application to launch.
Download WarningsIn preferred embodiments of the invention, warnings are also issued when downloading potentially malicious files.
In another aspect of the invention, the system may determine that a particular site or domain is unsafe by maintaining a per-user history list of sites or domains previously visited by the user, as, for example, disclosed in co-pending application 04860.P3614 from Apple Computer Inc.
Because it is increasingly commonplace for users to download all sorts of files from the Internet, including applications and other executables, it is important to target only files that may be problematic. In one possible embodiment, a simple classification scheme can be implemented for files downloaded from the Internet, or from other untrustworthy sources. As illustrated in
Claims
1. A machine-implemented method comprising:
- downloading a file;
- determining if the file contains executable code; and
- issuing a warning to the user before allowing the file to be downloaded.
2. A method as in claim 1 wherein determining if the file contains executable code is accomplished by looking at the raw data bits in the file.
3. A machine-implemented method comprising:
- receiving an input to download an application from the Internet to a user's system;
- issuing a warning to the user before allowing the application to be downloaded.
4. A machine-implemented method comprising:
- detecting an attempt to automatically download from the Internet an application to a user's system;
- issuing a warning to the user before allowing the application to be downloaded.
5. A method as in claim 4 wherein the attempt to download the application may occur without the user's knowledge.
6. A method as in claim 4 wherein the application can be any executable code such as a script, dynamically loadable library, applet, or plug-in.
7. A method as in claim 4 wherein the user has the option of restricting the scope of the warning.
8. A machine-implemented method comprising:
- downloading an executable program from the Internet;
- detecting an attempt to launch the program without a user request to launch the application; and
- issuing a warning to the user before allowing the program to be launched.
9. A method as in claim 8 wherein downloading the program occurs in response to a request by the user.
10. A method as in claim 8 wherein downloading the program does not occur in response to a request by the user.
11. A method as in claim 8 wherein the attempt to launch the program originates from an electronic document with a URL scheme wherein the URL scheme is processed only by the program.
12. A method as in claim 8 wherein the attempt to launch the program originates from an electronic document with a URL scheme, wherein the URL scheme is processed automatically by a scripted web page and wherein the user does not request the processing of the URL scheme.
13. A machine-implemented method comprising:
- receiving an input to download one or more files contained in an archived file;
- determining if any of the files contain executable code; and
- issuing a warning to a user that one or more of the files contain executable code.
14. A method as in claim 13 wherein determining if the archived file contains executable code is done by expanding the archive file into its constituent files and looking at at least some of the raw data bits of each constituent file.
15. A method as in claim 14 wherein the constituent files are expanded in a protected storage space where they are inaccessible to the user or other operating system programs.
16. A method as in claim 13 wherein the archived file can be a file encoded with any method, such as a disk image, tar file, zip file, stuffed file, or with any other file compression format.
17. A machine-implemented method comprising:
- downloading an application; and
- storing the origin of the application as part of metadata compiled about the application in a metadata database.
18. A method as in claim 17 further comprising displaying the metadata, including the origin of the application, in response to a user command.
19. A method as in claim 17 wherein the application informs the operating system of the origin of the application.
20. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- downloading a file;
- determining if the file contains executable code; and
- issuing a warning to the user before allowing the file to be downloaded.
21. A medium as in claim 20 wherein determining if the file contains executable code is accomplished by looking at the raw data bits in the file.
22. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- receiving an input to download an application from the Internet to a user's system;
- issuing a warning to the user before allowing the application to be downloaded.
23. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- detecting an attempt to automatically download from the Internet an application to a user's system;
- issuing a warning to the user before allowing the application to be downloaded.
24. A medium as in claim 23 wherein the attempt to download the application may occur without the user's knowledge.
25. A medium as in claim 23 wherein the application can be any executable code such as a script, dynamically loadable library, applet, or plug-in.
26. A medium as in claim 23 wherein the user has the option of restricting the scope of the warning.
27. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- downloading an executable program from the Internet;
- detecting an attempt to launch the program without a user request to launch the application; and
- issuing a warning to the user before allowing the program to be launched.
28. A medium as in claim 27 wherein downloading the program occurs in response to a request by the user.
29. A medium as in claim 27 wherein downloading the program does not occur in response to a request by the user.
30. A medium as in claim 27 wherein the attempt to launch the program originates from an electronic document with a URL scheme wherein the URL scheme is processed only by the program.
31. A medium as in claim 27 wherein the attempt to launch the program originates from an electronic document with a URL scheme, wherein the URL scheme is processed automatically by a scripted web page and wherein the user does not request the processing of the URL scheme.
32. A medium as in claim 27 wherein the user has the option of restricting the scope of the warning.
33. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- receiving an input to download one or more files contained in an archived file;
- determining if any of the files contain executable code; and
- issuing a warning to a user that one or more of the files contain executable code.
34. A medium as in claim 33 wherein determining if the archived file contains executable code is done by expanding the archive file into its constituent files and looking at at least some of the raw data bits of each constituent file.
35. A medium as in claim 34 wherein the constituent files are expanded in a protected storage space where they are inaccessible to the user or other operating system programs.
36. A medium as in claim 34 wherein the archived file can be a file encoded with any method, such as a disk image, tar file, zip file, stuffed file, or with any other file compression format.
37. A medium as in claim 34 wherein the archived file originates from the Internet.
38. A medium as in claim 34 wherein the user has the option of restricting the scope of the warning.
39. A machine readable medium providing instructions which when executed by a system cause the system to perform a method comprising:
- downloading an application; and
- storing the origin of the application as part of metadata compiled about the application in a metadata database.
40. A method as in claim 39 further comprising displaying the metadata, including the origin of the application, in response to a user command.
41. A medium as in claim 39 wherein the origin of the application is a web page or another electronic document coming from the Internet.
42. A medium as in claim 39 wherein the application informs the operating system of the origin of the application.
43. A medium as in claim 39 wherein the operating system determines the origin of the application.
44. A data processing system comprising:
- means for downloading a file;
- means for determining if the file contains executable code; and
- means for issuing a warning to the user before allowing the file to be downloaded.
45. A data processing system comprising:
- means for receiving an input to download an application from the Internet to a user's system;
- means for issuing a warning to the user before allowing the application to be downloaded.
46. A data processing system comprising:
- means for detecting an attempt to automatically download from the Internet an application to a user's system;
- means for issuing a warning to the user before allowing the application to be downloaded.
47. A data processing system comprising:
- means for downloading an executable program from the Internet;
- means for detecting an attempt to launch the program without a user request to launch the application; and
- means for issuing a warning to the user before allowing the program to be launched.
48. A data processing system comprising:
- means for receiving an input to download one or more files contained in an archived file;
- means for determining if any of the files contain executable code; and
- means for issuing a warning to a user that one or more of the files contain executable code.
49. A data processing system comprising:
- means for receiving an input to display the contents of part or all of a user's file system; and
- means for marking the appearance of a file that is an executable program that has never been launched before by the user.
50. A data processing system comprising:
- means for marking the appearance of a file in a user's system that, when opened, launches an executable program that has never been launched before by the user.
51. A data processing system comprising:
- means for marking the appearance of a URL if activating the URL launches an executable program that has never been launched before by a user.
52. A data processing system comprising:
- means for downloading an application; and
- means for storing the origin of the application as part of metadata compiled about the application in a metadata database.
Type: Application
Filed: Nov 3, 2011
Publication Date: Mar 1, 2012
Inventors: Christopher Scott Linn (Palo Alto, CA), Darin Benjamin Adler (Los Gatos, CA), Donald Dale Melton (San Carlos, CA), Christopher Blumenberg (San Francisco, CA)
Application Number: 13/288,574
International Classification: G06F 11/00 (20060101); G06F 9/445 (20060101);