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-кода в уязвимую страницу. Внедрение кода осуществляется через все доступные способы ввода информации. Успешная эксплуатация уязвимости может позволить атакующему использовать значения различных переменных, доступных в контексте сайта, записывать информацию, перехватывать сессии пользователей и т.д. name='more'>
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) приведена здесь .
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.