Безопасность разработки программного обеспечения - Software development security

Безопасность, как часть процесс разработки программного обеспечения, это непрерывный процесс с участием людей и практик, обеспечивающий конфиденциальность, целостность и доступность приложений. Безопасное программное обеспечение - это результат процессов разработки программного обеспечения с учетом требований безопасности, в которые встроена безопасность, и поэтому программное обеспечение разрабатывается с учетом требований безопасности.[1]

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

Решение разработка программного обеспечения безопасность - это больше, чем просто технология.

Проблемы разработки программного обеспечения

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

Приложения могут содержать уязвимости безопасности что может быть представлено программисты намеренно или по неосторожности.

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

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

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

Основные принципы

Есть ряд основных руководящие принципы безопасности программного обеспечения. Знание заинтересованных сторон об этом и о том, как они могут быть реализованы в программном обеспечении, имеет жизненно важное значение для безопасности программного обеспечения. К ним относятся:

  • Защита от разглашения
  • Защита от переделки
  • Защита от разрушения
  • Кто делает запрос
  • Какие права и привилегии есть у запрашивающего
  • Способность строить исторические свидетельства
  • Управление конфигурацией, сессиями и ошибками / исключениями

Основные практики

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

  • Дезинфекция входных данных на стороне клиента и сервера
  • Кодировать запрос / ответ
  • Использовать HTTPS для записей домена
  • Используйте только текущие алгоритмы шифрования и хеширования
  • Не разрешать список каталогов
  • Не храните конфиденциальные данные в файлах cookie.
  • Проверить случайность сеанса
  • Установите флаги безопасности и HttpOnly в файлах cookie
  • Используйте TLS, а не SSL
  • Установите политику надежных паролей
  • Не храните конфиденциальную информацию в скрытых полях формы.
  • Проверьте функциональность загрузки файла
  • Установить безопасные заголовки ответа
  • Убедитесь, что сторонние библиотеки защищены
  • Скрыть информацию о веб-сервере

Тестирование безопасности

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

Резюме

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

Рекомендации

  1. ^ Защита корпоративных веб-приложений у источника: перспектива безопасности приложений, OWASP
  2. ^ Стюарт, Джеймс (2012). Сертифицированное CISSP профессиональное учебное пособие по безопасности информационных систем, шестое издание. Канада: John Wiley & Sons, Inc., стр. 275–319. ISBN  978-1-118-31417-3.