Безопасность разработки программного обеспечения - Software development security
Безопасность, как часть процесс разработки программного обеспечения, это непрерывный процесс с участием людей и практик, обеспечивающий конфиденциальность, целостность и доступность приложений. Безопасное программное обеспечение - это результат процессов разработки программного обеспечения с учетом требований безопасности, в которые встроена безопасность, и поэтому программное обеспечение разрабатывается с учетом требований безопасности.[1]
Безопасность наиболее эффективна, если она запланирована и управляется на всех этапах жизненный цикл разработки программного обеспечения (SDLC), особенно в критически важных приложениях или тех, которые обрабатывают конфиденциальную информацию.
Решение разработка программного обеспечения безопасность - это больше, чем просто технология.
Проблемы разработки программного обеспечения
В качестве технологии достижения, среды приложений становятся более сложными, а безопасность разработки приложений становится все более сложной задачей. Приложения, системы и сети постоянно подвергаются различным атакам безопасности, таким как вредоносный код или же отказ в обслуживании. Некоторые проблемы от безопасность разработки приложений точки зрения включают вирусы, троянские кони, логические бомбы, черви, агентов и апплеты.[2]
Приложения могут содержать уязвимости безопасности что может быть представлено программисты намеренно или по неосторожности.
Программное обеспечение, окружающая среда и оборудование контроль необходимы, хотя они не могут предотвратить проблемы, возникшие из-за плохой практики программирования. Использование проверки пределов и последовательности для проверки вводимых пользователями данных повысит качество данных. Несмотря на то, что программисты могут следовать передовым практикам, приложение все равно может выйти из строя из-за непредсказуемых условий и, следовательно, должно успешно обрабатывать неожиданные сбои, сначала регистрируя всю информацию, которую оно может захватить, для подготовки к аудиту. По мере повышения безопасности возрастают относительные затраты и административные накладные расходы.
Приложения обычно разрабатываются с использованием высокоуровневых языки программирования которые сами по себе могут иметь последствия для безопасности. Основные действия, необходимые для процесса разработки программного обеспечения для создания безопасных приложений и систем, включают: концептуальное определение, функциональные требования, контрольную спецификацию, анализ проекта, анализ кода и пошаговое выполнение, анализ тестирования системы, а также сопровождение и управление изменениями.
Создание безопасного программного обеспечения - это ответственность не только инженер-программист но также ответственность заинтересованных сторон, которые включают: руководство, менеджеров проектов, бизнес-аналитиков, менеджеров по обеспечению качества, технических архитекторов, специалистов по безопасности, владельцев приложений и разработчиков.
Основные принципы
Есть ряд основных руководящие принципы безопасности программного обеспечения. Знание заинтересованных сторон об этом и о том, как они могут быть реализованы в программном обеспечении, имеет жизненно важное значение для безопасности программного обеспечения. К ним относятся:
- Защита от разглашения
- Защита от переделки
- Защита от разрушения
- Кто делает запрос
- Какие права и привилегии есть у запрашивающего
- Способность строить исторические свидетельства
- Управление конфигурацией, сессиями и ошибками / исключениями
Основные практики
Ниже перечислены некоторые из рекомендуемых методы веб-безопасности которые более специфичны для разработчиков программного обеспечения.
- Дезинфекция входных данных на стороне клиента и сервера
- Кодировать запрос / ответ
- Использовать HTTPS для записей домена
- Используйте только текущие алгоритмы шифрования и хеширования
- Не разрешать список каталогов
- Не храните конфиденциальные данные в файлах cookie.
- Проверить случайность сеанса
- Установите флаги безопасности и HttpOnly в файлах cookie
- Используйте TLS, а не SSL
- Установите политику надежных паролей
- Не храните конфиденциальную информацию в скрытых полях формы.
- Проверьте функциональность загрузки файла
- Установить безопасные заголовки ответа
- Убедитесь, что сторонние библиотеки защищены
- Скрыть информацию о веб-сервере
Тестирование безопасности
Общие атрибуты тестирование безопасности включают аутентификацию, авторизацию, конфиденциальность, доступность, целостность, неотказуемость и отказоустойчивость. Тестирование безопасности необходимо, чтобы гарантировать, что система предотвращает несанкционированный доступ пользователей к ее ресурсам и данным. Некоторые данные приложений отправляются через Интернет, который проходит через ряд серверов и сетевых устройств. Это дает широкие возможности недобросовестным хакерам.
Резюме
Все системы безопасности реализуют меры безопасности в пределах программного обеспечения, аппаратное обеспечение, системы, и сети - каждый компонент или процесс имеет уровень изоляции для защиты самого ценного ресурса организации, которым являются ее данные. Существуют различные меры безопасности, которые могут быть включены в процесс разработки приложения для обеспечения безопасности и предотвращения несанкционированного доступа.
Рекомендации
- ^ Защита корпоративных веб-приложений у источника: перспектива безопасности приложений, OWASP
- ^ Стюарт, Джеймс (2012). Сертифицированное CISSP профессиональное учебное пособие по безопасности информационных систем, шестое издание. Канада: John Wiley & Sons, Inc., стр. 275–319. ISBN 978-1-118-31417-3.
- Стюарт, Джеймс (2012). Сертифицированное CISSP профессиональное учебное пособие по безопасности информационных систем, шестое издание. Канада: John Wiley & Sons, Inc., стр. 275–319. ISBN 978-1-118-31417-3.
- Отчет с семинара в Дагштуле 12401 Безопасность веб-приложений Под редакцией Ливена Десмета, Мартина Джонса, Бенджамина Лившиц и Андрея Сабельфельда, http://research.microsoft.com/en-us/um/people/livshits/papers%5Ctr%5Cdagrep_s12401.pdf
- Консорциум безопасности веб-приложений, Правило 80/20 для безопасности веб-приложений, Иеремия Гроссман, 2005 г., http://www.webappsec.org/projects/articles/013105.shtml
- Страница Википедии о безопасности веб-приложений, Безопасность веб-приложений
- Wiki-страница веб-безопасности, https://www.w3.org/Security/wiki/Main_Page
- Страница Википедии об уязвимостях веб-безопасности, Категория: Эксплойты веб-безопасности
- Открытый проект безопасности веб-приложений (OWASP), https://www.owasp.org/index.php/Main_Page
- Страница Википедии о сетевой безопасности, Сетевая безопасность
- Веб-сайт Open Web Application Security Project (OWASP), https://www.owasp.org/images/8/83/Securing_Enterprise_Web_Applications_at_the_Source.pdf