Виды компьютерных уязвимостей
Термин “уязвимость” используется для обозначения недостатка в системе, используя который может намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадежных паролей, вирусов и других вредоносных программ.
В данной статье Вы познакомитесь с основными видами компьютерных уязвимостей.
Переполнение буфера
Переполнение буфера — явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера. Переполнение буфера обычно возникает из-за неправильной работы с данными, полученными извне, и памятью, при отсутствии жесткой защиты со стороны подсистемы программирования и операционной системы. В результате переполнения могут быть испорчены данные, расположенные следом за буфером (или перед ним).
Подробнее про переполнение буфера Вы можете прочитать в этой статье.
«разрешить этому приложению вносить изменения на вашем устройстве windows 10» — что это такое?
Висячий указатель
Висячий указатель или висячая ссылка — указатель, не ссылающийся на допустимый объект соответствующего типа. Это особый случай нарушения безопасности памяти.
Висячие указатели возникают тогда, когда объект удалён или перемещён без изменения значения указателя на нулевое, так что указатель все ещё указывает на область памяти, где ранее хранились данные. Поскольку система может перераспределить ранее освобождённую память, то оборванный указатель может привести к непредсказуемому поведению программы.
SQL-инъекция
Внедрение SQL-кода — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода. Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах.
Внедрение SQL в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.
Подробнее про SQL-инъекцию Вы можете прочитать в этой статье.
PHP-инъекция
В параметр, определяющий работу PHP с файлами или программным кодом, передаётся ссылка на сторонний программный код или сам код. Является критичной уязвимостью, так как взломщик может выполнять свои скрипты на сервере. Выполнение кода осуществляется при помощи функций: eval(), preg_replace(), require_once(), include_once(), include(), require(), create_function(), readfile(), dir(), fopen().
Email-инъекция
Email инъекция — это техника атаки, используемая для эксплуатации почтовых серверов и почтовых приложений, конструирующих IMAP/SMTP выражения из выполняемого пользователем ввода, который не проверяется должным образом. В зависимости от типа операторов, используемых злоумышленником, выделяют два типа инъекций: IMAP инъекция и SMTP инъекция.
Типичная структура IMAP/SMTP инъекции заключается в следующем:
Header: окончание ожидаемой команды Body: инъекция новых команд Footer: начало ожидаемой команды
Межсайтовый скриптинг
XSS (межсайтовый скриптинг) — тип атаки на web-системы, заключающийся во внедрении в выдаваемую web-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с web-сервером злоумышленника. Является разновидностью атаки «внедрение кода».
Специфика подобных атак заключается в том, что вредоносный код может использовать авторизацию пользователя в web-системе для получения к ней расширенного доступа или для получения авторизационных данных пользователя. Вредоносный код может быть вставлен в страницу как через уязвимость в web-сервере, так и через уязвимость на компьютере пользователя.
Подробнее можете узнать в даннной статье.
Межсайтовый скриптинг при наличии SQL-инъекции
SiXSS — тип атаки на уязвимые интерактивные информационные системы. Внедрение выполняемых на клиентском компьютере вредоносных скриптов в выдаваемую системой страницу посредством внедрения кода в SQL-инъекцию. Как правило, данная уязвимость возникает на стороне клиента, при наличии вывода принтабельных полей посредством выполнения SQL-инъекции. Данная атака может обеспечить доступ к информации на сервере, дать возможность выполнять определенные команды, украсть COOKIES пользователя и многое другое.
Межсайтовая подделка запроса
CSRF (также известен как XSRF) — вид атак на посетителей web-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника).
Для осуществления данной атаки жертва должна быть аутентифицирована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя, которое не может быть проигнорировано или подделано атакующим скриптом.
Shatter attack
Подрывная атака (англ. shatter attack) — программная технология, которая используется хакерами для обхода ограничений безопасности между процессами одного сеанса в операционной системе Microsoft Windows. Она опирается на недостаток архитектуры системы передачи сообщений и позволяет одному приложению внедрить произвольный код в любое другое приложение или службу, работающие в том же сеансе. В результате может произойти несанкционированное повышение привилегий.
Уязвимость нулевого дня
0day (англ. zero day) — термин, обозначающий не устранённые уязвимости, а также вредоносные программы, против которых ещё не разработаны защитные механизмы. Сам термин означает, что у разработчиков было 0 дней на исправление дефекта: уязвимость или атака становится публично известна до момента выпуска производителем ПО исправлений ошибки.
Доступность данных о характеристиках системы пользователю
Хакер может получить доступ к данным, дающим представление о системе. Не является критичной уязвимостью, но позволяет взломщику получить дополнительную информацию о структуре и работе сервера. Причина этой уязвимости в ошибках и «недосмотрах» программиста. Примером может служить наличие файла phpinfo.php с одноимённой функцией в свободном доступе.
Простые пароли для доступа к административным страницам
Взломщик может подобрать простой пароль к административной странице, дающей ему больше возможностей для взлома. Является критичной уязвимостью, так как позволяет взломщику повлиять на работу сервера.
Источник: it-black.ru
Топ-10 уязвимостей безопасности OWASP, часть 1
Внедрение кода происходит, когда злоумышленник отправляет недопустимые данные в веб-приложение с намерением заставить его сделать что-то, для чего приложение не было разработано / запрограммировано.
Возможно, наиболее распространенным примером этой уязвимости системы безопасности является запрос SQL, использующий ненадежные данные . Вы можете увидеть один из примеров OWASP ниже:
Ядром уязвимости, связанной с внедрением кода, является отсутствие проверки и очистки данных, используемых веб-приложением, что означает, что эта уязвимость может присутствовать практически в любом типе технологий, связанных с веб-сайтами.
Все, что принимает параметры в качестве входных данных, потенциально может быть уязвимо для атаки путем внедрения кода.
Как предотвратить уязвимости, связанные с внедрением кода?
Предотвращение SQL-инъекций требует хранения данных отдельно от команд и запросов.
- Предпочтительным вариантом является использование безопасного API, который полностью избегает использования интерпретатора или предоставляет параметризованный интерфейс, или переход на использование инструментов объектно-реляционного сопоставления (ORM). Примечание. Даже при параметризации хранимые процедуры могут вводить SQL-инъекцию, если PL / SQL или T-SQL объединяют запросы и данные или выполняют враждебные данные с помощью EXECUTE IMMEDIATE или exec ().
- Используйте положительную или «разрешенную» проверку входных данных на стороне сервера. Это не полная защита, поскольку многим приложениям требуются специальные символы, например текстовые области или API для мобильных приложений.
- Для любых остаточных динамических запросов экранируйте специальные символы, используя специальный синтаксис экранирования для этого интерпретатора. Примечание. Структуры SQL, такие как имена таблиц, имена столбцов и т. Д., Не могут быть экранированы, и поэтому имена структур, задаваемые пользователем, опасны. Это обычная проблема в программах для написания отчетов.
- Используйте LIMIT и другие элементы управления SQL в запросах, чтобы предотвратить массовое раскрытие записей в случае внедрения SQL.
A2 Broken Authentication and Session Management
Концептуально уязвимости аутентификации — одни из самых простых вопросов, которые нужно понять. Однако они могут быть одними из самых важных из-за очевидной взаимосвязи между аутентификацией и безопасностью. Помимо того, что злоумышленникам потенциально предоставляется прямой доступ к конфиденциальным данным и функциям, они также открывают дополнительную поверхность для атак для дальнейших эксплойтов. По этой причине изучение того, как выявлять и использовать уязвимости аутентификации, в том числе обходить общие меры защиты, является фундаментальным навыком.
В этом разделе мы рассмотрим некоторые из наиболее распространенных механизмов аутентификации, используемых веб-сайтами, и обсудим потенциальные уязвимости в них. Мы выделим как внутренние уязвимости в различных механизмах аутентификации, так и некоторые типичные уязвимости, возникающие в результате их неправильной реализации. Наконец, мы дадим некоторые базовые рекомендации о том, как обеспечить максимальную надежность ваших собственных механизмов аутентификации.
Что такое аутентификация?
Аутентификация — это процесс проверки личности данного пользователя или клиента. Другими словами, необходимо убедиться, что они действительно те, кем себя называют. По крайней мере частично, веб-сайты доступны для всех, кто изначально подключен к Интернету. Следовательно, надежные механизмы аутентификации являются неотъемлемым аспектом эффективной веб-безопасности.
Существует три фактора аутентификации, по которым можно разделить различные типы аутентификации:
- Что-то, что вы знаете , например пароль или ответ на секретный вопрос. Их иногда называют «факторами знания».
- Что-то , что у вас есть , то есть физический объект, например мобильный телефон или токен безопасности. Их иногда называют «факторами владения».
- Что-то, чем вы являетесь или делаете, например, ваши биометрические данные или модели поведения. Иногда их называют «факторами принадлежности».
Механизмы аутентификации полагаются на ряд технологий для проверки одного или нескольких из этих факторов.
Типы уязвимостей неработающей аутентификации
Согласно рейтингу OWASP Top 10, эти уязвимости могут проявляться во многих формах. Веб-приложение содержит уязвимость с нарушенной аутентификацией, если оно:
- Разрешает автоматические атаки, такие как заполнение учетных данных, когда у злоумышленника есть список действительных имен пользователей и паролей .
- Разрешает грубую силу или другие автоматические атаки.
- Разрешает стандартные, слабые или общеизвестные пароли, такие как Password1 или admin / admin.
- Использует слабые или неэффективные процессы восстановления учетных данных и забытого пароля, такие как «ответы на основе знаний», которые нельзя сделать безопасными.
- Использует простой текст, зашифрованные пароли или пароли со слабым хешем.
- Отсутствует или не работает многофакторная аутентификация.
- Предоставляет идентификаторы сеанса в URL-адресе (например, перезапись URL-адреса).
- Не меняет идентификаторы сеанса после успешного входа в систему.
- Не делает недействительными идентификаторы сеанса. Пользовательские сеансы или токены аутентификации (особенно токены единого входа (SSO)) не аннулируются должным образом во время выхода из системы или периода бездействия.
Как предотвратить уязвимости с нарушенной аутентификацией?
Чтобы избежать уязвимостей неработающей аутентификации, убедитесь, что разработчики применяют передовые методы обеспечения безопасности веб-сайтов. Поддержите их, предоставив доступ к внешним аудитам безопасности и предоставив достаточно времени для правильного тестирования кода перед развертыванием в производственной среде.
Технические рекомендации OWASP следующие:
- По возможности внедряйте многофакторную аутентификацию, чтобы предотвратить автоматические атаки с заполнением учетных данных, перебором и повторным использованием украденных учетных данных.
- Не отправляйте и не развертывайте учетные данные по умолчанию, особенно для администраторов.
- Внедрите проверку ненадежных паролей, например проверку новых или измененных паролей по списку из 10 000 самых плохих паролей.
- Согласуйте политику длины, сложности и ротации паролей с рекомендациями NIST 800-63 B в разделе 5.1.1 для запомненных секретов или другими современными политиками паролей, основанными на фактах.
- Убедитесь, что пути регистрации, восстановления учетных данных и API защищены от атак перечисления учетных записей, используя одни и те же сообщения для всех результатов.
- Ограничивайте количество неудачных попыток входа в систему или все чаще откладывайте их. Регистрируйте все сбои и предупреждайте администраторов при обнаружении заполнения учетных данных, перебора или других атак.
- Используйте безопасный встроенный диспетчер сеансов на стороне сервера, который генерирует новый случайный идентификатор сеанса с высокой энтропией после входа в систему. Идентификаторы сеанса не должны быть в URL-адресе. Идентификаторы также должны быть надежно сохранены и аннулированы после выхода из системы, простоя и абсолютного тайм-аута.
A3 Cross-Site Scripting (XSS)
Межсайтовый скриптинг (также известный как XSS) — это уязвимость веб-безопасности, которая позволяет злоумышленнику нарушить взаимодействие пользователей с уязвимым приложением. Это позволяет злоумышленнику обойти одну и ту же политику происхождения, которая предназначена для отделения разных веб-сайтов друг от друга. Уязвимости межсайтового сценария обычно позволяют злоумышленнику маскироваться под пользователя-жертву, выполнять любые действия, которые пользователь может выполнить, и получать доступ к любым данным пользователя. Если пользователь-жертва имеет привилегированный доступ к приложению, злоумышленник может получить полный контроль над всеми функциями и данными приложения.
Как работает XSS?
Межсайтовый скриптинг работает, манипулируя уязвимым веб-сайтом, чтобы он возвращал пользователям вредоносный код JavaScript. Когда вредоносный код выполняется в браузере жертвы, злоумышленник может полностью скомпрометировать свое взаимодействие с приложением.
Как проверить XSS
Вы можете подтвердить большинство видов XSS-уязвимостей, внедрив полезную нагрузку, которая заставляет ваш собственный браузер выполнять произвольный JavaScript. Долгое время эта alert()функция использовалась для этой цели, потому что она короткая, безвредная, и ее довольно сложно пропустить при успешном вызове. Фактически, вы решаете большинство наших XSS-лабораторий, вызывая alert()смоделированный браузер жертвы.
К сожалению, при использовании Chrome есть небольшая загвоздка. Начиная с версии 92 (20 июля 2021 г.) вызовы iframe из разных источников запрещены alert(). Поскольку они используются для создания некоторых из более сложных XSS-атак, вам иногда потребуется использовать альтернативные полезные данные PoC.
Какие бывают типы XSS-атак?
Существует три основных типа XSS-атак. Эти:
- Отраженный XSS , где вредоносный скрипт исходит из текущего HTTP-запроса.
- Сохраненный XSS , где вредоносный скрипт исходит из базы данных сайта.
- XSS на основе DOM , где уязвимость существует в коде на стороне клиента, а не на стороне сервера.
Отраженный межсайтовый скриптинг
Reflected XSS — это простейшая разновидность межсайтового скриптинга. Он возникает, когда приложение получает данные в HTTP-запросе и включает эти данные в немедленный ответ небезопасным способом.
Вот простой пример отраженной уязвимости XSS:
Status: All is well.
Приложение не выполняет никакой другой обработки данных, поэтому злоумышленник может легко построить такую атаку:
Если пользователь посещает URL-адрес, созданный злоумышленником, сценарий злоумышленника выполняется в браузере пользователя в контексте сеанса пользователя с приложением. В этот момент скрипт может выполнить любое действие и получить любые данные, к которым у пользователя есть доступ.
Сохраненные межсайтовые сценарии
Сохраненный XSS (также известный как постоянный XSS или XSS второго порядка) возникает, когда приложение получает данные из ненадежного источника и небезопасным образом включает эти данные в свои последующие HTTP-ответы.
Рассматриваемые данные могут быть отправлены в приложение через HTTP-запросы; например, комментарии к сообщению в блоге, псевдонимы пользователей в чате или контактные данные в заказе клиента. В других случаях данные могут поступать из других ненадежных источников; например, приложение веб-почты, отображающее сообщения, полученные через SMTP, маркетинговое приложение, отображающее сообщения в социальных сетях, или приложение для мониторинга сети, отображающее пакетные данные из сетевого трафика.
Вот простой пример сохраненной уязвимости XSS . Приложение доски объявлений позволяет пользователям отправлять сообщения, которые отображаются для других пользователей:
Hello, this is my message!
Приложение не выполняет никакой другой обработки данных, поэтому злоумышленник может легко отправить сообщение, которое атакует других пользователей:
Межсайтовый скриптинг на основе DOM
XSS на основе DOM (также известный как DOM XSS ) возникает, когда приложение содержит некоторый клиентский JavaScript, который обрабатывает данные из ненадежного источника небезопасным способом, обычно путем записи данных обратно в DOM.
В следующем примере приложение использует некоторый JavaScript для чтения значения из поля ввода и записи этого значения в элемент внутри HTML:
var search = document.getElementById(‘search’).value;
var results = document.getElementById(‘results’);
results.innerHTML = ‘You searched for: ‘ + search;
Если злоумышленник может контролировать значение поля ввода, он может легко создать вредоносное значение, которое приведет к выполнению их собственного сценария:
You searched for:
В типичном случае поле ввода заполняется из части HTTP-запроса, такой как параметр строки запроса URL-адреса, что позволяет злоумышленнику осуществить атаку с использованием вредоносного URL-адреса таким же образом, как и отраженный XSS.
Источник: dzen.ru
Что такое уязвимости и эксплойты: что нужно знать?
Эксплойты существуют за счет уязвимостей, которые, в свою очередь, прокладывают путь для них. Эти тесно связанные друг с другом концепции безопасности часто путают, но очень важно понять разницу и то, как каждая из них действует.
Что такое уязвимость?
Когда мы говорим об уязвимостях, то имеем в виду слабые места в программном коде. Уязвимости чаще всего встречаются в более старых ПО и до сих пор очень распространены. Злоумышленники легко находят их сканируя сеть. Уязвимости могут проникнуть в вашу систему, благодаря чему, злоумышленники смогут украсть ваши личные данные или вымогать деньги.
Несмотря на то, что целевые атаки все же случаются, большинство кибер-атак – это случайные преступления. Поэтому помните, что киберпреступники всегда ищут уязвимые и слабые места.
Вам будет полезно узнать – riskware (это потенциально опасное ПО).
Как минимизировать уязвимости?
Лучший способ уменьшить количество уязвимостей в системе – постоянно обновлять все программное обеспечение.
- Автоматическое обновление : Настройте автоматическое обновления для всех программ и систем инфраструктуры. Не стоит полагаться на ручное обновление.
- Антивирус : Вложите средства в антивирусную программу, которая будет регулярно сканировать ваши системы и сообщать о появлении новой уязвимости, чтобы вы могли исправить ее или принять другие меры предосторожности.
Что такое эксплойт?
Уязвимость – это, по сути, открытая дверь, через которую может пройти эксплойт (компьютерная программа, использующая уязвимость). Другими словами, для успеха эксплойта требуются уязвимости. Эксплойты полагаются на ошибки и просчеты – устаревшее программное обеспечение, неактуальные серверы и т.д.
Как защититься от эксплойтов?
Есть несколько ключевых шагов, которые вы можете предпринять, чтобы значительно снизить возникновение потенциальных эксплойтов.
- Многофакторная аутентификация. Эта система контролирует доступ к компьютеру через мобильные устройства или специальное оборудование, где необходимо пройти более одного доказательства аутентификации. Благодаря ей, злоумышленникам придется непросто, а возможность взлома вашей системы стремиться к нулю.
- Блокировка учетных данных . Если злоумышленники будут настойчиво подбирать пароли, то, в конечном счете, они это сделают. Поэтому настоятельно рекомендуется использовать блокировку после определенного количества попыток взлома пароля.
- Непрерывный мониторинг. Это означает, что вы будете знать, когда в ваших системах происходит что-то подозрительное и принять незамедлительные меры, чтобы положить этому конец.
Любой пользователь, который часто взаимодействует с интернетом, должен понимать простые основы уязвимостей и эксплойтов. Конечно, идеальной безопасности не существует. Всегда будет появляться новая угроза. Как человек, так и машина, могут невольно открыть путь для атак. Поэтому, чтобы максимально уменьшить риски, сначала нужно минимизировать уязвимости, а затем защищаться от эксплойтов, как описано выше.
На видео:Exploit.RTF.CVE-2012-0158: самый опасный в мире вирус или почему так важно обновлять свой софт
Источник: bezopasnik.info
Уязвимая программа что это значит
2. Нарушенная аутентификация
Уязвимости аутентификации могут позволить злоумышленникам получить доступ к учетным записям пользователей, включая привилегированные, которые затем можно использовать для получения контроля над корпоративными информационными системами.
Веб-сайты часто имеют проблемы с механизмами аутентификации. Прежде всего связаны они с некорректным управлением сеансами, что может быть использовано злоумышленниками для получения доступа к учетным записям пользователей и учетным данным для входа.
OWASP Top 10 содержит целый список подобных уязвимостей:
- Возможность автоматизированного заполнения учетных данных и/или подбора пароля.
- Возможность использования стандартных, слабых и известных паролей.
- Неэффективные процессы восстановления учетных данных.
- Отсутствие многофакторной аутентификации (MFA) или ее неэффективная реализация.
- Предоставление идентификаторов сеансов в унифицированном указателе ресурсов (URL), отсутствие чередования идентификаторов сеансов и неправильное аннулирование идентификаторов сеансов и токенов аутентификации при выходе пользователя из системы или после периода бездействия.
Такие уязвимости часто возникают из-за недостатка у разработчиков опыта, из-за проблем с тестированием, а также из-за слишком поспешных выпусков программного обеспечения.
Количество уязвимостей можно уменьшить путем внедрения многофакторной аутентификации, а также внедрения ограничений, делающих невозможности автоматизированные атаки грубой силы (например, путем перебора). Не менее важно отсутствие спешки и наличие у разработчиков времени на проверку изменений перед запуском в продакшен, а также внедрение процедур тестирования кода на безопасность. Также необходимо внедрить жесткую парольную политику и использовать безопасные диспетчеры сеансов.
3. Раскрытие критически важных данных
Основная причина риска раскрытия критически важных данных связана с отсутствием шифрования или с использованием ненадежных методов генерации и управления ключами, слабых алгоритмов шифрования, ненадежных способов хранения паролей и т.д. Кроме того, разработчики веб-приложений часто хранят конфиденциальные данные, даже если в этом нет необходимости.
4. Внешние объекты XML (XXE)
Атаки XXE нацелены на веб-приложения, которые анализируют расширяемый язык разметки (XML). Они возникают, когда ввод содержащего ссылку на внешний объект кода XML обрабатывается синтаксическим анализатором со слабой конфигурацией. Анализаторы XML часто по умолчанию уязвимы для XXE, а значит разработчики должны удалить уязвимость вручную.
В Топ-10 OWASP указано, что атаки XXE обычно нацелены на уязвимые процессоры XML, уязвимый код, зависимости и интеграции.
Атаки XXE можно избежать, если веб-приложения принимают менее сложные формы данных (например, веб-токены JavaScript Object Notation (JSON)), исправляя синтаксические анализаторы XML или отключая использование внешних сущностей. Защититься от атак XXE можно, развернув шлюзы безопасности интерфейса прикладного программирования (API), виртуальные исправления и брандмауэры веб-приложений (WAF).
5. Нарушенный контроль доступа
Проблемы с контролем доступа позволяют злоумышленникам обойти заданные ограничения и получить несанкционированный доступ к системам и конфиденциальным данным, а также потенциально получить доступ к учетным записям администраторов и привилегированных пользователей.
Риск нарушения контроля доступа можно снизить, развернув концепцию наименее привилегированного доступа, регулярно проверяя серверы и веб-сайты, применяя MFA и удаляя с серверов неактивных пользователей и ненужные службы. Можно также защитить элементы управления доступом, используя токены авторизации при входе пользователей в веб-приложение и делая их недействительными после выхода из системы. Другие рекомендации включают регистрацию и отчеты об ошибках доступа, а также использование ограничения скорости для минимизации причиняемого автоматическими атаками ущерба.
6. Неправильная конфигурация безопасности
Ошибки настройки безопасности считаются наиболее распространенной уязвимостью в рейтинге OWASP Top 10. Чаще всего они связаны с использованием стандартных настроек веб-сайтов или системы управления контентом (CMS). К распространенным ошибкам конфигурации также относятся неспособность исправить недостатки программного обеспечения, неиспользуемые веб-страницы, незащищенные каталоги и файлы, разрешения на совместное использование по умолчанию для служб облачного хранения, а также неиспользуемые или ненужные службы.
Неправильная конфигурация безопасности может быть где угодно: в приложениях и веб-серверах, базах данных, сетевых службах, пользовательском коде, фреймворках, предустановленных виртуальных машинах и контейнерах.
Конфигурацию безопасности можно исправить, изменив настройки веб-сервера или CMS по умолчанию, удалив неиспользуемые функции кода и контролируя данные пользователей и видимость пользовательской информации. Разработчики также должны удалить ненужную документацию, функции, структуры и образцы, сегментировать архитектуру приложений и автоматизировать проверку эффективности конфигураций и настроек веб-среды.
7. Межсайтовый скриптинг (XSS)
Уязвимости XSS позволяют киберпреступникам внедрять скрипты на веб-сайт и использовать его для распространения выполняющегося в браузере пользователя вредоносного кода. Как правило это нужно для перехвата пользовательских сеансов, кражи конфиденциальных данных или перенаправления пользователя на вредоносные сайты.
Предотвратить эксплуатацию уязвимостей XSS можно с помощью брандмауэров веб-приложений (WAF), в то время как разработчики могут снизить вероятность XSS-атак, отделяя ненадежные данные от активных браузеров. Это включает в себя использование фреймворков, которые избегают XSS по своей конструкции, использование очистки и проверки данных, избегание ненадежных данных запроса протокола передачи гипертекста (HTTP) и развертывание политики безопасности контента (CSP).
8. Небезопасная десериализация
В терминах хранения данных и информатики сериализация означает преобразование объектов или структур данных в байтовые строки. Десериализация означает преобразование этих байтовых строк в объекты. Небезопасная десериализация предполагает, что злоумышленники изменяют данные до того, как они будут десериализованы.
Рекомендации OWASP по защите в отношении небезопасной десериализации касаются супер-файлов cookie, которые содержат сериализованную информацию о пользователях. Если злоумышленники могут успешно десериализовать объект, они могут предоставит себе роль администратора, сериализовать данные и поставить под угрозу все веб-приложения.
Этого можно избежать, запретив сериализованные объекты и запретив десериализацию данных, поступающих из ненадежных источников. OWASP также рекомендует отслеживать деятельность по десериализации, внедрять проверки целостности любых сериализованных объектов для предотвращения подделки данных, изолировать десериализованный код от сред с низким уровнем привилегий, обеспечивать регистрацию всех исключений и сбоев десериализации, а также ограничивать и отслеживать сетевое подключение из контейнеров и серверов, десериализирующих данные.
9. Использование компонентов с известными уязвимостями
Программные компоненты, такие как фреймворки и библиотеки, часто используются в веб-приложениях для обеспечения определенных функций. Однако эти компоненты могут содержать уязвимости, позволяющие злоумышленнику начать кибератаку.
Часто разработчики не обновляют сторонние компоненты, поскольку их устаревший код не работает со свежими версиями ПО, а веб-мастера либо обеспокоены тем, что обновления нарушают работу сайтов, либо не имеют опыта для применения обновлений. К тому же злоумышленники постоянно ищут потенциальные уязвимости, которые еще не были обнаружены разработчиками (известные как уязвимости нулевого дня) и которые они могут использовать.
Этого можно избежать с помощью виртуального исправления, которое защищает устаревшие веб-сайты от эксплуатации уязвимостей с помощью брандмауэров, систем обнаружения вторжений (IDS) и WAF. Эксплуатацию уязвимостей также можно предотвратить, сохранив только реально необходимые компоненты и удалив все неиспользуемые или не обслуживаемые. Лучшим методом будет установка компонентов из надежных источников и постоянное их обновление.
10. Недостаточно подробные журналы и слабый мониторинг
Успешную хакерскую атаку или утечку данных удается обнаружить далеко не всегда. Часто злоумышленники не только получают несанкционированный доступ к информационным системам, но хозяйничают в них месяцами или годами, оставаясь невидимыми. Чтобы этого не произошло, необходимо регистрировать и отслеживать поведение веб-приложения, чтобы своевременно распознать подозрительную активность и либо предотвратить атаку, любо минимизировать ее последствия.
Необходимо вести журналы аудита, которые позволяют отслеживать любые подозрительные изменения, регистрировать аномальную активность и отслеживать несанкционированный доступ или, скажем, компрометацию учетной записи.
Источники
Источник: proglib.io