Существуют ли лучшие практики тестирования безопасности в рамках Agile-разработки?

Что касается Agile-разработки, каковы лучшие практики тестирования безопасности на каждом релизе?

Если это ежемесячный релиз, есть ли магазины, проводящие пен-тесты каждый месяц?

What' s Ваша прикладная область? Это зависит.

Так как Вы использовали слово " Agile" I' m предполагающий it' s веб-приложение. У меня есть хороший легкий ответ для Вас.

Пойдите покупают копию Номера люкс Отрыжки (it' s № 1 результат Google для " burp"---верное одобрение!); it' ll стоят Вам 99EU, или ~ $180, или Долларам Обамы за 98$, если Вы ждете до ноября.

Отрыжка работает веб-полномочием. Вы просматриваете свое веб-приложение, используя Firefox или IE или что бы то ни было, и это собирает все хиты, которые Вы производите. Эти хиты питаются особенность, названную " Intruder" который является сетью fuzzer. Злоумышленник выяснит все параметры, которые Вы предоставляете каждому из Ваших укладчиков вопроса. Это тогда попробует сумасшедшие ценности за каждый параметр, включая SQL, файловую систему и метазнаки HTML. На типичной сложной почте формы это собирается произвести приблизительно 1 500 хитов, который you' взгляд ll до определяет страшный---или, что еще более важно, в Проворном контексте, новых---ошибочных ответах.

Fuzzing каждый укладчик вопроса в Вашем веб-приложении при каждом повторении выпуска - вещь № 1, которую Вы можете сделать, чтобы улучшить прикладную безопасность, не устанавливая формальный " SDLC" и добавление общего количества сотрудников. Кроме того, рассмотрите свой кодекс для крупнейших веб-горячих точек безопасности приложения:

  • Использование только параметризовало подготовленные заявления SQL; don' t когда-либо просто связывают последовательности и кормят ими Вашу ручку базы данных.

  • Отфильтруйте все исходные данные к белому списку известных хороших знаков (alnum, основная пунктуация), и, что еще более важно, произведите данные о фильтре от Ваших результатов вопроса до " neutralize" метазнаки HTML к предприятиям HTML (цитата, лейтенант, gt, и т.д.).

  • Используйте долгие случайные трудные к предположению идентификаторы где угодно you' ре, в настоящее время используя простые ID ряда целого числа в параметрах вопроса, и удостоверяется пользователь X can' t видят пользователя Y' s данные только, предполагая те идентификаторы.

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

  • Включите защиту XSRF в своей веб-стопке, которая произведет скрытые параметры символа формы на всех Ваших предоставленных формах, чтобы препятствовать тому, чтобы нападавшие создали злонамеренные связи, которые представят формы для не подозревающих пользователей.

  • Используйте bcrypt---и ничто иное---, чтобы сохранить крошившие пароли.

Комментарии (0)

Я не эксперт в области Agile-разработки, но я полагаю, что интеграция некоторых базовых программ автоматизированного перового тестирования в ваш цикл сборки была бы хорошим началом. Я видел несколько программных пакетов, которые выполняют базовое тестирование и хорошо подходят для автоматизации.

Комментарии (0)

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

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

Комментарии (1)

модульное тестирование, защитное программирование и много журналов

Unit testing

Проводите модульное тестирование как можно раньше (например, пароль должен быть зашифрован перед отправкой, SSL-туннель работает и т.д.). Это не позволит вашим программистам случайно сделать программу небезопасной.

Защитное программирование

Я лично называю это параноидальным программированием, но Википедия никогда не ошибается (сарказм). По сути, вы добавляете тесты к вашим функциям, которые проверяют все входные данные:

  • действительны ли cookies пользователя?
  • вошел ли он в систему?
  • защищены ли параметры функции от SQL-инъекций? (даже если вы знаете, что входные данные генерируются вашими собственными функциями, вы все равно проверите их).

Залогинивание

Записывайте все в журнал как сумасшедший. Легче удалить логи, чем добавить их. Пользователь вошел в систему? Запишите это в журнал. Пользователь нашел страницу 404? Зафиксируйте это. Администратор отредактировал/удалил сообщение? Зафиксируйте это. Кто-то получил доступ к закрытой странице? Зафиксируйте это.

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

Комментарии (0)