Внедрение кода
- Внедрение кода — класс эксплойтов для компьютерной безопасности, при котором уязвимая программа изменяет ход выполнения из-за неверной интерпретации данных.
- Уязвимости при внедрении кода возникают из-за ненадежных данных, отправляемых приложению.
- Ошибки внедрения чаще всего обнаруживаются в SQL, LDAP, XPath, NoSQL-запросах, командах ОС, XML-анализаторах, SMTP-заголовках, аргументах программы и т.д.
- Внедрение кода может привести к потере или повреждению данных, отсутствию подотчетности или отказу в доступе.
- Инъекция иногда может привести к полному захвату хозяина.
- Методы внедрения кода популярны для взлома систем с целью получения информации, повышения привилегий или несанкционированного доступа.
- Внедрение кода может быть злонамеренно использовано для изменения значений в базе данных, установки вредоносного ПО, повышения привилегий и атаки на веб-пользователей.
- В 2008 году 5,66% всех уязвимостей были классифицированы как внедрение кода, в 2015 году этот показатель снизился до 0,77%.
- Доброкачественное и непреднамеренное использование внедрения кода может включать изменение поведения программы или системы, обнаружение ошибок внедрения и предотвращение атак с использованием HTML-кода.
- Предотвращение проблем с внедрением кода включает безопасную обработку ввода и вывода, использование API-интерфейсов с защитой от всех вводимых символов, проверку вводимых данных и кодирование входных данных.
- Примеры внедрения кода включают SQL-инъекцию, межсайтовый скриптинг, внедрение шаблона на стороне сервера, уязвимости для динамической оценки, инъекцию объекта, удаленный ввод файла, внедрение спецификатора формата, инъекцию оболочки и уязвимости для клиент-серверных систем.
Полный текст статьи: