Уязвима ли собственная IMS к инъекциям?
Как показано в этой статье, DB2 может быть уязвима для SQL-инъекций:
* Potential SQL injection if X, Y or Z host variables come from untrusted input
STRING "INSERT INTO TBL (a,b,c) VALUES (" X "," Y "," Z ")" INTO MY-SQL.
EXEC SQL PREPARE STMT FROM :MY-SQL END-EXEC.
EXEC SQL EXECUTE STMT END-EXEC.
У меня вопрос: уязвимы ли собственные команды IMS для таких (или подобных) инъекций? Например, вменяя злонамеренный ввод в команду ISRT DLI.
3 ответа
Это зависит от того, как вы планируете получить доступ к базе данных IMS.
Цитата из документа IBM.
Операторы SQL, которые вы запускаете через веб-интерфейс или интерфейс ISPF, выполняются как API прикладного программирования IMS в прикладной программе IMS SPUFI в z/OS®. Вы можете выбрать COBOL или Java™ для языковой среды для выполнения операторов SQL.
Если вы используете SQL, вы, возможно, уязвимы для SQL-инъекции.
Если вы используете собственные команды IMS, вероятно, нет. Но по-прежнему рекомендуется дезинфицировать ваши входные данные даже для собственных команд IMS.
Да, все базы данных SQL, которые поддерживают синтаксический анализ строки запроса SQL во время выполнения, восприимчивы к SQL-инъекции.
SQL-инъекция - это не недостаток технологии базы данных, это недостаток написанного вами клиентского кода, который создает строку запроса SQL.
Я член команды IBM IMS.
Вызовы IMS DL/I не являются динамическими и по этой причине не восприимчивы, как вызовы SQL. Для API-интерфейсов CALL xxxTDLI IMS нет риска внедрения. При этом программа COBOL может создавать риски, позволяя входным данным программы влиять на список SSA или параметры IOAREA, передаваемые в xxxTDLI. Таким образом, при программировании с использованием этих интерфейсов следует соблюдать правила безопасной разработки.
Нет, база данных IMS DL/I вообще не анализирует запись. Считайте это ранней версией базы данных NoSQL, такой как Cassandra. Ключ сегмента анализируется как двоичное значение, но вы не можете выполнять инъекции, как в базе данных SQL.
И в зависимости от навыков программистов /IMS-администраторов вектор атаки может быть закрыт путем ограничения диапазона доступных действий CRUD, доступных для программы, использующей PROCOPT на плате в PSB.
Большинство IMS-систем +DB2 используют статический SQL, поэтому оператор уже подготовлен и не уязвим для атак SQL-инъекций.