CWE/SANS Top 25 Most Dangerous Programming Errors 2010

Опубликован очередной документ CWE/SANS Top 25 наиболее опасных ошибок программирования, допускаемых разработчиками программного обеспечения, в том числе, и при разработке Web-приложений. Первая тройка распространенных ошибок выглядит следующим образом:

1. Недостаточная проверка поступающих данных в структуру Web-приложения.

Класс уязвимости - "Межсайтовое выполнение сценариев". Вектор атаки направлен на эксплуатацию на стороне клиента (client-side attack).
CWE-79, OWASP A1, WASC-8, WHID: XSS

"Межсайтовое выполнение сценариев" (Cross-Site Scripting (en.), сокр. XSS) связано с возможностью внедрения HTML-кода в уязвимую страницу. Внедрение кода осуществляется через все доступные способы ввода информации. Успешная эксплуатация уязвимости может позволить атакующему использовать значения различных переменных, доступных в контексте сайта, записывать информацию, перехватывать сессии пользователей и т.д.

2. Недостаточная проверка поступающих данных в SQL-запрос.

Класс уязвимости - "Внедрение операторов SQL". Вектор атаки направлен на эксплуатацию на стороне сервера (server-side attack).
CWE-89, OWASP A2, WASC-19, WHID: SQL Injection

"Внедрение операторов SQL" (SQL injection (en.), сокр. SQLi) — способ нападения на базу данных в обход межсетевой защиты. В этом методе, параметры, передаваемые к базе данных через приложения, изменяются таким образом, чтобы повлиять на выполняемый в приложении SQL запрос. Инъекция осуществляется через все доступные способы взаимодействия с приложением.

Уязвимость "Внедрение операторов SQL" возникает в тех случаях, когда приложение динамически формирует SQL-запросы на основе поступающих данных со стороны не доверенного источника без их адекватной проверки. Под приложением нужно понимать любую программу, взаимодействующую с базой данных.

3. Недостаточная проверка размеров передаваемого буфера.

Класс уязвимости - "Переполнение буфера". Атака может осуществляться, как в отношении клиентского приложения (local attack), так и серверного (remote attack).
CWE-120, WHID: Buffer Overflow

"Переполнение буфера" (Buffer Overflow (en.), или Buffer Overrun) возникает в момент копирования некоторых данных из одного участка памяти в другой без достаточной проверки размера передаваемых в него данных, что позволяет записать данные за пределами выделенного в памяти буфера. Зачастую уязвимость может использоваться для выполнения произвольного кода в системе с привилегиями уязвимого приложения или с целью проведения атаки "Denial of Service" (DoS).

Примечательно, что на четвертой позиции рейтинга CWE/SANS Top 25 содержится уязвимость "Подделка HTTP-запросов" (Cross-Site Request Forgery (en.), сокр. CSRF) [1,2], которая до 2001 года уязвимостью особо и не считалась [3].

Полный перечень уязвимостей CWE/SANS Top 25 в формате pdf можно загрузить здесь.

Сопоставление уязвимостей, характерных для Web-приложений (CWE/SANS, OWASP Top 10, WASC Threat Classification, WASC WHID), приведено в блоге Ryan Barnett.

Обобщенная таблица сопоставления уязвимостей в Web-приложениях (WASC Threat Classification, CWE ID, CAPEC ID, SANS/CWE Top 25 2009, OWASP Top Ten 2010, OWASP Top Ten 2007, OWASP Top Ten 2004) приведена здесь.

1 комментарий :

  1. Теперь и анализтор PVS-Studio смотрит в сторону CWE: https://www.viva64.com/ru/b/0486/

    ОтветитьУдалить