Внося последние штришки в статистику уязвимостей web-приложений за 2009 год (дата публикации которого в этом году как-то слишком затянулась), неожиданно для себя обнаружил отсутствие сопоставления названий уязвимостей
WASC WSTCv2 к
SANS/CWE Top 25 2010. За неимением подобного сопоставления на официальном ресурсе [
1], предлагаю свою версию.
Rank | Score | CWE ID | CWE/SANS NAME | WASC NAME | WASC ID |
[1] | 346 | CWE-79 | Failure to Preserve Web Page Structure ('Cross-site Scripting') | Cross-Site Scripting | WASC-08 |
[2] | 330 | CWE-89 | Improper Sanitization of Special Elements used in an SQL Command ('SQL Injection') | SQL Injection | WASC-19 |
[3] | 273 | CWE-120 | Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') | Buffer Overflow | WASC-07 |
[4] | 261 | CWE-352 | Cross-Site Request Forgery (CSRF) | Cross-site Request Forgery | WASC-09 |
[5] | 219 | CWE-285 | Improper Access Control (Authorization) | Insufficient Authorization | WASC-02 |
[6] | 202 | CWE-807 | Reliance on Untrusted Inputs in a Security Decision | Insufficient Authorization | WASC-02 |
[7] | 197 | CWE-22 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') | Path Traversal | WASC-33 |
[8] | 194 | CWE-434 | Unrestricted Upload of File with Dangerous Type | | |
[9] | 188 | CWE-78 | Improper Sanitization of Special Elements used in an OS Command ('OS Command Injection') | OS Commanding | WASC-31 |
[10] | 188 | CWE-311 | Missing Encryption of Sensitive Data | Insufficient Transport Layer Protection | WASC-04 |
[11] | 176 | CWE-798 | Use of Hard-coded Credentials | | |
[12] | 158 | CWE-805 | Buffer Access with Incorrect Length Value | Buffer Overflow | WASC-07 |
[13] | 157 | CWE-98 | Improper Control of Filename for Include/Require Statement in PHP Program ('PHP File Inclusion') | Path Traversal | WASC-33 |
[14] | 156 | CWE-129 | Improper Validation of Array Index | | |
[15] | 155 | CWE-754 | Improper Check for Unusual or Exceptional Conditions | | |
[16] | 154 | CWE-209 | Information Exposure Through an Error Message | Information Leakage | WASC-13 |
[17] | 154 | CWE-190 | Integer Overflow or Wraparound | Integer Overflows | WASC-03 |
[18] | 153 | CWE-131 | Incorrect Calculation of Buffer Size | Buffer Overflow | WASC-07 |
[19] | 147 | CWE-306 | Missing Authentication for Critical Function | Insufficient Authentication | WASC-01 |
[20] | 146 | CWE-494 | Download of Code Without Integrity Check | Remote File Inclusion | WASC-05 |
[21] | 145 | CWE-732 | Incorrect Permission Assignment for Critical Resource | Improper Filesystem Permissions | WASC-17 |
[22] | 145 | CWE-770 | Allocation of Resources Without Limits or Throttling | Denial of Service | WASC-10 |
[23] | 142 | CWE-601 | URL Redirection to Untrusted Site ('Open Redirect') | URl Redirector Abuse | WASC-38 |
[24] | 141 | CWE-327 | Use of a Broken or Risky Cryptographic Algorithm | Credential/Session Prediction | WASC-18 |
[25] | 138 | CWE-362 | Race Condition | Insufficient Process Validation | WASC-40 |
Хотел бы добавить свои 5 копеек:
ОтветитьУдалитьУ WASC есть классификация и атак и недостатков (weakness). Соответственно, надо мапить CWE/SANS Top 25 либо только на атаки, либо только на недостатки (второе кажется более разумным). А так получается, что мы проводим подмену понятий.
Соответственно, везде, где в колонке WASC есть Injection'ы и Buffer Overflow надо ставить "Improper Input Handling", XSS - "Improper Output Handling". То же про Open Redirect'ы и т.д.
Ну и по мелочи (если мы все-таки мапим на WASC недостатки):
1. Reliance on Untrusted Inputs in a Security Decision отлично ложится на Insufficient Authorization. Иногда встречал, как роль пользователя передавалась в кукисах ))
2. Race Condition входит как часть в Insufficient Process Validation. Действиетльно, рейсы позволяют выполнять шаги бизнес логики out-of-order.
Согласен? :)
по мапингу 1 и 2 согласен, дополнил.
ОтветитьУдалитькасаемо:
>> У WASC есть классификация и атак и недостатков (weakness).
мое мнение, что подобное разделение в том виде, в котором оно сейчас есть, нуждается в переработке (например, в статистику уязвимостей разумно воткнуть и обосновать не получилось)
>> где в колонке WASC есть Injection'ы и Buffer Overflow надо ставить "Improper Input Handling", XSS - "Improper Output Handling"
вчера только писал: "Уязвимости, связанные с недостатками в процессе обработки возвращаемых (Improper Output Handling) и входных данных (Improper Input Handling) могут являться причиной реализации большинства рассматриваемых уязвимостей. Поэтому далее они не рассматриваются."
>> XSS - "Improper Output Handling"
к слову, уязвимость XSS появляется в следствии и Improper Input Handling и Improper Output Handling...
>> мое мнение, что подобное разделение в том виде, в котором оно сейчас есть, нуждается в переработке
ОтветитьУдалитьСогласный на все 100. Тем не менее (imho) или играть по правилам создателей классификации, или нет )
Вот смотри, что получается:
есть такие WASC name, как: SQLI, DoS и Improper Input Handling. Тебе не кажется, что они не должны находиться в одном измерении (в одной колонке)? Ибо, Improper Input Handling - это причина, SQLI - это способ эксплуатации, а DoS - это цель. То есть, существует DoS атака (уничтожение данных) методом SQLI из-за Improper Input Handling.
>> к слову, уязвимость XSS появляется в следствии и Improper Input Handling и Improper Output Handling...
Тут, на мой взгляд, вообще сплошная путаница. Дело в том, что никто не дает точного определения, что есть Input и что есть Output веб-приложения. Поясню: SQL-запрос - это тоже Output модуля веб-приложения. Потому что запрос поступает в совершенно другой компонент (даже физический процесс). Аналогично, если считать браузер продолжением веб-приложения (см. распределенная вычислительная система), то вывод в него - не является output'ом, а является межмодульным взаимодействием. В общем, тут все правы ))
ps Кстати все темы классификаций с точки зрения потенциала для дискуссий - самые благодатные. Очень люблю их за это )
>> или играть по правилам создателей классификации, или нет )
ОтветитьУдалитьили влиять на изменение этих правил :)
>> Тут, на мой взгляд, вообще сплошная путаница
угук... потому мы покасились на нее в распределении скопа уязвимостей по результатам автоматического сканирования, но видимо в дальнейшем использовать не будем.... имхо, аналитику под такие результаты сложно подложить;) и именно из-за тех подводных камней...