banner
Центр новостей
Мгновенная доставка

Аналитический центр по безопасности: для эффективной защиты кода проверяйте на каждом этапе

Jun 23, 2023

Максим Кабаков - Лучшее от Максима Кабакова

Прошло довольно много времени с тех пор, как я занимался программированием, и хотя я занимался программированием на машинном уровне, меня изначально учили Алголу и Фортрану, которые являются языками высокого уровня.

За 20 с лишним лет моей работы в области информационной безопасности и обеспечения безопасности проблема безопасного кодирования приобрела все большее значение. Многие успешные нарушения безопасности происходят именно из-за плохого кодирования и служебных процедур, но не следует упускать из виду роль операционной среды и любых фоновых служебных функций, они действительно могут иметь решающее значение.

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

Аналогично, выходные данные фрагмента кода должны поступать только из самого кода и отправляться в известные – проверенные – пункты назначения, и не разрешается использовать память за пределами выделенной. Сам код должен получать доступ и использовать только выделенные области памяти и системный ввод-вывод, служебные функции также должны очищать любые временные области памяти после использования.

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

ОС должна разрешать запуск только проверенного (сертифицированного или помеченного) кода, непроверенный код должен быть изолирован, запрещен запуск и вывод ошибок.

Следует отметить, что это может быть многоуровневая операция, когда, например, у вас есть хост-система и ОС, на которых работает несколько виртуальных хостов или поддерживается несколько контейнеров, не забывая, что виртуальный хост также может работать. несколько контейнеров создают очень сложную среду.

На рынке существует довольно много инструментов для тестирования программного обеспечения, контейнеров и ОС, но если у вашей организации нет собственного ИТ-отдела, который занимается разработкой, обслуживанием и развертыванием кода, вы, вероятно, захотите поручить любую необходимую работу по тестированию и проверке компетентному агентству.