Identifying, marking and erasing sensitive information in screen captures for data loss prevention
10482284 ยท 2019-11-19
Assignee
Inventors
Cpc classification
G06F21/6254
PHYSICS
International classification
Abstract
Sensitive information displayed on a screen is protected against leakage and loss. A section of a bitmap containing sensitive information is defined as a protection region. A protection marker identifying the protection region is embedded into the bitmap. The defined protection region is divided into multiple sub-regions, and a separate sub-region protection marker is embedded in each sub-region of the original protection region. The defining, embedding and dividing are performed before the bitmap is copied to the screen buffer. When content that was displayed on the screen has been captured, for example by screen capturing software, the captured content is parsed. All sub-region protection markers embedded in the captured content are detected, and a real protection region in the captured content is calculated, based on information in the detected sub-region protection markers. The sensitive information in the captured content is erased.
Claims
1. A computer implemented method for protecting data displayed on a screen against loss, the method comprising: defining an original protection region in a bitmap, the defined original protection region comprising a section of the bitmap containing sensitive information; embedding a protection marker identifying the original protection region into the bitmap, before the bitmap is copied to a screen buffer by an application; dividing the defined original protection region into a plurality of sub-regions, before the bitmap is copied to the screen buffer by the application; embedding a separate sub-region protection marker in each sub-region of the original protection region, before the bitmap is copied to the screen buffer by the application; parsing captured content that was displayed on the screen after the bitmap was copied to the screen buffer; detecting one or more unobscured sub-region protection markers embedded in the captured content; calculating a real protection region in the captured content, based on information in the detected one or more unobscured sub-region protection markers; and erasing the real protection region in the captured content.
2. The method of claim 1 wherein defining an original protection region further comprises: defining a rectangular original protection region.
3. The method of claim 1 wherein embedding a protection marker identifying the original protection region into the bitmap further comprises: embedding into the bitmap a protection marker containing shape, size and location information of the original protection region.
4. The method of claim 1 wherein embedding a protection marker identifying the original protection region into the bitmap further comprises: embedding into the bitmap a protection marker that is not visible when content of the bitmap is displayed.
5. The method of claim 4 further comprising: capturing content by screen capture software being displayed on the screen, the content containing the protection marker that is not visible on the screen.
6. The method of claim 1 wherein embedding a protection marker identifying the original protection region into the bitmap further comprises: embedding into the bitmap a protection marker that is visible when content of the bitmap is displayed on the screen.
7. The method of claim 6 further comprising: capturing content by scanning software, the content having been previously displayed on the screen and containing the visible protection marker.
8. The method of claim 1 wherein embedding a sub-region protection marker in a specific sub-region of the original protection region further comprises: embedding a sub-region protection marker containing shape, size and location information of the specific sub-region, and shape, size and location information of the original protection region.
9. The method of claim 1 wherein: the defining, dividing and embedding steps are performed by the application.
10. The method of claim 1 wherein calculating a real protection region in the captured content further comprises: calculating a real protection region in the captured content that is not identical to the original protection region, as a result of content overlapping or clipping.
11. The method of claim 1 wherein calculating a real protection region in the captured content further comprises: calculating a real protection region in the captured content that is identical to the original protection region.
12. The method of claim 1 wherein erasing the real protection region in the captured content further comprises: writing a specific message over at least a part of the real protection region, the specific message indicating that protected sensitive information has been erased.
13. The method of claim 1 wherein erasing the real protection region in the captured content further comprises: overwriting the real protection region with a solid color or other graphical data.
14. The method of claim 1 wherein: the parsing, detecting, calculating and erasing steps are performed by screen capture software.
15. The method of claim 1 wherein: the parsing, detecting, calculating and erasing steps are performed by scanning software.
16. The method of claim 1 further comprising: identifying a real protection region containing sensitive information for each bitmap processed by the application, prior to the application loading a given corresponding bitmap being processed into the screen buffer.
17. The method of claim 1 further comprising: identifying information displayed by the application on the screen, but which an organizational policy prohibits from being captured from the display screen, as sensitive information.
18. The method of claim 1 further comprising: identifying personal identification information as sensitive information.
19. At least one non-transitory computer readable-storage medium for protecting data displayed on a screen against loss, the at least one non-transitory computer readable-storage medium storing computer executable instructions that, when loaded into computer memory and executed by at least one processor of a computing device, cause the computing device to perform the following steps: defining an original protection region in a bitmap, the defined original protection region comprising a section of the bitmap containing sensitive information; embedding a protection marker identifying the original protection region into the bitmap, before the bitmap is copied to a screen buffer by an application; dividing the defined original protection region into a plurality of sub-regions, before the bitmap is copied to the screen buffer by the application; embedding a separate sub-region protection marker in each sub-region of the original protection region, before the bitmap is copied to the screen buffer by the application; parsing captured content that was displayed on the screen after the bitmap was copied to the screen buffer; detecting one or more unobscured sub-region protection markers embedded in the captured content; calculating a real protection region in the captured content, based on information in the detected one or more unobscured sub-region protection markers; and erasing the real protection region in the captured content.
20. A computer system for protecting data displayed on a screen against loss, the computer system comprising: at least one processor; system memory configured to store a screen buffer; a region defining module residing in the system memory, the region defining module being programmed to define an original protection region in a bitmap, the defined original protection region comprising a section of the bitmap containing sensitive information; a region dividing module residing in the system memory, the region dividing module being programmed to divide the defined original protection region into a plurality of sub-regions, before the bitmap is copied to the screen buffer by an application; a marker embedding module residing in the system memory, the marker embedding module being programmed to embed a protection marker identifying the original protection region into the bitmap, and to embed a separate sub-region protection marker in each sub-region of the original protection region, before the bitmap is copied to the screen buffer by the application; a parsing module residing in the system memory, the parsing module being programmed to parse captured content that was displayed on the screen after the bitmap was copied to the screen buffer; a marker detecting module residing in the system memory, the marker detecting module being programmed to detect one or more unobscured sub-region protection markers embedded in the captured content; a calculating module residing in the system memory, the calculating module being programmed to calculate a real protection region in the captured content, based on information in the detected one or more unobscured sub-region protection markers; and a sensitive content erasing module residing in the system memory, the sensitive content erasing module being programmed to erase the real protection region in the captured content.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6) The Figures depict various embodiments for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
DETAILED DESCRIPTION
(7)
(8) Clients 103 and servers 105 can be implemented using computer systems 210 such as the one illustrated in
(9) Although
(10)
(11) Other components (not illustrated) may be connected in a similar manner (e.g., document scanners, digital cameras, printers, etc.). Conversely, all of the components illustrated in
(12) The bus 212 allows data communication between the processor 214 and system memory 217, which, as noted above may include ROM and/or flash memory as well as RAM. The RAM is typically the main memory into which the operating system and application programs are loaded. The ROM and/or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls certain basic hardware operations. Application programs can be stored on a local computer readable medium (e.g., hard disk 244, optical disk 242) and loaded into system memory 217 and executed by the processor 214. Application programs can also be loaded into system memory 217 from a remote location (i.e., a remotely located computer system 210), for example via the network interface 248 or modem 247. In
(13) The storage interface 234 is coupled to one or more hard disks 244 (and/or other standard storage media). The hard disk(s) 244 may be a part of computer system 210, or may be physically separate and accessed through other interface systems.
(14) The network interface 248 and or modem 247 can be directly or indirectly communicatively coupled to a network 107 such as the Internet. Such coupling can be wired or wireless.
(15)
(16) As illustrated in
(17) Screen capture software 307 operates by copying all or a section of the bitmap 303 from the screen buffer 305 to a separate location in memory 217, and then processing the captured content 309 as desired, e.g., print, save to a file, transmit to a remote computer 210, etc. Many applications use screen capture functionality, for example the Windows print screen feature, WebEx, Remote Desktop, etc. The captured content 309 can be subsequently shared with other people, thereby risking inadvertent or malicious unauthorized leakage of data from an organization.
(18) To prevent such data leakage, the displayed information protection manager 101 identifies sensitive information 301 in a bitmap 303, and embeds into the bitmap 303 a marker 311 which contains size and location information of the region 313 containing the sensitive information 301, before the bitmap 303 is copied into the screen buffer 305. In order to protect against losing the marker 311 due to the overlapping of windows on the screen 224 or the clipping of content covering only a part of the screen 224, the displayed information protection manager 101 divides the region 313 containing the sensitive information 301 into a set of sub-regions 315, and embeds a separate marker 311 into each one. Thus, even when only a section of the screen 224 is clipped or visible, the region 313 containing sensitive information 301 can still be identified. The displayed information protection manager 101 can then identify and erase the text and/or images in the protection region 313 after the bitmap 303 is copied from the screen buffer 305 by screen capture software 307. Thus, the captured content 309 does not contain the sensitive information 301. Furthermore, the displayed information protection manager 101 can replace the redacted sensitive information 301 in the captured content 307 with a message 317 indicating that the redacted content is protected.
(19)
(20)
(21) A protection region 313 can be any shape. In one embodiment, the protection region 313 is in the form of a rectangle. It is to be understood that a protection region can comprise some bits that do not themselves comprise sensitive information 301, so long as the sensitive information 301 itself (or in some embodiments a sufficient amount of it to render the remaining amounts unintelligible) is included in the protection region 301. Put another way, in some embodiments a protection region 313 can have an outline or border of non-protected content, for example to create a rectangle or other desired shape.
(22) A marker embedding module 403 of the displayed information protection manager 101 embeds 503 a marker 311 into the bitmap 303, before the bitmap 303 is copied to the screen buffer 305 by the application 319. This marker 311 (called a protection marker 311 herein) typically contains an identifier so that the protection marker 311 itself can be detected in the bitmap 303, as well as shape, size and location information of the protection region 313, so that the protection region 313 can be located and protected. Detection of the protection marker 311, and location and protection of the protection region 313 are described in detail below.
(23) In some embodiments the above-described protection marker 311 is in a format that is not visible to the human eye. Therefore, although the protection marker 311 is present in the bitmap 303 which is copied to the screen buffer 305, it does not alter the visible image output to the display screen 224, but is instead hidden. In other embodiments, the protection marker 311 can be in a visible format. A hidden protection marker 311 would typically be used in embodiments protecting against screen capture, whereas a visible protection marker 311 is useful for protecting against leakage of sensitive information 301 through pictures taken of the screen 224. It is to be understood that the implementation mechanics of embedding either visible or invisible information into a bitmap 303 are known to those of ordinary skill in the relevant art, and the implementation details of the use of such techniques within the content of the displayed information protection manager 101 will be apparent to those of such a skill level in light of this disclosure.
(24) Using the functionality described above, the displayed information protection manager 101 can identify and define a protection region 313 and embed a corresponding protection marker 311 in the bitmap 303 to protect the sensitive information 301 displayed on the screen 224. However, it should be noted that the protection region 313 containing the sensitive information 301 could be overlapped by other windows or screen content, for example when displayed on the screen 224 in the context of a windowing graphical user interface (GUI). In addition, screen capture software 307 could be used to clip content displayed on just a part of the screen 224 or active window. As a result of such scenarios, the real shape or size of the protection region 313 could be changed. Were this to occur, the real protection region 313.sub.REAL containing the sensitive information 301 in the captured content 309 would no longer be identical to the original identified/defined protection region 313.sub.ORIGINAL, either because part of the original protection region 313.sub.ORIGINAL was overlapped by unrelated content from another window or other GUI component, or because only part of the original protection region 313.sub.ORIGINAL was included in the clipped content. These scenarios might cause the protection marker 311 to be omitted from the resulting real protection region 313.sub.REAL. In addition, these scenarios would cause the shape, size and/or location of the original protection region 313.sub.ORIGINAL to be altered, and thus even if the protection marker 311 did still exist, the information therein would no longer be accurate. As used herein, the term real protection region 313real protection region 313.sub.REAL means the protection region as it exists in the captured content 309. As explained above, because of the possibility of overlapping content on the screen 224 and/or clipping, the real protection region 313.sub.REAL can, but is not always, altered from the original protection region 313.sub.ORIGINAL that was defined in the bitmap 303 before it was copied to the screen buffer 305.
(25) To prevent these problems, a region diving module 405 of the displayed information protection manager 101 divides 505 the original protection region 313.sub.ORIGINAL into a plurality of sub-regions 315. For example, if the original protection region 313.sub.ORIGINAL is in the form of a rectangle, the original protection region 313.sub.ORIGINAL can be divided into a grid of smaller rectangles, wherein each smaller rectangle in the grid is a sub-region 315. The marker embedding module 403 then embeds 507 a separate sub-region protection marker 311.sub.SUB in each sub-region 315 of the original protection region 313.sub.ORIGINAL. Each sub-region protection marker 311.sub.SUB typically contains an 1) identifier so that it can be detected in the bitmap 303, 2) shape, size and location information of the sub-region 315, and 3) shape, size and location information of the protection region 313.sub.ORIGINAL. As described in detail below, the real protection region 313.sub.REAL in a screen capture can be located, even where the original protection region 313.sub.ORIGINAL has been damaged or partially overwritten, based on the multiple sub-region protection markers 311.sub.SUB which are detected. Note that the sub-region protection markers 311.sub.SUB close to the borders of real protection region 313.sub.REAL could be overwritten or damaged, and thus those individual sub-regions 315 might not be detected. Thus, if the size of the sub-regions 315 is too big, discernable sensitive information 301 in some sub-regions 315 could become unprotected. For this reason, the sub-region size should be small enough that failure to detect and redact border sub-regions 315 would not result in the capture of the sensitive information 301.
(26) In some embodiments, the above-described defining of the protection region 313.sub.ORIGINAL, dividing of the protection region 313.sub.ORIGINAL into sub-regions 315 and/or the embedding of the corresponding markers 311 prior to the bitmap 303 being to copied into the screen buffer 305 can be performed in conjunction with, by or as a part of the application 319 that displays sensitive information 301 on the screen 224.
(27) When screen capture software 307 captures screen content 309, as explained above the captured content 309 is in the form of a bitmap 303, copied from the screen buffer 305. A parsing module 407 of the displayed information protection manager 101 parses 509 the captured content 309. A marker detecting module 409 of the displayed information protection manager 101 detects 511 all of the markers 311.sub.SUB embedded in the captured content 309 indicative of sub-regions 315. From the multiple sub-regions 315 identified by the detected markers 311.sub.SUB, a calculating module 411 of the displayed information protection manager 101 calculates 513 the real protection region 313.sub.REAL containing the sensitive information 301 in the captured content. The calculating module 411 is able to use the plurality of sub-regions 315 to calculate 513 the real protection region 313.sub.REAL, even when the original protection region 313.sub.ORIGINAL was damaged or altered due to clipping or overlapping. In embodiments based on visible markers 311 used to protect against photographing and subsequently scanning screen content containing sensitive information 301, the detection of markers 311 can be performed in conjunction with scanning software 321, as opposed to screen capture software 307.
(28) A sensitive content erasing module 413 of the displayed information protection manager 101 erases 515 the sensitive information 301 from the captured (or scanned) content 309, by overwriting the identified real protection region 313.sub.REAL. This redacts the sensitive information 301 from the captured content 309, while leaving the captured content outside of the real protection region 313.sub.REAL intact. In some embodiments, the erasing of the sensitive information takes the form of a message writing module 415 of the displayed information protection manager 101 writing 517 a specific message 317 over at least a part of the protection region 313.sub.REAL, indicating that the redacted section of the captured content 309 contained sensitive information 301 which has been erased according to the data protection/management policy of the organization. The specific content of the message 317 is a variable design parameter. In some embodiments, no message is written to the protection region 313.sub.REAL, but instead the sensitive content erasing module 413 overwrites the protection region 313.sub.REAL with a solid color or other graphical data.
(29) In some embodiments, the above-described marker 311 detection, real protection region 313.sub.REAL calculation, sensitive information 301 erasure and/or message 317 writing can be performed in conjunction with or as a part of the screen capture software 305 (or scanning software 321). In other embodiments, this functionality can be implemented in the form of or in conjunction with code which is hooked into system or screen capture software, to monitor the clipboard, system APIs, etc.
(30) As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the portions, modules, agents, managers, components, functions, procedures, actions, layers, features, attributes, methodologies, data structures and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions and/or formats. The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or limiting to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain relevant principles and their practical applications, to thereby enable others skilled in the art to best utilize various embodiments with or without various modifications as may be suited to the particular use contemplated.