среда, 1 апреля 2020 г.

Профессии, кроме разработчиков, которым необходимо знать безопасность приложений.



Кто отвечает за безопасность программного обеспечения? Этот вопрос задавали многие в отрасли. Спрашивается почему, когда серьезные уязвимости программного обеспечения приводят к утечке данных или серьезным проблемам, некоторые могут захотеть узнать, кто виноват. Другие хотят знать, как предотвратить такие ошибки в будущем. Куда следует направлять ресурсы для предотвращения уязвимостей программного обеспечения?




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

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

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

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



Менеджеры проектов: приоритеты безопасности

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

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

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

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

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

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

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

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



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

Служба безопасности

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

Тестирование программного обеспечения - это не только функциональное тестирование, но и тестирование безопасности. Опытные группы по тестированию безопасности могут снять нагрузку с группы безопасности и дать группе безопасности дополнительный взгляд
Хорошие тестеры могут найти способы взломать систему, и злоумышленники часто могут использовать эти разрывы
Когда все, кто участвует в создании программного обеспечения, разделяют некоторую ответственность за безопасность, ваше программное обеспечение будет более безопасным. Не только разработчики нуждаются в безопасности. Они пишут код, но есть и другие игроки, которые влияют на безопасность конечного продукта. Группы безопасности, менеджеры проектов и команды QA могут внести свой вклад в создание продукта, который надежен и не содержит уязвимостей.






Комментариев нет:

Отправить комментарий