SecuRRity.Ru » Статьи » Список самых опасных ошибок программирования
Список самых опасных ошибок программирования
автор: Administrator | 22 февраля 2010, 03:31 | Просмотров: 14075теги: Статьи, список, уязвимости, опасные, ошибки, xss, SQL-Инъекция, программисты, программы
«Топ 25 самых опасных ошибок программирования» — это список самых опасных ошибок программирования, которые могут привести к серьезным уязвимостям в программном обеспечении. Они нередки, их легко найти и ими легко воспользоваться. Они опасны, потому что зачастую позволяют злоумышленнику полностью взять под контроль программу, украсть данные или вообще не дать программе функционировать.
Этот список — результат сотрудничества между SANS Institute, MITRE и многих экспертов по информационной безопасности в США и Европе. Список использует опыт, полученный при составлении «Top 20 attack vectors» институтом SANS и «Common Weakness Enumeration (CWE)» корпорацией MITRE.
MITRE поддерживает сайт, посвященный CWE, при поддержке «Национального центра кибербезопасности США» предоставляющий детальные описания 25-ти главных ошибок программирования вместе с авторитетными рекомендациями, как их смягчить и избежать. Сайт CWE также содержит данные по более чем 700 другим ошибкам программирования, проектирования и архитектуры, которые могут привести к уязвимостям.
Основная цель этого списка — устранить уязвимости прямо в зародыше, обучая программистов тому, как исключать наиболее общие ошибки еще до того, как программного обеспечение выпускается. Список будет средством для обучения и осведомления, которое поможет программистам предотвратить те виды уязвимостей, которыми поражена индустрия разработки ПО.
Потребители ПО могут пользоваться тем же списком, чтобы предъявлять более высокие требования к безопасности программного обеспечения. Наконец, менеджеры проектов и CIO (Chief Information Officer) могут использовать данный ТОП 25 для измерения успехов в обеспечении безопасности своих программ.
Как и в прошлом году, список самых опасных ошибок, возглавляют XSS-уязвимости (межсайтовый скриптинг), SQL-инъекции и проблемы связанные с переполнением буфера. Эти и другие ошибки ПО стали причиной взломов миллионов систем, включая недавнюю атаку на Google, поэтому приведённый контрольный список, всегда стоит держать под рукой не только новичкам:
В заключение можно отметить интересную статистику, опубликованную в блоге Марка Кокса (Mark Cox), возглавляющего подразделение Red Hat, занимающееся выявлением и исправлением проблем безопасности. Марк проанализировал число устраненных в Red Hat уязвимостей по каждой из позиций вышепредставленного рейтинга Top25.
Особый акцент сделан на уязвимостях, которые удалось предотвратить благодаря использованию таких технологий, как SELinux, ExecShield, защищенных вариантов malloc/free и активации FORTIFY_SOURCE опции glibc (дополнительная внутренняя проверка выхода за пределы буфера для функций, таких как strcpy). Например, дистрибутив оказался заведомо невосприимчив к серии уязвимостей, связанных с разыменованием NULL указателя.
Этот список — результат сотрудничества между SANS Institute, MITRE и многих экспертов по информационной безопасности в США и Европе. Список использует опыт, полученный при составлении «Top 20 attack vectors» институтом SANS и «Common Weakness Enumeration (CWE)» корпорацией MITRE.
MITRE поддерживает сайт, посвященный CWE, при поддержке «Национального центра кибербезопасности США» предоставляющий детальные описания 25-ти главных ошибок программирования вместе с авторитетными рекомендациями, как их смягчить и избежать. Сайт CWE также содержит данные по более чем 700 другим ошибкам программирования, проектирования и архитектуры, которые могут привести к уязвимостям.
Основная цель этого списка — устранить уязвимости прямо в зародыше, обучая программистов тому, как исключать наиболее общие ошибки еще до того, как программного обеспечение выпускается. Список будет средством для обучения и осведомления, которое поможет программистам предотвратить те виды уязвимостей, которыми поражена индустрия разработки ПО.
Потребители ПО могут пользоваться тем же списком, чтобы предъявлять более высокие требования к безопасности программного обеспечения. Наконец, менеджеры проектов и CIO (Chief Information Officer) могут использовать данный ТОП 25 для измерения успехов в обеспечении безопасности своих программ.
Как и в прошлом году, список самых опасных ошибок, возглавляют XSS-уязвимости (межсайтовый скриптинг), SQL-инъекции и проблемы связанные с переполнением буфера. Эти и другие ошибки ПО стали причиной взломов миллионов систем, включая недавнюю атаку на Google, поэтому приведённый контрольный список, всегда стоит держать под рукой не только новичкам:
#CWE | Описание |
CWE-79 | Неспособность сохранения структуры web-страницы, что позволяет злоумышленнику внедрить на страницу свой скрипт или html-блок (XSS, Cross-site Scripting); - частота атак: часто - последствия: обход ограничений безопасности, выполнения кода - простота обнаружения: легко |
CWE-89 | Неспособность сохранения целостной структуры SQL запроса, что может привести к подстановке злоумышленником SQL запроса (SQL Injection); - частота атак: часто - последствия: обход ограничений безопасности, потеря данных - простота обнаружения: легко |
CWE-120 | Копирование содержимого буфера без предварительной проверки размера входных данных. Неспособность удержать действия в определенных жестких рамках или в пределах заданного буфера памяти, приводит к классическим уязвимостям вида выхода за допустимые границы и переполнению буфера; - частота атак: часто - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-352 | Cross-Site Request Forgery (CSRF), отсутствие проверки источника запроса, что может быть использовано злоумышленником для незаметного перенаправления авторизированного пользователя для выполнения определенных скрытых действий; - частота атак: часто - последствия: выполнения кода, потеря данных - простота обнаружения: умеренно |
CWE-285 | Некорректный контроль доступа (авторизации); - частота атак: часто - последствия: выполнения кода - простота обнаружения: умеренно |
CWE-807 | Доверие к непроверенному вводу при принятии решений, связанных с безопасностью. Например, излишнее доверие к содержимому cookie (кодирование прав доступа или уровня пользователя через cookie); - частота атак: часто - последствия: выполнения кода - простота обнаружения: умеренно |
CWE-22 | Возможность внешнего переопределения путей или имен файлов, например, когда в качестве имени файла используется какой-то передаваемый параметр, используя "../" в котором можно выйти за пределы текущей директории; - частота атак: часто - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-434 | Неограниченная возможность загрузки файлов опасного типа, например, когда через форму загрузки картинки на сайт можно загрузить (и затем выполнить) ".php" скрипт; - частота атак: иногда - последствия: выполнения кода - простота обнаружения: умеренно |
CWE-78 | Неспособность корректного формирования структуры запускаемого приложения, может привести к подставке кода злоумышленника при выполнении внешней команды, через определение некорректных значений, используемых в качестве параметров запускаемой программы (OS Command Injection); - частота атак: часто - последствия: выполнения кода - простота обнаружения: легко |
CWE-311 | Отсутствие шифрования конфиденциальных данных, например, хранение номера кредитной карты в БД в открытом виде; - частота атак: иногда - последствия: потеря данных - простота обнаружения: легко |
CWE-798 | Задание базового пароля прямо в коде скрипта или в общедоступных файлах конфигурации; - частота атак: редко - последствия: обход ограничений безопасности - простота обнаружения: умеренно |
CWE-805 | Доступ к буферу без учета его размера, например, когда осуществляется копирование из одного буфера в другой без проверки, что во втором буфере хватит места; - частота атак: часто - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-98 | Некорректная обработки имени файла перед его использованием в PHP директивах Include/Require. Типичный пример: "$dir = $_GET['module_name']; include($dir . "/function.php");", если в передачей "module_name=http://сайт_злоумышленника"; - частота атак: часто - последствия: выполнения кода, потеря данных - простота обнаружения: легко |
CWE-129 | Некорректная проверка индекса массива, например, обращение к -23 или 978 элементам массива, когда общий размер всего 100 элементов; - частота атак: иногда - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-754 | Отсутствие проверки на необычные ситуации, например, при невыполнении проверки результата выполнения функции malloc (разработчик подразумевает, что она никогда не вернет NULL) злоумышленник может инициировать переход на нулевой указатель. Или при выполнении "fgets(buf, 10, stdin); strcpy(cp_buf, buf);" разработчик уверен, что после fgets строка всегда терминирована, но при ошибке ввода/вывода это не так; - частота атак: часто - последствия: выполнения кода, отказ в обслуживании, потеря данных, обход ограничений безопасности - простота обнаружения: легко |
CWE-209 | Утечка сведений о системе при выводе сообщения об ошибке, например, часто в сообщении об ошибке можно видеть текущие пути или имя базы, что может быть использовано злоумышленником. - частота атак: часто - последствия: потеря данных - простота обнаружения: легко |
CWE-190 | Проблемы, связанные с целочисленным переполнением; - частота атак: иногда - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-131 | Некорректный расчет размера буфера; - частота атак: часто - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко до умеренно |
CWE-306 | Отсутствие аутентификации при выполнении критических действий (например, при смене пароля, отсутствует проверка старого пароля); - частота атак: иногда - последствия: обход ограничений безопасности - простота обнаружения: умеренно |
CWE-494 | Отсутствие аутентификации при выполнении критических действий (например, при смене пароля, отсутствует проверка старого пароля); - частота атак: редко - последствия: выполнения кода - простота обнаружения: умеренно |
CWE-732 | Небезопасное назначение прав доступа к критически важным ресурсам, например, возможность чтения или изменения другим пользователем конфигурационных или служебных файлов; - частота атак: часто - последствия: выполнения кода - простота обнаружения: умеренно |
CWE-770 | Выделение ресурсов без задания максимальных ограничений, например, классическая fork-бомба или забивание всего свободного места на диске; - частота атак: редко - последствия: отказ в обслуживании - простота обнаружения: умеренно |
CWE-601 | Выделение ресурсов без задания максимальных ограничений, например, классическая fork-бомба или забивание всего свободного места на диске; - частота атак: иногда - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: легко |
CWE-327 | Использование ненадежных или рискованных криптографических алгоритмов; - частота атак: редко - последствия: потеря данных, обход ограничений безопасности - простота обнаружения: умеренно |
CWE-362 | "Эффект гонки" (Race Condition), проблемы вызванные возможностью одновременного использования одного ресурса несколькими обработчиками, отсутствием атомарных операций или ненадлежащими блокировками; - частота атак: иногда - последствия: выполнения кода, отказ в обслуживании, потеря данных - простота обнаружения: умеренно |
В заключение можно отметить интересную статистику, опубликованную в блоге Марка Кокса (Mark Cox), возглавляющего подразделение Red Hat, занимающееся выявлением и исправлением проблем безопасности. Марк проанализировал число устраненных в Red Hat уязвимостей по каждой из позиций вышепредставленного рейтинга Top25.
Особый акцент сделан на уязвимостях, которые удалось предотвратить благодаря использованию таких технологий, как SELinux, ExecShield, защищенных вариантов malloc/free и активации FORTIFY_SOURCE опции glibc (дополнительная внутренняя проверка выхода за пределы буфера для функций, таких как strcpy). Например, дистрибутив оказался заведомо невосприимчив к серии уязвимостей, связанных с разыменованием NULL указателя.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Панель управления
Настройки страницы
помощь: С помощью данных кнопок Вы можете изменить расположение информационных блоков по горизонтали, а также настраивать яркость и размер шрифта.
Для этого, в Вашем браузере должен быть включён JavaScript и браузер должен принимать файлы cookie нашего домена.
Все изменения автоматически сохраняются в cookie-файле Вашего браузера в течение 365 дней со дня изменений настроек.
Подписка на сайт
Календарь
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
Популярные новости
Облако тегов
Microsoft Windows Антивирус Атака БРАУЗЕР Безопасность ВРЕДОНОСНЫЕ Вредоносные программы ДАННЫЕ ЗАЩИТА ИНФОРМАЦИЯ Интернет КОМПЬЮТЕР НОВОСТИ ПО ПРОГРАММА САЙТ СТАТЬИ США Система Софт ТРОЯН Термины УЯЗВИМОСТИ Уязвимые сайты ФАЙЛ Хакер ЧЕРВЬ безопасности взлом вирус доступ злоумышленник программы сайты сервер спам уязвимость файлы хакеры
Последние комментарии
» Написал: Павел
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Катерина
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Administrator
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: Елена
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: kholod
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
» Написал: Серега из Стрежевого
в новости: Бесплатный ключ на 1 год для Comodo Internet Security Pro 2012
» Написал: Akex
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Катерина
в новости: Бесплатный ключ для ESET Smart Security 5 на 6 месяцев
» Написал: Administrator
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: Елена
в новости: K9 Web Protection: бесплатный родительский контроль
» Написал: kholod
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO
» Написал: Серега из Стрежевого
в новости: Бесплатный ключ на 1 год для Comodo Internet Security Pro 2012
» Написал: Akex
в новости: Бесплатный ключ на 1 год для IObit Malware Fighter PRO