Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
Группа исследователей из Массачусетского технологического университета (MIT) опубликовала (PDF, 240 Кб) результаты изучения особенностей работы систем оптимизации кода современных компиляторов, способных привести к понижению безопасности приложений. В итоге, выявлены многочисленные факты, когда в процессе компиляции в машинный код из приложения исключаются блоки, бессмысленные с точки зрения оптимизатора, но важные для обеспечения безопасности. Например, компилятор исключает неопределённые или нестабильные участки кода, которые на деле могут выступать проверками на появление нулевого указателя или выхода за границы области памяти (например, оптимизатор может заменить «data + x = 0» если ранее была проверка «if (k Например, оптимизатор GCC удалит вторую проверку из следующего кода: … Читать далее Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях