초록
최근 들어 급증하고 있는 보안 관련 사고들로 인하여 개인정보 및 기업정보의 관리에 대한 대책 마련이 시급한 가운데 있다. 보안 관련 사고 가운데 SQL Injection 공격은 가장 널리 악용되고, 오래된 전통적인 해킹 기법 중 하나이다. 최근까지도 웹 해킹을 시도하는 유형 중에서 높은 비중을 차지하고 있으며 그 공격 형태 또한 복잡해지고 있다. 많은 site에서 SQL Injection 공격에 대한 보완을 하여 이전보다 피해가 많이 줄어들기는 했으나 SQL Injection 공격에 의한 악의적인 관리자 권한 획득 및 비정상적인 로그인 등으로 인하여 여전히 많은 피해가 발생하고 있다. 더욱이 향후 사물인터넷 및 센서 빅데이터 환경이 널리 보급되면 수많은 디바이스들과 센서들이 연결되고 데이터의 양이 폭발적으로 증가하게 될 것이다. 그렇게 되면 현재보다 SQL Injection 공격에 의한 피해 규모는 더욱 커질 것이다. SQL Injection 공격에 대응하기 위해서는 많은 시간과 비용이 발생하게 되므로 시스템의 성능을 떨어뜨리지 않으면서도 신속정확하게 SQL Injection 공격을 판별하여 방어해야 할 것이다. 본 논문에서는 SQL Injection 공격에 대응하기 위하여 데이터 분석 및 기계학습을 통하여 웹로그 데이터를 검사하여 비정상적인 패턴의 입력값인 경우 SQL 명령어의 실행 계획을 분석하여 정상적인 SQL 명령어와 비정상적인 SQL 명령어를 판별하는 방안을 제시한다. 실험 및 성능 평가를 위해 사용자의 입력 또는 SQL Injection 공격툴에 의하여 입력되는 값을 실시간으로 실행계획을 분석하여 효과적으로 차단할 수 있음을 보여주었다.
SQL Injection attacks are the most widely used and also they are considered one of the oldest traditional hacking techniques. SQL Injection attacks are getting quite complicated and they perform a high portion among web hacking. The big data environments in the future will be widely used resulting in many devices and sensors will be connected to the internet and the amount of data that flows among devices will be highly increased. The scale of damage caused by SQL Injection attacks would be even greater in the future. Besides, creating security solutions against SQL Injection attacks are high costs and time-consuming. In order to prevent SQL Injection attacks, we have to operate quickly and accurately according to this data analysis techniques. We utilized data analytics and machine learning techniques to defend against SQL Injection attacks and analyzed the execution plan of the SQL command input if there are abnormal patterns through checking the web log files. Herein, we propose a way to distinguish between normal and abnormal SQL commands. We have analyzed the value entered by the user in real time using the automated SQL Injection attacks tools. We have proved that it is possible to ensure an effective defense through analyzing the execution plan of the SQL command.