6.2.4
Определенные Требования к Подходу:
Методы разработки программного обеспечения или другие методы определяются и используются персоналом по разработке программного обеспечения для предотвращения или смягчения распространенных программных атак и связанных с ними уязвимостей в программном обеспечении на заказ и на заказ, включая, но не ограничиваясь следующим:
- Инъекционные атаки, включая SQL, LDAP, XPath или другие ошибки типа команд, параметров, объектов, ошибок или ошибок типа инъекций.
- Атаки на данные и структуры данных, включая попытки манипулировать буферами, указателями, входными данными или общими данными.
- Атаки на использование криптографии, включая попытки использовать слабые, небезопасные или неподходящие криптографические реализации, алгоритмы, наборы шифров или режимы работы.
- Атаки на бизнес-логику, включая попытки злоупотребления или обхода функций и функциональных возможностей приложения посредством манипулирования API, протоколами и каналами связи, клиентскими функциями или другими системными/прикладными функциями и ресурсами. Это включает в себя межсайтовые скрипты (XSS) и подделку межсайтовых запросов (CSRF).
- Атаки на механизмы контроля доступа, включая попытки обойти или злоупотребить механизмами идентификации, аутентификации или авторизации, или попытки использовать слабые места в реализации таких механизмов.
- Атаки с использованием любых уязвимостей “высокого риска”, выявленных в процессе идентификации уязвимостей, как определено в требовании 6.3.1.
Цель Индивидуального подхода:
Сделанное на заказ и изготовленное на заказ программное обеспечение не может быть использовано с помощью обычных атак и связанных с ними уязвимостей.
Примечания по применению:
Это относится ко всему программному обеспечению, разработанному для организации или для ее собственного использования. Это включает в себя как индивидуальные, так и индивидуальные sof
Определенные Процедуры Тестирования Подхода:
- 6.2.4 Изучить документированные процедуры и провести собеседование с ответственным персоналом по разработке программного обеспечения, чтобы убедиться, что методы разработки программного обеспечения или другие методы определены и используются разработчиками индивидуального и заказного программного обеспечения для предотвращения или смягчения всех распространенных программных атак, как указано в этом требовании.
Цель:
Обнаружение или предотвращение распространенных ошибок, приводящих к уязвимому коду, как можно раньше в процессе разработки программного обеспечения снижает вероятность того, что такие ошибки попадут в производство и приведут к компрометации. Наличие формальных инженерных методов и инструментов, встроенных в процесс разработки, позволит выявить эти ошибки на ранней стадии. Эту философию иногда называют “смещением безопасности влево”.
Надлежащая практика:
Как для индивидуального, так и для пользовательского программного обеспечения организация должна обеспечить разработку кода с упором на предотвращение или смягчение распространенных программных атак, включая:
- Попытки использовать распространенные уязвимости в кодировании (ошибки).
- Попытки использовать недостатки дизайна программного обеспечения.
- Попытки использовать недостатки реализации/конфигурации.
- Атаки с перечислением – автоматизированные атаки, которые активно используются в платежах и злоупотребляют механизмами идентификации, аутентификации или авторизации. См. Статью в блоге PCI Perspectives “Остерегайтесь атак на тестирование учетных записей”.
Исследование и документирование методов разработки программного обеспечения или других методов помогает определить, как разработчики программного обеспечения предотвращают или смягчают различные программные атаки с помощью функций или контрмер, которые они встраивают в программное обеспечение. Это может включать механизмы идентификации/аутентификации, контроль доступа, процедуры проверки входных данных и т.д. Разработчики должны быть знакомы с различными типами уязвимостей и потенциальных атак и использовать меры, чтобы избежать потенциальных векторов атак при разработке кода.
Примеры:
Методы включают автоматизированные процессы и методы, которые сканируют код на ранней стадии цикла разработки, когда код проверяется для подтверждения отсутствия уязвимостей.