[ОТВЕТИТЬ]
Опции темы
14.01.2009 09:13  
OlegON
Институт SANS (SysAdmin, Audit, Network, Security), совместно с организацией MITRE и ведущими экспертами по компьютерной безопасности, подготовил рейтинг 25 самых опасных ошибок, приводящих к возникновению серьезных уязвимостей. Ошибки были отобраны с учетом их распространенности, трудоемкости обнаружения и простоты эксплуатации уязвимости.
В опубликованном документе подробно разбирается каждый из 25 видов ошибок, приводятся примеры узявимостей и рекомендации для разработчиков по предотвращению появления подобных ошибок. Ниже краткое обобщение списка:
  • Небезопасное взаимодействие между компонентами, определяет проблемы, вызванные небезопасной отправкой или получением данных между модулями, программами, процессами, нитями или системами.
    • CWE-20: Некорректная проверка входящих данных, например, отсутствие проверки предотвращающей появление спецсимволов в идентификаторах;
    • CWE-116: Неверное кодирование или экранирование символов для выводимых данных, например, отсутствие экранирования спецсимволов перед выводом данных может привести к поражению внешнего приложения;
    • CWE-89: Неспособность сохранения целостной структуры SQL запроса, что может привести к подстановке злоумышленником SQL запроса (SQL Injection);
    • CWE-79: Неспособность сохранения структуры web-страницы, что позволяет злоумышленнику внедрить на страницу свой скрипт или html-блок (XSS, Cross-site Scripting);
    • CWE-78: Неспособность корректного формирования структуры запускаемого приложения, может привести к подставке кода злоумышленника при выполнении внешней команды, через определение некорректных значений, используемых в качестве параметров запускаемой программы (OS Command Injection);
    • CWE-319: Передача конфиденциальных данных открытым текстом или используя ненадежные методы кодирования (base64 и т.п.), в результате чего злоумышленники может перехватить параметры аутентификации;
    • CWE-352: Cross-Site Request Forgery (CSRF), отсутствие проверки источника запроса, что может быть использовано злоумышленником для незаметного перенаправления авторизированного пользователя для выполнения определенных скрытых действий;
    • CWE-362: "Эффект гонки" (Race Condition), проблемы вызванные возможностью одновременного использования одного ресурса несколькими обработчиками, отсутствием атомарных операций или ненадлежащими блокировками;
    • CWE-209: Утечка сведений о системе при выводе сообщения об ошибке, например, часто в сообщении об ошибке можно видеть текущие пути или имя базы, что может быть использовано злоумышленником.
  • Рискованное управление ресурсами, ситуации когда к проблемам приводит ненадлежащее управление созданием, использованием, передачей или уничтожением важных ресурсов системы.
    • CWE-119: Неспособность удержать действия в определенных жестких рамках или в пределах заданного буфера памяти, приводит к классическим уязвимостям вида выхода за допустимые границы и переполнению буфера;
    • CWE-642: Возможность внешнего контроля над критическими данными, например, восприятие важных данных из областей, куда атакующий имеет доступ (cookie, переменные окружения, скрытые параметры web-форм и т.п.);
    • CWE-73: Возможность внешнего переопределения путей или имен файлов, например, когда в качестве имени файла используется какой-то передаваемый параметр, используя "../" в котором можно выйти за пределы текущей директории;
    • CWE-426: Излишнее доверия к стандартным путям, например, выполняя стандартную внешнюю программу без полного задания пути, при изменении значения переменной PATH, в результате может быть выполнена программа злоумышленника;
    • CWE-94: Проблемы, вызванные динамической генерацией кода (Code Injection), например, вызов созданного на лету кода через eval/include в скриптовых языках;
    • CWE-494: Загрузка исполняемого кода без проверки его целостности через сверку цифровой подписи, например, в результате взлома сайта или подстановки неверной информации в DNS, злоумышленник может изменить содержимое пакета с программой;
    • CWE-404: Некорректное выделение или освобождение ресурсов, может привести к утечкам памяти, обращению к уже освобожденным областям, двойному освобождению областей памяти и т.п.;
    • CWE-665: Некорректная инициализация значений переменных и структур данных, например, в некоторых переменных могут остаться параметры предыдущей сессии;
    • CWE-682: Некорректные вычисления, не учитывающие размерность используемого типа данных. Может привести к некорректному расчету размера буфера, делению на ноль, целочисленному переполнению, получению отрицательных значений там, где они не ожидаются.
  • Ненадежная защита, некорректное использование, игнорирование или злоупотребление средствами защиты.
    • CWE-285: Некорректный контроль доступа (авторизации);
    • CWE-327: Использование ненадежных или рискованных криптографических алгоритмов;
    • CWE-259: Задание базового пароля прямо в коде скрипта или в общедоступных файлах конфигурации;
    • CWE-732: Небезопасное назначение прав доступа к критически важным ресурсам, например, возможность чтения или изменения другим пользователем конфигурационных или служебных файлов;
    • CWE-330: Использование предсказуемых случайных значений;
    • CWE-250: Выполнение кода с повышенными привилегиями, без которых можно обойтись , которые можно сбросить или вынести в виде отдельного модуля;
    • CWE-602: Обеспечение безопасности сервера на стороне клиента.
http://www.opennet.ru/opennews/art.shtml?num=19763
 
15.01.2009 14:29  
victor
Любопытный список... Любопытный потому, что хорошо демонстрирует уровень образованности основных масс современных программистов. Т.к., например, на грабли вроде CWE-362 может наступать только тот, кто не удосужился вообще ни разу в жизни хотя бы просто полистать (перед сном) кнутовское "Искусство программирования"...
 
15.01.2009 17:20  
akonev
Цитата:
Сообщение от victor
Любопытный список... Любопытный потому, что хорошо демонстрирует уровень образованности основных масс современных программистов. Т.к., например, на грабли вроде CWE-362 может наступать только тот, кто не удосужился вообще ни разу в жизни хотя бы просто полистать (перед сном) кнутовское "Искусство программирования"...
насчет масс согласен, но сама идея пролистывания кнута перед сном улыбнула.
если читать только номера страничек - усыпит не хуже пересчитывания баранов.
 
 
Опции темы



Часовой пояс GMT +3, время: 14:53.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.