Безопасность

10 типов уязвимостей безопасности

10 типов уязвимостей безопасности
Непреднамеренная или случайная ошибка в программном коде или любой системе, которая делает ее потенциально уязвимой с точки зрения доступа незаконных пользователей, злонамеренного поведения, такого как вирусы, трояны, черви или любое другое вредоносное ПО, называется уязвимостью системы безопасности. Использование уже использованного программного обеспечения или использование слабых паролей и паролей по умолчанию также приводит к тому, что система становится уязвимой для внешнего мира. Эти типы уязвимостей безопасности требуют исправления, чтобы предотвратить повторное использование хакерами ранее использованных эксплойтов для получения несанкционированного доступа к системе. Уязвимость безопасности, также называемая дырой или слабым местом в безопасности, - это недостаток, ошибка или сбой в реализации кода, дизайна и архитектуры веб-приложения и серверов, которые, если их не устранить, могут привести к компрометации системы и вся сеть уязвима для атаки. Люди, которые будут заражены, включают владельца приложения, пользователей приложения и любого другого человека, использующего это приложение. Давайте посмотрим на самые опасные и распространенные угрозы безопасности веб-приложений.

Оглавление

  1. Внедрение базы данных
  2. Сломанная аутентификация
  3. Раскрытие конфиденциальных данных
  4. Внешние объекты XML (XEE)
  5. Сломанный контроль доступа
  6. Неверная конфигурация безопасности
  7. Межсайтовый скриптинг (XSS)
  8. Небезопасная десериализация
  9. Использование компонентов с известными уязвимостями
  10. Недостаточное ведение журнала и мониторинг

Внедрение базы данных:

В случае отправки ненадежных фрагментов данных в интерпретатор как часть команды через любую область, которая принимает пользовательский ввод i.При вводе электронной формы или любой другой области подачи данных возникают ошибки внедрения. Вредоносные запросы злоумышленника могут обманом заставить интерпретатор выполнить команды, которые могут отображать конфиденциальные данные, на просмотр которых у пользователя нет разрешения. Например, при атаке с использованием SQL-инъекции, когда ввод формы не очищен должным образом, злоумышленник может войти в базу данных SQL и получить доступ к ее содержимому без авторизации, просто введя вредоносный код базы данных SQL в форме, которая ожидает открытый текст. Любой тип поля, в которое вводятся данные пользователя, можно вводить.e параметры, переменные среды, все веб-сервисы и т. д.

Приложение уязвимо для инъекционной атаки, когда предоставленные пользователем данные не очищаются и не проверяются за счет использования динамических запросов без контекстно-зависимого экранирования и прямого использования враждебных данных. Недостатки внедрения могут быть легко обнаружены путем изучения кода и использования автоматизированных инструментов, таких как сканеры и фаззеры. Для предотвращения атак путем внедрения могут быть приняты некоторые меры, такие как отделение данных от команд и запросов, использование безопасного API с параметризованным интерфейсом, использование «белого списка» для проверки входных данных на стороне сервера с помощью таких инструментов, как Snort, экранирование специальных символов с использованием специального синтаксиса экранирования и т. д.

Инъекционная атака может привести к массовой потере данных, раскрытию конфиденциальной информации, отказу в доступе и даже к полному захвату приложений. Некоторые элементы управления SQL, такие как LIMIT, могут использоваться для контроля потери огромных объемов данных в случае атаки. Некоторые типы атак с использованием инъекций: SQL, OS, NoSQL, атаки с использованием инъекций LDAP.

Сломанная аутентификация:

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

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

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

Раскрытие конфиденциальных данных:

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

Главный недостаток не только в том, что данные не зашифрованы, даже если они зашифрованы, но и генерация слабых ключей, слабые алгоритмы хеширования, использование слабых шифров также может привести к этим типам одной из самых распространенных атак. Чтобы предотвратить эти типы атак, во-первых, классифицируйте, какие данные могут считаться конфиденциальными в соответствии с законами о конфиденциальности, и примените меры в соответствии с классификацией. Старайтесь не хранить ненужные секретные данные, стирайте их сразу после использования. Для передаваемых данных зашифруйте их с помощью безопасных протоколов i.e TLS с шифрами PFS и т. д.

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

Внешние объекты XML (XEE):

Плохо настроенные процессоры XML обрабатывают ссылки на внешние сущности внутри документов XML. Эти внешние объекты могут использоваться для получения данных внутренних файлов, например / etc / passwd файл или для выполнения других вредоносных задач.  Уязвимые процессоры XML могут быть легко использованы, если злоумышленник может загрузить XML-документ или включить XML и т. Д. Эти уязвимые XML-объекты могут быть обнаружены с помощью инструментов SAST и DAST или вручную путем проверки зависимостей и конфигураций.

Веб-приложение уязвимо для атаки XEE по многим причинам, например, если приложение принимает прямой ввод XML из ненадежных источников, включены определения типов документов (DTD) в приложении, приложение использует SAML для обработки идентификаторов, поскольку SAML использует XML для идентификации. прошивки и т. д. Атаки XEE можно смягчить, отказавшись от сериализации конфиденциальных данных, используя менее сложные форматы данных i.e JSON, исправление процессоров XML, которые приложение в настоящее время использует, и даже библиотек, отключение DTD во всех синтаксических анализаторах XML, проверка функциональности загрузки файлов XML с помощью проверки XSD и т. д.

Приложение, уязвимое для этих типов атак, может привести к атаке DOS, атаке Billion Laughs, сканированию внутренних систем, сканированию внутреннего порта, выполнению удаленной команды, которая влияет на все данные приложения.

Сломанный контроль доступа:

Контроль доступа дает пользователям права выполнять определенные задачи. Уязвимость нарушенного контроля доступа возникает, когда пользователи не ограничены должным образом в задачах, которые они могут выполнять. Злоумышленники могут воспользоваться этой уязвимостью, что может привести к несанкционированному доступу к функциям или информации. Скажем, веб-приложение позволяет пользователю изменить учетную запись, из которой он вошел в систему, просто изменив URL-адрес на учетную запись другого пользователя без дополнительной проверки.  Использование уязвимости контроля доступа - это атака любого злоумышленника, эту уязвимость можно найти вручную, а также с помощью инструментов SAFT и DAFT. Эти уязвимости существуют из-за отсутствия тестирования и автоматического обнаружения веб-приложений, хотя лучший способ найти их - сделать это вручную.

Уязвимости содержат повышение привилегий i.e действуя как пользователь, которым вы не являетесь, или действуя как администратор, пока вы являетесь пользователем, обходя проверки контроля доступа, просто изменяя URL-адрес или изменяя состояние приложения, манипулируя метаданными, позволяя изменять первичный ключ в качестве первичного ключа другого пользователя, так далее. Чтобы предотвратить подобные атаки, механизмы контроля доступа должны быть реализованы в коде на стороне сервера, где злоумышленники не могут изменять средства контроля доступа. Необходимо обеспечить соблюдение уникальных бизнес-ограничений приложений с помощью моделей домена, отключение списков каталогов сервера, предупреждение администратора о повторяющихся неудачных попытках входа в систему, аннулирование токенов JWT после выхода из системы, чтобы предотвратить подобные атаки.

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

Неправильная конфигурация безопасности:

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

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

Эти типы уязвимостей или недостатков позволяют злоумышленнику получить несанкционированный доступ к системным данным, что приводит к полной компрометации системы.

Межсайтовый скриптинг (XSS):

Уязвимости XSS возникают тогда, когда веб-приложение включает ненадежные данные на новую страницу веб-сайта без законного утверждения или экранирования, или обновляет текущую страницу сайта данными, предоставленными клиентом, используя API браузера, который может преобразовывать HTML или JavaScript.  Недостатки XSS возникают в том случае, если веб-сайт позволяет пользователю добавлять собственный код в URL-путь, который могут видеть другие пользователи. Эти недостатки используются для запуска вредоносного кода JavaScript в целевом браузере. Допустим, злоумышленник может отправить жертве ссылку, содержащую ссылку на сайт любой компании. В это соединение может быть встроен вредоносный код JavaScript. В случае, если веб-страница банка не защищена надлежащим образом от XSS-атак, при нажатии на ссылку вредоносный код будет запущен в браузере жертвы.

Межсайтовый скриптинг - это уязвимость системы безопасности, которая присутствует почти в веб-приложений. Приложение уязвимо для XSS, если приложение хранит неанитизированный пользовательский ввод, который может быть увиден другим пользователем, за счет использования структур JavaScript, одностраничных приложений и API, которые мощно включают информацию, управляемую злоумышленником, на страницу, беспомощны против DOM XSS. Атаки XSS могут быть смягчены за счет использования фреймворков, которые ускользают и дезинфицируют ввод XSS по своей природе, таких как React JS и т. Д., Изучая ограничения фреймворков и покрывая их, используя свои собственные случаи, избегая ненужных и ненадежных данных HTML повсюду.e в атрибутах HTML, URI, Javascript и т. д., использование контекстно-зависимой кодировки в случае изменения документа на стороне клиента и т. д.

XSS-атаки бывают трех типов: i.e Отраженный XSS, DOM XSS и сохраненный XSS. Все типы этих атак оказывают значительное влияние, но в случае Stored XSS влияние еще больше.е кража учетных данных, отправка вредоносного ПО жертве и т. д.

Небезопасная десериализация:

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

Когда приложение десериализует вредоносные объекты, предоставленные атакующим лицом. Это может привести к двум типам атак: i.атаки, связанные со структурой данных и объектами, в которых злоумышленник изменяет логику приложения или выполняет удаленный код, и типичные атаки с подделкой данных, в которых существующие структуры данных используются с измененным содержимым, например, атаки, связанные с контролем доступа.  Сериализация может использоваться при удаленном взаимодействии процессов (RPC) или межпроцессном взаимодействии (IPC), кэшировании данных, веб-службах, сервере кеширования баз данных, файловых системах, токенах аутентификации API, файлах cookie HTML, параметрах формы HTML и т. Д. Атаки десериализации могут быть смягчены, если не использовать сериализованные объекты из ненадежных источников, реализовать проверки целостности, изолировать код, работающий в среде с низким уровнем привилегий, контролировать входящие и исходящие сетевые соединения с серверов, которые часто десериализуются.

Использование компонентов с известными уязвимостями:

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

Приложение уязвимо, если разработчик не знает версию используемого компонента, программное обеспечение устарело.e операционная система, СУБД, работающее программное обеспечение, среды выполнения и библиотеки, сканирование уязвимостей не проводится регулярно, совместимость исправленного программного обеспечения не проверяется разработчиками. Этого можно избежать, удалив неиспользуемые зависимости, файлы, документацию и библиотеки, регулярно проверяя версию клиентских и серверных компонентов, получая компоненты и библиотеки из официальных и надежных защищенных источников, отслеживая неустановленные библиотеки и компоненты, обеспечивая план для регулярного обновления и исправления уязвимых компонентов.

Эти уязвимости приводят к незначительным воздействиям, но также могут привести к компрометации сервера и системы. Многие крупные нарушения основывались на известных уязвимостях компонентов. Использование уязвимых компонентов подрывает защиту приложений и может стать отправной точкой для крупной атаки.

Недостаточное ведение журнала и мониторинг:

Большинство систем не принимают достаточных мер и шагов для обнаружения утечки данных. Среднее время реакции на инцидент составляет 200 дней после того, как он произошел, это много времени, чтобы сделать все неприятные вещи для атакующей сущности. Недостаточное ведение журнала и мониторинг позволяют злоумышленнику продолжать атаковать систему, удерживать ее в системе, вмешиваться, удерживать и извлекать данные в соответствии с потребностями. Злоумышленники используют отсутствие мониторинга и реакции в свою пользу для атаки на веб-приложение.
В любое время происходит недостаточное ведение журнала и мониторинг i.журналы приложений, которые не отслеживаются на предмет необычных действий, контролируемые события, такие как неудачные попытки входа в систему и высокие значения транзакций, не регистрируются должным образом, предупреждения и ошибки генерируют нечеткие сообщения об ошибках, нет триггерного предупреждения в случае пентестинга с использованием автоматических инструментов DAST, невозможность обнаружения или быстро оповещать об активных атаках и т. д. Их можно смягчить, обеспечив регистрацию всех попыток входа в систему, сбоев контроля доступа и проверки входных данных на стороне сервера для идентификации злонамеренной учетной записи пользователя и удержания их в течение достаточного количества времени для отложенного судебного расследования, гарантируя, что генерируемые журналы имеют формат совместимость с централизованными решениями для управления журналами за счет обеспечения проверки целостности крупных транзакций, за счет создания системы для своевременного оповещения о подозрительных действиях и т. д.

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

Заключение:

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

Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...