Data Obfuscation

By extracting structured sensitive data in image data and generating fake data with the same functions and visual formats, the problem of difficulty in maintaining sensitive data format in the prior art is solved, and the application in software development and testing is realized.

JP7661610B2Active Publication Date: 2025-04-14BLUE PRISM LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024504506
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-08-05
Filing Date
2022-07-29
Publication Date
2025-04-14
Estimated Expiration
2042-07-29

AI Technical Summary

Technical Problem

Existing data re-editing technologies have difficulty maintaining the functional format and visual format of sensitive data, resulting in difficulties in software development and testing.

Method used

By extracting structured sensitive data in the image data, forged data with the same functional format but different cognitive content are generated, and replaced with the image data, forged image data with the same visual format are generated.

Benefits of technology

The hiddenness of sensitive data is achieved while maintaining its functional and visual format, suitable for software development and testing, especially in robotic process automation applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007661610000001
    Figure 0007661610000001
  • Figure 0007661610000002
    Figure 0007661610000002
  • Figure 0007661610000003
    Figure 0007661610000003
Patent Text Reader

Abstract

The present invention relates to a computer-implemented method for obfuscating sensitive data, the method including: obtaining, by a processor, image data; extracting, by the processor, structured data from the image data, the structured data being sensitive data and having a defined functional format and a defined visual format; generating, by the processor, artificial data different from the structured data, the artificial data having the same functional format as the structured data; generating, by the processor, artificial image data based on the image data in which the structured data has been replaced with the artificial data, the artificial data being based on the visual format of the structured data; and outputting, by the processor, the artificial image data.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a computer implemented method, a computer program product and a computer system for obfuscating sensitive data. [Background technology]

[0002] Data redaction is the process of visually removing or replacing sensitive data so as not to expose the sensitive or cognitive content of the data. For example, the image shown in FIG. 1A contains various types of sensitive data, such as dates and / or times, domain names, email addresses, names, phone numbers, etc. The sensitive content of this data is a specific date and / or time (Mon 22 / 02 / 2021 10:28; 1.5 hrs), a specific domain name (www.blueprism.com), a specific email address (Ben.Carter@blueprism.com), etc. Data redaction is the process of visually removing or replacing this data.

[0003] The reason for data re-editing is to ensure that the party receiving the re-edited data cannot glean sensitive content when the re-edited data is shared. This process is important because a breach of sensitive data could result in accidental or unlawful destruction, loss, or alteration of sensitive data, unauthorized disclosure of sensitive data, or unauthorized access to sensitive data, resulting in serious personal injury. Furthermore, access to sensitive data by the receiving party may be illegal under regulations in various jurisdictions.

[0004] There are several known techniques for re-editing data. These techniques generally use, for example, opaque (usually black) rectangles, fixed strings (such as "******" for passwords or "xxxx xxxx xxxx 6789" for credit card numbers), strings that depend on the entity type (such as " <person>" or pixelating. For example, in Google Cloud, Cloud Data Loss Prevention inspects the text of a base64-encoded image, detects sensitive data within the text, and returns a base64-encoded image in which the matched sensitive data has been obscured by opaque rectangles. Figure 1B shows the application of this prior art technique to the image of Figure 1A. Summary of the Invention [Problem to be solved by the invention]

[0005] A problem with existing data re-editing techniques is that such techniques make it difficult to understand not only the visual format of the re-edited sensitive data, but also the functional format. This is particularly problematic when the sensitive data is used in software applications, such as robotic process automation applications, and when software applications need to be developed and tested, because software developers typically need to understand the functional format, and sometimes the visual format, of the sensitive data to ensure that the software application is set up and functions correctly. [Means for solving the problem]

[0006] The invention is defined by the independent claims, with further optional features being defined by the dependent claims.

[0007] In a first aspect of the present invention, a computer-implemented method for obfuscating sensitive data is provided, the method including: acquiring image data by a processor; extracting structured data from the image data by the processor, the structured data being sensitive data and having a defined functional format and a defined visual format; generating artificial data different from the structured data, the artificial data having the same functional format as the structured data; generating artificial image data by the processor based on the image data in which the structured data has been replaced with the artificial data, the artificial data being based on the visual format of the structured data; and outputting the artificial image data by the processor. This allows the sensitive data to be obscured while preserving the functional format of the sensitive data without revealing sensitive cognitive content of the data. This is useful for a human operator who needs to understand the functional format of the sensitive data (e.g., because the functional format interacts with another software application, such as a robotic process automation (RPA) application), but cannot access the sensitive data due to the sensitivity of its content. Furthermore, based on the visual format of the synthetic data is useful for ensuring that the synthetic image data can be used in place of the image data.

[0008] In some embodiments, the artificial image data has the same visual format as the structured data, which is useful if a software application that interacts with the sensitive data needs to be developed by an operator, for example in an RPA application, that somehow depends on the visual format of the sensitive data.

[0009] In one embodiment, extracting the structured data from the image data includes performing optical character recognition on the image data to identify text in the image data, identifying structured data in the text, determining one or more bounding boxes in the image data that correspond to the structured data, and extracting one or more image portions from the image data using the one or more bounding boxes, thereby enabling portions of the image data containing sensitive data to be identified and the remaining image data to be ignored for purposes of replacing the sensitive data, thereby reducing processing requirements of subsequent steps.

[0010] Optionally, the defined functional format includes one or more of an entity type and an entity type format. The entity type provides information about what the sensitive data represents, e.g., name, date and / or time, email address, address, etc. This can narrow down the variety of entity type formats that can be used. The entity type format is the format of a given entity type. By determining the entity type format, the artificial data can be generated using the same entity type format as the sensitive data. For example, if the sensitive data is a UK postcode, the artificial data will also be in UK postcode format. This can make it easier to understand how other software applications handle the functional format of the sensitive data and how this affects the execution of the software application.

[0011] Optionally, the defined visual format includes one or more of a text length, a text font, a text color, and a background color. Using the text length allows the generated artificial image data to use the same or similar length so that the artificial data fits within a bounding box surrounding the sensitive data. Using the text font allows potential problems with the visual format of the font to be recognized. For example, if a software application uses optical character recognition on an image, but in the particular font used, I (uppercase "i") and l (lowercase "L") look very similar, maintaining the text font in the artificial image data allows such problems to be identified. The text color and background color allow the artificial image data to have the same visual format as the sensitive data.

[0012] In some embodiments, generating the artificial data includes identifying a functional format of the structured data, tabulating the structured data extracted from the image, generating the artificial data based on the functional format of the structured data, and tabulating the artificial data together with the corresponding structured data. In these embodiments, the method may optionally include outputting the tabulated structured data and the tabulated artificial data as an editable table, which allows an operator to verify and approve the artificial data. More importantly, the operator may modify the editable table to make corrections to the identified sensitive data. In particular, a user may add missed sensitive data by adding rows to the table, remove misdetected sensitive data entities by deleting rows in the table, correct errors in the sensitive data by editing the corresponding cells in the table, or simply replace the generated artificial data. In these embodiments, the method may further optionally include sending a prompt to the operator to confirm the artificial data before generating the artificial image data. This allows the operator to transparently see how the mapping from sensitive data to artificial data is performed, thus improving the robustness of the approach.

[0013] In a further embodiment, the method may include obtaining second image data, extracting second structured data from the second image data, and generating second synthetic data different from the second structured data, where if the second structured data is identical to the previous structured data, the second synthetic data is identical to the previous synthetic data. This means that multiple occurrences of the same sensitive data are always obfuscated in the same way using the method. This consistency of the synthetic data across different image data avoids confusion for operators using the synthetic data. Furthermore, data integrity is maintained, allowing testing / debugging of software applications that use the sensitive data.

[0014] In certain embodiments, generating the artificial image data may include identifying a visual format of the structured data in one or more image portions, generating one or more artificial image portions corresponding to the one or more image portions based on the visual format of the structured data in the one or more image portions, and modifying the image data to replace the one or more image portions with the one or more artificial image portions. By accounting for image portions in this manner, different visual formats in different image portions may be taken into account to obscure the sensitive data.

[0015] In some embodiments, the artificial image data is output to a display during the development process of software that uses the sensitive data. Both the functional format of the data and the visual format of the data may be important to various software applications that use these aspects of the data in some way. By maintaining the functional and visual formats, the software developer can ensure that the software application is configured and functioning correctly. Optionally, the display resides on a separate computer from the processor. Typically, the party developing the software is not allowed to see the sensitive data. This ensures that one party (i.e., the party allowed to see the sensitive data, the client computer) performs the obfuscation of the data and the generation of the artificial image data, and the other party (the developer computer) uses the artificial image data.

[0016] In certain embodiments, the software is a robotic process automation (RPA) process. RPA involves the use of automated processes and workflows to extract structured data, typically sensitive data, from a graphical user interface (GUI) or image data, such as a document. It is important to maintain the functional format of the sensitive data in the man-made data in order to be able to determine whether the automated process or workflow is functioning correctly. Because RPA often relies on the GUI of a software application to extract the sensitive data, it is also important to maintain the visual format of the sensitive data. That is, maintaining the visual format of the sensitive data can reveal potential problems with the extraction.

[0017] In a second aspect of the invention, there is provided a computer implemented method for preventing sensitive data received via a remote access application from being output to an operator. The method comprises receiving a GUI of a software application running on a remote server from a server via the remote access application, modifying the GUI to remove the sensitive data according to the method of the first aspect of the invention, and outputting the modified GUI to one or more output peripherals of the computer for receipt by the operator. This allows the advantages of the first aspect of the invention to be used in the context of remote access applications, which is particularly useful for software development purposes.

[0018] In a third aspect of the invention there is provided a computer program comprising instructions which, when executed by a processor, cause the processor to carry out the method of the first aspect of the invention.

[0019] In a fourth aspect of the invention, there is provided a computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the method of the first aspect of the invention.

[0020] In a fifth aspect of the invention, there is provided a processor configured to carry out the method of the first aspect of the invention.

[0021] In a sixth aspect of the invention, there is provided a computing system including a processor configured to perform the method of the first aspect of the invention.

[0022] Embodiments of the invention will now be described, by way of example only, with reference to the following drawings, in which: [Brief description of the drawings]

[0023] [Figure 1A] FIG. 2 is a diagram showing an example of image data used in the method of the present invention. [Figure 1B] FIG. 1B (PRIOR ART) shows the image data of FIG. 1A after applying known data re-editing techniques. [Diagram 2] FIG. 1 illustrates an example of a system for implementing the method of the present invention. [Diagram 3] FIG. 1 illustrates an example of a system for implementing the method of the present invention. [Figure 4] FIG. 2 shows an example of image data including sensitive data that is obscured according to the method of the present invention. [Diagram 5] FIG. 1 illustrates the method of the present invention. [Figure 6A] FIG. 1B illustrates the extraction of structured data from the example image data of FIG. 1A according to the method of the present invention. [Figure 6B] FIG. 1B shows a database corresponding to the structured data of FIG. 1A for use in the method of the present invention. [Figure 6C] FIG. 1B shows artificial image data in which the structured data of FIG. 1A has been replaced based on the method of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] 2 illustrates a computing system 10 on which the method of the present invention may be implemented according to one embodiment. The computing system 10 includes one or more client computers 20 that are physically accessible by one or more human operators 25.

[0025] The computing system 10 also includes one or more servers 50. The servers 50 are typically remote servers, i.e., the servers 50 are located at a different location than the client computers 20 so that the operator 25 does not have physical access to them. In some examples, the remote servers 50 are virtual servers. In FIG. 2, the servers 50-1, 50-2, 50-3 are virtual servers in a cloud computing environment 60. The client computers 20 and the servers 50 are communicatively connected to each other via at least one communication network 30. This communicative connection allows data to be communicated between the client computers 20 and the servers 50. The at least one communication network 30 typically includes the Internet (i.e., IP, IPv4, IPv6). In addition to or instead of the Internet, there may be other communication networks, such as cellular networks (i.e., 3G, 4GLTE, 5G), local area networks, cloud networks, wireless networks, or any other known communication networks.

[0026] The computing system 10 also includes a developer computer 40 accessible to a software developer, a human operator 45. The developer computer 40 is communicatively connected to a server 50, which allows the operator 45 to set up, develop, configure, schedule, or monitor a software application 50A running on the server 50. Alternatively or additionally, the developer computer 40 is communicatively connected to a client computer 20, which allows the operator 45 to set up, develop, configure, schedule, or monitor a software application 20A running on the client computer 20.

[0027] The computing system 10 described herein is merely exemplary and may be modified, including the elimination or addition of system components.

[0028] FIG. 3 illustrates selected aspects of the computing system 10 shown in FIG. 2. Specifically, FIG. 3 illustrates a client computer 20 in communication with a server 50 via a communications network 30. The client computer 20 includes one or more software applications 20A, a processor 20B, a memory 20C, one or more input peripherals 20D, and one or more output peripherals 20E. The processor 20B includes a central processing unit (CPU) and / or a graphical processing unit (GPU). The memory 20C includes data storage devices and / or semiconductor memory. The data storage devices take the form of hard disk drives, solid state drives, external drives, removable optical disks, and / or memory cards. The semiconductor memory takes the form of volatile memory, e.g., random access memory (RAM), for temporary storage of data, and non-volatile memory, e.g., read only memory (ROM), flash memory, for long-term storage of data.

[0029] One or more software applications 20A are stored as computer programs in memory 20C and executed by processor 20B on client computer 20. These software applications, which enable direct interaction with operator 25 via input peripherals 20D and output peripherals 20E, include operating systems (OS) and desktop applications. Examples of known operating systems include Microsoft Windows, MacOS, and Linux. Examples of known desktop applications for client computer 20 include web browsers such as Google Chrome, word processing applications such as Microsoft Word, and remote access applications such as remote desktop protocol (RDP) and remote framebuffer (RFB) protocols by Microsoft. However, the present invention is not limited to use with the particular applications described herein.

[0030] As mentioned above, the client computer 20 includes one or more input peripherals 20D. The purpose of the input peripherals 20D is to allow the operator 25 to send instructions to the client computer 20. Examples of the input peripherals 20D include a mouse, a keyboard, a touch screen, an image scanner, a barcode reader, a game controller, a microphone, a digital camera, a webcam, etc.

[0031] The client computer 20 also includes one or more output peripherals 20E. The purpose of the output peripherals 20E is to enable the operator 25 to receive information from the client computer 20. Examples of the output peripherals 20E include a display device (e.g., a computer monitor or a projector), a printer, headphones, computer speakers, and the like. As with the input peripherals 20D, the output peripherals 20E may be integrated with the client computer 20 or may be provided outside the client computer 20. The operator 25 receives information from the client computer 20 using the output peripherals 20E by interpreting the UI of the application 21 using senses such as vision and hearing.

[0032] There are other components (not shown in FIG. 3) present in client computer 20. For example, computer 20 may include one or more of a network adapter card, a power supply, a motherboard, a sound card, etc., that enable communication over communications network 30.

[0033] The developer computer 40 has the same components as the client computer 20 shown in Fig. 3. The difference between the developer computer 40 and the client computer 20 is that the developer computer 40 has access to the server 50 to set up, develop, configure, schedule, and monitor one or more software applications 50A running on the server 50, whereas the client computer 20 does not have such access. Additionally or alternatively, the developer computer has access to the client computer 20 to set up, develop, configure, schedule, and monitor one or more software applications 20A running on the client computer 20, whereas the client computer 20 does not have the same functionality as the developer computer 40. Thus, the developer computer 40 may have additional software applications 20A to allow the operator 45 to perform this set up, development, configuration, scheduling, and monitoring. For example, a remote access application such as Microsoft's remote desktop protocol (RDP) or remote framebuffer (RFB) protocol can be used for this purpose.

[0034] 3, the server 50 includes a processor 50B, a memory 50C, and a machine interface 50D, in addition to one or more software applications 50A. The one or more applications 50A are stored as computer programs in the memory 50C and executed on the remote server 50 by the processor 50B.

[0035] The server 50 may take the form of a single server (e.g., server 50 shown in FIG. 2) or multiple servers (e.g., servers 50-1, 50-2, 50-3 shown in FIG. 2), or may take the form of a distributed server. A distributed server operates by distributing processing and data among its constituent components. The server 50 may be a physical server or a virtual server. When the server 50 is a virtual server, the software application 50A, the processor 50B, the memory 50C, and the machine interface 50D are all virtual entities hosted in the cloud computing environment 60 of the computer system 10.

[0036] The one or more software applications 50A on the server 50 do not necessarily interact directly with the operator 25 or operator 45 via the input peripherals 20D and output peripherals 20E. Alternatively, the one or more software applications 50A may be applications that interact directly with the client computer 20 or developer computer 40 via the communication network 30 and the machine interface 50D. In some examples, the software application 50A on the server 50 may optionally provide a developer interface to the developer computer 40 via the software application 20A on the developer computer 40 to assist the operator 45 in setting up, developing, configuring, scheduling, and monitoring the software application 50A. This developer interface is not provided to the operator 25 operating the client computer 20.

[0037] One or more software applications 50A may use data from or associated with the client computer 20. This data may be "sensitive data" as further described herein. An exemplary software application 50A that uses data from or associated with the client computer 20 is a robotic process automation (RPA) application such as those described in U.S. Patent Application No. 14 / 053319 and U.S. Patent No. 10,469,572. In an RPA application, an automated process is performed using data from or associated with the client computer 20.

[0038] In one particular embodiment, when the computer system 10 is used to execute an RPA application, there may be a physical server 50 in addition to multiple virtual servers 50-1, 50-2, 50-3 in a cloud computing environment 60, as shown in FIG. 2. In this embodiment, the physical server 50 is a database server that is a central repository that holds process definitions, logs, audits, and user information. The database server communicates with a first virtual server 50-1 of the multiple virtual servers. The first virtual server 50-1 is an application server that controls connections between the database server and the second and third virtual servers 50-2, 50-3. The application server is provisioned as a virtual Windows server and may include features such as secure credential management, database connection marshalling, data encryption, scheduled process execution, etc. The second virtual server 50-2 hosts a virtualized instance of a typically standardized end-user desktop that is responsible for executing automated processes for robotic process automation. The third virtual server 50-3 is an end-user desktop construct that enables the setup, development, configuration, scheduling, and monitoring of automation processes. The third virtual server 50-3 is accessible to the developer computer 40 via a dedicated software application 20A.

[0039] Sensitive Data In many cases, computer systems, such as the exemplary computer system 10 shown in FIG. 2, are required to handle sensitive data. For example, a developer computer 40 may need to access a software application 50A (e.g., an RPA application) running on a server 50 to set up, develop, configure, schedule, or monitor the software application 50A. However, the software application 50A may use sensitive data, i.e., data from or related to the client computer 20 that should not be viewed by an operator 45 operating the developer computer 40. In another example, the developer computer 40 may need to access a client computer 20 to set up, develop, configure, schedule, or monitor a software application 20A on the client computer 20 that uses sensitive data.

[0040] Sensitive data is a special type of data that, due to its cognitive content, requires high security considerations. A breach of sensitive data can result in accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to sensitive data, resulting in serious personal harm. For example, the permanent deletion of an individual's medical records can have serious and long-term effects on that individual's health. For this reason, various jurisdictions regulate the storage and processing of sensitive data, such as the General Data Protection Regulation (GDPR) in the European Union and the Data Protection Act 2018 in the UK.

[0041] Sensitive data is in the form of text. Sensitive data may include personal information, i.e., information relating to an identified or identifiable natural person. For example, sensitive data may include name, address, date of birth, phone number, etc. Other types of sensitive data include an individual's location data, online identity, one or more elements specific to an individual's physical, physiological, genetic, mental, economic, cultural, or social identity. Additionally or alternatively, sensitive data may include financial information, such as credit card or bank numbers. As yet another example, sensitive data may include medical information.

[0042] Sensitive data for the purposes of this invention takes the form of structured data. As used herein, the term "structured data" means data that can be stored in an electronic file, such as a relational database, that is structured into rows (records) and columns (fields). For example, to obtain a date, a date field (date column) is accessed. In contrast, to derive meaning from "unstructured" free-format text, the text must be sequentially scanned and compared.

[0043] The sensitive data has not only a defined visual format but also a defined functional format. As used herein, the term "functional format" refers to portions of the sensitive data, and in particular the format of those portions, that have a technical function in a technical system, such as controlling the operation of client computer 20 via software application 20A. As used herein, the term "visual format" refers to the manner of presentation of the sensitive data.

[0044] A functional format may include one or more of an entity type and / or an entity type format. An entity type provides information about what the sensitive data represents, for example, a name, a date and / or a time, an email address, a postal address, etc. A functional format for an email address is different from a functional format for a phone number, thereby narrowing down the variety of entity type formats available. An entity type format is a format for a given entity type. A date and / or time entity type may have different entity type formats. For example, a date may be represented as "DD / MM / YYY" (European standard format), "MM / DD / YYYY" (US standard format), "YYYY / MM / DD" (Japanese standard format), where "D" represents the day, "M" represents the month, and "Y" represents the year. A time may be represented as "hh:mm", "hh:mm:ss", where "h" is the hour in 24-hour format, "m" is the minute, and "s" is the second. There are other time formats available, such as 12-hour (AM, PM), different time zones (GMT, EST, etc.), etc. In another example, for a UK postcode, the format of the entity type must be one of the set number formats: "A9AA 9AA", "A9A 9AA", "A9 9AA", "A99 9AA", "AA9 9AA", or "AA99 9AA" (where "A" represents a letter and "9" represents a number).

[0045] The visual format may include one or more of text length, text font, text color, and / or background color. Text length refers to the horizontal extent of the text. Text length may be measured based on the number of characters of the text (e.g., "Ben Carter" is 10 characters including spaces) or using the number of pixels. Text font includes the typeface of the text (e.g., Arial, Times New Roman, Courier New), the size of the text (e.g., 12pt), and special style characteristics (bold, italics, underline, strikethrough, subscript, superscript, etc.). Text color is the predominant color of the text, usually measured on the RGB or HSL scale. Background color is the predominant color of the background surrounding the text, also usually measured on the RGB or HSL scale.

[0046] Figure 4 is an example of a graphical user interface (GUI) 400 that includes sensitive data 410. In this example, the sensitive data 410 includes entity types such as date and / or time 410A, domain name 410B, email address 410C, name 410D, and phone number 410E. The format shown for date and / or time 410A includes two entity type formats: "ddd DD / MM / YYYY hh:mm" and "fractional time". In terms of visual format, the sensitive data has the same font (Calibri), a grey text color, and a white background color. This example is described in more detail below with reference to Figure 6 in the context of describing the method of the present invention. This GUI is typical of GUIs found in RPA applications.

[0047] Various techniques are known for re-editing sensitive data, such as the type shown in Figure 4. However, such techniques are not suitable for use in a scenario where sensitive data from or associated with a client computer 20 is used by a software application 50A, which needs to be further developed and tested by an operator 45 on a developer computer 40. This is because known techniques replace or remove not only the functional format but also the visual format of the sensitive data, making it difficult for the operator 45 to perform software development and testing tasks, as the functional and visual formats of the data are not available.

[0048] Overview of the method Figure 5 illustrates a method 500 employed by the present invention to obscure sensitive data without the same drawbacks as known data re-editing techniques. The method 500 of Figure 5 may be executed by processor 20B of client computer 20 or by processor 50B of server 50. Because developer computer 40 should not have access to image data containing sensitive data, the method of Figure 5 should not be executed by processor 20B of developer computer 40.

[0049] As shown in FIG. 5, the method 500 includes the following steps executed by a processor.

[0050] Image data is acquired by a processor (step 510). Extracting, by the processor, structured data from the image data, the structured data being sensitive data and having a defined functional format and a defined visual format (step 520). · generating, by the processor, artificial data different from the structured data, having the same functional format as the structured data (step 530); generating artificial image data based on the image data in which the structured data has been replaced with artificial data based on the same visual format as the structured data (step 540); The synthetic image data is output by the processor (step 550).

[0051] Method 500 allows for the obfuscation of sensitive data while preserving the functional as well as visual format of the sensitive data without revealing the sensitive cognitive content of the data, which is particularly useful for an operator 45 of developer computer 40 to perform software development and testing tasks on or for software application 50A at server 50 that uses sensitive data associated with or from client computer 20.

[0052] Steps 510 through 550 are described in further detail in the following sections.

[0053] Image data acquisition 5, processor 20B or processor 50B obtains image data. The image data is associated with or obtained from client computer 20. "Associated with" means that the image data belongs to or is related to the client of client computer 20. "From" means both image data received indirectly from client computer 20 and / or image data received directly from client computer 20.

[0054] The image data may contain data that is confidential from the perspective of the client computer 20. This means that the operator 25 operating the client computer 20 has the authority to view and interact with the confidential data, but the operator 45 operating the developer computer 40 does not.

[0055] The image data may take the form of a graphical user interface (GUI). For example, the image data may be a GUI image captured from the client computer 20 or the server 50 (in embodiments where the server 50 has a GUI accessible by an operator). The GUI may represent one or more of the software application 20A running on the client computer 20 or the software application 50A running on the server 50. The GUI may include an entire desktop interface (as output to the operator) or may include only a portion of the desktop interface that is relevant to a particular one of the software applications 20A or 50A. When the image data takes the form of a GUI, the processor 20B or the processor 50B obtains the image data by capturing the GUI. Alternatively, the GUI may have been previously captured by the processor 20B or the processor 50B and stored in the memory 20C or the memory 50C, respectively. In such an example, the GUI may be read from the memory 20C or the memory 50C. In some examples, the GUI may be captured by a remote access application.

[0056] Alternatively, the image data may be in the form of a document such as a PDF or image file, in which case the processor 20B or 50B retrieves the image data from the memory 20C or 50C, respectively, in which the image data is stored.

[0057] Figure 6A shows an example of image data. Specifically, Figure 6A shows a GUI 600 for an email application such as Microsoft Outlook. The GUI contains confidential data such as names, dates, phone numbers, email addresses, domain names, etc.

[0058] Structured Data Extraction In step 520 of Figure 5, processor 20B or processor 50B (whichever acquired the image data in step 510) extracts structured data from the image data. As discussed above, structured data is sensitive data that has a defined functional format and a defined visual format. Thus, the purpose of this step is to identify and extract structured data within the image data that is sensitive data.

[0059] Although image data is inherently unstructured, methods are known to identify structured data from unstructured image data. For example, Google uses Document AI, which uses computer vision (including optical character recognition (OCR)) and natural language processing (NLP) to create pre-trained models for documents.

[0060] One method for performing step 520 is to first perform optical character recognition on the image data to identify text in the image data and identify structured data within the text. This can be performed using known methods such as Document AI. After structured data is identified in the text, performing step 520 may include determining one or more bounding boxes in the image data that correspond to the structured data and using the one or more bounding boxes to extract one or more image portions from the image data. It is desirable to extract corresponding image portions from the image data only for structured data identified as sensitive data.

[0061] In addition to one or more image portions from the image data, each containing structured data corresponding to sensitive data extracted using the methods described above, step 520 has a second output: the underlying structured data corresponding to the sensitive data in the one or more image portions is also output. This data is tabulated in preparation for step 530.

[0062] The example image data GUI 600 of FIG. 6A shows a number of bounding boxes 610 containing structured data. The number of bounding boxes 610 are extracted to form a number of image portions containing sensitive data. Furthermore, structured data within the image portions is extracted. In the case of GUI 600, the structured data includes "Ben Benjamin Carter", "Ben Carter", "De Zhang", "Eric Tyree", "John Reid", "Krishna Dubba", and "+44 785 407 9884". This structured data can be tabulated as shown in column 615 of table 620 of FIG. 6B.

[0063] Artificial Data Generation 5, processor 20B or processor 50B (whichever obtained the image data in step 510) generates artificial data that is different from the structured data but has the same functional format as the structured data. The purpose of this step is to provide an alternative to the structured data that maintains the functional format without including the sensitive content.

[0064] To be able to generate artificial data that is different from structured data but has the same functional format as structured data, it is necessary to be able to identify the functional format of the data. This is achieved by utilizing machine learning models and heuristic rules. Machine learning models are pre-trained using machine learning techniques such as neural networks. Specifically, neural network models for recognizing entity types in text may be based on a transformer architecture such as RoBERTa. For example, the base version ("roberta-base") of the pre-trained RoBERTa model provided by Hugging Face (see https: / / huggingface.co / roberta-base) consists of 12 encoder layers with a hidden vector size of 768, 12 attention heads, and 125M parameters. The model has been trained on over 160GB of English text data from five public corpora of various sizes and domains using an enhanced Bidirectional Encoder Representations from Transformers (BERT) algorithm. For entity recognition purposes, a pre-trained roberta-base model can be fine-tuned by a labeled NER (Named Entity Recognition) dataset such as the OntoNotes5 dataset (see, e.g., https: / / deepai.org / dataset / ontonotes-v5-english), which contains 18 commonly found entity types. Heuristic rules can include (weighted) regular expression text patterns and contextual clues such as surrounding words. For example, the regular expression \b([0-9]{10})\b can be used to extract 10-digit sequences from text that are likely to represent US phone numbers or US bank account numbers. Then, if there are words such as "mobile" or "call" in the local context (e.g., 5 words before and after the 10-digit sequence), then the 10-digit sequence is likely to be a US phone number.Conversely, the presence of words like "savings" and "debit" in the local context indicates a high probability that a 10-digit string is a U.S. bank account number. Additionally, regular expressions can be used to determine the functional format of data. For example, the regular expression "(\+[0-9]{1,3})?([0-9]{10})\b" can be used to determine whether a 10-digit phone number has a corresponding country dialing code preceded by a plus sign followed by one to three digits, followed by a space character.

[0065] The representation of the entity type and entity type format may be output or stored in memory 20B or memory 50B. For example, in Figure 6A, one of the bounding boxes contains structured data for "Mon22 / 02 / 2021 10:28". Using the methods described above, this structured data entity type is considered to be "date and / or time" and the format of the entity type is considered to be "ddd DD / MM / YYYY hh:mm".

[0066] A table that can be edited by the operator 25 is then preferably used to generate the artificial data. In particular, after identifying the functional format of the structured data, the structured data extracted from the image is tabulated. This tabulation can be performed with the aid of the identified functional format. Furthermore, the functional format itself can also be tabulated. FIG. 6B shows an example, where a table 620 has a first column 625 using the identified functional format entity type and a second column 615 showing the corresponding structured data. In this example, the entity types are sorted alphabetically, which groups the entity types.

[0067] Then, for each row of the table, artificial data is generated that has the same functional format as the structured data, but has a different cognitive content, and is therefore not sensitive. For example, for structured data "Mon 22 / 02 / 2021 10:28" that is a date and / or time entity type, this can be changed to an artificial date and / or time of the same functional format, e.g. "Fri 24 / 06 / 1987 19:03". The artificial data is then listed with the structured data and, optionally, the functional format. Figure 6B shows a third column 660 of table 620 that contains the generated artificial data.

[0068] The generation of artificial data with the same functional format as the structured data is performed by random sampling from a probability distribution of entities conditional on the entity type and the entity type format. For example, to generate artificial person names, surnames are randomly sampled from a list of surnames and first names from a list of first names. The surnames and first names are then collapsed into the same format of the structured data (e.g., "SURNAME, First-name"). As another example, to generate artificial dates, calendar dates within a distance of 5 years from the original date are randomly sampled, and then a textual representation of the date is generated using the same format of the structured data (e.g., "ddd DD / MM / YYYY"). Optionally, post-filtering may be performed to ensure that the generated artificial data is within the valid range required by the corresponding software application.

[0069] The tabulated structured data and the tabulated artificial data may be output on the client computer 20 as an editable table for editing by the operator 25. This allows the operator to add, delete, or edit the mapping between the structured data and the artificial data as he sees fit. For example, the operator 25 may edit the editable table to make corrections to the structured data detection in the image data. Specifically, the user may add missed sensitive data entities by adding rows to the table, delete misdetected sensitive data by deleting rows from the table, correct errors in the sensitive data detection by editing the corresponding cells in the table (e.g., in FIG. 6B, the user may change the misidentified "Ben Benjamin Carter" to "Benjamin Carter"), or simply replace the automatically generated fake data entities with ones the user prefers (e.g., in FIG. 6B, the user may change the fake name of Krishna Dubba from "Michele Oneal" to "Dr Strangelove").

[0070] It may be useful to have the operator 25 approve the synthetic data before generating the synthetic image data in step 540. Thus, the processor 20B may send a prompt to the operator 25 to confirm the synthetic data.

[0071] The editable table may include structured data and artificial data from different (e.g., second, third, etc.) image data. In such an example, if the subsequent structured data (e.g., second structured data) is identical to the previous structured data, the artificial data generated based on the subsequent image data (e.g., second artificial data) is preferably identical to the previous artificial data. For example, referring to GUI 600 in FIG. 6A, if the second image data is associated with a further GUI that includes an email from Ben Carter, the structured data "Ben Carter" will appear in both the original image data and the subsequent second image data. And, regardless of whether the structured data "Ben Carter" comes from the original image data or the second image data, the generated artificial data will be Anne Wells (see FIG. 6B). The editable table does not need to generate a new row for the instance of "Ben Carter" in the second image data, but can utilize the row already generated from the original image data. In this way, the editable table can be considered as a global table of mappings between structured data and artificial data across one or more image data.

[0072] Generating artificial image data In step 540 of FIG. 5, processor 20B or processor 50B generates artificial image data based on the image data in which the structured data has been replaced with artificial data, where the artificial data is based on a similar visual format as the structured data.

[0073] To perform step 540, processor 20B or processor 50B first identifies the visual format of the structured data in the one or more image portions, then generates one or more artificial image portions corresponding to the one or more image portions based on the visual format of the structured data in the one or more image portions, and then modifies the image data to replace the one or more image portions with the one or more artificial image portions.

[0074] Visual format identification is performed by utilizing digital image processing techniques such as those implemented in the Python Image Library (Pillow) or computer vision techniques such as those provided by the OpenCV library. Known techniques exist for detecting text length, text color, and background color. Text font recognition can be achieved by performing a grid search or Bayesian optimization over possible configurations of font typefaces, font sizes, and font styles to find which configuration produces an image of structured data that is most similar to the original image portion.

[0075] The generation of one or more artificial image portions is performed using digital image processing techniques such as those implemented in the Python Image Library (Pillow). For example, the Python Image Library (Pillow) provides an ImageDraw module that can be used to create new images or to annotate and retouch existing images. In particular, the ImageDraw.rectangle function allows drawing a rectangular box at a specified location with a specified size and a background with a specified fill color, and the ImageDraw.text function allows drawing a portion of a specified text (i.e., the artificial data generated in the original functional format) at a specified location with a specified font and color, where the text font, text color, and background color are all given by the visual format identified via the methods described above.

[0076] In some examples, the artificial image data is generated to have the same visual format as the structured data in the image data. This allows an operator 45 performing software development on a software application 20A that relies on the visual format of the structured data to understand with a high degree of accuracy what the visual format is. Alternatively, the artificial image data can be generated to have a visual format that has one or more differences from the structured data of the image data, such that parts related to the artificial data are distinguished from parts related to the image data. For example, in the artificial image data of the artificial GUI 650 of FIG. 6C, the artificial image parts have a highlighted background to indicate that these parts are artificial. In this case, the artificial image data is still considered to be based on a visual format similar to the structured data.

[0077] Output of artificial image data In step 550 of FIG. 5, processor 20B or processor 50B (whichever received the image data) outputs the synthetic image data.

[0078] The artificial image data may be output to a file stored in memory 20C or memory 50C. This file can be accessed at a later date by operator 45 at developer computer 40 for software development purposes. The file may contain only the artificial image data. In such a case, the file may be in the same file format (e.g. pdf, jpeg) as the original image data. Alternatively, the file may be a comprehensive document containing the artificial image data and other relevant information to guide and support the software development. An example of such a file is a process design document (PDD) that captures the flow of a business process to be developed within a robotic process automation (RPA).

[0079] Alternatively or additionally, the artificial image data may be output to a display. For example, the artificial image data may be output to client computer 20 for review by operator 25. In another example, the artificial image data may be output to a display belonging to a different computer than processor 20B or processor 50B. In particular, the artificial image data may be output to a display of developer computer 40, thereby preventing operator 45 from viewing sensitive data in the image data during the software development process of software that uses the sensitive data.

[0080] In some instances, synthetic image data may be used to develop robotic process automation (RPA) applications that use sensitive data. RPA uses automated processes and workflows to extract structured data, typically sensitive data, from image data such as GUIs and documents. It is important to maintain the functional format of the sensitive data in synthetic data to be able to determine whether the automated process or workflow is functioning correctly. It is also important to maintain the visual format of the sensitive data because RPA often relies on the GUI of the software application to extract the sensitive data. That is, maintaining the visual format of the sensitive data can reveal potential problems with the extraction.

[0081] In some examples, the artificial image data may be used in a remote access application, such as the remote desktop protocol (RDP) or remote framebuffer (RFB) protocols by Microsoft. For example, the method 500 of FIG. 5 and the output artificial image data may be used in place of the GUI image modification techniques used in U.S. Patent Application No. US 17 / 144,640 (Method of Remote Access). This provides a computer-implemented method for preventing sensitive data received via a remote access protocol from being output to an operator (e.g., operator 45). In such examples, the method includes receiving a GUI of a software application 50A running on a remote server from a server 50 via a remote access application, modifying the GUI to obscure the sensitive data according to the methods of the present invention, and outputting the modified GUI to one or more output peripherals 40E of the developer computer 40 for receipt by the operator 45.

[0082] Summary When implemented in software, the invention may take the form of a computer program. The computer program may be embodied as a computer readable medium having computer executable code for use by or in association with a processor. A computer readable medium is any tangible device that can store, preserve, communicate, propagate, or transport a program for use by or in association with a processor. Furthermore, the computer readable medium may be an electronic, magnetic, optical, electromagnetic, infrared, semiconductor device, or propagation medium. Examples of computer readable media include semiconductor memory, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive, solid state drive, optical disk, memory card, etc. Current examples of optical disks include CD, DVD, Blu-ray, etc. Current examples of memory cards include USB flash drive, SD card, microSD card, MMC card, xD card, memory stick, etc.

[0083] When implemented in hardware, the present invention is not limited to the specific hardware described herein, and it is clear to those skilled in the art that the present invention can be implemented in hardware different from that described with respect to Figures 2 and 3 and still function as described above.

[0084] The depicted flow chart illustrates the architecture, functionality, and operation of possible implementation aspects of the method of the present invention. In some alternative implementations, the steps depicted in the figures may be performed out of the order depicted in the figures. For example, two steps shown in succession may, in fact, be performed substantially simultaneously, and blocks representing steps may be performed in the reverse order, depending on the functionality involved.

[0085] It will be apparent that the above description is given by way of example only and that various modifications may be made by those skilled in the art. Although various embodiments have been described above with a certain degree of particularity or with reference to one or more specific embodiments, those skilled in the art may make numerous modifications to the embodiments disclosed herein without departing from the scope of the present invention.< / person>

Claims

1. A computer-implemented method for preventing sensitive data received via a remote access application from being output to an operator, comprising: receiving from a remote server via a remote access application a graphical user interface of a software application executing on said remote server; Modifying the graphical user interface to remove sensitive data, obtaining, by a processor, unstructured image data; extracting, by the processor, structured data from the unstructured image data, the structured data being sensitive data and having a defined functional format and a defined visual format; generating, by the processor, artificial data different from the structured data, the artificial data having the same functional format as the structured data; generating, by the processor, artificial unstructured image data based on the unstructured image data in which the structured data has been replaced with the artificial data, the artificial data being based on the visual format of the structured data; outputting, by the processor, the artificial unstructured image data; modifying the graphical user interface to remove sensitive data by outputting the modified graphical user interface to one or more output peripherals of the computer for receipt by an operator; The method according to claim 1,

2. The method of claim 1 , wherein the artificial unstructured image data has the same visual format as the structured data.

3. 3. The method according to claim 1, wherein the step of extracting structured data from the unstructured image data comprises: performing optical character recognition on the unstructured image data to identify text within the unstructured image data; identifying structured data within the text; determining one or more bounding boxes within the unstructured image data that correspond to the structured data; extracting one or more image portions from the unstructured image data using the one or more bounding boxes; The method according to claim 1,

4. 4. The method of claim 3, wherein generating the artificial unstructured image data comprises: identifying the visual format of the structured data in the one or more image portions; generating one or more artificial image portions corresponding to the one or more image portions based on the visual format of the structured data in the one or more image portions; modifying the unstructured image data to replace the one or more image portions with the one or more artificial image portions; The method according to claim 1,

5. 2. The method of claim 1, wherein the defined functional format comprises: Entity types, and The method includes one or more of the entity type formats.

6. 2. The method of claim 1, wherein the defined visual format comprises: Text length, Text font, Text color, and The method includes one or more of the background colors.

7. 2. The method of claim 1, wherein the step of generating the artificial data comprises: identifying a functional format of the structured data; cataloging the structured data extracted from the unstructured image data; generating artificial data based on the functional format of the structured data; cataloging said synthetic data together with said corresponding structured data; The method according to claim 1,

8. 8. The method of claim 7, further comprising outputting the tabulated structured data and the tabulated artificial data as an editable table.

9. 10. The method of claim 8, further comprising sending a prompt to an operator to confirm the synthetic data prior to generating the synthetic unstructured image data.

10. 10. The method of claim 7, further comprising the steps of: obtaining second unstructured image data; extracting second structured data from the second unstructured image data; and generating second artificial data different from the second structured data, wherein if the second structured data is identical to the structured data, the second artificial data is identical to the artificial data.

11. The method of claim 1 , wherein the synthetic unstructured image data is output to a display during a development process of software that uses the sensitive data.

12. 12. The method of claim 11, wherein the display resides in a different computer than the processor.

13. 12. The method of claim 11, wherein the software is a robotic process automation (RPA) process.

14. A computer program stored on a computer storage device comprising instructions which, when executed by a processor, cause the processor to perform the method of claim 1.

15. 13. A computing system comprising a processor configured to perform the method of claim 1.

Citation Information

Patent Citations

  • Automatic consistent redaction of text

    GB2531713A

  • Document redaction with data isolation

    US20180285591A1

  • Sensitive data detection and replacement

    WO2020082187A1