Июль 2013 скачать эту статью как PDF

Вопрос: должны стартапы заботиться о безопасности приложения?

А. Многие из руководителей startup встречаюсь думают, что безопасность приложений только для крупных компаний, таких как банки и правительственные учреждения. В конце концов эти организации имеют много данных для безопасного, установленных репутации беспокоиться и надежных брендов для защиты. Стартапы не имеют эти вещи (пока), а также они имеют деньги, чтобы инвестировать в все, что не поможет им достичь следующего раунда финансирования. Они сосредоточены на привлечении клиентов для создания лучшего бренда. Таким образом это легко понять, почему стартапов может быть меньше, чем энтузиазма по поводу темы безопасности приложения. Однако по моему опыту, многие умные и успешных руководителей и кто не являются настолько быстры, чтобы закрыть тему. Стартапов, которые не уделяют достаточного внимания безопасности на ранних стадиях может не позднее извлечь выгоду из значения того, что они строят сейчас. Кроме того успешный стартап руководители признают ценность безопасности рынка дифференциатором.

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

Безопасность дизайн и архитектура

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

  1. Конфиденциальность: ограничение доступа к данным только тех, кто должен иметь доступ к этим данным.
  2. Целостность: обеспечение того, что данные не были изменены случайно или злонамеренно, либо в пути или на отдыхе.
  3. Доступность: обеспечение данных и систем, обслуживающих эти данные и при необходимости.
  4. Аутентификация: подтверждающий личность пользователя или системы и доказать, что они на самом деле, кто они утверждают, быть.
  5. Авторизация: обеспечение проверенного объекта имеет права доступа к ресурсам, которые они утверждают, что они имеют права доступа.
  6. Неотрекаемость: доказать, или нет сущности фактически совершил сделку, которую они утверждают, что сделали.

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

  1. Сопротивление: способность программного обеспечения противостоять нападениям. Принципы, которые помогают с сопротивлением атаки включают:
  • Обороны в глубине: строительство безопасности системы в слоях, таким образом, что результат больше, чем сумма его отдельных частей.
  • Атаки: сведение к минимуму поверхности атаки, те места, где злоумышленник может начать poking приложение ищет отверстия.
  • Наименьших привилегий: предоставление пользователям и обрабатывает только минимальный набор привилегий для выполнения их функций.
  1. Допуск: способность программного обеспечения терпеть неудачи. Принцип, который помогает с толерантностью атаки не удается надежно: очень важный дизайн принцип, который влечет за собой прогнозирование и обработки исключений в программном обеспечении, так что программное обеспечение не в конечном итоге в небезопасных состоянии в сценарии сбоя.
  2. Стойкость: способность программного обеспечения для изоляции атак и содержат ущерб в результате этих нападений. Принцип, который помогает с атаки устойчивости является разобщенности: объектно ориентированного программирования концепция, которая предполагает разделение различных модулей программного обеспечения. Если модуль нарушена, может в этом модуле и распространения не обязательно ко всему приложению.

Повышение уровня информированности и знаний

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

Компании должны пересмотреть их безопасности приложений осведомленности и безопасности дизайн. Запуск управления рисками, связанный может помочь даже просто зная, что проблема существует, или имеет важное значение. Айра Винклер (2012) утверждает, что осведомленность о безопасности может быть наиболее затратоэффективную меру безопасности. Многие недостатки кода происходит потому, что разработчики не хватает знаний о надлежащего безопасного кодирования и причин и последствий написания определенной строки кода в некотором роде.

Отличное место для начала повышения уровня осведомленности и знаний, принимая курсы, либо лично или через Интернет. Я также видел компании делают очень хорошо с «обед и учится» или аналогичные внутренние семинары с экспертами. Команды запуска можно также просмотреть списки общих недостатков в безопасности, такие как «Top 10 список», опубликованных открытых веб-приложений безопасности проекта, как для повышения информированности и оценки безопасности собственных приложений. Намеренно небезопасных приложений на разных языках, также доступны для тестирования и обучения; примером является WebGoat для приложений на основе Java веб.

Принятие мер через элементы управления

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

  1. Профилактическое управление: Эти элементы управления включают осознание безопасности, реализованных в предыдущем этапе и другие элементы управления. Примеры включают:
  • Контрольные списки безопасности: Контрольные списки представляют собой наиболее эффективные элементы управления безопасности, но их значение часто недооценивается, и они недостаточно. Контрольный список безопасности является просто список всех вещей, которые разработчик должен проверить перед принятием кода в репозитории. Полезные ресурсы включают в себя инструкции по написанию безопасного кода Mozilla и безопасного кодирования QA контрольный список, а также MSDN безопасного кода. Кроме того патч ++ предоставляет визуальный способ реализации контрольных перечней для защиты кода исправлений.
  • Проверка кода системы безопасности: Есть много проверки безопасности кода, но простейшая форма регулярного коллегиального обзора кода, настоянный с руководящими принципами безопасности и проверяет, развитые из контрольные списки безопасности, упомянутые выше. Наиболее всеобъемлющей формы является проверка кода полномасштабной системы безопасности, связанные с использованием автоматизированных средств и сценариев, а также ручной проверки кода. Проверка кода системы безопасности является одним из лучших элементов управления для жизненного цикла разработки программного обеспечения; Это может предотвратить наибольшее число недостатков в безопасности от делать его производства, и обеспечивают быстрый средства восстановления. Для моей упрощенной версии кода безопасности процесса обзора, увидеть Кусы (2013).
  1. Детектив элементы управления: Два наиболее общие детективный элементы управления в области безопасности приложений являются:
  • Тестирование на проникновение: с этим элементом управления, внутренней или внешней безопасности аналитик пытается подражать, что злоумышленник может сделать, чтобы искать уязвимости в данный кусок программного обеспечения, а затем пытается использовать их. Другие названия для этого типа контроля включают в себя оценку уязвимости, уязвимости сканирования или тестирования, но все они представляют более или менее же тип управления с различными уровнями полноты. Тестирование на проникновение является очень хорошим для измерения «hackability» приложения.
  • Брандмауэры веб приложений: это брандмауэры, которые отслеживают трафик идти в и из веб-приложения. В зависимости от возможностей брандмауэра Брандмауэр может блокировать потенциально входы и выходы, которые не соответствуют критериям, определенным в его наборе правил. Брандмауэры веб приложений часто являются популярным вариантом для защиты устаревших или скоро устаревшие приложения. Они также являются популярным выбором, чтобы обеспечить некоторую защиту для приложений, которые считаются слишком дорогостоящими, чтобы исправить.

Реализация процессов

После запуска команда осознает угрозы безопасности, рисков и нападений, которые имеют отношение к их применению, как только они знают, что нужно сделать для того, чтобы противостоять этим нападениям, и как только они реализуют несколько элементов управления, чтобы практически обеспечить осведомленность, следующий этап для осуществления систематического и поддающихся количественной оценке процесса во всех дисциплинах жизненного цикла разработки программного обеспечения для обеспечения меньше уязвимостей делает его производства. Существует несколько подходов к обеспечению жизненных циклов разработки программного обеспечения, такие как Microsoft SDL или инициативы, которые помогают интегрировать в существующие модели, такие как BSIMM и OpenSAMM безопасности.

Задача для любого процесса, является ли он на самом деле будет принят группами разработки, которые могут не приветствовать Добавление дополнительных процессов, если они воспринимают процесс вмешиваться с фактической работой написания кода (Тернер, 2011). Когда речь заходит о выборе процесс жизненного цикла разработки безопасного программного обеспечения или внедрения новых безопасности деятельности в существующие, я всегда предлагаю небольшой, но прогрессивные шаги. Ничто не является более опасным, чем для команды разработчиков шок вдруг навязывая тяжелые процессы.

Заключение

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

Рекомендуемое чтение

  • «Архитектура безопасности приложений» (Simhadri, 2001)
  • Инженерия программного обеспечения безопасности: Руководство для менеджеров проектов (Аллен соавт., 2008)
  • «Архитектура и вопросы проектирования для безопасного программного обеспечения» (SwA форум и рабочие группы, 2012)
Доля этой статьи:

Цитируете эту статью:

Оцените содержание: 
Нет голосов были поданы еще. Скажи свое слово!

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

Добавить новый комментарий

Обычный текст

  • Теги HTML не разрешены.
  • Адреса электронной почты и адреса страниц включите в ссылки автоматически.
  • Строки и параграфы переносятся автоматически.