Главная / How-To / SysAdmin / 25 самых опасных ошибок при создании программ 25 самых опасных ошибок при создании программ
Институт 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: Обеспечение безопасности сервера на стороне клиента.
Взято с www.opennet.ru
Добавлено: 2009/01/14 Обновлено: 2009/01/14 |