WO2017205369A1 - COMPUTER-IMPLEMENTED METHODS AND SYSTEMS FOR lDENTIFYING VISUALLY SIMILAR TEXT CHARACTER STRINGS - Google Patents
COMPUTER-IMPLEMENTED METHODS AND SYSTEMS FOR lDENTIFYING VISUALLY SIMILAR TEXT CHARACTER STRINGS Download PDFInfo
- Publication number
- WO2017205369A1 WO2017205369A1 PCT/US2017/033995 US2017033995W WO2017205369A1 WO 2017205369 A1 WO2017205369 A1 WO 2017205369A1 US 2017033995 W US2017033995 W US 2017033995W WO 2017205369 A1 WO2017205369 A1 WO 2017205369A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- text character
- character string
- characters
- string
- input text
- Prior art date
Links
Classifications
-
- 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
-
- 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/23—Updating
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
Definitions
- the present application relates generally to computer-implemented methods and systems for analyzing an input text character string to identify one or more visually similar text character strings in a corpus of such strings.
- communication systems contain semi-structured data fields, such as "From:” and “To:” fields in an email, as well as unstructured data fields such as the message body or the content of the chat message being exchanged. Because both of these types of fields can be manipulated by a fraudulent party, and because no current standard exists that allows the recipient to verify that the author, sender, or creator of any individual message is who they claim to be, these attacks can be highly effective.
- Various embodiments disclosed herein relate to improved techniques for separating legitimate and illegitimate messages within these systems, without introducing any delay to the use of these systems.
- a computer-implemented method in accordance with one or more embodiments analyzes an input text character string to identify one or more visually similar text character strings in a corpus of text character strings.
- the method comprises the steps, each performed by a computer system, of: (a) receiving the input text character string; (b) determining a scalar estimate for the input text character string based on a model of visually similar text characters stored in a computer storage system, said model comprising a plurality of look-alike sets of text characters, each set having an assigned numerical value; (c) identifying a set of candidate text character strings from the corpus of text character strings stored in the computer storage system by comparing the scalar estimate of the input text character string with pre-ca!culafed scalar estimates of each of said text character strings in the corpus, and selecting text character strings having scalar estimates within a given range of the scalar estimate of the input text character string; (d) analyzing the input text character string with each of the candidate text character strings to determine a
- a computer system in accordance with one or more further embodiments comprises at least one processor, memory associated with the at least one processor, and a program supported in the memory for analyzing an input text character string to identify one or more visually similar text character strings in a corpus of text character strings, the program containing a plurality of instructions which, when executed by the at least one processor, cause the at least one processor to: (a) receive the input text character string;
- FIG, 1A shows a list of example text strings, all variations of the word "entertainment.” Each variation differs from the original in a manner that makes if likely to be mistaken for the original word, especially when viewed in isolation,
- FIG. IB shows the example text strings of FIG. 1A, with the particular differences with the original underlined.
- FIG. 2 shows an example of a partial look-alike set table, which is used to identify and score visually similar individual characters in accordance with one or more embodiments.
- FIG. 3 shows an exemplary calculation for determining the Scalar Estimate of the word "pail” using the look-alike sets shown in FIG. 2.
- FIG. 4 is a visual depiction of an exemplary Comparison Score calculation in accordance with one or more embodiments, comparing the word "entertainment" to another character string bearing two differences from the word.
- FIG. 5 is a simplified block diagram illustrating an exemplary computer system for identifying visually similar text character strings in accordance with one or more embodiments.
- misspellings though may sound rather different when correctly pronounced, can be very difficult for a person to notice when reading from a page or computer screen. This kind of misspelling, when done with intention, can be used to fool even a very attentive person. This is the basis of the what is commonly known as a
- Various embodiments disclosed herein are directed to methods and systems for determining the degree of similarity between two potentially unique but visually similar text character strings (representing, e.g., domain names used in email message exchanges), offering improved efficiency over existing string comparison techniques.
- Techniques disclosed herein analyze an input text character string and select text character strings from a corpus of relevant strings that would commonly be considered to be visually similar to human viewer.
- the corpus may be any sufficiently broad or specific source of text, e.g., the names of users in a computer application system.
- the character strings in the corpus are classified such that direct, character-by-character comparisons may be limited to a small subset of likely-similar strings.
- the input string is then directly compared to strings that are likely to be similar to it, taking into account individual characters' similarities, combinations of characters that look similar to individual characters, transposition of characters, and simple additions and deletions.
- a model of similar characters is used to determine whether two character strings are visually similar.
- the model used can depend greatly on the context the strings will be seen in, particularly common characteristics of the font faces used to display or print the strings. As such, specific applications of the techniques disclosed herein may use models tuned to the particular context of the application.
- the available set of characters is first portioned into approximate "look-alike sets," where each set contains characters that are visually similar (within the context of interest) enough.
- Each look-alike set should be similar in size, though they needn't be equal, and each character in the available character set should be represented in exactly one alike-set.
- Each iook-aiike set is given a numerical value arbitrarily.
- FIG. 2 shows an example of a partial look-alike set table used to identify and score visualiy similar individual characters in accordance with one or more
- an individual character string's Scalar Estimate is the sum of the numerical value of the string's characters, modified by their position in the string, such that characters nearest the start of the string are valued more closely to their alike-set value than those at the end, weighting the Estimate toward the front of the string - where a person's focus often lies when evaluating small strings.
- FIG. 3 shows an exemplary calculation for determining the Scalar Estimate of the word "pail" using the look-alike sets shown in FIG. 2.
- the Scalar Estimate can be used to filter a large string corpus to a "candidate set" of only those strings whose Scalar Estimates are within a particular delta of the "suspect" string's Estimate. This delta should be chosen as appropriate to the corpus size and desired tolerance of the filter such that the candidate set is of a size small enough to be directly compared to the suspect string within the desired time constraints.
- the suspect string is compared to each string to find the string or strings that it is most visually similar to. This is a done by calculating a Similarity Score for each pairing of the suspect string with a character strings in the candidate set.
- the ligature table is constructed as a mapping of input character strings to output character strings such that a given input string of one or two characters may be provided and, if the input string is present in the mapping, produce an output string that visually similar to the output. For example, in many common contexts, the input character string 'rn' is visually similar to the output character string 'm' as shown in FIG. 4.
- a Similarity Score is calculated from 0.0 when the two character strings are identical, to a value equal to the length of the longer of the two strings when similarities between the two character strings exist. Beginning at 0.0, the Score is increased for each instance where the character strings differ visually. The Score is increased by different amounts depending on the type of visual difference encountered:
- the overall Similarity Score is the sum of the scores of a!l visual differences between a given pair of character strings.
- An exemplary computer-implemented method for identifying visually similar character strings in accordance with one or more embodiments is illustrated below.
- each remaining character is assigned the numerical value of the look- alike set it belongs to [0039]
- the numerical value of each character is modified by multiplying the numerical value by the ratio of the distance of the character's position from the end of the
- the final Scalar Estimate places the string in an approximate class of character strings which encompasses at least the possible strings that look visually similar to the input string.
- a method in accordance with one or more further embodiments includes the following steps:
- the final Similarity Score represents how visually similar the two character strings would appear on a computer screen, where two completely identical character strings would result in a Score of 0.0 and the more visually different the two character strings, the higher the Score.
- a method in accordance with one or more further embodiments includes the following steps:
- FIG. 5 is a simplified block diagram illustrating an exemplary computer system 10, on which the computer programs may operate as a set of computer instructions.
- the computer system 10 includes at least one computer processor 12 and a system memory 14 (including a random access memory and a read-only memory) readable by the processor 12.
- the computer system also includes a mass storage device 15 (e.g., a hard disk drive, a solid-state storage device, an optical disk device, etc).
- the computer processor 12 is capable of processing instructions stored in the system memory or mass storage device.
- the computer system additionally includes input/output devices 16, 18 (e.g., a display, keyboard, or pointer device), a graphics module 20 for generating graphical objects, and a communication module or network interface 22, which manages communication with other computer systems 26 via the Internet or other communications network or combination of networks 24.
- input/output devices 16, 18 e.g., a display, keyboard, or pointer device
- graphics module 20 for generating graphical objects
- communication module or network interface 22 which manages communication with other computer systems 26 via the Internet or other communications network or combination of networks 24.
- Each computer program can be a set of instructions or program code in a code module resident in the random access memory of the computer system. Until required by the computer system, the set of instructions may ⁇ be stored in the mass storage device or on another computer system and downloaded via the internet or other network.
- the computer system may comprise one or more physical machines, or virtual machines running on one or more physical machines.
- the computer system may comprise a cluster of computers or numerous distributed computers that are connected by the Internet or another network.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Methods and systems are disclosed for selecting text character strings from a corpus of relevant strings that would commonly be considered to be visually similar to human viewer to an input string. The initial corpus may be any sufficiently broad or specific source of text, e.g., the names of users in a computer application system. The character strings in the corpus are classified such that direct, character-by-character comparisons may be limited to a small subset of likely-similar strings. The input string is then directly compared to strings that are likely to be similar to it, taking into account individual characters' similarities, combinations of characters that look similar to individual characters, transposition of characters, and simple additions and deletions.
Description
COMPUTER-IMPLEMENTED METHODS AND SYSTEMS FOR IDENTIFYING VISUALLY SIMILAR TEXT CHARACTER STRINGS
RELATED APPLICATIONS
[0001] This application claims the benefit of priority to United States Patent Application serial number 15/161,746, filed May 23, 2016, the contents of which is hereby incorporated by reference,
BACKGROUND
[0002] The present application relates generally to computer-implemented methods and systems for analyzing an input text character string to identify one or more visually similar text character strings in a corpus of such strings.
[0003] Electronic messaging systems that exchange information between business users are essential for the communication and operation of nearly every business. More than 135 billion email messages are sent to business users daily as of 2015, and this number is expected to continue to increase. In addition, real-time communication technologies such as text and video chat, intranet sites, SMS, and voice-over-IP are also seeing increased adoption,
[0004] Over 90% of all security incidents and data breaches begin when these technologies are used fraudulently, wherein an attacker manipulates these systems to send communications that appear to be from someone who is known to the recipient. These fraudulent messages are then used to gain illegitimate access to networks, computer systems, financial resources, and protected data, often for the financial gain of the impersonating party.
[0005] This is a significant problem because communications over network-based systems are largely unprotected in terms of identity validation, and the information accessible to the accounts used within those systems is often highly valuable. For example, a recipient of a fraudulent message may be a senior executive within a business unit, with the authority to authorize the wiring of funds to third parties. If a fraudulent message convinces him or her that it is from another executive, he or she may send funds to recipients who are not who the impersonated message claims them to be.
[0006] The reason is that email, chat, voice, and other network-based
communication systems contain semi-structured data fields, such as "From:" and "To:"
fields in an email, as well as unstructured data fields such as the message body or the content of the chat message being exchanged. Because both of these types of fields can be manipulated by a fraudulent party, and because no current standard exists that allows the recipient to verify that the author, sender, or creator of any individual message is who they claim to be, these attacks can be highly effective.
[0007] As a result, the use of fraudulent communication messages exchanged over a network is expected to grow as the use of these systems continues to increase. Preventing fraudulent activity without impeding the flow of legitimate communication is a particular problem for managers of information technology systems, as these managers are responsible for both determining what is and is not legitimate while simultaneously ensuring that the deliverabiiity of communications is not delayed or prevented. Performing both of these functions simultaneously requires the information technology manager to rapidly identify extremely nuanced details about each messages structured and
unstructured data fields, and to do so without slowing the rate of communications such that business processes are impacted.
[0008] Despite this contradictory set of requirements, regulatory and audit frameworks such as the Health Insurance Portability and Accountability Act of 1996 and the Sarbanes-Oxley Act may require information technology managers to track and protect against the exposure of data that is linked to these kinds of communication system accounts.
[0009] Various embodiments disclosed herein relate to improved techniques for separating legitimate and illegitimate messages within these systems, without introducing any delay to the use of these systems.
BRI EF SUMMARY OF THE DISCLOSURE
[0010] A computer-implemented method in accordance with one or more embodiments analyzes an input text character string to identify one or more visually similar text character strings in a corpus of text character strings. The method comprises the steps, each performed by a computer system, of: (a) receiving the input text character string; (b) determining a scalar estimate for the input text character string based on a model of visually similar text characters stored in a computer storage system, said model comprising a plurality of look-alike sets of text characters, each set having an assigned numerical value;
(c) identifying a set of candidate text character strings from the corpus of text character strings stored in the computer storage system by comparing the scalar estimate of the input text character string with pre-ca!culafed scalar estimates of each of said text character strings in the corpus, and selecting text character strings having scalar estimates within a given range of the scalar estimate of the input text character string; (d) analyzing the input text character string with each of the candidate text character strings to determine a visual similarity score between the input text character string and each of the candidate text character strings; and (e) identifying one or more candidate text character strings deemed to be most visually similar to the input text character string based on the similarity scores.
[0011] A computer system in accordance with one or more further embodiments comprises at least one processor, memory associated with the at least one processor, and a program supported in the memory for analyzing an input text character string to identify one or more visually similar text character strings in a corpus of text character strings, the program containing a plurality of instructions which, when executed by the at least one processor, cause the at least one processor to: (a) receive the input text character string;
(b) determine a scalar estimate for the input text character string based on a model of visually similar text characters stored in a computer storage system, said model comprising a plurality of look-alike sets of text characters, each set having an assigned numerical value;
(c) identify a set of candidate text character strings from the corpus of text character strings stored in the computer storage system by comparing the scalar estimate of the input text character string with precalculated scalar estimates of each of said text character strings in the corpus, and selecting text character strings having scalar estimates within a given range of the scalar estimate of the input text character string; (d) analyze the input text character string with each of the candidate text character strings to determine a visual similarity score between the input text character string and each of the candidate text character strings; and (e) identify one or more candidate text character strings deemed to be most visually similar to the input text character string based on the similarity scores. BRI EF DESCRI PTION OF TH E DRAWI NGS
[0012] FIG, 1A shows a list of example text strings, all variations of the word "entertainment." Each variation differs from the original in a manner that makes if likely to
be mistaken for the original word, especially when viewed in isolation, FIG. IB shows the example text strings of FIG. 1A, with the particular differences with the original underlined.
[0013] FIG. 2 shows an example of a partial look-alike set table, which is used to identify and score visually similar individual characters in accordance with one or more embodiments.
[0014] FIG. 3 shows an exemplary calculation for determining the Scalar Estimate of the word "pail" using the look-alike sets shown in FIG. 2.
[0015] FIG. 4 is a visual depiction of an exemplary Comparison Score calculation in accordance with one or more embodiments, comparing the word "entertainment" to another character string bearing two differences from the word.
[0016] FIG. 5 is a simplified block diagram illustrating an exemplary computer system for identifying visually similar text character strings in accordance with one or more embodiments.
DETAILED DESCRIPTION
[0017] Spelling mistakes in natural writing are common because the pronunciation of one or more characters can, at times, differ very little from one or several other combinations of characters. People are generally good, however, at noticing these different arrangements of characters by sight. Though common misspellings may sound similar to the proper spelling of a word, they are generally visually discernable. When they know the correct spelling of a word, a human being is capable of noticing such transliterations.
[0018] Another class of misspellings, though may sound rather different when correctly pronounced, can be very difficult for a person to notice when reading from a page or computer screen. This kind of misspelling, when done with intention, can be used to fool even a very attentive person. This is the basis of the what is commonly known as a
"homograph attack" - an attacker utilizes an otherwise legitimately named resource that is visually similar to a resource their victim is familiar with in order to fool the victim into taking some desired action, e.g., responding to financial request or providing information known to the victim.
[0019] Various embodiments disclosed herein are directed to methods and systems for determining the degree of similarity between two potentially unique but visually similar
text character strings (representing, e.g., domain names used in email message exchanges), offering improved efficiency over existing string comparison techniques.
[0020] Techniques disclosed herein analyze an input text character string and select text character strings from a corpus of relevant strings that would commonly be considered to be visually similar to human viewer. The corpus may be any sufficiently broad or specific source of text, e.g., the names of users in a computer application system. The character strings in the corpus are classified such that direct, character-by-character comparisons may be limited to a small subset of likely-similar strings. The input string is then directly compared to strings that are likely to be similar to it, taking into account individual characters' similarities, combinations of characters that look similar to individual characters, transposition of characters, and simple additions and deletions.
[0021] A model of similar characters is used to determine whether two character strings are visually similar. The model used can depend greatly on the context the strings will be seen in, particularly common characteristics of the font faces used to display or print the strings. As such, specific applications of the techniques disclosed herein may use models tuned to the particular context of the application.
[0022] in separating the set strings from a given corpus of strings that are similar to an input or "suspect" string, it is preferable to know the exact Similarity Score of each pair of corpus and suspect strings. For large corpuses this is quite time consuming. As such, a Scalar Estimate of which "similarity class" each character string in the corpus is pre- calcuiated. A precise definition of a "similarity class" need not be made here, as its existence in the abstract is sufficient to calculate an approximation of what class a character string would belong to that is appropriate to compare to other Scalar Estimates.
[0023] To the calculate the Scalar Estimate, the available set of characters is first portioned into approximate "look-alike sets," where each set contains characters that are visually similar (within the context of interest) enough. Each look-alike set should be similar in size, though they needn't be equal, and each character in the available character set should be represented in exactly one alike-set. Each iook-aiike set is given a numerical value arbitrarily. FIG. 2 shows an example of a partial look-alike set table used to identify and score visualiy similar individual characters in accordance with one or more
embodiments.
[0024] For a given alike-set partitioning, an individual character string's Scalar Estimate is the sum of the numerical value of the string's characters, modified by their position in the string, such that characters nearest the start of the string are valued more closely to their alike-set value than those at the end, weighting the Estimate toward the front of the string - where a person's focus often lies when evaluating small strings. FIG. 3 shows an exemplary calculation for determining the Scalar Estimate of the word "pail" using the look-alike sets shown in FIG. 2.
[0025] The Scalar Estimate can be used to filter a large string corpus to a "candidate set" of only those strings whose Scalar Estimates are within a particular delta of the "suspect" string's Estimate. This delta should be chosen as appropriate to the corpus size and desired tolerance of the filter such that the candidate set is of a size small enough to be directly compared to the suspect string within the desired time constraints.
[0026] With the candidate set selected, the suspect string is compared to each string to find the string or strings that it is most visually similar to. This is a done by calculating a Similarity Score for each pairing of the suspect string with a character strings in the candidate set.
[0027] Prior to comparing the suspect string to the candidate set, a table of look alike-sets and "ligature" table is determined.
[0028] The table of alike-sets used to calculate a Similarity Score is similar to the alike-set partitioning used to calculate the Scalar Estimate, however not every character in the available character set need be represented in any alike-set, and a given alike-set should include only particularly visually similar characters, given the context the suspect string may be found in.
[0029] The ligature table is constructed as a mapping of input character strings to output character strings such that a given input string of one or two characters may be provided and, if the input string is present in the mapping, produce an output string that visually similar to the output. For example, in many common contexts, the input character string 'rn' is visually similar to the output character string 'm' as shown in FIG. 4.
[0030] For a given candidate string and suspect string, a Similarity Score is calculated from 0.0 when the two character strings are identical, to a value equal to the length of the longer of the two strings when similarities between the two character strings
exist. Beginning at 0.0, the Score is increased for each instance where the character strings differ visually. The Score is increased by different amounts depending on the type of visual difference encountered:
- Corresponding characters from the same look-alike set increases the Score by 0.1
- A character in one character string corresponding to a "ligature" in the opposite character string increases the Score by 0.1
- A transposition of corresponding pairs of characters increases the Score by 0.25
- A character missing from one character string at a corresponding position in the other string increases the Score by 0.5
- Corresponding characters that are strictly different increases the Score by 1.0
[0031] Where two types of visual difference might be represented by the same, or intersecting, corresponding characters, the choice of difference type(s) representing a lower overall Similarity Score is preferred.
[0032] As such, the overall Similarity Score is the sum of the scores of a!l visual differences between a given pair of character strings.
EXAMPLES
[0033] An exemplary computer-implemented method for identifying visually similar character strings in accordance with one or more embodiments is illustrated below. First, an input text string is analyzed to identify a set of possible strings that look visually similar to the input string.
[0034] (a) The available text characters are partitioned into rough look-alike sets, each given a different numerical value.
[0035] (b) An input text character string is processed, calculating a Scalar Estimate such that:
[0036] (i) the Estimate begins at 0.0
[0037] (is) repeated characters - characters identical the character that precedes them - are discarded
[0038] (iii) each remaining character is assigned the numerical value of the look- alike set it belongs to
[0039] (iv) the numerical value of each character is modified by multiplying the numerical value by the ratio of the distance of the character's position from the end of the
"input" string and the full length of the string
[0040] (v) each modified numerical value is added to the Estimate
[0041] (c) The final Scalar Estimate places the string in an approximate class of character strings which encompasses at least the possible strings that look visually similar to the input string.
[0042] A method In accordance with one or more further embodiments includes the following steps:
[0043] (a) The available text characters are partitioned into look-alike sets - sets of characters that look similar.
[0044] (b) The available text characters are partitioned into a ligature table - a look up table mapping individual key characters to specific ligature character strings that look similar to the key character.
[0045] (c) Two character strings, the "suspect" (i.e., input) and "candidate" strings, are compared by a backtracking process, wherein characters of corresponding string positions are compared and a Similarity Score is calculated:
[0046] (i) the Score begins at 0.0
[0047] (ii) the position in the "suspect" and "candidate" strings begins at their first character
[0048] (iii) for each iteration, one of the following options is chosen such that the
Score is minimized:
[0049] 1. if the two current characters are identical, the Score is not changed and both string positions are advanced by one
[0050] 2, if the two current characters belong to the same look-alike set, the
Score is increased by 0.1 and both string positions are advanced by one
[0051] 3. if the current character in the "suspect" string is a key character in the ligature table and the current and next characters in the "candidate" string are the corresponding ligature character string, the Score is increased by 0.1 and the "suspect" string is advanced by one and the "candidate" string is advanced by two
[0052] 4, if the current character in the "candidate" string is a key character in the ligature table and the current and next characters in the "suspect" string are the corresponding ligature character string, the Score is increased by 0.1 and the "candidate" string is advanced by one and the "suspect" string is advanced by two
[0053] 5. if the current character in the "candidate" string is identical to the next character in the "suspect" string and the current character in the "suspect" string is identical to the current character in the "candidate" string, the Score is increased by 0.25 and both string positions are advanced by two
[0054] 6. if the current character in the "suspect" string is identical to the next character in the "candidate" string, the Score is increased by 0.5 and the "suspect" string position is advanced by one and the "candidate" string position is advanced by two
[0055] 7. if the current character in the "candidate" string is identical to the next character in the "suspect" string, the Score is increased by 0.5 and the "candidate" string position is advanced by one and the "suspect" string position is advanced by two
[0056] 8. otherwise, the Score is increased by 1.0 and both string positions are advanced by one
[0057] (iv) when one of the character strings is exhausted, the total number of characters remaining in the other string as added to the Score
[005S] (v) the final Similarity Score represents how visually similar the two character strings would appear on a computer screen, where two completely identical character strings would result in a Score of 0.0 and the more visually different the two character strings, the higher the Score.
[0059] A method in accordance with one or more further embodiments includes the following steps:
[0060] (a) A "suspect" text character string and a set of "corpus" text character strings are considered.
[0061] (b) The Scalar Estimate, as described above, is calculated for the "suspect" character string.
[0062] (c) The Scalar Estimate, as described above, is calculated for each of the "corpus" character strings.
[0063] (d) Of the set of "corpus" strings, a sub-set of "candidate" strings is defined such that the absolute difference between the Scalar Estimate of a "candidate" and the Scalar Estimate of the "suspect" string is less than a chosen Delta Value.
[0064] (e) For each "candidate" string, a Similarity Score, as above, is calculated for the "candidate" string and the "suspect" string.
[0065] (f) The set of "candidate" character strings is ordered by the calculated Similarity Score.
[0066] (g) Of the initial set of "corpus" character strings, the "candidate" string or strings with the lowest Similarity Scores are the most visually similar to the "suspect" string.
[0067] The techniques for identify visually similar text character strings described herein may be implemented in one or more computer programs executing on a
programmable computer system. FIG. 5 is a simplified block diagram illustrating an exemplary computer system 10, on which the computer programs may operate as a set of computer instructions. The computer system 10 includes at least one computer processor 12 and a system memory 14 (including a random access memory and a read-only memory) readable by the processor 12. The computer system also includes a mass storage device 15 (e.g., a hard disk drive, a solid-state storage device, an optical disk device, etc). The computer processor 12 is capable of processing instructions stored in the system memory or mass storage device. The computer system additionally includes input/output devices 16, 18 (e.g., a display, keyboard, or pointer device), a graphics module 20 for generating graphical objects, and a communication module or network interface 22, which manages communication with other computer systems 26 via the Internet or other communications network or combination of networks 24. Each computer program can be a set of instructions or program code in a code module resident in the random access memory of the computer system. Until required by the computer system, the set of instructions may¬ be stored in the mass storage device or on another computer system and downloaded via the internet or other network.
[0068] Having thus described several illustrative embodiments, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to form a part of this disclosure, and are intended to be within the spirit and scope of this
disclosure. While some examples presented herein involve specific combinations of functions or structural elements, it should be understood that those functions and elements may be combined in other ways according to the present disclosure to accomplish the same or different objectives. In particular, acts, elements, and features discussed in connection with one embodiment are not intended to be excluded from similar or other roles in other embodiments.
[0069] Additionally, elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions. For example, the computer system may comprise one or more physical machines, or virtual machines running on one or more physical machines. In addition, the computer system may comprise a cluster of computers or numerous distributed computers that are connected by the Internet or another network.
[0070] Accordingly, the foregoing description and attached drawings are by way of example only, and are not intended to be limiting.
[0071] What is claimed is:
Claims
1. A computer-implemented method for analyzing an input text character string to identify one or more visually similar text character strings in a corpus of text character strings, the method comprising the steps, each performed by a computer system, of:
(a) receiving the input text character string;
(b) determining a scalar estimate for the input text character string based on a model of visually similar text characters stored in a computer storage system, said model comprising a plurality of look-alike sets of text characters, each set having an assigned numerical value;
(c) identifying a set of candidate text character strings from the corpus of text character strings stored in the computer storage system by comparing the scalar estimate of the input text character string with precalcuiated scalar estimates of each of said text character strings in the corpus, and selecting text character strings having scalar estimates within a given range of the scalar estimate of the input text character string;
(d) analyzing the input text character string with each of the candidate text character strings to determine a visual similarity score between the input text character string and each of the candidate text character strings; and
(e) identifying one or more candidate text character strings deemed to be most visually similar to the input text character string based on the similarity scores.
2. The method of claim 1, wherein the input text character string comprises a domain name in an e-mail message, and the method is used to identify fraudulent e-mail messages.
3. The method of claim 2, further comprising flagging the e-mail message when the similarity score of the one or more text character strings deemed to be most visually similar to the input text character string is within a given similarity threshold.
4. The method of claim 1, the scalar estimate of the input text character string is determined in step (b) based on the sum of the numerical val ue of each character in the input string, modified by its position in the string such that the numerical values of characters nearer to the start of the string are given greater weight than the numerical values of the characters nearer to the end of the string.
5. The method of claim 1, wherein the visual similarity scores determined in step (d) are based on individual character similarities, combinations of characters that look similar to individual characters, transposition of characters, and/or simple additions and deletions of characters.
6. The method of claim 1, wherein step (d) includes comparing characters of the input text character string with characters in each of the candidate text character strings using a table of look-alike sets, each set comprising visually similar characters.
7. The method of claim 1, wherein step (d) includes comparing characters of the input text character string with characters in each of the candidate text character strings using a ligature table mapping individual characters with a ligature character string having a similar visual appearance.
8. The method of claim 1, wherein determining a scalar estimate for the input text character string based on the model of visually similar text characters in step (b) comprises:
(i) discarding one or more characters in the input text character string that are identical to a preceding character;
(ii) assigning each remaining character the numerical value of the look-alike set it belongs to;
(iii) modifying the numerical value assigned to each character by multiplying the numerical value by the ratio of the distance of the character's position from the end of the input text character string and the full length of the input text character string; and
(iv) adding the modified numerical values assigned to each character to determine the scalar estimate.
9. The method of claim 1, wherein the text characters are partitioned into look- alike sets of characters that look similar, and the text characters are also partitioned into a ligature table mapping individual key characters to particular ligature character strings that look similar to the key characters,
wherein analyzing the input text character string with each of the candidate text character strings to determine a visual similarity score in step (d) comprises assigning a starting similarity score of 0.0, and starting at the first character in the input text character string and a first character in a candidate text character string, choosing for each
comparison iteration, one of the following options such that the visual similarity score is minimized:
(i) if the corresponding characters in the input text character string and the candidate text character string are identical, the similarity score is not changed and both string positions are advanced by one;
(ii) if the corresponding characters in the input text character string and the candidate text character string belong to the same look-alike set, the similarity score is increased by 0.1 and both string positions are advanced by one;
(iii) if the current character in the input text character string is a key character in the ligature table and the current and next characters in the candidate text character string are the corresponding ligature character string in the ligature table, the similarity score is increased by 0.1, the input text character string is advanced by one, and the candidate text character string is advanced by two;
(iv) if the current character in the candidate text character string is a key character in the ligature table and the current and next characters in the input text character string are the corresponding ligature character string in the ligature table, the similarity score is increased by 0.1, the candidate text character string is advanced by one, and the input text character string is advanced by two;
(v) if the current character in the candidate text character string is identical to the next character in the input text character string and the current character in the input text character string is identical to the current character in the candidate text character string, the similarity score is increased by 0.25 and both string positions are advanced by two;
(vi) if the current character in the input text character string is identical to the next character in the candidate text character string, the similarity score is increased by 0.5 and the input text character string position is advanced by one and the candidate text character string position is advanced by two;
(vii) if the current character in the candidate text character string is identical to the next character in the input text character string, the similarity score is increased by 0.5 and the candidate text character string position is advanced by one and input text character string position is advanced by two; and
(viii) otherwise, the similarity score is increased by 1.0 and both string positions are advanced by one;
wherein when one of the character strings is exhausted, the total number of characters remaining in the other string as added to the similarity score; and
wherein the final similarity score represents how visually similar the two character strings would appear on a computer screen, where two completely identical character strings would result in a similarity score of 0.0 and the more visually different the two character strings, the higher the similarity score.
10. A computer system, comprising:
at least one processor;
memory associated with the at least one processor; and
a program supported in the memory for analyzing an input text character string to identify one or more visualiy similar text character strings in a corpus of text character strings, the program containing a plurality of instructions which, when executed by the at least one processor, cause the at least one processor to:
(a) receive the input text character string;
(b) determine a scalar estimate for the input text character string based on a model of visually similar text characters stored in a computer storage system, said model comprising a plurality of look-alike sets of text characters, each set having an assigned numerical value;
(c) identify a set of candidate text character strings from the corpus of text character strings stored in the computer storage system by comparing the scalar estimate of the input text character string with precalculated scalar estimates of each of said text character strings in the corpus, and selecting text character strings having scalar estimates within a given range of the scalar estimate of the input text character string;
(d) analyze the input text character string with each of the candidate text character strings to determine a visual similarity score between the input text character string and each of the candidate text character strings; and
(e) identify one or more candidate text character strings deemed to be most visually similar to the input text character string based on the similarity scores.
11. The system of claim 10, wherein the input text character string comprises a domain name in an e-mail message, and the system is used to identify fraudulent e-maii messages.
12. The system of claim 11, wherein the program further comprises instructions for flagging the e-mail message when the similarity score of the one or more text character strings deemed to be most visually similar to the input text character string is within a given similarity threshold.
13. The system of claim 10, the scalar estimate of the input text character string is determined in (b) based on the sum of the numerical value of each character in the input string, modified by its position in the string such that the numerical values of characters nearer to the start of the string are given greater weight than the numerical values of the characters nearer to the end of the string.
14. The system of claim 10, wherein the visual similarity scores determined in (d) are based on individual character similarities, combinations of characters that look similar to individual characters, transposition of characters, and/or simple additions and deletions of characters.
15. The system of claim 10, wherein (d) includes comparing characters of the input text character string with characters in each of the candidate text character strings using a fable of look-alike sets, each set comprising visually similar characters.
16. The system of claim 10, wherein (d) includes comparing characters of the input text character string with characters in each of the candidate text character strings using a ligature table mapping individual characters with a ligature character string having a similar visual appearance.
17. The system of claim 10, wherein determining a scalar estimate for the input text character string based on the model of visually similar text characters in (b) comprises:
(i) discarding one or more characters in the input text character string that are identical to a preceding character;
(ii) assigning each remaining character the numerical value of the look-alike set it belongs to;
(iii) modifying the numerical value assigned to each character by multiplying the numerical value by the ratio of the distance of the character's position from the end of the input text character string and the full length of the input text character string; and
(iv) adding the modified numerical values assigned to each character to determine the scalar estimate.
18. The system of claim 10, wherein the text characters are partitioned into look-alike sets of characters that look similar, and the text characters are also partitioned into a ligature table mapping individual key characters to particular ligature character strings that look similar to the key characters,
wherein analyzing the input text character string with each of the candidate text character strings to determine a visual similarity score in (d) comprises assigning a starting similarity score of 0.0, and starting at the first character in the input text character string and a first character in a candidate text character string, choosing for each comparison iteration, one of the following options such that the visual similarity score is minimized:
(i) if the corresponding characters in the input text character string and the candidate text character string are identical, the similarity score is not changed and both string positions are advanced by one;
(ii) if the corresponding characters in the input text character string and the candidate text character string belong to the same look-alike set, the similarity score is increased by 0.1 and both string positions are advanced by one;
(iii) if the current character in the input text character string is a key character in the ligature table and the current and next characters in the candidate text character string are the corresponding ligature character string in the ligature table, the similarity score is increased by 0.1, the input text character string is advanced by one, and the candidate text character string is advanced by two;
(iv) if the current character in the candidate text character string is a key character in the ligature table and the current and next characters in the input text character string are the corresponding ligature character string in the ligature table, the similarity score is increased by 0.1, the candidate text character string is advanced by one, and the input text character string is advanced by two;
(v) if the current character in the candidate text character string is identical to the next character in the input text character string and the current character in the input text character string is identical to the current character in the candidate text character string, the similarity score is increased by 0.25 and both string positions are advanced by two;
(vi) if the current character in the input text character string is identical to the next character in the candidate text character string, the similarity score is increased by 0.5 and the input text character string position is advanced by one and the candidate text character string position is advanced by two;
(vii) if the current character in the candidate text character string is identical to the next character in the input text character string, the similarity score is increased by 0.5 and the candidate text character string position is advanced by one and input text character string position is advanced by two; and
(viii) otherwise, the similarity score is increased by 1.0 and both string positions are advanced by one;
wherein when one of the character strings is exhausted, the total number of characters remaining in the other string as added to the similarity score; and
wherein the final similarity score represents how visually similar the two character strings would appear on a computer screen, where two completely identical character strings would result in a similarity score of 0.0 and the more visually different the two character strings, the higher the similarity score.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17803417.9A EP3465455B1 (en) | 2016-05-23 | 2017-05-23 | Computer-implemented methods and systems for ldentifying visually similar text character strings |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/161,746 | 2016-05-23 | ||
US15/161,746 US10320815B2 (en) | 2016-05-23 | 2016-05-23 | Computer-implemented methods and systems for identifying visually similar text character strings |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017205369A1 true WO2017205369A1 (en) | 2017-11-30 |
Family
ID=60330609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2017/033995 WO2017205369A1 (en) | 2016-05-23 | 2017-05-23 | COMPUTER-IMPLEMENTED METHODS AND SYSTEMS FOR lDENTIFYING VISUALLY SIMILAR TEXT CHARACTER STRINGS |
Country Status (3)
Country | Link |
---|---|
US (1) | US10320815B2 (en) |
EP (1) | EP3465455B1 (en) |
WO (1) | WO2017205369A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180007070A1 (en) * | 2016-07-01 | 2018-01-04 | Mcafee, Inc. | String similarity score |
US10785260B2 (en) * | 2018-08-09 | 2020-09-22 | Morgan Stanley Services Group Inc. | Optically analyzing domain names |
GB2595245A (en) * | 2020-05-18 | 2021-11-24 | Tytonical Ltd | Systems and methods for transaction authorisation |
WO2022075929A1 (en) * | 2020-10-07 | 2022-04-14 | Ünsped Gümrük Müşavirliği Ve Lojistik Hizmetler A.Ş. | Visual word recognition and correction method |
US11856005B2 (en) | 2021-09-16 | 2023-12-26 | Centripetal Networks, Llc | Malicious homoglyphic domain name generation and associated cyber security applications |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421709B1 (en) * | 1997-12-22 | 2002-07-16 | Accepted Marketing, Inc. | E-mail filter and method thereof |
US20050262210A1 (en) * | 2004-03-09 | 2005-11-24 | Mailshell, Inc. | Email analysis using fuzzy matching of text |
US20120141031A1 (en) * | 2010-12-03 | 2012-06-07 | International Business Machines Corporation | Analysing character strings |
US20140115704A1 (en) * | 2012-10-24 | 2014-04-24 | Hewlett-Packard Development Company, L.P. | Homoglyph monitoring |
US20160004937A1 (en) * | 2014-07-07 | 2016-01-07 | General Electric Company | System and method for determining string similarity |
US20160092557A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8534671B2 (en) * | 2006-11-13 | 2013-09-17 | Igt | Gaming system, gaming device and method for providing draw poker game |
US20080162449A1 (en) * | 2006-12-28 | 2008-07-03 | Chen Chao-Yu | Dynamic page similarity measurement |
US8869269B1 (en) * | 2008-05-28 | 2014-10-21 | Symantec Corporation | Method and apparatus for identifying domain name abuse |
US8954519B2 (en) * | 2012-01-25 | 2015-02-10 | Bitdefender IPR Management Ltd. | Systems and methods for spam detection using character histograms |
US9245115B1 (en) | 2012-02-13 | 2016-01-26 | ZapFraud, Inc. | Determining risk exposure and avoiding fraud using a collection of terms |
US20160000493A1 (en) * | 2013-10-11 | 2016-01-07 | Hua Gao | Highly stable gear drive adapter |
US10565533B2 (en) * | 2014-05-09 | 2020-02-18 | Camelot Uk Bidco Limited | Systems and methods for similarity and context measures for trademark and service mark analysis and repository searches |
-
2016
- 2016-05-23 US US15/161,746 patent/US10320815B2/en active Active - Reinstated
-
2017
- 2017-05-23 WO PCT/US2017/033995 patent/WO2017205369A1/en unknown
- 2017-05-23 EP EP17803417.9A patent/EP3465455B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421709B1 (en) * | 1997-12-22 | 2002-07-16 | Accepted Marketing, Inc. | E-mail filter and method thereof |
US20050262210A1 (en) * | 2004-03-09 | 2005-11-24 | Mailshell, Inc. | Email analysis using fuzzy matching of text |
US20120141031A1 (en) * | 2010-12-03 | 2012-06-07 | International Business Machines Corporation | Analysing character strings |
US20140115704A1 (en) * | 2012-10-24 | 2014-04-24 | Hewlett-Packard Development Company, L.P. | Homoglyph monitoring |
US20160004937A1 (en) * | 2014-07-07 | 2016-01-07 | General Electric Company | System and method for determining string similarity |
US20160092557A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
Non-Patent Citations (1)
Title |
---|
See also references of EP3465455A4 * |
Also Published As
Publication number | Publication date |
---|---|
US20170339169A1 (en) | 2017-11-23 |
US10320815B2 (en) | 2019-06-11 |
EP3465455B1 (en) | 2022-04-13 |
EP3465455A4 (en) | 2020-01-01 |
EP3465455A1 (en) | 2019-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3465455B1 (en) | Computer-implemented methods and systems for ldentifying visually similar text character strings | |
US11356482B2 (en) | Message validation using machine-learned user models | |
Kumar et al. | Phishing website classification and detection using machine learning | |
US12041086B2 (en) | Message management platform for performing impersonation analysis and detection | |
Wash | How experts detect phishing scam emails | |
Ramanathan et al. | Phishing detection and impersonated entity discovery using Conditional Random Field and Latent Dirichlet Allocation | |
KR101150070B1 (en) | Method and system for detecting when an outgoing communication contains certain content | |
WO2016168427A1 (en) | System for analyzing susceptibility to social engineering and benchmarking based on characterization attribute and theme | |
WO2011139687A1 (en) | Systems and methods for automatically detecting deception in human communications expressed in digital form | |
Hidalgo et al. | Captchas: An artificial intelligence application to web security | |
US20190372998A1 (en) | Exchange-type attack simulation device, exchange-type attack simulation method, and computer readable medium | |
Ding et al. | Towards building a word similarity dictionary for personality bias classification of phishing email contents | |
Park | Text-based phishing detection using a simulation model | |
US11936686B2 (en) | System, device and method for detecting social engineering attacks in digital communications | |
Wang et al. | An exploration of the design features of phishing attacks | |
Kim et al. | Scam detection assistant: Automated protection from scammers | |
Kim et al. | Catch me, yes we can!-pwning social engineers using natural language processing techniques in real-time | |
Gardiner | Stegchat: a synonym-substitution based algorithm for text steganography | |
Palka et al. | Dynamic phishing content using generative grammars | |
Waddell | CatchPhish: A URL and Anti-Phishing Research Platform | |
RU2789629C1 (en) | System and method for detection of information attack | |
Fu | Web identity security: advanced phishing attacks and counter measures | |
Slawczyk et al. | How to improve blockchain for blogosphere? | |
EP3284002A1 (en) | System for analyzing susceptibility to social engineering and benchmarking based on characterization attribute and theme | |
Al-Ghawanmeh | A New Proposed Machine Learning Approach to Classify Twitter Users |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17803417 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017803417 Country of ref document: EP Effective date: 20190102 |