Путеводитель по сайту

Ударим глубокой отладкой по багам и глюкам,

или Что такое Top 25 Most Dangerous Programming Errors?

RSS: новые статьи сайта «Слово»·RSS: новые статьи сайта «Слово»

·Статьи

·Страничка Настроения

·Интересное и полезное в Инете и Рунете

·Компьютерные байки

 

Рассылки Subscribe.Ru
Страничка Настроения
Интересное и полезное в Инете и Рунете
Погода в Алдане
USB Flash

sms-копилка «Вначале было Слово»

***

Веб-мастеру,

    обдумывающему

              веб-житье,

Решающему,

    свой веб-сайт

              разместить где,

Я скажу:

    «Размести его

              на PeterHost.ru!» –
И жалеть

    об этом

              не придется тебе!

 

Надежный хостинг!


 

 

Ударим глубокой отладкой по багам и глюкам, или Что такое Top 25 Most Dangerous Programming Errors?

 

***

Что такое Top 25 Most Dangerous Programming Errors

17 февраля 2010 г. некоммерческая организация MITRE и институт SANS опубликовали очередной список 25-ти наиболее опасных ошибок программирования – Top 25 Most Dangerous Programming Errors (Top-25 MDPE).

 

Top 25 Most Dangerous Programming Errors – это список наиболее широко распространенных критических ошибок программирования, которые являются серьезной угрозой безопасности программного обеспечения. Зачастую их просто найти и легко использовать. В то же время они очень опасны, так как позволяют злоумышленникам получить полный контроль над удаленным ПК или веб-ресурсом (например, осуществлять кражу конфиденциальных данных, удалять и портить файлы, и т.д. и т.п.).

 

Top-25 MDPE составляется и публикуется с целью уведомления и помощи программистам, – для своевременного выявления и устранения уязвимостей программного обеспечения (ПО).

Обычные пользователи могут руководствоваться Top-25 MDPE для выбора более безопасного ПО.

Специалисты по информационной безопасности могут использовать Top-25 MDPE для выявления опасных, но редко используемых хакерами, уязвимостей ПО.

Наконец, инженеры-программисты и ИТ-менеджеры могут использовать Top-25 MDPE в качестве образца для обеспечения должного уровня безопасности ПО.

 

Top-25 MDPE создан в результате сотрудничества SANS Institute, MITRE и известных специалистов по информационной безопасности США и Европы.

При составлении Top-25 MDPE использованы исследование SANS «20 направлений атаки» (Top 20 attack vectors) и «Всеобщий Реестр Уязвимостей» (Common Weakness Enumeration, CWE) MITRE.

 

MITRE, при поддержке Отдела компьютерной безопасности Департамента США по Национальной Безопасности (US Department of Homeland Security's National Cyber Security Division), содержит сайт CWE, подробно описывающий Top-25 ошибок программирования (с подробным руководством, как смягчить последствия ошибок, и как избегать их вообще).

Сайт CWE содержит информацию о более чем 800 ошибках программирования, проектирования и архитектуры, которые могут привести к возникновению уязвимостей.

 

Впервые Top-25 MDPE был опубликован в 2009 г. В отличие от предыдущего, Top-25 MDPE 2010 не ограничивается перечислением опасных уязвимостей в прикладном программном обеспечении, но также акцентирует внимание на ошибках программирования, которые могут привести к появлению уязвимостей. Кроме того, предлагаются конкретные меры по предотвращению таких ошибок.

 

Координаторы проекта Top-25 MDPE: Боб Мартин (Bob Martin; MITRE), Мэйсон Браун (Mason Brown; SANS), Алан Пэллер (Alan Paller; SANS), Деннис Кирби (Dennis Kirby; SANS).

Редактор: Стив Кристи (Steve Christey; MITRE).

 

Итак, Top 25 Most Dangerous Programming Errors:

 

 

Ранг (Rank)

Оценка опасности (Score)

Название (Name)

 

1

346

Нарушение структуры программного кода веб-страниц, позволяющее осуществлять межсайтовый скриптинг (Failure to Preserve Web Page Structure; 'Cross-site Scripting')

 

2

330

Некорректное использование элементов, используемых в SQL-запросах, позволяющее осуществлять SQL-инъекции (Improper Sanitization of Special Elements used in an SQL Command;
'SQL Injection')

 

3

273

Классическое переполнение буфера (Buffer Copy without Checking Size of Input; 'Classic Buffer Overflow')

 

4

261

Межсайтовая подмена запросов (Cross-Site Request Forgery, CSRF)

 

5

219

Некорректный контроль доступа (Improper Access Control; Authorization)

 

6

202

Разрешение небезопасной авторизации (Reliance on Untrusted Inputs in a Security Decision)

 

7

197

Некорректная установка ограничений Pathname в служебных каталогах (Improper Limitation of a Pathname to a Restricted Directory; 'Path Traversal')

 

8

194

Разрешение загрузки потенциально опасных файлов (Unrestricted Upload of File with Dangerous Type)

 

9

188

Некорректное использование элементов программного кода, позволяющее запустить командный интерпретатор операционной системы (Improper Sanitization of Special Elements used in an OS Command; 'OS Command Injection')

 

10

188

Отсутствие шифрования конфиденциальных данных (Missing Encryption of Sensitive Data)

 

11

176

Использование жестко запрограммированных прав доступа (Use of Hard-coded Credentials)

 

12

158

Разрешение использования в буфере переменных некорректной длины (Buffer Access with Incorrect Length Value)

 

13

157

Некорректный контроль имени файла при включении/вызове операторов PHP-программ (Improper Control of Filename for Include/Require Statement in PHP Program; 'PHP File Inclusion')

 

14

156

Некорректная проверка индекса массива (Improper Validation of Array Index)

 

15

155

Некорректная проверка программного кода на возникновение необычных или исключительных условий (Improper Check for Unusual or Exceptional Conditions)

 

16

154

Подверженность внешним воздействиям посредством сообщений об ошибках (Information Exposure Through an Error Message)

 

17

154

Избыток целочисленных переменных или зацикливание программного кода (Integer Overflow or Wraparound)

 

18

153

Некорректный расчет объема буфера (Incorrect Calculation of Buffer Size)

 

19

147

Отсутствие аутентификации для критических функций (Missing Authentication for Critical Function)

 

20

146

Загрузка программного кода без проверки целостности (Download of Code Without Integrity Check)

 

21

145

Некорректное распределение разрешений для критических ресурсов (Incorrect Permission Assignment for Critical Resource)

 

22

145

Распределение ресурсов без ограничений или синхронизации (Allocation of Resources Without Limits or Throttling)

 

23

142

Открытый редирект на незащищенные сайты (URL Redirection to Untrusted Site; 'Open Redirect')

 

24

141

Использование для шифрования данных «взломанного» (или сомнительного происхождения) криптографического алгоритма (Use of a Broken or Risky Cryptographic Algorithm)

 

25

138

Программирование в режиме Race Condition («гонка программирования»; Race Condition)

 

 

Примечания

1. Межсайтовый скриптинг (англ. Cross-Site Scripting, XSS) – межсайтовое выполнение сценариев программного кода. Даже если программа не предназначена для работы в Интернете, как правило, она имеет дополнительный веб-интерфейс или работает с файлами формата HTML, позволяющими выполнение межсайтового скриптинга.

2. SQL-инъекция (англ. SQL Injection) – внедрение операторов SQL – вид уязвимости, при которой атакующий дополняет SQL-запрос дополнительными операторами, позволяющими повысить привилегии либо получить несанкционированный доступ к данным. Уязвимость обычно эксплуатируются через поля ввода и параметры веб-страниц, код которых не фильтрует переданные пользователем значения.

3. pathname (англ.) – составное имя; путевое имя (имя файла или каталога с указанием пути доступа к нему).

4. Буфер (англ. buffer) – буферное запоминающее устройство, предназначенное для промежуточного хранения информации (например, команд) при взаимодействии между устройствами ПК, работающими с разными скоростями (например, между центральным микропроцессором и оперативной памятью). Переполнение буфера, как правило, позволяет злоумышленнику удаленно получить административный доступ к ПК или веб-ресурсу.

5. Аутентификация (англ. authentication) – сервис контроля доступа, осуществляющий проверку регистрационной информации пользователя.

6. Редирект (от англ. redirect – переориентировать(ся); redirection – переадресация, перенаправление) – автоматическое (принудительное) перенаправление пользователя с одного веб-адреса на другой (страница-перенаправление). Редиректом также называют программное решение (скрипт), которое принудительно перенаправляет пользователя с выбранной веб-страницы на другую.

7. Race Condition (англ.; компьютерный жаргон) – состояние гонок, состязание.

 

Валерий Сидоров

 

 

***

2010 CWE/SANS Top 25 Most Dangerous Programming Errors

Top 25 Most Dangerous Programming Errors (pdf-версия)

«Всеобщий Реестр Уязвимостей» (Common Weakness Enumeration, CWE)

• «20 направлений атаки» (Top 20 attack vectors)




 

 



 

 

 

• Аксессуары для сотовых телефонов


Издательство «Питер» – лучшие книги по лучшим ценам

• Айн Рэнд. Атлант расправил плечи

• Джеймс Хилтон. Потерянный горизонт

 

• Маруся. Книга, взрывающая мозг

• Сергей Тармашев. Древний: Война (книга с автографом автора для первых 500 покупателей)

• Сергей Тармашев. Древний. Катастрофа

• Книга, ради которой объединились писатели, объединить которых невозможно

• Дмитрий Глуховский. Метро 2034

• Дмитрий Глуховский. Метро 2033


 

Путеводитель по сайту


© 2005 – 2010. All rights reserved.

При использовании материалов сайта «Слово» прошу указывать источник информации!