Рубріки: Подборки

10 основных уязвимостей ПО и способы их устранения

Богдан Мирченко

Веб-разработчик Приянши Шарма поделилась в своем блоге на dev.to десятью методами устранения уязвимостей в софте.

1. Инъекционные атаки. Это тип уязвимости ПО, при котором злоумышленники переносят вредоносный код из приложения в другую систему. Например, вызовы операционной системы, использование сторонних программ с помощью команд оболочки, а также вызовы серверных баз данных через SQL (так называемые SQL-инъекции). Такие атаки используют поля ввода, которые взаимодействуют с базами данных и каталогами для защиты от уязвимостей. Эти поля часто остаются незащищенными из-за отсутствия входного фильтра.

Лучшая защита от таких угроз — добавление фильтров к входным данным. Чтобы предотвратить изменение запросов злоумышленниками, в базах данных SQL должны использоваться подготовленные операторы.

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

Чтобы предотвратить автоматическое заполнение и повторное использование украденных учетных данных, разработчики должны применять многофакторную аутентификацию. Также Приянши Шарма утверждает, что очень важно согласовать длину и сложность пароля, а также последовательно реализовать проверку его ненадежности.

3. Незащищенность критичных данных. Раскрытие конфиденциальных данных происходит, когда приложении или компания непреднамеренно раскрывают личную информацию. Обычно злоумышленники перехватывают информацию двумя способами. Во-первых, данные могут перехватить во время их передачи от пользователя к клиенту по методу «man-in-the-middle». Второй способ подразумевает захват данных из-за слабого кэша или паролей и учетных данных.

Автор подборки отмечает, что это не то же самое, что и утечка данных, когда злоумышленник намеренно обходит систему безопасности, чтобы получить доступ и украсть информацию. Эта программная уязвимость возникает в результате неправильной защиты базы данных, в которой хранится информация. Например, вследствие слабого шифрования или его отсутствия.

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

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

Для профилактики уязвимости автор советует использовать более простые форматы данных и избегать сериализации конфиденциальной информации. Обнаружить в исходном коде XXE также могут помочь инструменты статического тестирования безопасности приложений (SAST).

5. Нарушение контроля доступа. Разработчики часто недооценивают сложность реализации надежного механизма авторизации. Этим пользуются злоумышленники, находя неправильные схемы и получая возможность просматривать, изменять и удалять контент и взять на себя администрирование сайта.

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

6. Неправильная конфигурация безопасности. Здесь речь идет о неправильной настройке или отсутствии защиты мер безопасности, что ставит под угрозу ПО и конфиденциальные файлы. Уязвимости могут включать неисправленные недостатки, незащищенные файлы или каталоги, неиспользуемые страницы и устаревшее ПО.

Чтобы снизить риски уязвимости системы безопасности, Приянши Шарма советует использовать протокол развертывания для постоянной разработки и развертывания обновлений в защищенной среде или определенной архитектуре. Автоматическое развертывание также будет поддерживать приложения в актуальном состоянии и предотвращать атаки.

7. Межсайтовый скриптинг (XSS). Одна из причин возникновения уязвимости — редактирование веб-страницы с применением данных пользователя с использованием API браузера, который может создавать HTML или JavaScript. При это вредоносные агенты могут воспользоваться недостатками межсайтовых скриптов для выполнения собственных. Злоумышленники могут использовать XSS для захвата учетных данных пользователя, выполнения санкционированных действий или получения полного контроля над ПО.

Уязвимость может быть устранена путем очистки ввода. Проверка и экранирование пользовательского ввода поможет предотвратить вредоносную инъекцию.

8. Небезопасная (ненадежная) десериализация. Как пишет Приянши Шарма, эта уязвимость считается наиболее серьезной, влияющей на большинство современных систем. Недостатки десериализации часто приводят к удаленному выполнению кода, что позволяет злоумышленникам выполнять атаки с повторением, внедрением и повышением личных привилегий.

Чтобы предотвратить атаку, средства защиты должны иметь полную видимость архитектуры основного приложения, а также предоставление информационного потока во время исполнения программы. 

9. Использование компонентов с известными уязвимостями. Чтобы узнать, какие компоненты имеют уязвимость, в национальной базе данных уязвимостей (National Vulnerability Database) есть обширный список известных сторонних уязвимостей, которые помогут принять решение.

Приянши Шарма советует получить полное представление о компонентах, используемых для создания приложения. Если уязвимость обнаружена, нужно настроить процесс для беспрепятственной загрузки, тестирования и выпуска патчей.

10. Недостатки журналирования и мониторинга. Из-за этого многие компании не могут эффективно управлять нарушениями безопасности. Недостаточное ведение журнала и мониторинг делают систему уязвимой для взлома, извлечения и уничтожения данных.

Для минимизации атак, автор подборки советует установить программы для эффективного мониторинга сети и настроить оповещения, чтобы выявлять сомнительные действия и своевременно реагировать на них.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023