CN113692724B - Sensitive data detection in communication data - Google Patents
Sensitive data detection in communication data Download PDFInfo
- Publication number
- CN113692724B CN113692724B CN202080028490.XA CN202080028490A CN113692724B CN 113692724 B CN113692724 B CN 113692724B CN 202080028490 A CN202080028490 A CN 202080028490A CN 113692724 B CN113692724 B CN 113692724B
- Authority
- CN
- China
- Prior art keywords
- data
- character
- characters
- vector
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/212—Monitoring or handling of messages using filtering or selective blocking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6263—Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The described techniques utilize a trained evaluation function to analyze an email message to determine whether a password is included in the text of the email message. The text of the email message may be vectorized using a character lookup table that includes vector values for each ASCII character. The trained evaluation function analyzes the vectorized text to determine whether the password is included in the text of the mail message. An email message that is found to include a password may be placed in the quarantine store to at least temporarily prevent the email message from being propagated to the recipient.
Description
Technical Field
Example embodiments of the present disclosure relate generally to the field of computers.
Background
Communication and information sharing over the internet and other networks has become indispensable in current business and social interactions. Since the advent of the internet and the use of other networks, the popularity of electronic messaging (such as email) has evolved to the point where it is now widely used for personal and business communications. Other types of electronic messages, similar to e-mail, are also used in current business and social interactions. Such electronic message types include text messages used to communicate with users of mobile devices, instant messaging used in chat communication sessions, and the like. Electronic messages may be used to share sensitive data. For example, a user may use email to share credentials (such as a password) to enable access to a protected email account, operating system, file directory, and the like.
Electronic messaging technology is easily disrupted by bad actors attempting to access information contained in password-protected accounts and other services. For example, a hacker may break the network by embedding network threats (such as viruses, worms, or other malicious code) that perform unauthorized snooping on electronic messages transmitted over the network. The cyber threat may intercept the electronic message and provide a copy of the electronic message to an unauthorized recipient, such as a hacker or other criminal. The sensitive data included in the intercepted message, such as passwords and other credentials, may be used to unauthorized access valuable business records, such as business secrets and financial information, email accounts, electronic file stores, and other protected assets.
There remains a need for techniques to reduce the sensitive content shared by users using electronic messaging technology.
Disclosure of Invention
The technology described herein addresses the need for techniques that provide improved security features over existing systems and techniques by analyzing electronic messaging techniques for sensitive data. For example, at least some of the described techniques analyze sensitive data in email messages, such as passwords. The described techniques utilize a trained evaluation function to analyze an email message to determine whether a password is included in the text of the email message. Email messages found to include passwords may be placed in quarantine storage to prevent the email message from being propagated to recipients. Further, a User Interface (UI) may be generated to notify an author of an email message that the email message includes a password. The UI may inform the author that removal of the password will allow the propagation of the email message.
Analysis of email messages for sensitive data may include: a plurality of data tokens including a plurality of characters within text of an email message is identified. Each of the plurality of data tokens may be converted into a list of vectors. The vector list may include a plurality of vectors, where each vector represents one character in the associated data token.
Multiple vectors may be generated using a character lookup table. The character lookup table may include characters, each having a vector value representing a feature or characteristic associated with the character.
The trained evaluation function may be used to evaluate a list of vectors generated from a plurality of data tokens. In some implementations, the trained evaluation function is a recursive machine learning model trained using a dataset comprising ciphers with known space separation and a dataset comprising non-ciphered characters with space separation. The trained evaluation function determines when one or more of the plurality of data tokens include sensitive data, such as a password. The vector list is utilized by the trained evaluation function to identify when one or more of the plurality of data tokens include sensitive data.
When sensitive data is discovered in electronic messaging, the techniques disclosed herein provide an enhanced level of security by identifying and suppressing the propagation of sensitive data. The techniques disclosed herein may provide a number of technical advantages over existing systems. For example, computing devices employing the techniques disclosed herein have improved security compared to existing security techniques used by computing devices. Other technical advantages may also be realized from the implementations of the techniques disclosed herein.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. For example, the term "technology" may refer to the system(s), method(s), computer-readable instructions, module(s), algorithm(s), hardware logic, and/or operational context(s) as allowed in the above-described contexts and throughout the document and the context described in the entire document.
Drawings
The detailed description is described with reference to the accompanying drawings. In the drawings, the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears. The same reference numbers in different drawings identify similar or identical items.
FIG. 1 illustrates an exemplary User Interface (UI) that may be used to generate an electronic message for propagation over a network. In particular, the UI is linked to an email application.
Fig. 2 illustrates another exemplary UI used to generate electronic messages for propagation over a network. In particular, the UI is linked to a text messaging application running on the mobile device.
FIG. 3 is a block diagram illustrating an example computing environment that may include a computing device associated with a technique to detect sensitive data associated with electronic messages.
FIG. 4 illustrates a block diagram showing the use of a training data set, a character lookup table, and a machine learning model to generate a trained evaluation function that is used to identify sensitive data in one or more data tokens.
FIG. 5 illustrates an exemplary character lookup table used in association with a technique of detecting sensitive data associated with electronic messages.
Fig. 6 illustrates a flow chart associated with operations associated with detecting sensitive data in an electronic message.
Fig. 7 illustrates a flow chart associated with operations associated with detecting sensitive data in an electronic message.
FIG. 8 is a computer architecture diagram showing an illustrative computer hardware and software architecture for a computing device that may implement aspects of the technology presented herein.
FIG. 9 is a network diagram illustrating a distributed computing environment in which aspects of the disclosed technology may be implemented.
Detailed Description
Fig. 1 illustrates an exemplary User Interface (UI) 100 that is used to generate an electronic message 102 for propagation over a network (not shown in fig. 1). FIG. 3 illustrates an integrated environment that may be associated with the techniques disclosed herein.
The UI 100 is linked to an email application 104. However, in other implementations, the UI 100 may be linked to other electronic messaging technologies, such as chat applications, instant messaging applications, text messaging applications (fig. 2), and so forth.
The UI 100 includes a text input section 106. Text input section 106 provides an interface that allows a user of UI 100 to input message text 108 for propagation over a network to a recipient. In the illustrated example, the text input portion 106 is part of the email application 104.
The disclosed technology analyzes the input message text 108 for sensitive data. In some implementations, the input message text 108 is analyzed to determine when the password 114 is included in the input message text 108. The disclosed techniques implement a trained evaluation function to analyze the input message text 108.
The trained evaluation function for analyzing the input message text 108 may be a recursive machine learning model trained using vectorized characters generated from a character lookup table. The recursive machine learning model may be a Recurrent Neural Network (RNN), long Short Term Memory (LSTM), a Convolutional Neural Network (CNN) combined with RNN or LSTM, or a combined RNN/LSTM model.
As will be described in greater detail below, analyzing the input message text 108 may include identifying data tokens (e.g., words in the input text 108) to be analyzed by the trained evaluation function. A text complexity filter may be used to identify data tokens to be analyzed by the trained evaluation function.
For example, a text complexity filter may be used to identify data tokens that exceed a text complexity threshold. In particular, the text complexity filter may be programmed to ignore (1) data tokens having a character length less than a predetermined number of characters (e.g., words less than 8 characters), (2) a data token without at least one capital letter and at least one special character (e.g., &,%, $, @), and/or a data token without at least one special character (e.g., &,%, $, @). Thus, a text complexity filter may be used to exclude articles, verbs, prepositions, conjunctions, pronouns, adverbs, and other simple words from the trained evaluation function process.
In accordance with the foregoing, the text complexity filter may identify the data tokens 110, 112, and 114 to be analyzed by the trained evaluation function. That is, the text complexity filter may exclude words such as "the", "and", "will", "be", etc., and allow the data tokens 110, 112, and 114 to pass to a trained evaluation function for analysis to determine whether the tokens 110, 112, and 114 include sensitive data.
The trained evaluation function may receive the data tokens 110, 112, and 114 for analysis to determine whether the tokens 110, 112, and 114 include sensitive data. Specifically, the trained evaluation function analyzes the vector list of data tokens 110, 112, and 114 to determine whether the tokens 110, 112, and 114 include a password. A list of vectors for each data token 110, 112, and 114 may be generated using a character lookup table.
Analysis of the trained evaluation function reveals that the data token 114 is a password. The determination that the data token 114 is a password causes the associated system to quarantine the electronic message 102. Alternatively or additionally, the associated system may generate a UI informing the user that: the electronic message 102 may not be sent or transmitted until the data token 114 is removed from the electronic message 102.
Fig. 2 illustrates another exemplary UI 200 that may be used to generate an electronic message 210 for propagation over a network. In particular, the UI 200 is linked to a text messaging application 204 running on a mobile device 206.
The UI 200 includes a text input section 208. Text input portion 208 provides a UI that allows a user of UI 200 to input electronic message 210 for propagation over a network to a recipient.
The disclosed technology analyzes electronic messages 210 for sensitive data. In some implementations, the electronic message 210 is analyzed to determine whether a password is included in the electronic message 210. The disclosed techniques implement a trained evaluation function to analyze electronic messages 210. Further, the disclosed techniques may analyze messages prior to electronic message 210 for sensitive data and/or context that may be associated with sensitive data.
The trained evaluation function 210 for analyzing electronic messages may be a recursive machine learning model trained using vectorized characters generated from a character lookup table. The recursive machine learning model may be an RNN, LSTM, CNN combined with an RNN or LSTM, or a combined RNN/LSTM model.
Analyzing electronic message 210 may include identifying at least one data token (e.g., a word in electronic message 210) to be analyzed by the trained evaluation function. A text complexity filter may be used to identify data tokens to be analyzed by the trained evaluation function.
For example, a text complexity filter may be used to identify one or more data tokens that exceed a text complexity threshold. In particular, the text complexity filter may be programmed to ignore (1) data tokens having a character length less than a predetermined number of characters (e.g., words less than 8 characters), (2) a data token without at least one capital letter and at least one special character (e.g., &,%, $, @), and/or a data token without at least one special character (e.g., &,%, $, @). Thus, a text complexity filter may be used to exclude articles, verbs, prepositions, conjunctions, pronouns, adverbs, and other simple words from the trained evaluation function process.
In accordance with the foregoing, the text complexity filter may identify the data tokens 212 to be analyzed by the trained evaluation function. That is, the text complexity filter may exclude words such as "the", "and", "will", "be", etc., and allow the data token 212 to pass to a trained evaluation function for analysis to determine whether the token 212 includes sensitive data.
The trained evaluation function may receive the data token 212 for analysis to determine whether the data token 212 includes sensitive data. Specifically, the trained evaluation function analyzes the vector list of the data tokens 212 to determine whether the data tokens 212 include a password. A list of vectors for the data token 212 may be generated using a character lookup table.
Analysis of the trained evaluation function reveals that the data token 212 is a password. The determination that the data token 212 is a password causes the associated system to quarantine the electronic message 210. Alternatively or additionally, the associated system may generate a UI214 informing the user: the electronic message 210 may not be sent or transmitted over the network until the data token 212 is removed from the electronic message 210.
Fig. 3 illustrates an example system 300 suitable for implementing the techniques described herein. The system includes a plurality of devices 304A-304C and at least one server platform 302. The server platform 302 and the devices 304A-304C may exchange communication data 351, such as electronic messages 102, with one another via the network 306. Communication data 351 may include some or all of message text 108 associated with electronic message 102. The server platform 302 and the devices 304A-304C may exchange other types of data with each other via the network 306.
Other types of data may be considered communication data 351. For example, communication data 351 may be included in one or more documents shared between multiple users. For example, communication data 351 may be in a document, such as a word processing document, that is viewable, editable, etc. by a plurality of users having access to the document. For example, such documents may be associated with SharePoint or the like. Other shared documents and communication data 351 that may be analyzed by the described implementations include presentation documents, faxes, spreadsheets, portable document format (e.g., PDF) data, web pages, and the like.
The described implementations may analyze communication data 351 in a document in the same manner as described herein with reference to fig. 1-9. For example, documents found to include sensitive data may be placed in an isolation region, such as isolation region 310 illustrated in FIG. 3. Additionally or alternatively, the described implementations may present a UI that notifies the author or editor of the document: sensitive data is identified in the document. Read and edit access rights to a document may be limited or paused until such time as sensitive data is removed from the document or an administrator releases the access pause. While the following description often refers to a single computing device 304, it should be understood that each of the computing devices 304A-304C may include each of the functional elements described with respect to the single computing device 304 referenced below.
The network 306 may be a variety of different networks including the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), a personal area network, cellular or other telephone network, intranet, other public and/or proprietary networks, combinations thereof, and so forth. It should be noted that network 306 may be configured to include multiple networks.
The device 304 may be a variety of different types of devices. For example, in system 300, each of devices 304 may be a laptop or netbook computer device, a cellular or other wireless telephone (e.g., smart phone) device, a tablet or notebook computer, a printer, a desktop computer, a television, or any other suitable computing device.
Server platform 302 (which may be referred to simply as "platform 302") provides one or more services accessible by devices 304 via network 306. Server platform 302 is implemented using one or more of a variety of different types of devices, including a server, a networked server pool, a server farm, or any other suitable distributed or co-located server computer.
The server platform 302 may include a processor 303 and a storage 306. Storage 306 may include one or more modules for storing computer-executable instructions. The computer-executable instructions may be associated with an application such as an OS and/or one or more end-user programs. The processor 303 may execute computer-executable instructions to implement the techniques disclosed herein.
The modules associated with the storage 306 may include a sensitive data evaluation module 308. In addition, the storage device 306 may include a communication data isolation zone 310. The server platform 302 may use the data isolation region 310 to store communication data 351 that is determined to include sensitive data, such as one or more passwords.
The sensitive data evaluation module 308 can analyze the communication data 351 to determine whether the communication data 351 includes sensitive data, such as a password included in the message text 108 of the electronic message 102. For example, the sensitive data evaluation module 308 analyzes the communication data 351 received from the one or more computing devices 304. The communication data 351 received from the one or more computing devices 304 may be in the form of text messages, emails, or any other communication data 351 including text.
Sensitive data evaluation module 308 may include a character lookup table 312, a trained evaluation function 314, and a training data set 316. The sensitive data evaluation module 308 utilizes the character lookup table 312 and the trained evaluation function 314 in analyzing the communication data 351 for sensitive data. The training data set 316 may include: a first data set comprising a plurality of known passwords and a second data set comprising a plurality of known non-passwords. The training data set 316 is processed by the RNN or the like to establish a trained evaluation function 314. The training data set 316 is illustrated in more detail in fig. 4.
The character lookup table 312 may include a plurality of ASCII characters, such as ASCII characters 32-255. Each ASCII character is characterized within the character lookup table 312 as having an associated vector value linked to a predefined character attribute. Those predefined character attributes may include attributes that indicate the class of ASCII characters (e.g., letters, numbers, uppercase, vowels, punctuation, and special locations on a keyboard). An example version of the character lookup table 312 is illustrated in fig. 5. When the text analyzed for sensitive data is in a language other than english, the character lookup table 312 may include other characters.
The character lookup table 312 may be used by the server platform 302 to convert one or more characters into a vector representation. For example, each character in a character set (e.g., a data token) may be converted to a vector representation by reference to a character lookup table 312. Thus, using the character lookup table 312, the server platform 302 may convert one or more data tokens (such as, for example, the data token 114) into a list of vectors, wherein each vector in the list represents a character in the one or more data tokens.
The computing device 304 may include a processor 318 and a storage 320. Further, the storage 320 may include a plurality of modules. The modules may be implemented as computer-executable instructions. The computer-executable instructions may be associated with applications such as an OS and/or end-user programs. The processor 318 can execute computer-executable instructions associated with the storage 320 to enable functionality associated with the computer-executable instructions. Further, the device 304 may include a display screen for displaying one or more UIs.
Storage 320 may include one or more applications 322. One or more of the applications 322 may be executed by the processor 318 to display and enable the functionality of the one or more applications 322. As illustrated in fig. 3, one of the applications 322 is an email application 104 that a user may use to generate an electronic message 102. The electronic message 102 may include message text 108 and sensitive data, such as a data token 114 including a password.
A user of email application 104 may draft electronic message 102 to communicate with one or more users of computing device 304. The server platform 302 analyzes the message text 108 for sensitive data (such as one or more passwords) prior to delivering the electronic message 102 to one or more users in the computing device 304. Sensitive data evaluation module 308 performs an analysis of message text 108 for sensitive data.
The communication data 351 received by the server platform 302 may include the message text 108. Sensitive data evaluation module 308 receives message text 108 and analyzes message text 108 to identify data tokens (e.g., words in message text 108) to be analyzed by trained evaluation function 314. For example, the text complexity filter 326 of the sensitive data evaluation module 308 may be used to identify data tokens that exceed a text complexity threshold. In particular, the text complexity filter 326 may be programmed to ignore (1) data tokens having a character length less than a predetermined number of characters (e.g., words less than 8 characters), (2) a data token without at least one capital letter and at least one special character (e.g., &,%, $, @), and/or a data token without at least one special character (e.g., &,%, $, @). Thus, text complexity filter 326 may be used to exclude articles, verbs, prepositions, conjunctions, pronouns, adverbs, and other simple words from processing by trained evaluation function 314.
In accordance with the foregoing, text complexity filter 326 may identify data tokens 110, 112, and 114 to be analyzed by trained evaluation function 314. That is, the text complexity filter 326 may exclude words such as "the", "and", "will", "be", etc., and allow the data tokens 110, 112, and 114 to pass to the trained evaluation function 314 for analysis to determine whether the tokens 110, 112, and 114 include sensitive data.
Trained evaluation function 314 may receive data tokens 110, 112, and 114 for analysis to determine whether tokens 110, 112, and 114 include sensitive data. Specifically, trained evaluation function 314 analyzes the vector list of data tokens 110, 112, and 114 to determine whether tokens 110, 112, and 114 include a password. The character lookup table 312 may be used to generate a vector list for each data token 110, 112, and 114.
Analysis of the trained evaluation function 314 reveals that the data token 114 is a password. The determination that the data token 114 is a password causes the server platform 302 to quarantine the electronic message 102 in the communication data quarantine area 310. More specifically, the server platform 302 isolates the electronic message 102 from being transmitted to recipients associated with at least one of the computing devices 304. Alternatively or additionally, the server platform 302 may generate and transmit text shown in the UI 324 that will notify the user of the email application 104: sensitive data 108 is found in the message text. The text shown in UI 324 may be transmitted as data packets (e.g., communication data 351) to client computing device 304 for generating electronic message 102. The UI 324 may be generated by the email application 104.
After determining that the data token 114 is a password and before (1) quarantining the message text 108 in the communication data quarantine area 310 and/or (2) generating text for inclusion in the UI 324, the server platform 302 can perform additional analysis procedures associated with the message text 108.
The additional analysis process involves: the context (e.g., meaning, subject, topic, perspective, background) of a predetermined number of words before and/or after the data token 114 is determined. Additional analysis may be performed by the sensitive data evaluation module 308. Additional analysis may increase the confidence that the data token 114 identified as a password by the sensitive data evaluation module 308 is correctly identified as a password.
In some implementations, the additional analysis performed by the sensitive data evaluation module 308 involves: one or more sets of 300 characters or less before and/or after the data token 114 are identified. The number of characters in the one or more character sets may be greater than 300 characters depending on the desired level of accuracy associated with determining the context of the text surrounding the data token 114. Further, some or all of the communication data 351 may be analyzed using one or more character sets. The sensitive data evaluation module 308 may analyze one or more character sets for keywords or phrases (e.g., here my password, gaining access, etc.) that are often used in conjunction with the sharing of sensitive data to establish context in the message text 108. The keywords or phrases may be part of a lookup table stored by the server platform 302.
In some implementations, a set of 300 or fewer characters is vectorized and processed by a trained evaluation function similar to trained evaluation function 314 to determine a context associated with the set of 300 or fewer characters.
In some implementations, the trained evaluation function 314 is used to evaluate data tokens containing sensitive data, and additionally to evaluate the context of text located near data tokens determined to include sensitive data (e.g., 300 characters before and/or after data tokens found to include sensitive data). Thus, trained evaluation function 314 may include multiple evaluation paths. One of the evaluation paths of the trained evaluation function 314 evaluates the vectorized data token for sensitive data. Another evaluation path evaluates the vectorized text located in the vicinity of the data tokens determined to include sensitive data to determine when the context of the vectorized text in the vicinity of the data tokens supports a determination that one or more data tokens include sensitive data.
In other implementations, the described implementations use two separate trained evaluation functions. For example, a trained evaluation function may evaluate communication data 351 against data tokens that include sensitive data, and another trained evaluation function may evaluate the context of communication data 351 to further enhance determining that one or more data tokens of communication data 351 include sensitive data.
When the sensitive data evaluation module 308 finds that the context of the message text 108 supports a determination that the data token 114 is a password, the server platform 302 quarantines the message text 108 in the communication data quarantine area 310 and/or generates text for inclusion in the UI 324.
The trained evaluation function (e.g., trained evaluation function 314) for determining the context of communication data 351 may have been trained using a list of vectors generated by an embedding algorithm, such as Word2 vec. Word2vec is a known neural network that processes text. The input of Word2vec is a text corpus and its output is a set of vectors, specifically feature vectors of words in the text corpus. At least some implementations described herein use a text corpus that includes a communication dataset, such as an email, for which a password is known to occur. In addition, the text corpus includes communication data sets, such as e-mail, for which no passwords are known to occur. Feature vectors of words in the text corpus are either input into a machine learning model (such as RNN, LSTM, CNN combined with RNN or LSTM, or a combined model of RNN/LSTM) to generate a trained evaluation function that is used to determine a context 351 associated with the communication data.
In some implementations, the computing device 304 provides functionality described with respect to the server platform 302. For example, computing device 304 may include a sensitivity evaluation module 308 and its associated elements and communication data isolation zone 310.
Fig. 4 illustrates a block diagram showing the use of training data sets 402 and 404, character lookup table 312, and machine learning model 414 to generate trained evaluation function 314 that is used to identify sensitive data in one or more data tokens.
The process of generating trained evaluation function 314 involves: a password training data set 402 and a non-password training data set 404 are established. The password training data set 402 includes a plurality of known passwords 406. Any number of known passwords 406 may be included in the password training data set 402. A large corpus (e.g., thousands) of known passwords 406 can result in the generation of robust trained evaluation functions 314. The non-password training data set 404 includes a plurality of known non-passwords 408. The known non-passwords 408 have characteristics (e.g., including special characters, capital letters, etc.) that make them look like actual passwords. The use of a large corpus (e.g., thousands) of known non-passwords 408 may result in the generation of robust trained evaluation functions 314.
The data associated with each of the data sets 402 and 404 is passed to the character lookup table 312. The character lookup table 312 is illustrated in more detail in fig. 5. Vector lists 410 and 412 are generated from data associated with each of the data sets 402 and 404 using the character lookup table 312. Vector list 410 each corresponds to a password of password training data set 402. For example, the cipher 'fall line & × Out' will have a corresponding vector list comprising 13 vectors, where each vector in the vector list corresponds to one letter in the cipher 'fall line & × Out'. Similarly, the vector lists 412 each correspond to a non-password of the non-password training data set 404. For example, the non-password 'D:/Code/General' will have a corresponding vector list comprising 15 vectors, where each vector in the vector list 412 corresponds to one letter in the non-password 'D:/Code/General'.
With the second '2' in the password, a portion of the vector list for 'jely 22fi$h' is illustrated in fig. 4. A list of vectors for "jely 22fi$h" may be generated using a character lookup table 312 that includes ASCII characters 32-255, where each ASCII character 32-255 has an associated vector value that indicates an ASCII character characteristic or feature. Letters and numbers 416 are provided for illustrative purposes only. That is, the vectors in the vector lists 410 and 412 are received by the machine learning model 414; letters and numbers 416 are not fed to the model 414.
Each vector in the vector list may include a greater number of vector values or a lesser number of vector values than illustrated in fig. 4. That is, the character lookup table 312 may be arranged to reference any number of characteristics or features. In some implementations, each of the ASCII characters 32-255 in the character lookup table 312 includes vector values for the following reference characteristics or features (see FIG. 5; the following column 0 follows the 'Char' column shown in FIG. 5): column 0 is a letter; column 1 is uppercase; column 2 is vowels; column 3 is consonant; column 4 is a number; column 5 is punctuation; column 6 is the operator; column 7 is a special character (e.g., #, -, ]; column 8 is the keyboard shift required; column 9 is leet (@ = a, $= S or S, etc.); column 10 is alphabetical; column 11 is the numerical order; column 12 is the keyboard row; column 13 is the keyboard column; column 14 is a packet or bracket character (1=start packet, 2=end packet, 1.5=symmetry of start or end packet); column 15 is the ASCII sequence; columns 16-20 are ID vectors (together with columns 2-7, 9, 11, and 14 create unique IDs for each character). However, columns 16-20 will themselves match similar characters, e.g., A, a, 4 and @ all share the same ID11111. The unique ID for each character is used in the training process of the machine learning module 414 to distinguish the vector that each character inputs into the module 414.
The vector lists 410 and 412 are passed to a machine learning model 414. As previously discussed, the machine learning model 414 may be an RNN, LSTM, CNN combined with an RNN or LSTM, or a combined model of RNN/LSTM. The vector lists 410 and 412 are passed from the machine learning model 414 as part of the training process to generate a trained evaluation function 414. The vector lists 410 and 412 may be passed to the machine learning model 414 using microsoft CognitiveToolkit (CNTK). Alternative machine learning kits may be used to pass the vector lists 410 and 412 to the machine learning model 414. Training of the machine learning model 414 results in the generation of the trained evaluation function 314. As discussed herein, the trained evaluation function 314 is used to analyze data tokens in a transformed vector list format to learn about the presence of sensitive data such as passwords.
Fig. 5 illustrates a portion of a character lookup table 312 that is used to generate a vector list from one or more data tokens. While ASCII characters 32-55 are illustrated in FIG. 5, it should be understood that the character lookup table 312 includes ASCII characters 32-255, wherein each ASCII character 32-255 has an associated vector value indicating the characteristics of the ASCII character.
Each character 502 in the character lookup table 312 includes a corresponding vector value (e.g., -1, decimal value, etc.) that identifies whether the character 502 has a corresponding characteristic 504. The characteristics 504 shown in fig. 5 include "character is uppercase", "character is vowel", "character is constant", "character is digit", "character is punctuation", "character is operator", "character is special character", "character is let" (e.g., $=s, @ =a, etc.), and so forth, to name a few. A vector value of-1 indicates that the given character does not have a particular characteristic, a vector value of 1 indicates that the given character does have a particular characteristic, and a vector value of decimal form (e.g.,. 1535) indicates that the given character may or may not have a particular characteristic.
Consider an exemplary data token: 1'%. The corresponding vector list generated using the character lookup table 312 will include vectors: 1, -1, -1, -1, -0.778>, < -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> and < -1, -1, -1, -1, -1, -1, -1>. The vector may be larger or smaller based on the number of characteristics associated with each ASCII character in the character lookup table 312. Any data token, such as the data tokens associated with data training sets 402 and 404 and the data tokens associated with communication data 315, may be converted to a vectorized representation including one or more vectors in a vector list using character lookup table 312.
Fig. 6 is a diagram of an example flow chart 600 illustrating operations associated with identification of sensitive content associated with communication data. In some implementations, the operations of fig. 6 may be performed by components of one or more computing devices, such as one or more of server platform 302 and/or device 304. Accordingly, the instructions associated with the example flowchart 600 may be executed by one or more processors associated with a server-side component (e.g., the server platform 302) and/or a client-side component (one or more of the devices 304).
It will be appreciated by one of ordinary skill in the art that the operations of the methods disclosed herein are not necessarily presented in any particular order, and that it is possible and contemplated to perform some or all of the operations in alternative order(s). For ease of description and illustration, these operations have been presented in a presentation order. Operations may be added, omitted, performed together, and/or performed simultaneously without departing from the scope of the appended claims.
It should also be appreciated that the illustrated method may end at any time and need not be performed in its entirety. Some or all operations of the methods, and/or substantially equivalent operations, may be performed by execution of computer-readable instructions included on a computer storage medium, as defined herein. The term "computer readable instructions" and variants thereof as used in the description and claims is used broadly herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer readable instructions can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like.
Accordingly, it should be appreciated that the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system (e.g., device(s) 304 and/or server platform 302) and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. This implementation is a matter of choice dependent on the performance and other requirements of the computing system. Thus, the logical operations may be implemented in software, firmware, special purpose digital logic, and any combination thereof. Further, the logical operations described herein can be implemented by a single computing device, such as a client device or a server device. Alternatively, the logical operations described herein can be implemented by a combination of a server device and a client device.
At operation 604, the communication data is evaluated to identify at least one data token, wherein the at least one data token comprises a plurality of characters. For example, the server platform 302 can filter the message text 108 to identify at least one data token that includes a plurality of characters. Text complexity filter 326 may be used to filter message text 108. Text complexity filter 326 eliminates data tokens (e.g., words) that are not complex enough to be considered sensitive data such as passwords. At operation 606, each character of the plurality of characters included in the at least one data token is converted into a vector comprising vector values obtained from the character lookup table. For example, the sensitive data evaluation module 308 may use the character lookup table 312 to convert each of the plurality of characters included in the at least one data token into a vector including vector values obtained from the character lookup table 312. The character lookup table 312 includes ASCII characters, where each ASCII character includes one or more vector values associated with characteristics of the ASCII character.
At operation 608, a list of vectors is generated, the list of vectors including each vector representing each of a plurality of characters included in the at least one data token. For example, a vector list may be generated by the sensitive data evaluation module 308.
At operation 610, the vector list is evaluated using a trained evaluation function to determine whether at least one data token includes sensitive data, such as a password. When the at least one data token includes sensitive data, the communication data is associated into the isolated storage device. However, when at least one of the data tokens is free of sensitive data, the communication data is propagated to at least one recipient identified in the communication data. For example, the vector list may be evaluated by trained evaluation function 314.
In some implementations, one or more of the operations 602-610 are performed as a computer background process that is isolated or hidden from the user. In particular, operations 602-610 may be performed autonomously by an operating system, such as a MICROSOFT WINDOWS operating system, a software application, or the like.
Fig. 7 is a diagram of an example flowchart 700 illustrating operations associated with identification of sensitive content associated with communication data. In some implementations, the operations of fig. 7 may be performed by components of one or more computing devices, such as one or more of server platform 302 and/or device 304. Accordingly, the instructions associated with the example flowchart 700 may be executed by one or more processors associated with a server-side component (e.g., the server platform 302) and/or a client-side component (one or more of the devices 304).
At operation 704, each of the plurality of character sets is converted into a vector list to generate a plurality of vector lists. Each of the plurality of vector lists includes a plurality of vectors, each vector including a vector value. The vector values may be obtained from a character lookup table comprising characters, each character comprising a vector value representing at least one feature or characteristic associated with a unique character. In some implementations, the character lookup table 312 is used to generate a plurality of vector lists. The sensitive data evaluation module 308 generates a plurality of vector lists using the character lookup table 312.
At operation 706, each of the plurality of vector lists is evaluated using the trained evaluation function to determine that at least one of the character sets includes cryptographic data. In some implementations, trained evaluation function 314 determines that at least one character set includes cryptographic data.
At operation 708, the computer is caused to generate and display a user interface including an indication that the electronic message includes cryptographic data. For example, the server platform 302 may cause the client computing device 304 to generate the UI 324 by transmitting a notification to the client computing device 304 that the electronic message includes cryptographic data.
In some implementations, one or more of the operations 702-708 are performed as a computer background process that is isolated or hidden from the user. In particular, operations 702-708 may be performed autonomously by an operating system, such as a MICROSOFT WINDOWS operating system, a software application, or the like.
FIG. 8 is a computer architecture diagram showing an illustrative computer hardware and software architecture for a computing device that may implement the various techniques presented herein. In particular, the architecture illustrated in FIG. 8 may be utilized to implement a server computer, mobile phone, electronic reader, smart phone, desktop computer, AR/VR device, tablet computer, laptop computer, or other type of computing device. In some implementations, the device 304 and the server platform 302 implement some or all of the elements and functionality associated with a computing device.
The computer 800 illustrated in fig. 8 includes a central processing unit 802 ("CPU"), a system memory 804, including a random access memory 806 ("RAM") and a read only memory ("ROM") 808, and a system bus 810 that couples the memory 804 to the CPU 802. A basic input/output system ("BIOS", or "firmware") containing the basic routines that help to transfer information between elements within computer 800, such as during start-up, may be stored in ROM 808. Computer 800 also includes a mass storage device 812 for storing an operating system 822, application programs, and other types of programs. The mass storage device 812 may also be configured to store other types of programs and data.
The mass storage device 812 is connected to the CPU802 through a mass storage controller (not shown in fig. 8) connected to the bus 810. The mass storage device 812 and its associated computer-readable media provide non-volatile storage for the computer 800. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk, CD-ROM drive, DVD-ROM drive, or USB storage key, it should be appreciated by those skilled in the art that computer-readable media can be any available computer storage media or communication media that can be accessed by the computer 800.
Communication media includes computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics changed or set in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
By way of example, and not limitation, computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. For example, computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks ("DVD"), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 800. In the claims, the phrase "computer storage medium" and its variants do not include waves or signals per se or communication media.
According to various configurations, computer 800 may operate in a networked environment using logical connections to remote computers through a network such as network 820. In some implementations, network 306 provides at least some or all of the same functionality as network 820. The computer 800 may connect to the network 820 through a network interface unit 816 connected to the bus 810. It should be appreciated that the network interface unit 816 may also be utilized to connect to other types of networks and remote computer systems. The computer 800 may also include an input/output controller 818 for receiving and processing input from a number of other devices, including a keyboard, mouse, touch input, electronic stylus (not shown in FIG. 8), or physical sensors such as a video camera. Similarly, an input/output controller 818 may provide output to a display screen or other type of output device (also not shown in FIG. 8).
It should be appreciated that the software components described herein, when loaded into the CPU802 and executed, can transform the CPU802 and the overall computer 800 from a general-purpose computing device into a special-purpose computing device customized to facilitate the functionality presented herein. The CPU802 may be comprised of any number of transistors or other discrete circuit elements that may individually or collectively assume any number of states. More specifically, the CPU802 may operate as a finite state machine in response to executable instructions contained within the software modules disclosed herein. These computer-executable instructions may transform the CPU802 by specifying how the CPU802 transitions between states, thereby transforming the transistors or other discrete hardware elements that make up the CPU 802.
Encoding the software modules presented herein may also transform the physical structure of the computer-readable media presented herein. The specific transformation of physical structure in different implementations of the present description depends on various factors. Examples of such factors include, but are not limited to, the technology used to implement the computer-readable medium, whether the computer-readable medium features a primary or secondary storage device, and the like. For example, if the computer-readable medium is implemented as a semiconductor-based memory, the software disclosed herein may be encoded on the computer-readable medium by transforming the physical state of the semiconductor memory. For example, the software may transform the states of transistors, capacitors, or other discrete circuit elements that make up the semiconductor memory. The software may also transform the physical state of such components in order to store data thereon.
As another example, the computer-readable media disclosed herein may be implemented using magnetic or optical technology. In such implementations, the software presented herein may transform the physical state of magnetic or optical media when the software is encoded therein. These transformations may include altering the magnetic characteristics of particular locations within given magnetic media. These transformations may also include altering the physical features or characteristics of particular locations within given optical media, to alter the optical characteristics of those locations. Other variations of the physical medium are possible without departing from the scope and spirit of the present description, and the above examples are provided for ease of discussion only.
In view of the above, it should be appreciated that many types of physical transformations take place in the computer 800 in order to store and execute the software components presented herein. It should also be appreciated that the architecture shown in FIG. 8, or similar architectures, for computer 800 may be utilized to implement other types of computing devices, including handheld computers, video game devices, embedded computer systems, mobile devices such as smartphones, tablet computers, and AR/VR devices, as well as other types of computing devices known to those skilled in the art. It is also contemplated that computer 800 may not include all of the components shown in FIG. 8, may include other components not explicitly shown in FIG. 8, or may utilize an architecture entirely different from that shown in FIG. 8.
FIG. 9 is a network diagram illustrating a distributed network computing environment 900 in which aspects of the disclosed technology may be implemented, in accordance with various embodiments presented herein. Server platform provider 302 may implement a distributed network computing environment 900 to provide distributed storage via one or more distributed physical or virtual storage devices associated with one or more computing devices.
As shown in fig. 9, one or more server computers 900A may be interconnected with a number of devices, such as but not limited to a tablet computer 900B, a gaming machine 900C, a smartwatch 900D, a telephone 900E such as a smart phone, a personal computer 900F, and an AR/VR device 900G, via a communications network 820 (which may be a fixed wired or wireless LAN, WAN, intranet, extranet, peer-to-peer network, virtual private network, internet, bluetooth communications network, proprietary low-voltage communications network, or other communications network).
In a network environment in which communication network 820 is the Internet, for example, server computer 900A may be a dedicated server computer operable to process data and transfer data to or from devices 900B-900G via any of a variety of known protocols, such as the HyperText transfer protocol ("HTTP"), file transfer protocol ("FTP"), or simple object Access protocol ("SOAP"). Further, the networked computing environment 900 may utilize various data security protocols, such as secure sockets layer ("SSL") or fairly good privacy ("PGP"). Each of the devices 900B-900G may be equipped with an operating system, such as a web browser (not shown in fig. 9) or other graphical user interface (not shown in fig. 9) or mobile desktop environment (not shown in fig. 9), operable to support one or more computing applications or terminal sessions to gain access to the server computer 900A.
The server computer 900A may be communicatively coupled to other computing environments (not shown in fig. 9) and receive data regarding the interaction/resource network of participating users. In an illustrative operation, a user (not shown in FIG. 9) may interact with computing applications running on devices 900B-900G to obtain desired data and/or execute other computing applications.
Data and/or computing applications may be stored on server 900A or servers 900A and transmitted to cooperating users through devices 900B-900G over exemplary communication network 820. Participating users (not shown in fig. 9)) may request access to particular data and applications that are wholly or partially hosted on server computer 900A. Such data may be transferred between devices 900B-900G and server computer 900A for processing and storage. The server computer 900A may host computing applications, processes, and applets for the generation, authentication, encryption, and communication of data and applications, and may cooperate with other server computing environments (not shown in fig. 9), third party service providers (not shown in fig. 9), network attached storage ("NAS"), and storage area networks ("SAN") to implement application/data transactions.
It should be appreciated that the computing architecture shown in FIG. 8 and the distributed network computing environment shown in FIG. 9 have been simplified for ease of discussion. It should also be appreciated that computing architectures and distributed computing networks may include and utilize more computing components, devices, software programs, networking devices, and other components not specifically described herein.
Example clauses
The disclosure presented herein encompasses the subject matter set forth in the following clauses.
Clause 2. The computer-implemented method of clause 1, wherein the communication data is associated with an email, text message, or other electronic message, and the evaluating is to determine whether the at least one data token includes cryptographic data.
Clause 3 the computer-implemented method of clause 1, wherein the trained evaluation function is based on a recursive machine learning model trained using a dataset comprising known space-separated passwords and a dataset comprising space-separated non-password characters.
Clause 6 the computer-implemented method of clause 1, wherein the character lookup table comprises a plurality of characters, each character of the plurality of characters comprising a vector having an association value representing one or more features or characteristics associated with the character.
Clause 7 the computer-implemented method of clause 1, wherein when the evaluating determines that the at least one data token includes sensitive data, and before associating the communication data into the quarantine storage, evaluating a predetermined number of characters before and/or after the at least one data token to identify a context associated with the at least one data token, and when the context supports a determination that the at least one data token includes sensitive data, determining that the at least one data token includes sensitive data.
Clause 8, a computing device, comprising: a processor; a computer readable storage medium in communication with a processor, the computer readable storage medium having computer executable instructions stored thereon that, when executed by the processor, cause the processor to: receiving an electronic message comprising a plurality of character sets, the character sets separated by spaces; converting each character set of the plurality of character sets into a vector list to generate a plurality of vector lists, each vector list of the plurality of vector lists comprising a plurality of vectors, each vector comprising a vector value obtained from a character lookup table comprising characters, each character comprising a vector value, each vector value representing at least one characteristic associated with a unique character; evaluating each of the plurality of vector lists using a trained evaluation function to determine that at least one of the character sets includes cryptographic data; and causing the computer to generate and display a user interface comprising an indication that the electronic message comprises cryptographic data.
Clause 9 the computing device of clause 8, wherein the electronic message is an email message or a text message.
Clause 12. The computing device of clause 8, wherein the trained evaluation function is based on a recursive machine learning model, the recursive machine learning model being trained using vectorized characters generated from a character lookup table.
Clause 13, a computing device, comprising: a processor; a computer readable storage medium in communication with a processor, the computer readable storage medium having stored thereon computer executable instructions that, when executed by the processor, cause the processor to: identifying the communication data to analyze the one or more passwords; evaluating the communication data to identify at least one data token included in the communication data, the at least one data token including a plurality of characters; converting each character of the plurality of characters included in the at least one data token into a vector comprising vector values obtained from a character lookup table; generating a vector list comprising each vector representing each of a plurality of characters included in at least one data token; and evaluating the vector list using the trained evaluation function to determine whether the at least one data token includes a password, notifying the user when the at least one data token includes a password: the communication data includes a password and prevents propagation of the communication data, and the propagation of the communication data is allowed when the at least one data token does not have the password.
Clause 14 the computing device of clause 13, wherein the communication data is associated with an email, text message, or other electronic message.
Clause 15 the computing device of clause 13, wherein the trained evaluation function is based on a recursive machine learning model trained using a dataset comprising ciphers with known space separation and a dataset comprising non-ciphered characters with space separation.
Clause 16. The computing device of clause 13, wherein the trained evaluation function is based on a recursive machine learning model, the recursive machine learning model being trained using vectorized characters generated from a character lookup table.
Clause 17 the computing device of clause 16, wherein the character lookup table comprises a plurality of characters, each character of the plurality of characters comprising a vector having an association value representing one or more characteristics associated with the character.
Clause 18 the computing device of clause 13, wherein the character lookup table comprises a plurality of characters, each character of the plurality of characters comprising a vector having an association value representing one or more characteristics associated with the character.
Clause 19 the computing device of clause 13, wherein the computer-executable instructions, when executed by the processor, cause the processor to: a predetermined number of characters before and/or after the at least one data token is evaluated to identify a context associated with the at least one data token and, when the context supports a determination that the at least one data token includes a password, the at least one data token is determined to include the password.
Although the techniques have been described in language specific to structural features and/or methodological acts, it is to be understood that the appended claims are not necessarily limited to the described features or acts. Rather, the features and acts are described as example implementations of such techniques.
When sensitive data is found in an electronic message, the techniques disclosed herein provide an enhanced level of security by identifying and suppressing the propagation of sensitive data. The techniques disclosed herein may provide a number of technical advantages over existing systems. For example, computing devices employing the techniques disclosed herein have improved security compared to existing security techniques used by computing devices. Other technical advantages may also be realized from the implementations of the techniques disclosed herein.
It should be appreciated that the above-described subject matter may be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable storage medium. Among many other benefits, the techniques disclosed herein improve efficiency with respect to a wide range of computing resources. For example, human interaction with devices and systems may be improved because the techniques disclosed herein enable users and individuals to remotely manipulate rendered streams within a graphical environment associated with a communication session to better reflect their interactions in the communication session. Other technical effects than those mentioned herein may also be achieved from the implementation of the techniques disclosed herein.
The operations of the example methods are illustrated in the various blocks and are summarized with reference to those blocks. The methods are illustrated as logical flows of blocks, each of which may represent one or more operations that may be implemented in hardware, software, or a combination thereof. In the context of software, operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, enable the one or more processors to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, modules, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, but any number of the described operations may be performed in any order, combined in any order, subdivided into multiple sub-operations, and/or performed in parallel to achieve described processes. The described processes may be performed by resources associated with one or more devices (such as one or more internal or external CPUs or GPUs) and/or one or more hardware logic (such as FPGAs, DSPs, or other types of accelerators).
All of the methods and processes described above may be embodied in, and fully automated via, software code modules executed by one or more general-purpose computers or processors. The code modules may be stored in any type of computer-readable storage medium or other computer storage device. Some or all of the methods may alternatively be embodied in special purpose computer hardware.
Conditional language such as "capable," "may," or "may," etc., are to be understood in the context of certain examples to include, but not other examples to include, certain features, elements, and/or steps unless specifically stated otherwise. Thus, such conditional language is not generally intended to imply that certain features, elements and/or steps are in any way required for one or more examples or that one or more examples necessarily include logic for deciding whether or not there is user input or prompting whether certain features, elements and/or steps are included or are to be performed in any particular example. Unless specifically stated otherwise, conjunctions such as the phrase "at least one of X, Y or Z" should be understood to mean that the item, etc. may be X, Y or Z, or a combination thereof.
Any routine descriptions, elements, or blocks in the flowcharts described herein and/or depicted in the figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or elements in the routine. Alternate implementations are included within the scope of the examples described herein in which elements or functions may be deleted from what is shown or discussed or performed out of order, including substantially synchronously or in reverse order, depending on the functionality involved, as will be appreciated by those skilled in the art. It should be emphasized that many variations and modifications may be made to the examples described above, wherein the elements are to be understood as other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
Claims (16)
1. A computer-implemented method, comprising:
evaluating the communication data to identify at least one data token included in the communication data, the at least one data token comprising a plurality of characters;
converting each of the plurality of characters included in the at least one data token into a vector comprising vector values obtained from a character lookup table, wherein the character lookup table comprises a plurality of characters, each of the plurality of characters having an associated vector comprising values representing one or more characteristics associated with the character;
Generating a vector list in a vector list format, the vector list including each vector representing each of the plurality of characters included in the at least one data token; and
evaluating the vector list using an evaluation function trained via a machine learning model to determine whether the at least one data token includes sensitive data,
in response to determining that the at least one data token includes the sensitive data, associating the communication data into an isolated storage device,
in response to determining that the at least one data token is free of the sensitive data, propagation of the communication data is allowed.
2. The computer-implemented method of claim 1, wherein the communication data is associated with an email, text message, or other electronic message, and the evaluating is determining whether the at least one data token includes cryptographic data.
3. The computer-implemented method of claim 1, wherein the trained evaluation function is based on a recursive machine learning model trained using a dataset comprising known space-separated passwords and a dataset comprising space-separated non-password characters.
4. The computer-implemented method of claim 1, wherein the trained evaluation function is based on a recursive machine learning model trained using vectorized characters generated from the character lookup table.
5. The computer-implemented method of claim 1, wherein the character lookup table includes the plurality of characters, each character of the plurality of characters including a vector having an association value representing one or more features or characteristics associated with the character.
6. The computer-implemented method of claim 1, wherein the at least one data token is determined to include the sensitive data in response to the evaluating, and a predetermined number of characters before and after the at least one data token are evaluated to identify a context associated with the at least one data token before and after associating the communication data into an isolated storage device, and the at least one data token is determined to include the sensitive data in response to determining that the context supports the determination that the at least one data token includes the sensitive data.
7. A computing device, comprising:
a hardware processor; and
a non-transitory computer-readable storage medium in communication with the hardware processor, the non-transitory computer-readable storage medium having stored thereon computer-executable instructions that, when executed by the hardware processor, cause the hardware processor to:
receiving an electronic message comprising a plurality of character sets, the plurality of character sets separated by spaces;
converting each of the plurality of character sets into a vector list to generate a plurality of vector lists in a vector list format, each generated vector list of the plurality of vector lists comprising a plurality of vectors, each vector of the plurality of vectors comprising a vector value obtained from a character lookup table comprising a plurality of characters, each character of the plurality of characters having an associated vector comprising a value representing one or more characteristics associated with the character;
evaluating each of the plurality of vector lists using an evaluation function trained via a machine learning model to determine whether at least one of the plurality of character sets includes cryptographic data; and
In response to determining that the at least one of the plurality of character sets includes the cryptographic data, causing a computer to generate and display a user interface comprising indications of: the electronic message includes the cryptographic data.
8. The computing device of claim 7, wherein the electronic message is an email message or a text message.
9. The computing device of claim 7, wherein the computer-executable instructions, when executed by the hardware processor, cause the hardware processor to, after determining that at least one of the plurality of character sets includes the cryptographic data:
evaluating a predetermined number of characters preceding and following the character set comprising the cryptographic data to identify a context associated with the character set comprising the cryptographic data, and
in response to determining that the context supports the determination that the character set includes the cryptographic data using the trained evaluation function, it is determined that the character set includes the cryptographic data.
10. The computing device of claim 7, wherein the trained evaluation function is based on a recursive machine learning model trained using a data set comprising a known space-separated password and a data set comprising space-separated non-password characters.
11. The computing device of claim 7, wherein the trained evaluation function is based on a recursive machine learning model trained using vectorized characters generated from the character lookup table.
12. A computing device, comprising:
a hardware processor; and
a non-transitory computer-readable storage medium in communication with the hardware processor, the non-transitory computer-readable storage medium having stored thereon computer-executable instructions that, when executed by the hardware processor, cause the hardware processor to:
evaluating the communication data to identify at least one data token included in the communication data, the at least one data token comprising a plurality of characters;
converting each of the plurality of characters included in the at least one data token into a vector comprising vector values obtained from a character lookup table, wherein the character lookup table comprises a plurality of characters, each of the plurality of characters having an associated vector comprising values representing one or more characteristics associated with the character;
generating a vector list in a vector list format, the vector list including each vector representing each of the plurality of characters included in the at least one data token; and
Evaluating the vector list using an evaluation function trained via a machine learning model to determine whether the at least one data token includes a password,
in response to determining that the at least one data token includes the password, notifying a user: the communication data includes the password and prevents propagation of the communication data,
in response to determining that the at least one data token does not have the password, propagation of the communication data is allowed.
13. The computing device of claim 12, wherein the communication data is associated with an email, text message, or other electronic message.
14. The computing device of claim 12, wherein the trained evaluation function is based on a recursive machine learning model trained using a data set comprising a known space-separated password and a data set comprising space-separated non-password characters.
15. The computing device of claim 12, wherein the trained evaluation function is based on a recursive machine learning model trained using vectorized characters generated from the character lookup table.
16. The computing device of claim 12, wherein the computer executable instructions, when executed by the processor, cause the processor to:
Evaluating a predetermined number of characters before and after the at least one data token to identify a context associated with the at least one data token, and
when the context supports the determination that the at least one data token includes the password, determining that the at least one data token includes the password.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/389,557 US11159551B2 (en) | 2019-04-19 | 2019-04-19 | Sensitive data detection in communication data |
US16/389,557 | 2019-04-19 | ||
PCT/US2020/022392 WO2020214293A1 (en) | 2019-04-19 | 2020-03-12 | Sensitive data detection in communication data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113692724A CN113692724A (en) | 2021-11-23 |
CN113692724B true CN113692724B (en) | 2023-05-30 |
Family
ID=70190200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080028490.XA Active CN113692724B (en) | 2019-04-19 | 2020-03-12 | Sensitive data detection in communication data |
Country Status (4)
Country | Link |
---|---|
US (1) | US11159551B2 (en) |
EP (1) | EP3957035B1 (en) |
CN (1) | CN113692724B (en) |
WO (1) | WO2020214293A1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210034784A1 (en) * | 2019-08-01 | 2021-02-04 | International Business Machines Corporation | Detangling virtual world and real world portions of a set of articles |
US11818091B2 (en) | 2020-05-10 | 2023-11-14 | Salesforce, Inc. | Embeddings-based discovery and exposure of communication platform features |
US11711404B2 (en) * | 2020-10-30 | 2023-07-25 | Salesforce, Inc. | Embeddings-based recommendations of latent communication platform features |
US11637714B2 (en) | 2020-10-30 | 2023-04-25 | Salesforce, Inc. | Embeddings-based discovery and exposure of communication platform features |
US11830099B2 (en) * | 2020-11-09 | 2023-11-28 | Adobe Inc. | Machine learning modeling for protection against online disclosure of sensitive data |
US12047355B2 (en) * | 2021-03-08 | 2024-07-23 | Adobe Inc. | Machine learning techniques for mitigating aggregate exposure of identifying information |
CN113128220B (en) * | 2021-04-30 | 2023-07-18 | 北京奇艺世纪科技有限公司 | Text discrimination method, text discrimination device, electronic equipment and storage medium |
CN113472686B (en) * | 2021-07-06 | 2024-03-08 | 深圳乐信软件技术有限公司 | Information identification method, device, equipment and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122479A (en) * | 2017-05-03 | 2017-09-01 | 西安交通大学 | A kind of user cipher conjecture system based on deep learning |
CN109543084A (en) * | 2018-11-09 | 2019-03-29 | 西安交通大学 | A method of establishing the detection model of the hidden sensitive text of network-oriented social media |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133574A1 (en) * | 2003-01-07 | 2004-07-08 | Science Applications International Corporaton | Vector space method for secure information sharing |
US7730540B1 (en) * | 2004-12-08 | 2010-06-01 | Symantec Corporation | Method for scanning protected components of electronic messages |
US8752181B2 (en) * | 2006-11-09 | 2014-06-10 | Touchnet Information Systems, Inc. | System and method for providing identity theft security |
US9130986B2 (en) * | 2008-03-19 | 2015-09-08 | Websense, Inc. | Method and system for protection against information stealing software |
US8699796B1 (en) * | 2008-11-11 | 2014-04-15 | Trend Micro Incorporated | Identifying sensitive expressions in images for languages with large alphabets |
US20110285634A1 (en) * | 2010-05-24 | 2011-11-24 | Karbonstream Corporation | Portable data entry device |
US9323249B2 (en) * | 2011-03-31 | 2016-04-26 | King Abdulaziz City for Science & Technology | Matrix code symbols for accurate robot tracking |
US8874430B2 (en) * | 2011-03-31 | 2014-10-28 | King Abdulaziz City For Science And Technology | Applications for encoding and decoding multi-lingual text in a matrix code symbol |
US8626714B1 (en) * | 2011-09-07 | 2014-01-07 | Symantec Corporation | Automated separation of corporate and private data for backup and archiving |
TWI484357B (en) * | 2011-12-02 | 2015-05-11 | Inst Information Industry | Quantitative-type data analysis method and quantitative-type data analysis device |
US20130212024A1 (en) * | 2012-02-10 | 2013-08-15 | Protegrity Corporation | Tokenization in distributed payment environments |
US10354187B2 (en) * | 2013-01-17 | 2019-07-16 | Hewlett Packard Enterprise Development Lp | Confidentiality of files using file vectorization and machine learning |
US9230136B2 (en) * | 2013-09-30 | 2016-01-05 | Protegrity Corporation | Tokenization column replacement |
US9237006B2 (en) * | 2013-09-30 | 2016-01-12 | Protegrity Corporation | Table-connected tokenization |
US9953171B2 (en) * | 2014-09-22 | 2018-04-24 | Infosys Limited | System and method for tokenization of data for privacy |
US11328307B2 (en) * | 2015-02-24 | 2022-05-10 | OpSec Online, Ltd. | Brand abuse monitoring system with infringement detection engine and graphical user interface |
CN106874253A (en) * | 2015-12-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | Recognize the method and device of sensitive information |
US10083318B2 (en) * | 2015-12-28 | 2018-09-25 | Fortinet, Inc. | Pattern matching for data leak prevention |
US11019101B2 (en) * | 2016-03-11 | 2021-05-25 | Netskope, Inc. | Middle ware security layer for cloud computing services |
EP3533004B1 (en) * | 2016-10-26 | 2020-07-29 | Swiss Reinsurance Company Ltd. | Data extraction engine for structured, semi-structured and unstructured data with automated labeling and classification of data patterns or data elements therein, and corresponding method thereof |
JP6224811B1 (en) * | 2016-12-07 | 2017-11-01 | たけおかラボ株式会社 | Program, apparatus, and method having inference engine capable of selecting rule set |
US11496286B2 (en) * | 2017-01-08 | 2022-11-08 | Apple Inc. | Differential privacy with cloud data |
US10984316B2 (en) * | 2017-06-19 | 2021-04-20 | International Business Machines Corporation | Context aware sensitive information detection |
US11062041B2 (en) * | 2017-07-27 | 2021-07-13 | Citrix Systems, Inc. | Scrubbing log files using scrubbing engines |
US20190050600A1 (en) * | 2017-08-11 | 2019-02-14 | Ca, Inc. | Masking display of sensitive information |
US10339680B2 (en) * | 2017-10-06 | 2019-07-02 | Adobe Inc. | Graphics control data for performing skeleton-based modifications of a typeface design |
CN108171073B (en) * | 2017-12-06 | 2021-08-20 | 复旦大学 | Private data identification method based on code layer semantic parsing drive |
US20200019632A1 (en) * | 2018-07-11 | 2020-01-16 | Home Depot Product Authority, Llc | Presentation of related and corrected queries for a search engine |
US10347293B1 (en) * | 2018-07-31 | 2019-07-09 | Droplr, Inc. | Detecting, redacting, and scoring confidential information in video |
US12007980B2 (en) * | 2019-01-17 | 2024-06-11 | The Boston Consulting Group, Inc. | AI-driven transaction management system |
US20200334603A1 (en) * | 2019-04-18 | 2020-10-22 | Verizon Patent And Licensing Inc. | Systems and methods for automated provider rationalization using machine learning-assisted and advanced analytics techniques |
-
2019
- 2019-04-19 US US16/389,557 patent/US11159551B2/en active Active
-
2020
- 2020-03-12 CN CN202080028490.XA patent/CN113692724B/en active Active
- 2020-03-12 WO PCT/US2020/022392 patent/WO2020214293A1/en active Application Filing
- 2020-03-12 EP EP20717478.0A patent/EP3957035B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122479A (en) * | 2017-05-03 | 2017-09-01 | 西安交通大学 | A kind of user cipher conjecture system based on deep learning |
CN109543084A (en) * | 2018-11-09 | 2019-03-29 | 西安交通大学 | A method of establishing the detection model of the hidden sensitive text of network-oriented social media |
Non-Patent Citations (2)
Title |
---|
Qian Wang ; Minxin Du ; Xiuying Chen ; Yanjiao Chen ; Pan Zhou ; Xiaofeng Chen ; Xinyi Huang.Privacy-Preserving Collaborative Model Learning: The Case of Word Vector Training.2018,第30卷(第12期),全文. * |
李伟伟 ; 张涛 ; 林为民 ; 邓松 ; 时坚 ; 汪晨 ; .基于文本内容的敏感数据识别方法研究与实现.计算机工程与设计.2013,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
EP3957035B1 (en) | 2023-03-08 |
WO2020214293A1 (en) | 2020-10-22 |
CN113692724A (en) | 2021-11-23 |
US11159551B2 (en) | 2021-10-26 |
EP3957035A1 (en) | 2022-02-23 |
US20200336501A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113692724B (en) | Sensitive data detection in communication data | |
US11997115B1 (en) | Message platform for automated threat simulation, reporting, detection, and remediation | |
US10063584B1 (en) | Advanced processing of electronic messages with attachments in a cybersecurity system | |
US10601865B1 (en) | Detection of credential spearphishing attacks using email analysis | |
US10027701B1 (en) | Method and system for reducing reporting of non-malicious electronic messages in a cybersecurity system | |
US9264418B1 (en) | Client-side spam detection and prevention | |
US11785464B2 (en) | Media agnostic content access management | |
US10552238B2 (en) | Secure inter-process communications for mobile devices | |
Cohen et al. | Novel set of general descriptive features for enhanced detection of malicious emails using machine learning methods | |
WO2017214219A1 (en) | Intentional transmission of incorrect data | |
WO2016130466A1 (en) | Systems and methods for managing access to message content | |
WO2020081258A1 (en) | Display of notifications in a lock screen with a privacy feature | |
US11258811B2 (en) | Email attack detection and forensics | |
CN106030527B (en) | By the system and method for application notification user available for download | |
EP2919422B1 (en) | Method and device for detecting spoofed messages | |
US10078750B1 (en) | Methods and systems for finding compromised social networking accounts | |
Cohen et al. | Here Comes The AI Worm: Unleashing Zero-click Worms that Target GenAI-Powered Applications | |
US20230121470A1 (en) | Preventing phishing attempts of one-time passwords | |
US11606383B1 (en) | Securing against network vulnerabilities | |
CN116055067A (en) | Weak password detection method, device, electronic equipment and medium | |
US20230065787A1 (en) | Detection of phishing websites using machine learning | |
de Rosa et al. | Hey ChatGPT, Is This Message Phishing? | |
US20240171609A1 (en) | Generating a content signature of a textual communication using optical character recognition and text processing | |
Berg | Development and implementation of a phishing email detection application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |