ݺߣ

ݺߣShare a Scribd company logo
Андрей Сомсиков
andrey.somsikov@gmail.com
 Не используйте лабораторные машины для
тестирования на безопасность
◦ Требуется разрешение от лаборанта
 Последствия
◦ Лишение прав доступа
◦ Переустановка OS
 Создание безопасного ПО
 Написание безопасного кода
 Обзор решения Microsoft
 Безопасность (Security)
◦ Is the condition of a system that results from the
establishment and maintenance of measures to
protect the system.
◦ Security is an aspect of a product, not a feature.
◦ Устойчивость к воздействиям.
 Защита персональных данных (Privacy)
◦ Право на неприкосновенность частной жизни.
 Угроза (англ. threat) – возможная опасность.
 Риск (англ. risk) – количественная оценка
угрозы.
Обзор
 ПО получает все большее распространение
◦ Банковские и финансовые системы
◦ Государственные системы
◦ Персональные системы
 Рост киберпреступности
◦ Повышение профессионализма хакеров
◦ Появление новых бизнес моделей
◦ Низкий уровень компьютерной грамотности
пользователей
 Проблемы безопасности обходятся дорого
◦ Security incident handling (≈$100K-$500K)
◦ Негативное и широкое освещение в прессе
◦ Недовольство пользователей
 Жизненный цикл разработки ПО
◦ Разбиение процесса на стадии
◦ Нет общепринятого стандарта:
 Microsoft SDL (http://msdn.microsoft.com/security)
 Intel SDL
 Безопасность должна быть на всех стадиях:
◦ Тренинги по безопасности
◦ Моделирование угроз
◦ Тестирование на безопастность
◦ ...
Проектирование Написание Тестирование Поддержка
 Анализируют уязвимые места дизайна или
реализации ПО:
◦ Исследуют взаимодействие с системой
◦ Собирают и анализируют выходные данные
◦ Изучают компоновку системы и потоки данных
◦ Ищут применимость опубликованных атак и
уязвимостей
 Инструменты
◦ SoftIce, WinDBG, OllyDebug, gdb/kdb, сетевые
сканеры, ...
◦ Dump памяти, depends, dumpbin
(дисассемблирование), декомпиляторы, ...
◦ Fuzzers – подача случайных входных данных
разработка безопасного кода
 Проверка входных данных
◦ “All input is evil, until proven otherwise”
◦ Проверяйте неправильность входных данных:
 Формат, длина, тип, интервал
 Уменьшай площадь атаки
◦ Используй только необходимые сервисы и
оганичивай время их использования
 Файлы, устройства, сторонние компоненты
◦ Все методы взаимодействия с ПО должны быть
документированы и протестированы
 Отсутствие «секретного» API или скрытой
функциональности
 Использовать минимально необходимые
привилегии
◦ Проверяй запуск приложения с
пользовательскими правами доступа:
 user/guest, доступ к системным папкам
 User Account Control (UAC) должен быть включен
 Многоуровневая защита
◦ Несколько уровней защиты ПО повышают
стойкость к взлому
 Firewall, проверка входных данных, аутентификация
и авторизация.
 Неизвестность≠ Защищенность
◦ Сокрытие может быть только дополнительным
уровнем защиты.
 Готовность к нештатным ситуациям
◦ Ошибка не должна приводить систему в
небезопасное состояние.
◦ Сообщение об ошибках не должно бфть слишком
детальным
 «Неверное имя пользователя или пароль»
◦ Журнал ошибок должен быть доступен только
авторизованным пользователям
 Тесты на безопасность
◦ Тесты на распространенные ошибки
◦ Проверки на недокументированное поведение
◦ ...
 Учеба на ошибках
◦ Документируй и анализируй ошибки
разработка безопасного кода
 Переполнение буфера - происходит при
записи данных в память за границу
выделенной области:
◦ На стеке (stack)
◦ В динамической памяти (heap)
 Сложно но возможно в managed коде (C#,
Java)
 Цели:
◦ Исполнение вредоносного кода,
◦ Получение доступа к информации,
◦ Нарушение стабильной работы.
Buffers Other vars
EBP
EIP
Args
void func(char *p, int i) {
int j = 0;
CFoo foo;
int (*fp)(int) = &func;
char b[128];
strcpy(b,p);
}
Адрес возврата
функции
Обработчики исключений
Указатели на функции
Виртуальные методы
Задают порядок
исполнения кода
Исполнения вредоносного кода
возможно если * p будет
больше буфера b 16
• Пример 2:
#define MAX (50)
char szDest[MAX];
strncpy(szDest,pszSrc,MAX);
• Пример 1:
// Code verifies pszSrc is <= 50 chars)
// pszSrc is a char *
#define MAX (50)
char *pszDest = malloc(sizeof(pszSrc));
strncpy(pszDest,pszSrc,MAX);
17
Переполнение буфера
возможно даже при
использованиии n-функций
sizeof(pszSrc) 4 байта,
а не 50
szDest не будет null-
terminated если
длина pszSrc >= MAX
Уязвимость в модуле mod_ssl (версии до 2.8.10).
...
char *cp;
char caCmd[1024];
char *cpArgs;
...
cp = (char *)oline;
for (i = 0; *cp !=' ' && *cp !='t' && *cp != NUL && i < 1024; )
caCmd[i++] = *cp++;
caCmd[i] = NUL;
cpArgs = cp;
...
Возможно выполнение произвольного кода.
^^^^^^^^
Поиск и
исправление
ошибок
переаолнения
буфера
Уменьшить
площадь атаки
Security Code
Review – Поиск
уязвимостей до
выпуска продукта
Использовать
более безопасную
функциональность
(strsafe, Safe CRT,
STL)
Опции сборки
кода: /GS, NX,
Heap Checking, ...
Инструменты для
анализа кода на
безопасность
FuzzTesting -
Тесты со
случайными
входными
данными
19
 Переполнение (overflow/underflow).
unsigned int a = 0xefffffff;
unsigned int b = a + 2;
 Потеря или приобретение знака
int c = a
 Потеря старших разрядов
char d = a;
20
Арифметические ошибки приводят к
переполнению буфера
void Example(char * str, int size)
{
char buf[80];
// Check to make sure size is ‘valid’
if (size < sizeof(buf))
{
// Should be safe to copy str
strcpy(buf,str);
}
}
21
 Тщателно проверяйте вычисления сдвигов в
массивах, адресов памяти
 Используйте беззнаковые типы для:
◦ Индексов
◦ Размеров буферов
◦ Closely examine any calculation used to determine
an array offset or memory location
 Обращайте внимания на предупреждения b
ошибки компилятора а также на иструкции
по отключению ошибок (#pragma)
22
 Данные представленые по разному могут
быть эквивалентны:
◦ filename_secret.ext ≡ filena~1.ext
◦ www.site.ru/secret ≡ www.site.ru/%73ecret
 Проблемы с использованием канонических
представлений: проверки безопасности
ориентированы на одно представление
данных, хотя фактически может быть
использовано другое
23
Используются для обхода проверок
SecretFile.txt
SecretFile.txt.
Secret~1.txt
SecretFile.txt::$Data
String FileName = System.Console.ReadLine();
if (FileName.ToLower().Equals(“secretfile.txt”))
{
// deny access to file
}
else
{
// grant access to file
}
24
Именем файла может
быть “Secret~1.txt”
или
“SecretFile.txt::$Data”?
• Приводите к канонической форме перед
использованием или проверкой.
• Используйте возможности операционной
системы для приведения к канонической
форме
• Используйте регулярные выражения для
поиска запрещенных символов
25
 Только правильное использование
криптографии позволит защитить данные и
скрыть секреты
◦ Некоторые алгоритмы признаны взламываемыми:
MD4, MD5, RC4, DES, SHA1.
◦ Существуют атаки на некоторые реализации
алгоритмов: RSA, AES
◦ NIST – как правильно применять алгоритмы
 Проблемы хранения, использования и
уничтожения секретных данных в памяти.
 Генерация случайных данных.
 Используйте стандартные реализации
алгоритмов SSL, CryptoAPI.
 Не разрабатывайте собственный алгоримы
- используйте проверенные.
 Используйте правильные генераторы
случайных чисел.
 Обновляйте ключи переодически.
 Используйте специальные функции для
очиски памяти SecureZeroMemory.
 DOS Attck – Атака на систему призванная
привести к отказу в обслуживании
 Остновные векторы атаки:
◦ Остановка или падение системы (проверка
входных данных, переполнение буфера,
арифметическая ошибка)
◦ Перегрузка CPU
◦ Нехватка памяти, ресурсов
◦ Загрузка сети
 Аутентификация и авторизация
◦ Доступ к ресурсам должны иметь только
авторизованные пользователи.
 Фильтрация
◦ Проверка входных данных
 Ограничения
◦ Не позволять использовать максимальное
количество ресурса.
 http://msdn.microsoft.com/ru-
ru/magazine/cc163518.aspx - Безопасные
привычки: 8 простых правил для
разработки более безопасного кода
 http://msdn.microsoft.com/ru-
ru/security/default.aspx - Центр
безопасности
 http://www.microsoft.com/security/sdl/defa
ult.aspx - Microsoft Security Development
Lifecycle

More Related Content

What's hot (20)

Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Alexey Kachalin
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтов
Eugene Fidelin
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.
Dmitry Evteev
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Expolink
Чего не хватает в современных ids для защиты банковских приложений
Чего не хватает в современных ids для защиты банковских приложенийЧего не хватает в современных ids для защиты банковских приложений
Чего не хватает в современных ids для защиты банковских приложений
SelectedPresentations
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТПPositive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
Expolink
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
Dmitry Evteev
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
Expolink
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
defcon_kz
Как банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасностьКак банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасность
Andrey Apuhtin
McAfee Data Protection 2014
McAfee Data Protection 2014McAfee Data Protection 2014
McAfee Data Protection 2014
Vladyslav Radetsky
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
Expolink
Sqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstmSqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstm
Alexei Lupan
Исследовательская лаборатория фирмы «анкад»
Исследовательская лаборатория фирмы «анкад»Исследовательская лаборатория фирмы «анкад»
Исследовательская лаборатория фирмы «анкад»
Ancud Ltd.
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
Dmitry Evteev
Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Сервисы ИБ как ответ на новые угрозы ИБ (PHDays 2016)
Alexey Kachalin
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтов
Eugene Fidelin
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.
Dmitry Evteev
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Н.Романов (Trend micro) - Скрытые угрозы: можно ли тайное сделать явным?
Expolink
Чего не хватает в современных ids для защиты банковских приложений
Чего не хватает в современных ids для защиты банковских приложенийЧего не хватает в современных ids для защиты банковских приложений
Чего не хватает в современных ids для защиты банковских приложений
SelectedPresentations
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТПPositive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days. Гуркин. Угрозы безопасности АСУ ТП
Positive Hack Days
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
Expolink
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
Dmitry Evteev
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
IT-Task. Дмитрий Ильин. "SIEM как головной мозг системы обеспечения информаци...
Expolink
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
defcon_kz
Как банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасностьКак банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасность
Andrey Apuhtin
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
ESET. Сергей Федоров. "ESET. Просто. Удобно. Надежно "
Expolink
Sqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstmSqa days2010 polazhenko_osstm
Sqa days2010 polazhenko_osstm
Alexei Lupan
Исследовательская лаборатория фирмы «анкад»
Исследовательская лаборатория фирмы «анкад»Исследовательская лаборатория фирмы «анкад»
Исследовательская лаборатория фирмы «анкад»
Ancud Ltd.
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
Dmitry Evteev

Viewers also liked (17)

Calc3 Project 1
Calc3 Project 1Calc3 Project 1
Calc3 Project 1
Volan Kang
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUSPpt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
aidaagustin04
Proposal Project
Proposal ProjectProposal Project
Proposal Project
Volan Kang
Calc3 Project2
Calc3 Project2Calc3 Project2
Calc3 Project2
Volan Kang
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
Andrey Somsikov
обзор Drm
обзор Drmобзор Drm
обзор Drm
Andrey Somsikov
Estado del trabajo al 27012014 newEstado del trabajo al 27012014 new
Estado del trabajo al 27012014 new
consejocomunalelujano1raetapa
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUSPpt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
aidaagustin04
CMO Series: Rethinking social and email engagements using call intelligence
CMO Series: Rethinking social and email engagements using call intelligenceCMO Series: Rethinking social and email engagements using call intelligence
CMO Series: Rethinking social and email engagements using call intelligence
Invoca
Bridging the Online and Offline Attribution Gap
Bridging the Online and Offline Attribution GapBridging the Online and Offline Attribution Gap
Bridging the Online and Offline Attribution Gap
Invoca
Campaña AdmirableCampaña Admirable
Campaña Admirable
consejocomunalelujano1raetapa
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUSPPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
aidaagustin04
Ask the Experts: Top Tips to Drive More Conversions from Email
Ask the Experts: Top Tips to Drive More Conversions from EmailAsk the Experts: Top Tips to Drive More Conversions from Email
Ask the Experts: Top Tips to Drive More Conversions from Email
Invoca
Verayu-Build your own application with Rich LaaS API
Verayu-Build your own application with Rich LaaS APIVerayu-Build your own application with Rich LaaS API
Verayu-Build your own application with Rich LaaS API
Verayu (Nivaata Systems Pvt Ltd)
FieldView Mobile Salesforce Automation
FieldView Mobile Salesforce AutomationFieldView Mobile Salesforce Automation
FieldView Mobile Salesforce Automation
Verayu (Nivaata Systems Pvt Ltd)
Verayu fleet monitoring
Verayu fleet monitoringVerayu fleet monitoring
Verayu fleet monitoring
Verayu (Nivaata Systems Pvt Ltd)
Employee Transportation solution tool - Verayu Routematic
Employee Transportation solution tool - Verayu RoutematicEmployee Transportation solution tool - Verayu Routematic
Employee Transportation solution tool - Verayu Routematic
Verayu (Nivaata Systems Pvt Ltd)
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUSPpt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
aidaagustin04
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
Andrey Somsikov
Estado del trabajo al 27012014 newEstado del trabajo al 27012014 new
Estado del trabajo al 27012014 new
consejocomunalelujano1raetapa
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUSPpt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
Ppt pantangan kehamilan STIKES MUHAMMADIYAH KUDUS
aidaagustin04
CMO Series: Rethinking social and email engagements using call intelligence
CMO Series: Rethinking social and email engagements using call intelligenceCMO Series: Rethinking social and email engagements using call intelligence
CMO Series: Rethinking social and email engagements using call intelligence
Invoca
Bridging the Online and Offline Attribution Gap
Bridging the Online and Offline Attribution GapBridging the Online and Offline Attribution Gap
Bridging the Online and Offline Attribution Gap
Invoca
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUSPPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
PPT PANTANGAN UNTUK IBU HAMIL STIKES MUHAMMADIYAH KUDUS
aidaagustin04
Ask the Experts: Top Tips to Drive More Conversions from Email
Ask the Experts: Top Tips to Drive More Conversions from EmailAsk the Experts: Top Tips to Drive More Conversions from Email
Ask the Experts: Top Tips to Drive More Conversions from Email
Invoca

Similar to разработка безопасного кода (20)

Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
Cisco Russia
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Ontico
SIEM use cases - как их написать
SIEM use cases - как их написатьSIEM use cases - как их написать
SIEM use cases - как их написать
Olesya Shelestova
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
Albina Tiupa
Что такое пентест
Что такое пентестЧто такое пентест
Что такое пентест
Dmitry Evteev
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
Expolink
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
Expolink
CyberArk 21.10.2014
CyberArk 21.10.2014CyberArk 21.10.2014
CyberArk 21.10.2014
DialogueScience
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
Positive Hack Days
Построение защищенного Интернет-периметра
Построение защищенного Интернет-периметраПостроение защищенного Интернет-периметра
Построение защищенного Интернет-периметра
Cisco Russia
ITSF 2014 ICS Security
ITSF 2014 ICS SecurityITSF 2014 ICS Security
ITSF 2014 ICS Security
Ilya Karpov
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
Expolink
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
karina krew
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
SQALab
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
Expolink
Опасная сериализация / Иван Юшкевич (Digital Security)
Опасная сериализация / Иван Юшкевич (Digital Security)Опасная сериализация / Иван Юшкевич (Digital Security)
Опасная сериализация / Иван Юшкевич (Digital Security)
Ontico
Malware Analysis Report Infamous Chisel [RU].pdf
Malware Analysis Report Infamous Chisel [RU].pdfMalware Analysis Report Infamous Chisel [RU].pdf
Malware Analysis Report Infamous Chisel [RU].pdf
Хроники кибер-безопасника
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
Dmitry Evteev
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Alexey Kachalin
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей Safe...
НТБ. Сергей Шерстюк. "Проблемы контроля  привилегированных пользователей Safe...НТБ. Сергей Шерстюк. "Проблемы контроля  привилегированных пользователей Safe...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей Safe...
Expolink
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
Cisco Russia
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Ontico
SIEM use cases - как их написать
SIEM use cases - как их написатьSIEM use cases - как их написать
SIEM use cases - как их написать
Olesya Shelestova
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
Albina Tiupa
Что такое пентест
Что такое пентестЧто такое пентест
Что такое пентест
Dmitry Evteev
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
Expolink
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
Expolink
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
Positive Hack Days
Построение защищенного Интернет-периметра
Построение защищенного Интернет-периметраПостроение защищенного Интернет-периметра
Построение защищенного Интернет-периметра
Cisco Russia
ITSF 2014 ICS Security
ITSF 2014 ICS SecurityITSF 2014 ICS Security
ITSF 2014 ICS Security
Ilya Karpov
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей и их ...
Expolink
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
karina krew
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
Open Source Security Testing Methodology - Открытый фреймворк по тестированию...
SQALab
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...НТБ. Сергей Шерстюк. "Система контроля  привилегированных пользователей SafeI...
НТБ. Сергей Шерстюк. "Система контроля привилегированных пользователей SafeI...
Expolink
Опасная сериализация / Иван Юшкевич (Digital Security)
Опасная сериализация / Иван Юшкевич (Digital Security)Опасная сериализация / Иван Юшкевич (Digital Security)
Опасная сериализация / Иван Юшкевич (Digital Security)
Ontico
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
Dmitry Evteev
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Alexey Kachalin
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей Safe...
НТБ. Сергей Шерстюк. "Проблемы контроля  привилегированных пользователей Safe...НТБ. Сергей Шерстюк. "Проблемы контроля  привилегированных пользователей Safe...
НТБ. Сергей Шерстюк. "Проблемы контроля привилегированных пользователей Safe...
Expolink

разработка безопасного кода

  • 2.  Не используйте лабораторные машины для тестирования на безопасность ◦ Требуется разрешение от лаборанта  Последствия ◦ Лишение прав доступа ◦ Переустановка OS
  • 3.  Создание безопасного ПО  Написание безопасного кода  Обзор решения Microsoft
  • 4.  Безопасность (Security) ◦ Is the condition of a system that results from the establishment and maintenance of measures to protect the system. ◦ Security is an aspect of a product, not a feature. ◦ Устойчивость к воздействиям.  Защита персональных данных (Privacy) ◦ Право на неприкосновенность частной жизни.  Угроза (англ. threat) – возможная опасность.  Риск (англ. risk) – количественная оценка угрозы.
  • 6.  ПО получает все большее распространение ◦ Банковские и финансовые системы ◦ Государственные системы ◦ Персональные системы  Рост киберпреступности ◦ Повышение профессионализма хакеров ◦ Появление новых бизнес моделей ◦ Низкий уровень компьютерной грамотности пользователей  Проблемы безопасности обходятся дорого ◦ Security incident handling (≈$100K-$500K) ◦ Негативное и широкое освещение в прессе ◦ Недовольство пользователей
  • 7.  Жизненный цикл разработки ПО ◦ Разбиение процесса на стадии ◦ Нет общепринятого стандарта:  Microsoft SDL (http://msdn.microsoft.com/security)  Intel SDL  Безопасность должна быть на всех стадиях: ◦ Тренинги по безопасности ◦ Моделирование угроз ◦ Тестирование на безопастность ◦ ... Проектирование Написание Тестирование Поддержка
  • 8.  Анализируют уязвимые места дизайна или реализации ПО: ◦ Исследуют взаимодействие с системой ◦ Собирают и анализируют выходные данные ◦ Изучают компоновку системы и потоки данных ◦ Ищут применимость опубликованных атак и уязвимостей  Инструменты ◦ SoftIce, WinDBG, OllyDebug, gdb/kdb, сетевые сканеры, ... ◦ Dump памяти, depends, dumpbin (дисассемблирование), декомпиляторы, ... ◦ Fuzzers – подача случайных входных данных
  • 10.  Проверка входных данных ◦ “All input is evil, until proven otherwise” ◦ Проверяйте неправильность входных данных:  Формат, длина, тип, интервал  Уменьшай площадь атаки ◦ Используй только необходимые сервисы и оганичивай время их использования  Файлы, устройства, сторонние компоненты ◦ Все методы взаимодействия с ПО должны быть документированы и протестированы  Отсутствие «секретного» API или скрытой функциональности
  • 11.  Использовать минимально необходимые привилегии ◦ Проверяй запуск приложения с пользовательскими правами доступа:  user/guest, доступ к системным папкам  User Account Control (UAC) должен быть включен  Многоуровневая защита ◦ Несколько уровней защиты ПО повышают стойкость к взлому  Firewall, проверка входных данных, аутентификация и авторизация.
  • 12.  Неизвестность≠ Защищенность ◦ Сокрытие может быть только дополнительным уровнем защиты.  Готовность к нештатным ситуациям ◦ Ошибка не должна приводить систему в небезопасное состояние. ◦ Сообщение об ошибках не должно бфть слишком детальным  «Неверное имя пользователя или пароль» ◦ Журнал ошибок должен быть доступен только авторизованным пользователям
  • 13.  Тесты на безопасность ◦ Тесты на распространенные ошибки ◦ Проверки на недокументированное поведение ◦ ...  Учеба на ошибках ◦ Документируй и анализируй ошибки
  • 15.  Переполнение буфера - происходит при записи данных в память за границу выделенной области: ◦ На стеке (stack) ◦ В динамической памяти (heap)  Сложно но возможно в managed коде (C#, Java)  Цели: ◦ Исполнение вредоносного кода, ◦ Получение доступа к информации, ◦ Нарушение стабильной работы.
  • 16. Buffers Other vars EBP EIP Args void func(char *p, int i) { int j = 0; CFoo foo; int (*fp)(int) = &func; char b[128]; strcpy(b,p); } Адрес возврата функции Обработчики исключений Указатели на функции Виртуальные методы Задают порядок исполнения кода Исполнения вредоносного кода возможно если * p будет больше буфера b 16
  • 17. • Пример 2: #define MAX (50) char szDest[MAX]; strncpy(szDest,pszSrc,MAX); • Пример 1: // Code verifies pszSrc is <= 50 chars) // pszSrc is a char * #define MAX (50) char *pszDest = malloc(sizeof(pszSrc)); strncpy(pszDest,pszSrc,MAX); 17 Переполнение буфера возможно даже при использованиии n-функций sizeof(pszSrc) 4 байта, а не 50 szDest не будет null- terminated если длина pszSrc >= MAX
  • 18. Уязвимость в модуле mod_ssl (версии до 2.8.10). ... char *cp; char caCmd[1024]; char *cpArgs; ... cp = (char *)oline; for (i = 0; *cp !=' ' && *cp !='t' && *cp != NUL && i < 1024; ) caCmd[i++] = *cp++; caCmd[i] = NUL; cpArgs = cp; ... Возможно выполнение произвольного кода. ^^^^^^^^
  • 19. Поиск и исправление ошибок переаолнения буфера Уменьшить площадь атаки Security Code Review – Поиск уязвимостей до выпуска продукта Использовать более безопасную функциональность (strsafe, Safe CRT, STL) Опции сборки кода: /GS, NX, Heap Checking, ... Инструменты для анализа кода на безопасность FuzzTesting - Тесты со случайными входными данными 19
  • 20.  Переполнение (overflow/underflow). unsigned int a = 0xefffffff; unsigned int b = a + 2;  Потеря или приобретение знака int c = a  Потеря старших разрядов char d = a; 20 Арифметические ошибки приводят к переполнению буфера
  • 21. void Example(char * str, int size) { char buf[80]; // Check to make sure size is ‘valid’ if (size < sizeof(buf)) { // Should be safe to copy str strcpy(buf,str); } } 21
  • 22.  Тщателно проверяйте вычисления сдвигов в массивах, адресов памяти  Используйте беззнаковые типы для: ◦ Индексов ◦ Размеров буферов ◦ Closely examine any calculation used to determine an array offset or memory location  Обращайте внимания на предупреждения b ошибки компилятора а также на иструкции по отключению ошибок (#pragma) 22
  • 23.  Данные представленые по разному могут быть эквивалентны: ◦ filename_secret.ext ≡ filena~1.ext ◦ www.site.ru/secret ≡ www.site.ru/%73ecret  Проблемы с использованием канонических представлений: проверки безопасности ориентированы на одно представление данных, хотя фактически может быть использовано другое 23 Используются для обхода проверок
  • 24. SecretFile.txt SecretFile.txt. Secret~1.txt SecretFile.txt::$Data String FileName = System.Console.ReadLine(); if (FileName.ToLower().Equals(“secretfile.txt”)) { // deny access to file } else { // grant access to file } 24 Именем файла может быть “Secret~1.txt” или “SecretFile.txt::$Data”?
  • 25. • Приводите к канонической форме перед использованием или проверкой. • Используйте возможности операционной системы для приведения к канонической форме • Используйте регулярные выражения для поиска запрещенных символов 25
  • 26.  Только правильное использование криптографии позволит защитить данные и скрыть секреты ◦ Некоторые алгоритмы признаны взламываемыми: MD4, MD5, RC4, DES, SHA1. ◦ Существуют атаки на некоторые реализации алгоритмов: RSA, AES ◦ NIST – как правильно применять алгоритмы  Проблемы хранения, использования и уничтожения секретных данных в памяти.  Генерация случайных данных.
  • 27.  Используйте стандартные реализации алгоритмов SSL, CryptoAPI.  Не разрабатывайте собственный алгоримы - используйте проверенные.  Используйте правильные генераторы случайных чисел.  Обновляйте ключи переодически.  Используйте специальные функции для очиски памяти SecureZeroMemory.
  • 28.  DOS Attck – Атака на систему призванная привести к отказу в обслуживании  Остновные векторы атаки: ◦ Остановка или падение системы (проверка входных данных, переполнение буфера, арифметическая ошибка) ◦ Перегрузка CPU ◦ Нехватка памяти, ресурсов ◦ Загрузка сети
  • 29.  Аутентификация и авторизация ◦ Доступ к ресурсам должны иметь только авторизованные пользователи.  Фильтрация ◦ Проверка входных данных  Ограничения ◦ Не позволять использовать максимальное количество ресурса.
  • 30.  http://msdn.microsoft.com/ru- ru/magazine/cc163518.aspx - Безопасные привычки: 8 простых правил для разработки более безопасного кода  http://msdn.microsoft.com/ru- ru/security/default.aspx - Центр безопасности  http://www.microsoft.com/security/sdl/defa ult.aspx - Microsoft Security Development Lifecycle

Editor's Notes

  • #5: Todo: цитировать закон
  • #7: http://secunia.com/advisories/33089/ - Internet Explorer Data Binding Memory Corruption Vulnerability
  • #27: Todo put NIST address
  • #29: DoS-атака (от англ. Denial of Service, отказ в обслуживании) — атака на вычислительную систему с целью вывести её из строя, то есть создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам, либо этот доступ затруднён. http://ru.wikipedia.org/wiki/DoS-%D0%B0%D1%82%D0%B0%D0%BA%D0%B0