sensitive data что это
sensitive data
Смотреть что такое «sensitive data» в других словарях:
Data-flow analysis — is a technique for gathering information about the possible set of values calculated at various points in a computer program. A program s control flow graph (CFG) is used to determine those parts of a program to which a particular value assigned… … Wikipedia
Data masking — is the process of obscuring (masking) specific data elements within data stores. It ensures that sensitive data is replaced with realistic but not real data. The goal is that sensitive customer information is not available outside of the… … Wikipedia
Data loss prevention products — Data Loss Prevention (DLP) is a computer security term referring to systems designed to detect and prevent the unauthorized transmission of information from the computer systems of an organization to outsiders. It is also referred to by various… … Wikipedia
Data remanence — is the residual representation of data that remains even after attempts have been made to remove or erase the data. This residue may result from data being left intact by a nominal file deletion operation, by reformatting of storage media that… … Wikipedia
Data security — is the means of ensuring that data is kept safe from corruption and that access to it is suitably controlled. Thus data security helps to ensure privacy. It also helps in protecting personal data. Data security is part of the larger practice of… … Wikipedia
Data loss prevention software — Data Loss Prevention (DLP) is a computer security term referring to systems that identify, monitor, and protect data in use (e.g. endpoint actions), data in motion (e.g. network actions), and data at rest (e.g. data storage) through deep content… … Wikipedia
Data loss — is an error condition in information systems in which information is destroyed by failures or neglect in storage, transmission, or processing. Information systems implement backup and disaster recovery equipment and processes to prevent data loss … Wikipedia
Data erasure — (also called data clearing or data wiping) is a software based method of overwriting data that completely destroys all electronic data residing on a hard disk drive or other digital media. Permanent data erasure goes beyond basic file deletion… … Wikipedia
Data mapping — Data transformation/Source transformation Concepts metadata · data mapping data transformation · model transf … Wikipedia
Data governance — is an emerging discipline with an evolving definition. The discipline embodies a convergence of data quality, data management, data policies, business process management, and risk management surrounding the handling of data in an organization.… … Wikipedia
Что такое OWASP Top-10 и как использовать указанные риски и уязвимости
При управлении сайтом важно быть в курсе наиболее значимых уязвимостей и угроз безопасности. Рейтинг OWASP Top 10 — отличная отправная точка для ознакомления с самыми серьёзными угрозами для веб-приложений, существующими на данный момент.
Что такое OWASP?
OWASP (расшифровывается как Open Web Application Security Project) — это онлайн-сообщество, которое выпускает статьи на тему безопасности веб-приложений, а также документацию, различные инструменты и технологии.
Что такое OWASP Топ-10?
OWASP Топ-10 — это список из десяти самых распространённых на данный момент уязвимостей веб-приложений. Благодаря этому списку пользователи будут осведомлены о наиболее критичных рисках и угрозах, их последствиях и мерах противодействия. Обновляется список OWASP каждые три-четыре года (последний раз он был выпущен в 2018 году). Давайте познакомимся с ним поближе.
10 основных уязвимостей OWASP 2020 года:
Инъекционная атака
При инъекционной атаке злоумышленник внедряет недопустимые данные в веб-приложение с намерением заставить его сделать нечто, для чего приложение не было разработано/запрограммировано.
Возможно, наиболее распространённой разновидностью этой уязвимости системы безопасности является внедрение кода через SQL-запрос, использующий ненадёжные данные. Один из примеров от OWASP вы можете увидеть ниже:
String query = “SELECT * FROM accounts WHERE custID = ‘” + request.getParameter(“id”) + “‘”;
Главной причиной уязвимости, связанной с внедрением кода, является отсутствие проверки и очистки данных, используемых веб-приложением. Это означает, что подобная уязвимость может присутствовать практически в любом типе технологий.
Всё, что принимает параметры в качестве входных данных, потенциально может быть уязвимо для атаки путём внедрения кода.
Вот ещё один пример SQL-внедрения, затронувшего более полумиллиона сайтов, на которых был установлен плагин YITH WooCommerce Wishlist для WordPress:
Показанное выше SQL-внедрение может привести к серьёзной утечке конфиденциальных данных.
Как предотвратить внедрение кода?
Возможность предотвращения внедрения кода зависит от технологии, которую вы используете на своём сайте. Например, если вы используете WordPress, вы можете свести к минимуму возможные проблемы, ограничив количество установленных плагинов.
Если у вас есть специализированное веб-приложение и специальная команда разработчиков, вам остаётся лишь убедиться, что сформулированы требования к безопасности, которым ваши разработчики будут следовать при написании программного обеспечения. Это позволит им думать о безопасности на протяжении всего жизненного цикла проекта.
Вот технические рекомендации OWASP по предотвращению угрозы SQL-внедрения:
Из этих рекомендаций можно сделать два вывода:
Инъекционные атаки представляют собой серьёзный риск для владельцев сайтов, так как используют лазейки в системе безопасности для кражи конфиденциальной информации.
Нарушенная аутентификация
Некорректная аутентификация может позволить злоумышленнику использовать ручные и/или автоматические методы, чтобы попытаться получить контроль над любой учётной записью в системе или, что ещё хуже, полный контроль над системой.
Сайты с нарушенной аутентификацией очень распространены в сети. Нарушение аутентификации обычно связано с логическими проблемами, возникающими в механизме аутентификации приложения, такими как плохое управление сеансом, при котором происходит перечисление имён пользователей. В этом случае злоумышленник использует методы перебора, чтобы угадать данные пользователей системы.
Чтобы свести к минимуму риски, связанные с неработающей аутентификацией, не оставляйте общедоступной страницу входа администраторов:
Второй наиболее распространённой формой этой уязвимости является разрешение пользователям использовать подбор комбинации имени пользователя и пароля для этих страниц.
Типы некорректной аутентификации
Согласно OWASP Top-10, подобная уязвимость может проявляться во многих формах. Веб-приложение содержит неисправную аутентификацию, если оно:
Написание небезопасного программного обеспечения, содержащего подобные уязвимости, можно объяснить многими факторами, например отсутствием опыта у разработчиков, отсутствием требований к безопасности или спешка с выпуском программного обеспечения.
Как свести к минимуму уязвимости с нарушенной аутентификацией?
Чтобы избежать проблем, связанных с некорректной аутентификацией, убедитесь, что разработчики применяют передовые методы обеспечения безопасности сайтов. Поддержите их, предоставив доступ к внешним аудитам безопасности и достаточно времени для правильного тестирования кода перед развёртыванием приложения в рабочей среде.
Технические рекомендации OWASP заключаются в следующем:
Незащищённость критичных данных
Незащищённость критичных данных является одной из наиболее распространённых уязвимостей. Речь идёт в первую очередь о конфиденциальных данных, которые требуют особого внимания и защиты.
Примеры конфиденциальных данных
Некоторые конфиденциальные данные, требующие защиты:
Для любой организации жизненно важно понимать значимость защиты информации и конфиденциальности пользователей. Все компании должны соблюдать местные законы о конфиденциальности.
Ответственное отношение к сбору и обработке конфиденциальных данных стало более заметным после появления Общего регламента по защите данных (GDPR). Этот новый закон о конфиденциальности данных, вступивший в силу в 2018 году, определяет, как компании должны собирать, изменять, обрабатывать, хранить и удалять персональные данные.
Существует два типа данных:
Оба типа данных должны быть надёжно защищены.
Защита передаваемых данных
Один из способов защитить передаваемые данные на сайте — это наличие SSL сертификата.
SSL — это аббревиатура от Secure Sockets Layer. Это стандартная технология безопасности для установления зашифрованного соединения между сервером и браузером. Сертификаты SSL помогают защитить целостность данных, передаваемых между хостом (сервером или брандмауэром) и клиентом (браузером).
Каковы риски раскрытия конфиденциальных данных
Вот несколько примеров того, что может случиться при раскрытии конфиденциальных данных:
Почему раскрытие конфиденциальных данных так распространено?
За последние несколько лет раскрытие конфиденциальных данных стало одной из самых распространённых проблем во всём мире. Вот некоторые примеры утечек, которые привели к раскрытию конфиденциальных данных:
Отсутствие шифрования конфиденциальных данных — основная причина того, что эти атаки всё ещё происходят так часто. Даже зашифрованные данные могут быть взломаны из-за слабых:
Этой уязвимостью обычно очень сложно воспользоваться, однако последствия успешной атаки ужасны.
Как предотвратить раскрытие данных
Предотвратить раскрытие данных, согласно OWASP, можно, придерживаясь следующих правил:
Внешние объекты XML (XXE)
Как написано в Википедии, атака внешнего объекта XML — это тип атаки на приложение посредством анализа ввода XML. Эта атака происходит, когда ввод XML, содержащий ссылку на внешний объект, обрабатывается плохо настроенным синтаксическим анализатором XML.
Большинство синтаксических анализаторов XML по умолчанию уязвимы для XXE-атак. Ответственность за то, чтобы приложение не содержало этой уязвимости, лежит в основном на разработчике.
Каковы векторы атак на внешние объекты XML?
Согласно OWASP Top 10, основные направления атаки внешних объектов XML (XXE) включают использование:
Как предотвратить атаки внешних объектов XML
Для этого OWASP рекомендует:
Если эти способы контроля по каким-то причинам нереализуемы, рассмотрите возможность использования:
Нарушение контроля доступа
В области безопасности сайтов контроль доступа — это ограничение доступа посетителей к отдельным разделам или страницам.
Например, если у вас есть интернет-магазин, вам, вероятно, понадобится доступ к панели администратора, чтобы добавлять новые продукты или настраивать скидочные акции накануне праздников. Однако доступ к панели администратора вряд ли нужен кому-нибудь, кроме вас. Если остальные посетители вашего сайта будут иметь доступ к странице входа администратора, ваш интернет-магазин будет открыт для атак.
В наши дни это проблема почти всех основных систем управления содержимым (CMS). По умолчанию доступ к странице входа администратора предоставлен всем. В большинстве случаев не используется даже метод двухфакторной аутентификации (2FA).
Вышеизложенное должно заставить вас хорошо задуматься о безопасности разрабатываемого вами программного обеспечения.
Примеры нарушенного контроля доступа
Вот несколько примеров того, что мы включаем в понятие «доступ»:
Злоумышленники могут использовать недостатки авторизации в следующих целях:
Каковы риски нарушения контроля доступа?
Вот несколько примеров того, что, согласно OWASP, может случиться при нарушении контроля доступа:
pstmt.setString(1,request.getParameter(“acct”)); ResultSetresults =pstmt.executeQuery( );
Злоумышленник просто изменяет параметр «acct» в браузере, чтобы отправить любой номер учётной записи, который он хочет. В случае отсутствия надлежащей проверки злоумышленник может получить доступ к учётной записи любого пользователя:
Большинство разрабов знакомы с приведёнными выше сценариями, но помните, что уязвимости неработающего контроля доступа могут проявляться во многих формах и почти во всех существующих веб-технологиях.
Снижение рисков нарушения контроля доступа
Чтобы снизить риски, связанные с нарушением контроля доступа, вы можете сделать следующее:
Предотвращение нарушения контроля доступа
Чтобы избежать нарушения контроля доступа, необходимо при разработке и настройке программного обеспечения руководствоваться принципами безопасности. Вот почему важно контактировать с разработчиком и убеждаться в соблюдении им требований безопасности.
Технические рекомендации OWASP по предотвращению нарушения контроля доступа:
Небезопасная конфигурация
По своей сути перебор — это попытка ввода множества возможных комбинаций, но в принципе есть много вариантов этой атаки, что увеличивает её успешность. Самыми распространёнными ошибками, делающими возможной атаку на веб-приложение, являются:
Одна из наиболее распространённых ошибок веб-мастеров — сохранение настроек CMS по умолчанию.
Современные приложения CMS, будучи простыми в использовании, могут быть небезопасны для конечных пользователей. Большинство хакерских атак, безусловно, полностью автоматизированы, и злоумышленники полагаются на то, что у пользователей выставлены настройки по умолчанию. Это означает, что большое количество атак можно предотвратить, изменив при установке CMS настройки, выставленные по умолчанию.
Права доступа к файлам — ещё один пример настройки по умолчанию, которую можно и нужно усилить.
Где встречаются небезопасные конфигурации?
Неверные, с точки зрения безопасности, конфигурации могут быть на любом уровне стека приложения, включая:
Один из самых последних примеров неправильной конфигурации приложений — это серверы memcached, используемые для DDoS-атак на огромные сервисы в технологической индустрии.
Примеры сценариев атак, ставших возможными из-за небезопасной конфигурации
Как получить безопасные настройки
Чтобы предотвратить атаки, связанные с неправильными настройками безопасности, требуется:
Межсайтовый скриптинг (XSS)
Межсайтовый скриптинг (XSS) — широко распространённая уязвимость, которая затрагивает многие веб-приложения. XSS-атаки состоят из внедрения вредоносных клиентских скриптов на сайт с последующим использованием сайта в качестве распространителя.
Риски, связанные с XSS, заключаются в том, что он позволяет злоумышленнику внедрять контент на сайт и изменять способ его отображения, заставляя тем самым браузер жертвы выполнять при загрузке страницы код, предоставленный злоумышленником.
Уязвимость XSS присутствует примерно в двух третях всех приложений.
Как правило, уязвимости XSS требуют определённого типа взаимодействия со стороны пользователя, которое должно быть инициировано либо с помощью социальной инженерии, либо через посещение определённой страницы. Если уязвимость XSS не исправлена, она может быть очень опасной для любого сайта.
Примеры уязвимостей XSS
Представьте, что вы, находясь на своей панели администратора WordPress, добавляете новый пост. Если вы используете плагин с сохранённой уязвимостью XSS, хакер сможет заставить ваш браузер создать нового пользователя-администратора, пока вы находитесь в панели wp-admin. Кроме того, он может редактировать ваше сообщение и выполнять другие подобные действия.
Уязвимость XSS даёт злоумышленнику почти полный контроль над самым важным в настоящее время программным обеспечением компьютеров — браузерами.
Типы XSS
Согласно OWASP Top 10, существует три типа межсайтового скриптинга:
Снижение рисков XSS
Типичные XSS-атаки включают в себя кражу сеанса, захват учётной записи, обход MFA, замену DOM-узла, атаки на браузер пользователя, включая загрузку вредоносного программного обеспечения, кейлоггинг и другие атаки на стороне клиента.
Как предотвратить проблемы, вызванные XSS-уязвимостями
Превентивные меры по снижению вероятности XSS-атак должны включать отделение ненадёжных данных от активного содержимого браузера. OWASP даёт несколько практических советов о том, как этого добиться:
Небезопасная десериализация
В OWASP Top-10 отмечается, что эта уязвимость была добавлена в список на основании результатов отраслевого опроса, а не на основании исследования данных, поддающихся количественной оценке.
Каждому веб-разработчику следует смириться с тем фактом, что злоумышленники будут пытаться «играть» со всем, что взаимодействует с его приложением, — от URL-адресов до сериализованных объектов.
Чтобы упростить понимание некоторых ключевых понятий, познакомим вас с принятой терминологией:
Примеры сценариев десериализационной атаки
Злоумышленник изменяет сериализованный объект, чтобы получить права администратора:
Одним из векторов атаки, как вы видите, является суперфайл cookie, содержащий сериализованную информацию о вошедшем в систему пользователе. В этом файле cookie указана роль пользователя.
Если злоумышленник успешно десериализует данный объект, он затем изменит пользовательские права, предоставив себе роль администратора, и снова сериализует объект. Этот набор действий может поставить под угрозу всё веб-приложение.
Как предотвратить небезопасную десериализацию
Лучший способ защитить ваше веб-приложение от риска такого типа — не принимать сериализованные объекты из ненадёжных источников.
Если вы не можете этого сделать, OWASP Security предоставляет дополнительные технические рекомендации, которые вы можете попытаться реализовать:
Использование компонентов с известными уязвимостями
В наши дни даже простые сайты, такие как личные блоги, имеют множество зависимостей.
Мы все понимаем, что неспособность обновить каждую часть программного обеспечения на серверной и клиентской стороне сайта, без сомнения, рано или поздно создаст серьёзные риски для безопасности.
Например, в 2019 году 56% всех приложений CMS на момент их заражения были устаревшими.
Почему мы не обновляем наше программное обеспечение вовремя? Почему сегодня это всё ещё такая огромная проблема?
Есть несколько вариантов ответа на этот вопрос, например:
Это может звучать слишком драматично, но каждый раз, когда вы игнорируете предупреждение об обновлении, вы позволяете уже известной уязвимости выжить в вашей системе. Поверьте, киберпреступники быстро исследуют программное обеспечение и списки изменений.
Какой бы ни была причина использования устаревшего программного обеспечения в вашем веб-приложении, вы не можете оставить его незащищённым. И Sucuri, и OWASP рекомендуют виртуальные патчи в случаях, когда внесение исправлений невозможно.
Виртуальные патчи позволяют защитить устаревшие (или имеющие известные уязвимости) сайты от атак, предотвращая использование этих уязвимостей на лету. Обычно это делается с помощью брандмауэра и системы обнаружения вторжений.
Уязвимые приложения
В соответствии с рекомендациями OWASP приложения можно считать потенциально уязвимыми, если:
Как избежать использования компонентов с известными уязвимостями
Вот некоторые из способов избежать использования уязвимых компонентов:
Неэффективный мониторинг
Важность обеспечения безопасности сайта нельзя недооценивать. Хотя 100-процентная безопасность не является достижимой целью, есть способы держать ваш сайт под постоянным контролем, чтобы вы могли немедленно принять меры, когда что-то случится.
Отсутствие эффективного мониторинга может привести к увеличению ущерба от взлома сайта.
Примеры атак, ставших возможными из-за неэффективного мониторинга
Вот несколько примеров сценариев атак, причиной которых можно считать недостаточный мониторинг:
Как обеспечить эффективный мониторинг сайта
Ведение журналов аудита позволяет быть в курсе любых подозрительных изменений на вашем сайте. Журнал аудита — это документ, в котором регистрируются все события на сайте. Он позволяет обнаружить любые аномалии, чтобы вы могли вовремя обратиться к специалисту, который подтвердит или опровергнет взлом учётной записи.
sensitive data
1 sensitive data
уязвимые данные
—
[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]
Тематики
2 sensitive data
schematic data — данные о схеме; данные в схематическом виде
pooled data — совокупность данных; данные объединенные в пул
3 sensitive data
4 sensitive data
5 sensitive data
6 sensitive data
7 sensitive data
8 sensitive data
9 sensitive data
10 sensitive authentication data
11 уязвимые данные
См. также в других словарях:
Data-flow analysis — is a technique for gathering information about the possible set of values calculated at various points in a computer program. A program s control flow graph (CFG) is used to determine those parts of a program to which a particular value assigned… … Wikipedia
Data masking — is the process of obscuring (masking) specific data elements within data stores. It ensures that sensitive data is replaced with realistic but not real data. The goal is that sensitive customer information is not available outside of the… … Wikipedia
Data loss prevention products — Data Loss Prevention (DLP) is a computer security term referring to systems designed to detect and prevent the unauthorized transmission of information from the computer systems of an organization to outsiders. It is also referred to by various… … Wikipedia
Data remanence — is the residual representation of data that remains even after attempts have been made to remove or erase the data. This residue may result from data being left intact by a nominal file deletion operation, by reformatting of storage media that… … Wikipedia
Data security — is the means of ensuring that data is kept safe from corruption and that access to it is suitably controlled. Thus data security helps to ensure privacy. It also helps in protecting personal data. Data security is part of the larger practice of… … Wikipedia
Data loss prevention software — Data Loss Prevention (DLP) is a computer security term referring to systems that identify, monitor, and protect data in use (e.g. endpoint actions), data in motion (e.g. network actions), and data at rest (e.g. data storage) through deep content… … Wikipedia
Data loss — is an error condition in information systems in which information is destroyed by failures or neglect in storage, transmission, or processing. Information systems implement backup and disaster recovery equipment and processes to prevent data loss … Wikipedia
Data erasure — (also called data clearing or data wiping) is a software based method of overwriting data that completely destroys all electronic data residing on a hard disk drive or other digital media. Permanent data erasure goes beyond basic file deletion… … Wikipedia
Data mapping — Data transformation/Source transformation Concepts metadata · data mapping data transformation · model transf … Wikipedia
Data governance — is an emerging discipline with an evolving definition. The discipline embodies a convergence of data quality, data management, data policies, business process management, and risk management surrounding the handling of data in an organization.… … Wikipedia
OWASP TOP-10: практический взгляд на безопасность веб-приложений
Хабр, привет! Мы — Иван Притула и Дмитрий Агапитов, занимаемся разработкой решений, которые делают жизнь людей проще и комфортнее. Сегодня мы хотим представить один из наших новых сервисов – это платежный агрегатор SimplePay. Все что мы делаем продиктовано мучительной невозможностью мириться с несовершенством в целом, и несовершенством конкретных программных решений в частности. Именно в погоне за совершенством и рождаются наши продукты. Стараемся мы изо всех сил, а уж насколько мы близки, судить не нам.
Чтобы Всем было интереснее, мы не будем рекламировать свой сервис (ну если только чуть-чуть). Вместо этого, мы подготовили первую серию публикаций, которая будет посвящена такой увлекательной и крайне актуальной теме, как безопасность Web-приложений. Мы постараемся раскрыть опасности, сопутствующие любому действующему интернет-проекту и простым языком донести всю важность ответственного подхода к рутинным, казалось бы, мелочам в вопросах безопасности данных. Надеемся наши статьи будут не бесполезны для Вас. Уверены, так Вы узнаете нас гораздо лучше.
SimplePay — это современный высокотехнологичный агрегатор платежей. Компания создана в 2014г., зарегистрирована в г. Москве и ведет свою деятельность в соответствии с законодательством Российской Федерации. Наша основная задача, это обеспечение простой, удобной возможности организации приема платежей на интернет-сайтах компаний, вне зависимости от сферы деятельности, масштаба бизнеса и наличия подготовленного технического персонала.
Мы предлагаем следующие услуги:
Безопасность веб-приложений
Современный мир несет в себе тысячи угроз и потенциальных опасностей буквально на каждом шагу и в каждый момент времени. Всемирная сеть, ставшая неотъемлемой частью нашей жизни, не является исключением.
Киберпреступность сейчас развита как никогда – ведь почти каждая компания имеет свой сайт в интернете, а злоумышленник в сети может легко оставаться абсолютно анонимным.
При этом все компании, имеющие сайт в интернете, делятся на три типа:
Акцент на возможности практического применения сделан не случайно. Мы считаем, что недостаточно знать теорию для понимания истинного масштаба угрозы – ведь уязвимости, которые выглядят не очень страшно в теории, зачастую могут нести катастрофические для бизнеса последствия.
Количество угроз растет пропорционально росту бизнеса, однако как показала многолетняя практика, 99% атак происходят через десяток стандартных ошибок валидации входящих данных, либо обнаруженные уязвимости в установленных компонентах программного обеспечения сторонних производителей, либо банально, по халатности системных администраторов, использующих настройки и пароли, установленные по-умолчанию.
Классификацией векторов атак и уязвимостей занимается сообщество OWASP (Open Web Application Security Project). Это международная некоммерческая организация, сосредоточенная на анализе и улучшении безопасности программного обеспечения.
OWASP создал список из 10-и самых опасных векторов атак на Web-приложения, этот список получил название OWASP TOP-10 и в нем сосредоточены самые опасные уязвимости, которые могут стоить некоторым людям больших денег, или подрыва деловой репутации, вплоть до потери бизнеса.
В этой вводной статье мы пробежимся по списку OWASP TOP-10, а далее в рамках серии наших статей «Теория и практика защиты Web-приложений» подробно рассмотрим каждый из перечисленных векторов атак, методы практической эксплуатации, степень опасности на примерах реального бизнеса, а также методы практической защиты Web-приложений и Web-сервисов.
Мы постараемся вести изложение максимально доступно, с целью донести информацию не только и не столько до технических специалистов, но также до собственников и управляющих бизнеса, которые, порой, пребывают в счастливом неведении, пока их не сломали злоумышленники, и занимаются онлайн-бизнесом, не ведая о серьезнейшей опасности, нависшей над ними.
1. Инъекции — Injections
Все данные, как правило, хранятся в специальных базах, обращения к которым строятся в виде запросов, чаще всего написанных на специальном языке запросов SQL (Structured Query Language – структурированный язык запросов).
Приложения используют SQL-запросы для того, чтобы получать, добавлять, изменять или удалять данные, например при редактировании пользователем своих личных данных или заполнении анкеты на сайте. При недостаточной проверке данных от пользователя, злоумышленник может внедрить в форму Web-интерфейса приложения специальный код, содержащий кусок SQL-запроса.
Такой вид атаки называется инъекция, в данном случае самый распространённый — SQL-инъекция. Это опаснейшая уязвимость, позволяющая злоумышленнику получить доступ к базе данных и возможность читать/изменять/удалять информацию, которая для него не предназначена.
Например, изменить вместе с именем и фамилией баланс своего счета, посмотреть баланс чужого счета, или же, похитить конфиденциальные личные данные.
Эта уязвимость является следствием недостаточной проверки данных, поступающих от пользователя. Это позволяет злоумышленнику «подсунуть», например, в веб-формы, специально подготовленные запросы, которые «обманут» приложение и позволят прочитать или записать нелегитимные данные.
В целом эта разновидность атак имеет общее название «Ошибки валидации», к ней относятся далеко не только SQL-инъекции и мы будем упоминать этот вектор еще не раз.
2. Недочеты системы аутентификации и хранения сессий (Broken Authentication and Session Management)
Для того, чтобы отличать одного пользователя от другого, web-приложение использует так называемые сессионные куки. После того, как Вы ввели логин и пароль и приложение вас авторизовало, в хранилище браузера сохраняется специальный идентификатор, который браузер в дальнейшем предъявляет серверу при каждом запросе страницы вашего web-приложения. Именно так web-приложение понимает, что Вы это именно Вы.
В случае, если ваш идентификатор украдет злоумышленник, а в системе не были реализованы проверки, скажем IP-адреса сессии, или проверки наличия более одного соединения в одной сессии, злоумышленник сможет получить доступ в систему с правами вашего аккаунта. А если это интернет-банк или кабинет платежной системы, о последствиях такого несанкционированного доступа Вы можете легко догадаться сами.
3. Межсайтовый скриптинг – XSS (Cross Site Scripting)
Межсайтовый скриптинг – еще одна ошибка валидации пользовательских данных, которая позволяет передать JavaScript код на исполнение в браузер пользователя. Атаки такого рода часто также называют HTML-инъекциями, ведь механизм их внедрения очень схож с SQL-инъекциями, но в отличие от последних, внедряемый код исполняется в браузере пользователя. Чем это чревато?
Во-первых, злоумышленник может украсть вашу сессионную cookie, последствия чего были описаны во втором пункте, буквально парой абзацев выше. Нужно отметить, что далеко не все серверы приложений уязвимы к данному типу атак, об этом мы отдельно поговорим в пункте под номером 5.
Во-вторых, могут быть украдены данные, вводимые в формы на зараженной странице. А это могут быть конфиденциальные персональные данные, или, что еще хуже, данные кредитной карты вместе с CVC-кодом.
В третьих, через JavaScript можно изменять данные, расположенные на странице, например, там могут быть реквизиты для банковского перевода, которые злоумышленник с удовольствием подделает и заменит подставными.
4. Небезопасные прямые ссылки на объекты (Insecure Direct Object References)
Данный вид уязвимости является также следствием недостаточной проверки пользовательских данных. Суть ее заключается в том, что при выводе каких-либо конфиденциальных данных, например личных сообщений или учетных карточек клиентов, для доступа к объекту используется идентификатор, который передается в открытом виде в адресной строке браузера, И не реализована проверка прав доступа к объектам. Например, есть страница, которая отображает личное сообщение и она имеет адрес вида:
Перебирая число после «id=» можно будет читать чужие личные сообщения. Эксплуатация данной уязвимости очень проста и не требует вообще никаких специальных навыков – достаточно лишь перебирать число в адресной строке браузера и наслаждаться результатом. Как ни парадоксально, но этой детской болезни, порой были подвержены достаточно крупные европейские платежные системы.
5. Небезопасная конфигурация (Security Misconfiguration)
Безопасность Web-приложения требует наличия безопасной конфигурации всех компонентов инфраструктуры: компонентов приложения (таких как фреймворки – frameworks), веб-сервера, сервера баз данных и самой платформы. Настройки компонентов сервера по-умолчанию зачастую небезопасны и открывают возможности к атакам. Например, кража сессионной cookie через JavaScript при XSS-атаке становится возможна благодаря выключенной по-умолчанию настройке cookie_http only.
При правильной настройке сервера и включенной опции cookie_httponly, получить сессионную cookie через JavaScript невозможно, но зачастую эта простая и важная настройка отсутствовала в таких критично важных местах, как личные кабинеты платежных систем.
Еще один пример детской уязвимости – использование настроек по-умолчанию в серверах баз данных, таких как Redis, Memcached и других – закрытая служба может быть доступна на публичном IP-адресе сервера, и/или использовались пароли, установленные производителем по-умолчанию. Это позволяет злоумышленнику запросто читать и изменять данные, в числе которых, нередко бывают и сессионные cookies (чем это чревато – мы уже знаем) и выводимые пользователям в браузер данные (что позволяет еще и XSS-атаку применить).
Кроме того, программное обеспечение должно быть в актуальном состоянии: уязвимости находят каждый день в самых различных программных компонентах – операционной системе, web-серверах, серверах баз данных, почтовых серверах и т.д. И даже если ваше приложение правильно написано и тщательно проверяет все входящие данные, и вообще, хорошо защищено, это не означает что в один прекрасный момент не найдется уязвимость в вашей ОС или Web-сервере.
6. Незащищенность критичных данных (Sensitive Data Exposure)
Многие веб-приложения не защищают конфиденциальные данные, такие как кредитные карты и учетные данные для аутентификации. Злоумышленники могут украсть или модифицировать такие слабо защищенные данные для использования в своих корыстных целях.
Самый простой пример – передача данных по протоколу HTTP. Дело в том, что данные передаваемые по протоколу HTTP никак не шифруются, а при прохождении данных от компьютера пользователя до Web-сервера, данные пройдут достаточно много различных узлов: маршрутизатор офиса или домашний роутер, маршрутизатор провайдера, маршрутизатор на канале, маршрутизатор в дата-центре хостинг-провайдера сервера и так далее. На каждом из этих узлов может затаиться зловред, так называемый сниффер, программа, которая считывает весь трафик и передает злоумышленнику. А последний просматривает полученные данные на предмет персональных данных и данных кредитных карт.
Такие данные должны передаваться исключительно по протоколу HTTPS, о чем должна гласить соответствующая надпись в адресной строке браузера:
Еще одна задача SSL-сертификата (а именно так называется специальный ключ, при помощи которого осуществляется проверка подлинности и шифрование в HTTPS) – подтвердить, что он выдан именно для данного сайта. В случае, если сертификат просрочен или подделан, Вы увидите следующую картину:
Другой пример – отсутствие шифрования критичных данных, таких как пароли или номера кредитных карт. В случае, если данные зашифрованы, то даже в случае получения несанкционированного доступа на сервер, злоумышленник не сможет украсть критичные данные. К паролям, в частности, должна применяться необратимая хеш-функция – расшифровать шифрограмму при этом не возможно и проверка пароля происходит путем формирования шифрограммы введенного пароля и сравнения ее с имеющейся в базе.
7. Отсутствие функций контроля доступа (Missing Function Level Access Control)
Суть уязвимости, как следует из названия, заключается в отсутствии проверки наличия надлежащего доступа к запрашиваемому объекту.
Большинство веб-приложений проверяют права доступа, прежде чем отобразить данные в пользовательском интерфейсе. Тем не менее, приложения должны выполнять те же проверки контроля доступа на сервере при запросе любой функции. Ведь есть еще множество вспомогательных служебных запросов, которые, зачастую отправляются в фоновом режиме асинхронно, при помощи технологии AJAX.
Если параметры запроса не достаточно тщательно проверяются, злоумышленники смогут подделать запрос для доступа к данным без надлежащего разрешения.
Частный, и пожалуй, самый распространенный случай данной уязвимости мы уже рассмотрели в 4 пункте нашей статьи – отсутствие проверки пользователя в личных сообщениях.
8. Межсайтовая подделка запроса (Cross-Site Request Forgery, CSRF/XSRF)
Вектор атаки CSRF, также известный как XSRF, позволяет злоумышленнику выполнять от имени жертвы действия на сервере, где не реализованы дополнительные проверки.
Например, в некоторой платежной системе для перевода средств на другой аккаунт, есть страница вида:
demobank.com/transfer_money.jsp?transfer_amount=1000&transfer_account=123456789
где transfer_amount – сумма для перевода и transfer_account – номер аккаунта, куда должны быть переведены средства.
Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на вышеуказанную страницу платежной системы. Как результат – деньги уйдут на счет злоумышленника, после чего, вероятно, будут оперативно обменяны на Bitcoin или переведены в другую безвозвратную платежную систему, и получить их назад уже не получится.
Предполагается, что жертва должна была предварительно пройти аутентификацию в платежной системе и должна быть открыта активная сессия (скажем, страница платежной системы открыта в другой вкладке браузера).
Решается проблема достаточно просто и об этом мы расскажем в отдельной статье, посвященной CSRF.
9. Использование компонентов с известными уязвимостями (Using Components with Known Vulnerabilities)
Зачастую web-приложения написаны с использованием специальных библиотек или «фреймворков» (англ – framework), которые поставляются сторонними компаниями. В большинстве случаев эти компоненты имеют открытый исходный код, а это означает, что они есть не только у вас, но и у миллионов людей во всем мире, которые штудируют их исходный код, в том числе, и на предмет уязвимостей. И нужно отметить, что делают они это отнюдь не безуспешно.
Также уязвимости ищут (и находят) в более низкоуровневых компонентах системы, таких как сервер базы данных, web-сервер, и наконец, компоненты операционной системы вплоть до ее ядра.
Очень важно использовать последние версии компонентов и следить за появляющимися известными уязвимостями на сайтах типа securityfocus.com.
10. Непроверенные переадресации и пересылки (Unvalidated Redirects and Forwards)
Web-приложения зачастую переадресуют пользователя с одной страницы на другую. В процессе могут использоваться ненадлежащим образом проверяемые параметры с указанием страницы конечного назначения переадресации.
Без соответствующих проверок, атакующий может использовать такие страницы для переадресации жертвы на подложный сайт, который, к примеру, может иметь очень схожий или неотличимый интерфейс, но украдет ваши данные кредитной карты или другие критичные конфиденциальные данные.
Этот вид уязвимостей, также как и многие другие перечисленные выше, является разновидностью ошибок проверки входящих данных (input validation).
Вместо заключения
Мы рассмотрели основные виды уязвимостей из OWASP TOP-10 в общем виде, постарались рассказать о них максимально простым языком, а также показать на простых практических примерах, какие риски несут для вашего бизнеса те или иные векторы атак.
В первую очередь эта статья была рассчитана на собственников интернет-проектов и молодых разработчиков. В дальнейших статьях мы осветим более подробно каждый из упомянутых векторов атак, уже с развернутыми техническими подробностями и наглядными примерами, и конечно же, способами защиты.
Если Вы – собственник бизнеса, мы надеемся, что ваше понимание рисков, связанных с IT-безопасностью стало более полным, а следующие статьи могут стать отличным пособием для ваших IT-специалистов.