Институт SANS (SysAdmin, Audit, Network, Security), совместно с организацией MITRE и ведущими экспертами по компьютерной безопасности, подготовил (http://cwe.mitre.org/top25/index.html) новую редакцию рейтинга 25 самых опасных ошибок, приводящих к возникновению серьезных уязвимостей. Рейтинг построен на основе анализа уязвимостей, обнаруженных в течение 2010 года. Ошибки были отобраны с учетом их распространенности, трудоемкости обнаружения и простоты эксплуатации уязвимости. В опубликованном документе подробно разбирается каждый из 25 видов ошибок, приводятся примеры уязявимостей и рекомендации для разработчиков по предотвращению появления подобных ошибок.
Степень важности ошибки определена с учетом легкости обнаружения проблемы, простоты эксплуатации уязвимости и степени опасности в случае поражения системы (например, полный контроль над ОС, утечка данных или вызов отказа в обслуживании). По сравнению с прошлогодним рейтингом, в этом году ошибки, приводящие к подстановке SQL-запроса, обогнали по степени важности проблемы, связанные с запуском команд злоумышленника через подстановку некорректных аргументов при вызове внешних команд. Из добавленных в очередном рейтинге ошибок, актуальность которых возросла в последнее время, отмечаются проблемы с некорректной проверкой параметров авторизации, ошибки форматирования строк, использование потенциально опасных функций, отсутствие ограничения попыток авторизации, предоставление излишних привилегий и некорректный расчет хэшей.
Общий рейтинг:
- 1. SQL Injection (http://cwe.mitre.org/top25/#CWE-89): Неспособность сохранения целостной структуры SQL запроса, что может привести к подстановке злоумышленником SQL запроса;
- 2. OS Command Injection (http://cwe.mitre.org/top25/#CWE-78): Неспособность корректного формирования структуры запускаемого приложения, может привести к подставке кода злоумышленника при выполнении внешней команды, через определение некорректных значений, используемых в качестве параметров запускаемой программы;
- 3. Buffer Overflow (http://cwe.mitre.org/top25/#CWE-120): Копирование содержимого буфера без предварительной проверки размера входных данных. Неспособность удержать действия в определенных жестких рамках или в пределах заданного буфера памяти, приводит к классическим уязвимостям вида выхода за допустимые границы и переполнению буфера;
- 4. XSS, Cross-site Scripting (http://cwe.mitre.org/top25/#CWE-79): Неспособность сохранения структуры web-страницы, что позволяет злоумышленнику внедрить на страницу свой скрипт или html-блок;
- 5. Missing Authentication (http://cwe.mitre.org/top25/#CWE-306): Отсутствие аутентификации при выполнении критических действий (например, при смене пароля, отсутствует проверка старого пароля);
- 6. Missing Authorization (http://cwe.mitre.org/top25/#CWE-306): Отсутствие должной проверки авторизации, что может привести к получению доступа к ресурсам или выполнения операций, не имея на это полномочий;
- 7. Hard-coded Credentials (http://cwe.mitre.org/top25/#CWE-798): Задание базового пароля или параметров аутентификации прямо в коде скрипта или в общедоступных файлах конфигурации;
- 8. (http://cwe.mitre.org/top25/#CWE-311): Отсутствие шифрования конфиденциальных данных, например, хранение номера кредитной карты в БД в открытом виде;
- 9. (http://cwe.mitre.org/top25/#CWE-434): Неограниченная возможность загрузки файлов опасного типа, например, когда через форму загрузки картинки на сайт можно загрузить (и затем выполнить) ".php" скрипт;
- 10. (http://cwe.mitre.org/top25/#CWE-807): Доверие к непроверенному вводу при принятии решений, связанных с безопасностью. Например, излишнее доверие к содержимому cookie (кодирование прав доступа или уровня пользователя через cookie);
- 11. (http://cwe.mitre.org/top25/#CWE-250): Выполнение приложений с предоставлением излишних привилегий и без надлежащего сброса привилегий;
- 12. Cross-Site Request Forgery (CSRF) (http://cwe.mitre.org/top25/#CWE-352): Отсутствие проверки источника запроса, что может быть использовано злоумышленником для незаметного перенаправления авторизированного пользователя для выполнения определенных скрытых действий;
- 13. Path Traversal (http://cwe.mitre.org/top25/#CWE-22): Возможность внешнего переопределения путей или имен файлов, например, когда в качестве имени файла используется какой-то передаваемый параметр, используя "../" в котором можно выйти за пределы текущей директории;
- 14. (http://cwe.mitre.org/top25/#CWE-494): Загрузка исполняемого кода без проверки его целостности через сверку с цифровой подписью, например, в результате взлома сайта или подстановки неверной информации в DNS, злоумышленник может изменить содержимое пакета с программой;
- 15. (http://cwe.mitre.org/top25/#CWE-863): Некорректная авторизация. При доступе к требующему определенных привилегий ресурсу проверка доступа осуществляется некорректно, давая возможность атакующему преодолеть ограничения, свойственные его уровню доступа;
- 16. (http://cwe.mitre.org/top25/#CWE-829): Включение внешней функциональности из недоверительной области. Например, включение на страницу виджета со внешнего ресурса, который теоретически может быть подменен злоумышленником через взлом сторонней системы или некорректное использование директивы include в PHP, позволяющей атакующему совершить включение кода с внешнего сайта;
- 17. (http://cwe.mitre.org/top25/#CWE-732): Небезопасное назначение прав доступа к критически важным ресурсам, например, возможность чтения или изменения другим пользователем конфигурационных или служебных файлов;
- 18. (http://cwe.mitre.org/top25/#CWE-676): Использование потенциально опасных функций, которые при неосторожном использовании могут привести к появлению уязвимостей. Классический пример подобных функций - strcpy и sprintf;
- 19. (http://cwe.mitre.org/top25/#CWE-327): Использование ненадежных или рискованных криптографических алгоритмов. Например, использование XOR или DES;
- 20. (http://cwe.mitre.org/top25/#CWE-131): Некорректный расчет размера буфера;
- 21. (http://cwe.mitre.org/top25/#CWE-307): Отсутствие ограничения излишних попыток авторизации. Например,отсутствие лимита на число неудачных попыток авторизации в единицу времени может привести к осуществлению атак, направленных на подбор паролей (brute force);
- 22. (http://cwe.mitre.org/top25/#CWE-601): Перенаправление на вызывающий доверие сайт через некорректное использование средств переброса на другой URL в веб-приложениях (например, когда когда в скрипт локального переброса вместо "/redirect?url=form.php" передают "/redirect?url=http://example.com");
- 23. (http://cwe.mitre.org/top25/#CWE-134): Неконтролируемое форматирование строк (ошибка форматирования строк в функциях подобных printf);
- 24. (http://cwe.mitre.org/top25/#CWE-190): Проблемы, связанные с целочисленным переполнением;
- 25. (http://cwe.mitre.org/top25/#CWE-759): Создание хэшей на основе входных данных (например, пароля) без задействования случайного salt, что позволяет атакующим при проведении словарной атаки использовать списки предгенерированных хэшей, например, rainbow-таблицы.
Проблемы в рейтинге разделены на три категории:
- Небезопасное взаимодействие между компонентами, определяет проблемы, вызванные небезопасной отправкой или получением данных между модулями, программами, процессами, нитями или системами.
- Рискованное управление ресурсами, ситуации когда к проблемам приводит ненадлежащее управление созданием, использованием, передачей или уничтожением важных ресурсов системы.
- Ненадежная защита, некорректное использование, игнорирование или злоупотребление средствами защиты.
# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=31061)