Study on Security Weakness of Barcode Devices

바코드를 이용하는 기기에서의 보안적 취약점 탐구

  • Published : 2017.10.25

Abstract

Barcode is widely being used in many places such as supermarket, cafeteria, library, etc. ISBN, Code 128, Code 39 are mainly used in barcode. Among them, Code 128 which is based on ASCII Code can transfer control letters that range from ASCII Code 0 to ASCII 32. Control letters intrinsically imply letters that are used to deliver information to peripheral devices such as a printer or communication joint, however, they play quite different roles if they are inputted on Windows. Generally, barcode devices doesn't verify input data, thus it enables people to tag any barcode that has specific control letters and execute the commands. Besides, most barcode recognition programs are using a database and they have more security weakness compared to other programs. On the basis of those reasons, I give an opinion that SQL Injection can attack barcode recognition programs through this study.

마트, 식당, 도서관 등 우리 주변 많은 곳에서 바코드가 사용되고 있다. 바코드는 주로 ISBN, Code128, Code39 등의 형식이 쓰이는데 그중 Code 128은 ASCII Code를 기반으로 하기 때문에 ASCII Code 0번부터 32번까지의 제어 문자를 바코드에 담을 수 있다. 제어 문자는 본래 프린터 또는 통신 접속구 등 주변 장치에 정보를 전달하기 위하여 사용되는 문자를 뜻하지만 Windows상에서 입력될 시 전혀 다른 역할을 한다. 주로 바코드 기기에서 입력 값을 검증하지 않으므로 이를 이용해 제어 문자를 담은 바코드를 태깅해 명령 프롬포트를 열고 명령을 실행할 수 있다. 또한 대부분의 바코드 인식 프로그램이 DB를 사용하고, 보안이 다른 프로그램들에 비해 취약하다는 점에서 SQL Injection 공격 가능성을 제시한다.

Keywords