Сергей Полаженко - security testing: sql injection

Post on 04-Jun-2015

1.782 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад на SQA Days-9, Казань, 22-23 апреля 2011

TRANSCRIPT

Security Testing: SQL Injection

Сергей Полаженко, SQALab

Тестирование безопасности

Этапы тестирования безопасности

Уровни тестирования безопасности

• Нормативно-правовой

• Организационный

• Технический

• Физический

Основная проблема безопасности

Что такое SQL Injection

Что такое SQL Injection? (1/2)

Что такое SQL Injection? (2/2)

Почему SQL Injection (1/3)

Positive Technologies, 2009

SQL

Почему SQL Injection (2/3)

Positive Technologies, 2009

SQL

Почему SQL Injection (3/3)

Не обязательно web!

Как бороться?

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы: обучение

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы: дизайн приложения

• не хранить секреты в открытом виде

• принцип минимальных привилегий

• использовать параметрезированные запросы

• использовать хранимые процедуры

• сообщения об ошибках не должны содержать

служебной информации

Способы борьбы: Фильтры данных

Способы борьбы: Application Firewall

Способы борьбы: Application Firewall

Способы борьбы: Application Firewall

• www.owasp.org/index.php/Web_Application_Firewall

• Open Source:

– AQTronix - WebKnight

– Trustwave SpiderLabs - ModSecurity

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы: code review

• Экспертиза исходных текстов, как метод

тестирования безопасности и защищённости

программных продуктов

• http://software-testing.ru/library/testing/security/109

• http://securitywiki.ru/PraktikaJekspertizaIsxodnyxTekstov

?v=oqu

Способы борьбы: code review

• Patterns && Practices: Code Review

• http://msdn.microsoft.com/en-us/library/ff648637.aspx

Способы борьбы: code review

• Проверка входных данных

• Не использовать динамический sql (использовать

хранимые процедуры и параметризированные

запросы)

• Минимальные привилегии

• Секретные данные (поток данных)

Способы борьбы: code review

• Java EE – использовать PreparedStatement()

• .NET – использовать параметризованные запросы

при помощи SqlCommand() or OleDbCommand()

• PHP – использовать PDO с строго типизированными

парамтризованными запросами (использование

bindParam())

• SQLite – использовать sqlite3_prepare()

• и т.п.

• https://www.owasp.org/index.php/SQL_Injection_Prevent

ion_Cheat_Sheet

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы: input validation

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструментыПроверяйте входные

параметры

Способы борьбы: input validation

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Портрет типичного

пользователя

Dr. User Evil

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы: Continues integration checks

• Microsoft FxCop• "CA2100: Review SQL queries for security

vulnerabilities“

• Microsoft Source Code Analyzer for

SQL Injection

• Microsoft Code Analysis Tool for .Net

(CAT.NET)

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Тестирование: метод «черного ящика»

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Способы борьбы

• Профилактика– Обучение

– Дизайн приложения

– Code review

– Input validation

– Continues integration checks

• Тестирование– Черным ящиком

– Белым ящиком

– Серым ящиком

– Fuzzy

– Автоматизированные инструменты

Контакты

• polazhenko@gmail.com

• www.securitywiki.ru

• Polazhenko.moikrug.ru

top related