-
2016-02-16
14/529,857
2014-10-31
US 9,262,633 B1
2016-02-16
-
-
Karl D Frech
Additon, Higgins & Pendleton, P.A.
2034-10-31
Smart Summary: A barcode reader can sometimes scan codes that contain harmful information, which could lead to problems for the device it's connected to. To protect against these threats, the reader uses security software that checks the scanned data against a list of known dangers. If the data matches any threats on this list, it won't be sent to the connected device. This helps prevent malicious actions that could damage the device or compromise a larger network. Overall, this technology aims to enhance security when using barcode readers. 🚀 TL;DR
Indicia may include security threats that, when scanned by a barcode reader, may cause unwanted actions to be performed by a host device communicatively coupled to the barcode reader. To prevent these security threats from affecting the host device, security software running on a processor in the barcode reader or the host device compares the scanned data with items in a threat-signature library. Scanned data that match, at least part of, the threat signature library are blocked from being transmitted to the host device.
Get notified when new applications in this technology area are published.
G06F21/56 » CPC main
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems; Detecting local intrusion or implementing counter-measures Computer malware detection or handling, e.g. anti-virus arrangements
G06F21/564 » CPC further
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems; Detecting local intrusion or implementing counter-measures; Computer malware detection or handling, e.g. anti-virus arrangements; Static detection by virus signature recognition
G06F21/568 » CPC further
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems; Detecting local intrusion or implementing counter-measures; Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
G06K7/10821 » CPC further
Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
G06F2221/03 » CPC further
Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity Indexing scheme relating to , monitoring users, programs or devices to maintain the integrity of platforms
G06K7/10 IPC
Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
The present invention relates to barcode readers, and more specifically to a barcode reader configured for security against unwanted and/or malicious indicia.
Cyber security is an important concern for all computing devices, and managing the access to a computing device may help eliminate security breaches. Barcode readers typically have direct access to their host computing devices (i.e., host device). This access has traditionally allowed the barcode scanner to transmit large amounts of decoded data from printed indicia (e.g., barcodes) to the host device as a fast and convenient means for data entry. In recent years, indicia have become more sophisticated. Modern indicia may encode information for more than just data entry. For example, computing devices may allow information from a decoded indicium to alter data or start/end/alter a process running on the host device. This added functionality has created a security vulnerability.
Indicia are inscrutable without a barcode reader and are anonymous, having no links to their creator. These characteristics combined with a barcode reader's intimate access to the host device provide an opportunity for misuse. For example, an indicia encoded with malicious information could hijack a host device and cause unwanted actions, damage, or loss. If the host device is a part of a larger system (i.e., network of computers) then this risk becomes even more pernicious.
A need, therefore, exists for a barcode reader with security features to screen decoded indicia information (i.e., decoded data) and prevent threatening and/or risky information from being exposed to a host device and/or host system.
Accordingly, in one aspect, the present invention embraces a barcode reader. The barcode reader includes a barcode sensor for capturing barcode information, a memory for storing a security program, and a processor. The processor is communicatively coupled to the barcode sensor and the memory. The processor is configured by the security program to receive the barcode information and convert the barcode information into decoded data. The program further configures the processor to compare the decoded data with a threat-signature library stored in the memory. If the decoded data matches, at least part of, an item in the threat-signature library then the processor identifies the decoded data as a threat.
In an exemplary embodiment, the processor is configured by the security program to prevent the threat from being transmitted from the barcode reader. In some embodiments, the threat is deleted from the memory, while in others it is stored in the memory (i.e., quarantined).
In another exemplary embodiment, the barcode sensor includes a laser scanner for scanning a laser across a field of view, while in another embodiment the barcode sensor includes an imaging system for capturing images of a field of view.
In another exemplary embodiment, the barcode reader includes an input/output (IO) module (e.g., user interface) for transmitting/receiving information to/from a user. The IO module may be used in some embodiments to generate an alert when a threat has been detected. In possible embodiments, this alert may be an audible sound, a visual indication, and/or a prompt requiring a user to accept or reject the threat.
In another embodiment, the threat-signature library includes items having information that could cause a buffer overflow or could cause code injection.
In another aspect, the present invention embraces an indicia-reading system. The indicia-reading system includes a barcode reader for reading indicia and transmitting decoded data. The indicia-reading system also includes a host device communicatively coupled to the barcode reader via a data link. The host device has at least one processor configured by an interface-software program to block decoded data that meet one or more threat criteria stored on a computer-readable medium communicatively coupled to the host device and accessible to the interface-software program. In this way, the interface-software program prevents the decoded data from affecting other system and/or application software programs running on the host device.
In another aspect, the present invention embraces a method for blocking the transmission of threats from a barcode reader. The method includes scanning a barcode to obtain a scanned-barcode signal. The scanned-barcode signal is converted into decoded data that is compared with items in a threat-signature library. If the decoded data matches, at least part of, an item in the threat-signature library, then it is identified as a threat and its transmission from the barcode scanner is blocked.
The foregoing illustrative summary, as well as other exemplary objectives and/or advantages of the invention, and the manner in which the same are accomplished, are further explained within the following detailed description and its accompanying drawings.
FIG. 1 graphically depicts an indicia-reading system and a malicious barcode.
FIG. 2 schematically depicts a block diagram of an exemplary barcode reader including security features.
FIG. 3 schematically depicts a block diagram of an exemplary indicia-reading system including a host device running interface software to block data from malicious barcodes.
FIG. 4 depicts a flow chart of a method for blocking the transmission of threats from a barcode scanner.
As our society has become more dependent on computer systems, cyber security has become an important issue. An indicia reader (i.e., barcode reader, barcode scanner, etc.) has direct access to a host device (i.e., host computer, computer, etc.) since its primary purpose is to input data from an encoded barcode into an application running on the host device. This direct access may be exploited to gain access to the host device and/or alter data and/or processes on the host device.
Data encoded into an indicium (e.g., barcodes) may be scanned (i.e., read) by a barcode reader and transmitted directly to a host device. The host device typically accepts and processes the data without question. A vulnerability exists in this approach. Without proper security features, malicious data encoded into a barcode could cause unwanted results and/or unwanted behavior in the host device. Executable scripts, for example, could alter the way a program running on the host device operates. The altered program could cause erratic behavior, incorrect results, a system crash, or a security breach. The invention described herein addresses this problem via security features to detect threat data from a barcode and prevent this data from taking action on the host device.
Indicia are optical representations of data. There are many types of indicia for many applications. Indicia may be one-dimensional barcodes (e.g., Universal Product Code, UPC) having dark lines (i.e., bars) and light lines (i.e., spaces) of various widths arranged along a scan axis. Indicia may be two-dimensional matrix symbols (e.g., Aztec Code, Data Matrix, QR code, etc.) having a two dimensional array of light features, dark features, and (in some cases) alignment features. Some indicia may use color (e.g., HCCB) to encode data. Indicia are typically printed and affixed to an item. Often, the encoded information relates to the item on which the indicia is affixed. Electronically displayed indicia may replace printed indicia in some applications, especially in applications run on a smartphone with a display.
Indicia provide a convenient means to (i) transmit a large amount of information (i.e., data) to a host device or (ii) enable a process (e.g., launch a website) on the host device. The encoded information stored in the indicia maps to the indicia pattern through a symbology that specifies such things such as encoding patterns, start/stop patterns, quiet zones, checksums, and error correction. Symbologies are often freely available, and a user may easily create a barcode encoded with custom information for a particular application. For example, websites and/or contact information may be easily loaded into smartphone via a barcode.
Indicia have characteristics that make them attractive to hackers. The data stored in an indicium is inscrutable to a user without a scanner. There is no way to know what indicia may pose a threat before scanning. In addition, communication through indicia is anonymous. A printed indicium may have nothing to link it with the author. An individual can spread malicious code with little risk of identification.
Malicious attacks using indicia (i.e., barcodes) may take many forms. One form is code injection. Code injection is used to attack data-driven applications where malicious code (e.g., SQL statement) is inserted into a data entry field to cause some unwanted action. FIG. 1 illustrates a code injection threat. Here an indicium in the form of a QR-code 10 is used to transmit data and code instructions. The malicious QR-code 10 instructs the application (i.e., ACME Employee Management System) running on the host device 20 to delete a database of employees (i.e., DROP TABLE) when the employee's badge 12 is scanned with a barcode reader 24. Code injection attacks include (but are not limited to) SQL injection, html-script injection, Java-script injection, and ASP injection.
Other attacks, such as buffer overflow attacks, attempt to overwhelm a host device's memory (i.e., buffer) so data stored adjacent to the buffer is overwritten or so that data regarding the memory's organization is corrupted. This attack could result in the hacker taking over some memory in order to inject data and/or code. This data and/or code may then disable or hijack the host device.
Still other potential attacks use mobile code. Mobile code (e.g., Macros) is software transferred to a host device and executed without explicit installation by the recipient. This code can be encapsulated or embedded in the files transferred to the host device. The potential attacks using barcodes are numerous and varied. Other potential attacks include (but are not limited to) dynamic-evaluation vulnerabilities, include-file injections, and shell injections.
Applications running on a host device that utilize barcodes for input are vulnerable to the attacks described. The risk of damage from these attacks is high. Security features run locally on a barcode reader or an interface-software program run on the host computer may detect malicious indicia (i.e., barcodes) before they harm the host device. To accomplish this, the decoded data may be inspected for malicious attack patterns (i.e., threat signatures).
Threat signatures are typically stored on a computer-readable memory as part of a threat-signature library. Code-injection signatures, for example, might include key words and/or syntax. A SQL Injection attack might contain SQL specific keywords like “DROP TABLE” or “SELECT. Buffer overflows could be identified by attempts to exceed data storage limits and could be prevented by a restriction on input data to ensure that the buffer's memory allocation is not exceeded. In addition, templates may be part of the threat-signature library. These templates could restrict decoded data to certain formats and ensure that data output from the barcode scanner stays within the format the connected system is expecting. The threat-signature library may be updated from time to time to address new or changing threats.
If the decoded data matched at least part of an item in the threat-signature library (e.g., code injection key word) or meets some other threat criterion (e.g., does not match a stored template), then the data could be labeled as a threat and a responsive action could be taken. This responsive action might include the deletion of the threat, the storage of the threat (e.g., quarantine), or the prompting of a user to decide the fate of the threat.
An input/output (I/O) module integrated with the barcode reader could generate an alert when a threat is detected. This alert could be displayed via the I/O module as an audible sound, a visual indication, or a prompt requesting a user action (e.g., accept or reject the threat).
FIG. 2 illustrates a possible embodiment of a barcode reader 24 with security features. The barcode reader 24 includes a barcode sensor 25 for gathering scanning (i.e., reading) a barcode 26. The barcode sensor 25 may use a variety of techniques to read the barcode 26.
In one possible embodiment, the barcode sensor 25 includes a laser scanner for scanning a laser across a field of view 27. Here a collimated beam of laser light is swept back and forth along a scan-line 28 aligned with the barcode 26. As the light beam encounters the light and dark areas of the barcode 26, it is reflected back towards the barcode sensor 25 differently. The light areas of the barcode reflect more than the dark areas of the barcode. The reflected light is captured and detected by a light detector (e.g., photodiode) in the barcode sensor 25. The light detector converts the reflected light into a scanned-barcode signal. The scanned-barcode signal may be an electronic signal with a modulated amplitude corresponding to the barcode pattern. This modulated signal may be converted into decoded data by a processor 29 (e.g., one or more controller, digital signal processor (DSP), application specific integrated circuit (ASIC), programmable gate array (PGA), and/or programmable logic controller (PLC)) communicatively coupled to the barcode sensor 25.
In another possible embodiment, the barcode sensor 25 includes an image sensor (e.g., CCD, CMOS sensor, etc.) for capturing images of a field of view 27. To scan a barcode 26, the field of view 27 of the imager is positioned to contain the barcode 26 and an image is captured with the image sensor. The processor 29 communicatively coupled to the barcode sensor 25 converts the image of the barcode into decoded data.
The barcode reader 24 also includes a memory 30 (e.g., read-only memory (ROM), flash memory, a hard-drive, etc.) that stores information including a processor-executable software program for security (i.e., security program). The memory 30 may also include a threat-signature library 31 containing known threats (e.g., keywords, templates, code, syntax, etc.). The processor 29 may access the memory 30 to execute the steps of the security program.
The security program configures the processor 29 to receive the barcode information from the barcode sensor 25 as a scanned barcode signal (e.g., modulated analog signal or image). It then converts this scanned-barcode signal into decoded data (e.g., digital data representing the information stored in the barcode). The processor 29 then examines the decoded data and compares it with items in the threat-signature library 31. If the decoded data matches (at last part of) an item in the threat-signature library 31 (or meets some other criteria based on stored data in the library), then the decoded data is identified as a threat. Handling the threat depends on the particular embodiment.
Threats can be deleted or quarantined. Alternatively, the decision on how to handle a threat may be left to a user. In the embodiment in FIG. 1, an input/output (I/O) module 32 (e.g., user interface) may display threat alerts (e.g., visual and/or auditory alerts). Additionally, the I/O module 32 may be configured to prompt the user to classify a threat for an action (e.g., allow, delete, or store).
The subsystems in the barcode reader 24 are electrically connected via a couplers (e.g., wires or fibers) to form an interconnection subsystem 34. The interconnection system 34 may include power buses or lines, data buses, instruction buses, address buses, etc., which allow operation of the modules/subsystems and the interaction there between.
An exemplary indicia-reading system including a host device running interface software to block malicious data from barcodes is shown in FIG. 3. The barcode reader 24 may include a barcode sensor, a processor, a memory, an input/output module, and a communication module as described previously. The barcode reader 24 is communicatively connected to a host device via a wired or wireless data link 40. This interface may be accessed by a communication module 33 integrated with the barcode reader 24. In a wireless configuration, the communication module may communicate with a host device via a variety of communication protocols (e.g., IEEE 802.11, including WI-FI®, BLUETOOTH®, CDMA, TDMA, or GSM).
The barcode reader 24 is configured to read indicia (e.g., barcodes) and transmit decode data. The host device 20 (e.g., computer, mobile computing device, point of sale terminal, etc.) includes at least one processor 41 running system and/or application software. The processor 41 runs an interface-software program. The interface-software program may operate as an intermediary between the barcode reader 24 and application software and/or operating system software that use the barcode reader 24. The interface-software program configures the processor(s) 41 to block decoded data that meet at least one threat criterion. The blocking prevents the malicious data from altering software, data, or processes running on the host device. The threat criteria 43 are stored on a computer-readable memory 42 (e.g., read-only memory (ROM), flash memory, and/or a hard-drive) local to the host device or connected via a network. The threat criteria may include (but are not limited to) a template that the decoded data format must match; scripts or code that the decoded data must not include; or configuration settings that the decoded data must not include.
An exemplary method used to block the transmission of threats from a barcode scanner is shown in FIG. 4. The method starts with scanning a barcode 50 to obtain a scanned-barcode signal. The scanned-barcode signal is typically a digital image or a raw electronic signal. The next step in the process is to convert the scanned barcode signal into decoded data 51. The decoded data is typically digital data that represents the information stored in the barcode minus any extraneous information used for barcode decoding. The decoded data is compared 52 to a threat-signature library 53. If a match is obtained or if some other criterion is met, then the barcode information is blocked 54. The blocking may include the malicious data being blocked from transmission to a host device. Alternatively, the malicious data may be blocked from affecting data, processes, or functions linked to the host device. If the comparison 52 finds no correspondence to the threat-signature library, then the decoded data may be transmitted 55 to the host device and allowed to be used by the host device without restriction.
To supplement the present disclosure, this application incorporates entirely by reference the following commonly assigned patents, patent application publications, and patent applications:
In the specification and/or figures, typical embodiments of the invention have been disclosed. The present invention is not limited to such exemplary embodiments. The use of the term “and/or” includes any and all combinations of one or more of the associated listed items. The figures are schematic representations and so are not necessarily drawn to scale. Unless otherwise noted, specific terms have been used in a generic and descriptive sense and not for purposes of limitation.
1. A barcode reader, comprising:
a barcode sensor for capturing barcode information;
a memory for storing a security program;
a processor communicatively coupled to the barcode sensor and the memory, the processor configured by the security program to: (i) receive the barcode information, (ii) convert the barcode information into decoded data, (iii) compare the decoded data with a threat-signature library stored in the memory, (iv) identify the decoded data as a threat if the decoded data matches, at least part of, an item in the threat-signature library.
2. The barcode reader according to claim 1, wherein the processor is further configured by the security program to prevent the threat from being transmitted from the barcode reader.
3. The barcode reader according to claim 2, wherein the threat is deleted from the memory.
4. The barcode reader according to claim 2, wherein the threat is stored in the memory.
5. The barcode reader according to claim 1, wherein the barcode sensor comprises a laser scanner for scanning a laser across a field of view.
6. The barcode reader according to claim 1, wherein the barcode sensor comprises an imaging system for capturing images of a field of view.
7. The barcode reader according to claim 1 comprising an input/output (I/O) module for (i) receiving information from a user and (ii) transmitting information to the user.
8. The barcode reader according to claim 7, wherein the security program further configures the processor to (i) generate an alert when a threat has been detected and (ii) transmit the alert to the input/output module.
9. The barcode reader according to claim 8, wherein the alert comprises an audible sound.
10. The barcode reader according to claim 8, wherein the alert comprises a visual indication.
11. The barcode reader according to claim 8, wherein the alert comprises a prompt requesting a user to accept or reject the threat.
12. The barcode reader according to claim 1, wherein an item in the threat-signature library comprises information indicative of a buffer overflow.
13. The barcode reader according to claim 1, wherein an item in the threat-signature library comprises information indicative of code injection.
14. An indicia-reading system, comprising:
an barcode reader for reading indicia and transmitting decoded data;
a host device communicatively coupled to the barcode reader via a data link, wherein
the host device has at least one processor configured by an interface-software program to block decoded data that meet at least one threat criterion from effecting the host device,
wherein the at least one threat criterion is stored on a computer-readable medium communicatively coupled to the host device and accessible to the interface-software program.
15. The indicia-reading system according to claim 14, wherein the at least one threat criterion comprises a template that the decoded data format must match.
16. The indicia-reading system according to claim 14, wherein the at least one threat criterion comprises scripts or code that the decoded data must not include.
17. The indicia-reading system according to claim 14, wherein the at least one threat criterion comprises configuration settings that the decoded data must not include.
18. The indicia-reading system according to claim 14, wherein the barcode reader is a handheld barcode scanner.
19. The indicia-reading system according to claim 14, wherein the computing device comprises a point of sale system.
20. A method for blocking the transmission of threats from a barcode reader, the method comprising:
scanning a barcode to obtain a scanned-barcode signal;
converting the scanned-barcode signal into decoded data;
comparing the decoded data with items in a threat-signature library;
identifying the decoded data as a threat if the decoded data matches, at least part of, an item in the threat-signature library; and
blocking the threat from being transmitted from the barcode scanner.
21. The method according to claim 20, comprising the step of prompting a user to confirm that the decoded data is a threat before blocking the threat from transmission.