Шрифт:
– безопасность среды разработки;
– руководство по безопасности жизненного цикла разработки ПО:
• безопасность методологии разработки ПО;
• правила написания безопасного кода для каждого используемого языка программирования;
– требования безопасности в фазе проектирования;
– контрольные точки безопасности на этапах проектирования;
– безопасные хранилища;
– безопасность контроля версии;
– требуемые знания по безопасности ПО;
– способность разработчиков избегать, находить и фиксировать уязвимости.
Следует использовать безопасные методы программирования как для новых разработок, так и повторного использования сценариев кодирования, если применяемые для разработки стандарты невозможно изучить или не соответствуют лучшим практикам.
Следует изучить стандарты безопасного кодирования и, по возможности, использовать. Разработчиков следует обучить их использованию и проверять их использование путем тестирования и анализа кодирования.
Если разработка находится в аутсорсинге, организация должна убедиться, что аутсорсинговая организация применяет эти правила для безопасной разработки.
Разрабатываться могут также внутренние приложения, такие как офисные приложения, сценарии, браузеры и базы данных.
Управление изменением ИС
Меры и средства
Изменениями в системах в течение жизненного цикла разработки следует управлять, используя формальные процедуры управления.
Рекомендации по реализации
Формальные процедуры управления изменениями должны документироваться и обеспечивать уверенность в целостности систем, приложений и продуктов с самых ранних стадий разработки на протяжении всех последующих сопровождающих усилий.
Внедрение новых систем и серьезных изменений в действующие системы должно следовать формальному процессу документирования, детализации, тестирования, контроля качества и управляемой реализации.
Этот процеес должен включать оценку риска, анализ влияний изменений и конкретизацию необходимых мер безопасности. Этот процесс должен давать уверенность, что существующие процедуры безопасности и управления не скомпрометированы, программисты получили доступ только к тем частям системы, которые необходимы им для работы, и формальное соглашение и разрешение на любое изменение получено.
При практической возможности следует обеспечить интеграцию процедур управления изменениями ОС и приложений.
Процедуры управления изменениями должны включать (но не ограничиваться):
– ведение учета согласованных уровней полномочий;
– обеспечение изменений, введенных уполномоченными пользователями;
– анализ мер защиты и процедур целостности на предмет уверенности того, что они не скомпрометированы изменениями;
– идентификация всех субъектов ПО, информации, баз данных и аппаратных средств, требующих изменений;
– идентификация и выбор критического кода безопасности для минимизации вероятности проявления известных слабых мест безопасности;
– получение формального одобрения на детальные предложения по изменениям перед началом работы;
– одобрение уполномоченного пользователя всех изменений до их реализации;
– обновление комплекта системной документации после завершения каждого изменения, архивирование или удаление старой документации;
– управление версиями ПО для всех обновлений;
– изменение операционной документации и процедур пользователя происходит настолько, насколько это необходимо;
– внедрение изменений в согласованное время и без нарушений бизнес-процессов.
Изменение ПО может привести к изменению среды и наоборот.
Передовой опыт рекомендует проведение тестирования нового ПО в среде, отделенной от сред разработки и производства. Это позволяет контролировать новое ПО и дает дополнительную защиту операционной информации, которая используется для тестирования.
Автоматическое обновление системы обеспечивает быстроту и удобство этого процесса, но повышает риск для целостности и доступности системы. Автоматическое обновление не следует применять в критичных системах, поскольку оно может вызвать нарушение критичный приложений.
Анализ приложений после изменений операционной платформы
Меры и средства
После изменений операционной платформы следует провести анализ и тестирование критичных бизнес-приложений на предмет отсутствия негативного влияния на деятельность и безопасность организации.