Метод захисту систем управління базами даних від атаки SQL-ін’єкції на ідентифікатор
DOI:
https://doi.org/10.18372/2310-5461.52.16385Ключові слова:
SQL-ін’єкція, SQL-IDIASQL-IDIA, СУБД, ідентифікатор, база данихАнотація
У статті проведено огляд атак SQL-ін’єкції та SQL-ін'єкції на ідентифікатор у системах управління базами даних, визначено їх природу, загрози, які вони несуть, а також види цих атак. Також висвітлено новий метод захисту систем управління базами даних від атаки SQL-ін’єкції на ідентифікатор. Запропоноване рішення — функції, які можна додати до підготовлених операторів API: setColumnName: використовує назву стовпця та його індекс як аргументи та setTableName: використовує назву таблиці та його індекс як аргументи. Цей метод дозволяє підготувати оператори для заповнення плейсхолдерів іменами таблиць і стовпців, запобігає SQL-IDIA, не пропускає інформацію про схему, не має обмежень, які мають підходи, засновані на санітації вводу. Ці дві функції допомагають запобіганню системам управлінням бази даних від витоку конфіденційної інформації про базу даних, виконуючи операцію за замовчуванням, коли ім’я вхідного стовпця або таблиці не існує в базі даних. Наприклад, якщо ім’я стовпця використовується в певній функції і ім’я стовпця є недійсним, система управлінням бази даних упорядкуватиме результати за першим стовпцем таблиці. Ми розглядали лише назви таблиць і стовпців у нашому розширеному API, оскільки аналіз GitHub показав, що 96% конкатенованих ідентифікаторів були іменами таблиць і стовпців. У всіх експериментах нова функція setColumnName перевершила реалізацію динамічного білого списку. У двох експериментах реалізація статичного білого списку дещо перевершила функцію імені нового набору стовпців. Хоча цей спеціальний підхід має невелику перевагу в продуктивності, підходи до створення білого списку можуть внести нетривіальні складності в код програми та призвести до помилкових результатів. Нова функція setColumnName успішно запобігла всім цим атакам. Заповнення плейсхолдерів іменами стовпців є практичним та ефективним у порівнянні з існуючими спеціальними підходами, не створює додаткових витрат у порівнянні з існуючими функціями підготовленого оператора, і ефективний проти атак SQL-ін'єкції на ідентифікатор.
Посилання
D. S. Dakun Shen, Ian Markwood and Y. Liu, “Virtual safe: Unauthorized walking behavior detection for mobile devices,” IEEE Transactions on Mobile Computing, 2018 (eng).
OWASP, “Owasp top 10 – 2017 The ten most critical web application security risks.” https://www.owasp.org/index.php/Category: OWASP Top Ten Project, 2017 (eng).
J. A. Ligatti, D. Goldgof, C. Cetin, and J.-B. Subils, “Systems and methods for anonymous authentication using multiple devices,” June 28 2016. US Patent 9,380,058 (eng).
C. Cetin, J. Ligatti, and D. Goldgof, “SQL-Identifier injection attacks,” in 2019 IEEE Conference on Communications and Network Security (CNS) (IEEE CNS 2019), 2019 (eng).
D. Watson, “Web application attacks,” Network Security, vol. 2007, no. 10, pp. 10–14, 2007 (eng).
W. G. Halfond, J. Viegas, A. Orso, et al., “A classification of sql-injection attacks and countermeasures,” in Proceedings of the IEEE International Symposium on Secure Software Engineering, vol. 1, pp. 13–15, IEEE, 2006 (eng).
S. W. Boyd and A. D. Keromytis, “SQLrand: Preventing SQL injection attacks,” in Proceedings of the International Conference on Applied Cryptography and Network Security, pp. 292–302, 2004 (eng).
D. Ray and J. Ligatti, “Defining injection attacks,” in Proceedings of the 17th International Infomation Security Conference, pp. 425–441, 2014 (eng).
J. Grossman, S. Fogie, R. Hansen, A. Rager, and P. D. Petkov, XSS attacks: cross site scripting exploits and defense. Syngress, 2007 (eng).
J. Fonseca, M. Vieira, and H. Madeira, “Testing and comparing web vulnerability scanning tools for sql injection and xss attacks,” in 13th Pacific Rim international symposium on dependable computing (PRDC 2007), pp. 365–372, IEEE, 2007 (eng).
B. Eshete, A. Villafiorita, and K. Weldemariam, “Early detection of security misconfiguration vulnerabilities in web applications,” in 2011 Sixth International Conference on Availability, Reliability and Security, pp. 169–174, IEEE, 2011 (eng).
C. Joshi and U. K. Singh, “Security testing and assessment of vulnerability scannersin quest of current information security landscape,” International Journal of Computer Applications, vol. 145, no. 2, pp. 1–7, 2016 (eng).
C. Nagy and A. Cleve, “A static code smell detector for SQL queries embedded in java code,” in Proceedings of the IEEE International Working Conference on Source Code Analysis and Manipulation, pp. 147–152, 2017 (eng).