14.01.2009 09:13
Институт SANS (SysAdmin, Audit, Network, Security), совместно с организацией MITRE и ведущими экспертами по компьютерной безопасности, 25 самых опасных ошибок, приводящих к возникновению серьезных уязвимостей. Ошибки были отобраны с учетом их распространенности, трудоемкости обнаружения и простоты эксплуатации уязвимости.
В опубликованном документе подробно разбирается каждый из 25 видов ошибок, приводятся примеры узявимостей и рекомендации для разработчиков по предотвращению появления подобных ошибок. Ниже краткое обобщение списка:
  • Небезопасное взаимодействие между компонентами, определяет проблемы, вызванные небезопасной отправкой или получением данных между модулями, программами, процессами, нитями или системами.
    • : Некорректная проверка входящих данных, например, отсутствие проверки предотвращающей появление спецсимволов в идентификаторах;
    • : Неверное кодирование или экранирование символов для выводимых данных, например, отсутствие экранирования спецсимволов перед выводом данных может привести к поражению внешнего приложения;
    • : Неспособность сохранения целостной структуры SQL запроса, что может привести к подстановке злоумышленником SQL запроса (SQL Injection);
    • : Неспособность сохранения структуры web-страницы, что позволяет злоумышленнику внедрить на страницу свой скрипт или html-блок (XSS, Cross-site Scripting);
    • : Неспособность корректного формирования структуры запускаемого приложения, может привести к подставке кода злоумышленника при выполнении внешней команды, через определение некорректных значений, используемых в качестве параметров запускаемой программы (OS Command Injection);
    • : Передача конфиденциальных данных открытым текстом или используя ненадежные методы кодирования (base64 и т.п.), в результате чего злоумышленники может перехватить параметры аутентификации;
    • : Cross-Site Request Forgery (CSRF), отсутствие проверки источника запроса, что может быть использовано злоумышленником для незаметного перенаправления авторизированного пользователя для выполнения определенных скрытых действий;
    • : "Эффект гонки" (Race Condition), проблемы вызванные возможностью одновременного использования одного ресурса несколькими обработчиками, отсутствием атомарных операций или ненадлежащими блокировками;
    • : Утечка сведений о системе при выводе сообщения об ошибке, например, часто в сообщении об ошибке можно видеть текущие пути или имя базы, что может быть использовано злоумышленником.
  • Рискованное управление ресурсами, ситуации когда к проблемам приводит ненадлежащее управление созданием, использованием, передачей или уничтожением важных ресурсов системы.
    • : Неспособность удержать действия в определенных жестких рамках или в пределах заданного буфера памяти, приводит к классическим уязвимостям вида выхода за допустимые границы и переполнению буфера;
    • : Возможность внешнего контроля над критическими данными, например, восприятие важных данных из областей, куда атакующий имеет доступ (cookie, переменные окружения, скрытые параметры web-форм и т.п.);
    • : Возможность внешнего переопределения путей или имен файлов, например, когда в качестве имени файла используется какой-то передаваемый параметр, используя "../" в котором можно выйти за пределы текущей директории;
    • : Излишнее доверия к стандартным путям, например, выполняя стандартную внешнюю программу без полного задания пути, при изменении значения переменной PATH, в результате может быть выполнена программа злоумышленника;
    • : Проблемы, вызванные динамической генерацией кода (Code Injection), например, вызов созданного на лету кода через eval/include в скриптовых языках;
    • : Загрузка исполняемого кода без проверки его целостности через сверку цифровой подписи, например, в результате взлома сайта или подстановки неверной информации в DNS, злоумышленник может изменить содержимое пакета с программой;
    • : Некорректное выделение или освобождение ресурсов, может привести к утечкам памяти, обращению к уже освобожденным областям, двойному освобождению областей памяти и т.п.;
    • : Некорректная инициализация значений переменных и структур данных, например, в некоторых переменных могут остаться параметры предыдущей сессии;
    • : Некорректные вычисления, не учитывающие размерность используемого типа данных. Может привести к некорректному расчету размера буфера, делению на ноль, целочисленному переполнению, получению отрицательных значений там, где они не ожидаются.
  • Ненадежная защита, некорректное использование, игнорирование или злоупотребление средствами защиты.
    • : Некорректный контроль доступа (авторизации);
    • : Использование ненадежных или рискованных криптографических алгоритмов;
    • : Задание базового пароля прямо в коде скрипта или в общедоступных файлах конфигурации;
    • : Небезопасное назначение прав доступа к критически важным ресурсам, например, возможность чтения или изменения другим пользователем конфигурационных или служебных файлов;
    • : Использование предсказуемых случайных значений;
    • : Выполнение кода с повышенными привилегиями, без которых можно обойтись , которые можно сбросить или вынести в виде отдельного модуля;
    • : Обеспечение безопасности сервера на стороне клиента.
http://www.opennet.ru/opennews/art.shtml?num=19763
15.01.2009 14:29
Любопытный список... Любопытный потому, что хорошо демонстрирует уровень образованности основных масс современных программистов. Т.к., например, на грабли вроде CWE-362 может наступать только тот, кто не удосужился вообще ни разу в жизни хотя бы просто полистать (перед сном) кнутовское "Искусство программирования"...
15.01.2009 17:20
Цитата:
victor Любопытный список... Любопытный потому, что хорошо демонстрирует уровень образованности основных масс современных программистов. Т.к., например, на грабли вроде CWE-362 может наступать только тот, кто не удосужился вообще ни разу в жизни хотя бы просто полистать (перед сном) кнутовское "Искусство программирования"...
насчет масс согласен, но сама идея пролистывания кнута перед сном улыбнула.
если читать только номера страничек - усыпит не хуже пересчитывания баранов.
Часовой пояс GMT +3, время: 11:15.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.