Категории

Язык
Область
Интерпретатор

31 августа 2017 г. 12:23 (ред. 31 августа 2017 г. 12:23)
Коротко о свежем PEP 551, которое проходит обсуждение в данный момент
На прошлой неделе Стив Доуэр, обычно двигающий PEP, связанные с Windows, выступил с очередным предложением.

В PEP 551 «Прозрачность безопасности для среды исполнения Python» предлагается добавить методы программного интерфейса, которые позволили бы цепляться к различным функциям, расположенным глубоко в Питоне. Предполагается, что такое нововведение позволит приложениям, написанным на Питоне, проходить аудит безопасности.

В тексте упомянутого предложения по улучшению утверждается, что отсутствие возможности аудита заставляет некоторые (неназванные, впрочем) компании отказаться от использования языка, а также является причиной популярности Питона у злоумышленников.

В текущей версии документа предлагается ввести два базовых механизма для аудита.
1. Интерфейсные методы (как на уровне Си, так и на уровне Питона) для установки и выполнения зацепов в произвольных местах. Зацепившись своей функцией-обработчиком можно будет произвести нужные действия вплоть до вызова исключения.
2. Метод для проверки файлов перед исполнением, который предлагается использовать, например, на стадии импорта модуля. Таким способом можно, скажем, проверить файл на наличие сигнатуры опасного кода.

Помимо прочего, в тексте приведена таблица, с упоминанием функций, в которых предлагается разместить зацепы. Некоторые из указанных функций довольно нагружены.

С одной стороны предпосылки для появления такого механизма понятны, с другой — реализация его в предлагаемом виде, вполне вероятно, приведёт к падению производительности. Поэтому оправданность остаётся под вопросом.

Примечательно, что документ заканчивается внушительным разделом «Рекомендации», в котором написано, как нужно и как не нужно использовать описываемые механизмы. Кажется очевидным, что эти рекомендации прочтут немногие и ещё меньшее количество будет их придерживаться.

В общем, посмотрим, во что это выльется.

Следим за безопасностью.