Не нужен сертификат использование только через api что это

Цифровой сертификат безопасности: для чего это нужно?

SSL (Secure Socket Layer) — протокол шифрования данных, которыми обмениваются клиент и сервер, — стал наиболее распространённым методом защиты в Интернете. Некогда он был разработан компанией Netscape. Безопасный обмен обеспечивается за счёт шифрования и аутентификации цифрового сертификата. Цифровой сертификат — файл, который уникальным образом идентифицирует серверы. Обычно цифровой сертификат подписывается и заверяется специализированными центрами. Их называют центрами сертификации или удостоверяющими центрами.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Что такое SSL-сертификат?

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что этоМногие наверняка слышали про SSL-сертификаты, но не все чётко представляют, что это такое и для чего они нужны. По сути, SSL-сертификат — цифровая подпись вашего сайта, подтверждающая его подлинность. Использование сертификата позволяет защитить как владельца сайта, так и его клиентов. SSL-сертификат даёт возможность владельцу применить к своему сайту технологию SSL-шифрования.

Таким образом, назначение SSL-сертификата — обеспечить безопасное соединение между сервером и браузером пользователя, надёжно защитить данные от перехвата и подмены. Сертификат используется для шифрования данных и идентификации сайта при установлении защищённого соединения HTTPS.

Информация передаётся в зашифрованном виде, и расшифровать её можно только с помощью специального ключа, являющегося частью сертификата. Тем самым гарантируется сохранность данных. Посетители сайта вправе ожидать, что защита их информации, если она важная, будет обеспечена с помощью SSL-сертификата. Они могут покинуть ваш сайт, если видят, что он не защищён. Если сайт имеет SSL-сертификат, то в строке состояния браузера отображается значок в виде замка.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

— Пользователь заходит на защищённый сайт;
— Выполняется проверка DNS и определение IP-адреса хоста веб-сайта;
— Запись веб-сайта найдена, переход на веб-сервер хоста;
— Запрос безопасного SSL-соединения с хоста веб-сайта;
— Хост отвечает валидным SSL-сертификатом;
— Устанавливается защищённое соединение, передаваемые данные шифруются.

Защита для бизнеса и клиентов

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что этоКаким же сайтам нужна защита SSL? Да практически всем. Особенно тем, которые в наибольшей степени подвержены атакам: ресурсам финансовых учреждений, крупных брендов, сайтам, работающим с персональными данными и платёжной информацией.

SSL-сертификаты используют не только банки и финансовые организации, платёжные системы и такие государственные порталы, как сайт Федеральной налоговой службы (ФНС) и gosuslugi.ru, но также интернет-магазины и даже частные лица и индивидуальные предприниматели.

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

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

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

1. Стандартный HTTP заменяется на HTTPS. Это говорит о том, что в соединении между сервером и браузером используется SSL.
2. Адресная строка становится зелёной, показывая, что на веб-сайте используется Extended Validation SSL.
3. Жёлтый замок с закрытой дужкой означает, что соединение между сервером и браузером защищено. Если замок открыт или отсутствует, то соединение не использует SSL.
4. В случае использования сертификата Extended Validation SSL, в адресной строке показывается название компании.

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

В конечном счёте SSL-сертификат помогает завоевать доверие клиентов. Если они знают, что их информация защищена, то с большей вероятностью захотят иметь дело с вашей компанией.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

По данным исследования, проведённого компанией GlobalSign, 84% пользователей не стали бы делать покупки на сайте без защищённого соединения. 48% проверяют перед вводом персональных данных, насколько безопасен сайт.

Значок замка и буквы HTTPS в URL вашего сайта говорят о его безопасности. А зелёная адресная строка сайта с сертификатом Extended Validation SSL — ещё более верное свидетельство надёжности ресурса. Посетители будут знать, что зашли именно на тот сайт, и вводимая ими информация останется приватной.

Кроме того, сайты, подтверждённые сертификатами, занимают более высокие позиции в результатах выдачи поисковых систем по сравнению с конкурентами без SSL. В 2014 году компания Google объявила о том, что будет учитывать использование HTTPS (буква S как раз и обозначает применение SSL-сертификата) при ранжировании сайтов. То есть, если у сайта нет SSL-сертификата, он не займёт высокие позиции в результатах поисковой выдачи и не сможет привлечь большого числа посетителей.

Где купить SSL-сертификат?

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что этоПриобретают сертификаты обычно не напрямую у удостоверяющего центра, а через партнёров. В России продажей сертификатов известных удостоверяющих центров (УЦ), таких как Comodo, Geotrust, GoDaddy, GlobalSign, Symantec и прочих, занимается множество компаний. Корневые SSL-сертификаты этих УЦ предустановлены в качестве доверенных во всех популярных браузерах. Есть и уникальные предложения. REG.RU, как партнёр GlobalSign, реализующий с этой компанией совместную программу по развитию SSL, может предложить сертификаты данного ведущего УЦ — от базового до расширенного уровня.

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

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Чтобы увидеть детальную информацию о SSL-сертификате, пользователю достаточно щёлкнуть мышью на значке замка и выбрать в меню «Просмотр сертификата». Браузеры могут различаться, но сертификат всегда содержит одну и ту же информацию.

Не все SSL-сертификаты платные. Например, при регистрации домена или покупке хостинга, клиенты REG.RU могут получить SSL-сертификат бесплатно. Также приятный бонус доступен при подключении к «Яндекс.Кассе». Стоит отметить, что бесплатный сертификат выдаётся на один год.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

По данным Netkraft, в 2015 году около трети SSL-сертификатов в мире было выдано компанией Symantec, опередившей GoDaddy на 10%. На первую тройку удостоверяющих центров (CA) приходится свыше 3/4 используемых в Интернете SSL–сертификатов.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

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

Уровни проверки SSL-сертификатов

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что этоСуществуют сертификаты разных уровней проверки. Для защиты персональных данных пользователей подойдёт сертификат с упрощённой проверкой — DV (Domain validation). Сертификат с проверкой доменов — самый низкий и недорогой уровень. Он доступен физическим и юридическим лицам, выдаётся владельцу или администратору доменного имени и просто подтверждает это доменное имя.

Следующий уровень — сертификат OV (Organization validation) для организаций, применяемый для проверки связи между доменным именем, хозяином домена и использующей сертификат компанией. То есть такой сертификат удостоверяет не только доменное имя, но и то, что сайт принадлежит действительно существующей организации.

Для более качественной проверки компании и её полномочий на приобретение сертификатов используются так называемые сертификаты с расширенной проверкой — EV (Extended validation). Это самый престижный вид сертификатов. Такие сертификаты вызывают больше всего доверия. Например, DigiCert, один из ведущих удостоверяющих центров, продаёт сертификаты OV и EV. Партнёры GlobalSign предлагают SSL-сертификаты разного уровня, включая самый высокий.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

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

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что этоЗелёная адресная строка — индикатор законности вашего бизнеса. Сертификат с расширенной проверкой не только обеспечивает защиту от мошеннических сайтов. Если сертификаты проверки доменов предусматривают только шифрование соединения, то сертификаты высшей категории ещё и дают вашим клиентам уверенность в законности вашей предпринимательской деятельности. При выпуске EV-сертификата проводится очень тщательная проверка организации, включая проверку её деятельности, соответствия официальным документам, а так же прав на использование доменного имени. Поэтому предприятия, применяющие сертификаты с расширенной проверкой, пользуются большим успехом на рынке. Как уже отмечалось, чтобы выяснить, какой сертификат вы используете, клиенту достаточно щёлкнуть мышью на значке замка в строке браузера.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Эта схема показывает доли сертификатов DV, OV и EV у основных удостоверяющих центров. Сертификаты DV составляют около 70% от сертификатов всех типов, на EV приходится менее 5%.

Бывают сертификаты для одного, нескольких доменов (SAN) и сертификаты для всех прямых поддоменов выбранного домена (Wildcard).

SSL-сертификаты в России

REG.RU и один из старейших международных удостоверяющих центров GlobalSign запустили программу популяризации защищённой передачи данных в Интернете. Она рассчитана как на владельцев интернет-ресурсов, так и на рядовых пользователей из России и СНГ.

Вместе с GlobalSign мы намерены сформировать культуру защищённой передачи информации. Ключевой элемент программы — повышение доступности технологий SSL и предоставление владельцам сайтов актуальных инструментов защиты.

На SSL-сертификаты обратили внимание и в руководстве страны. По информации СМИ, в России может быть создан собственный государственный удостоверяющий центр для их выдачи. Как сообщается, такая работа уже идёт. Но для этого придётся обязать производителей браузеров предустанавливать в свои продукты специальный корневой сертификат.

Так в чём ценность HTTPS и SSL? Зачем это нужно, когда посетителям сайта не требуется вводить конфиденциальную информацию или осуществлять платежи? Хотя бы затем, чтобы повыше подняться в результатах поиска. Да и доверие пользователей — фактор, который нельзя сбрасывать со счетов. Технически дополнить сайт SSL несложно, да и финансово это необременительно. SSL-сертификат — простой и экономичный способ защитить ваш сайт и онлайн-транзакции, сделать его более безопасным для пользователей. Сегодня SSL стал одной из самых важных мер обеспечения безопасности сайтов и признанным во всём мире отраслевым стандартом.

Источник

Что такое API? Простое объяснение для начинающих

Этот краткий термин на слуху у всех, кто хоть как-то сталкивался с разработкой. Но далеко не все понимают, что именно он обозначает и зачем нужен. Разработчик Пётр Газаров рассказал об API простыми словами в своём блоге.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Этот краткий термин на слуху у всех, кто хоть как-то сталкивался с разработкой. Но далеко не все понимают, что именно он обозначает и зачем нужен. Разработчик Пётр Газаров рассказал об API простыми словами в своём блоге.

Аббревиатура API расшифровывается как «Application Programming Interface» (интерфейс программирования приложений, программный интерфейс приложения). Большинство крупных компаний на определённом этапе разрабатывают API для клиентов или для внутреннего использования. Чтобы понять, как и каким образом API применяется в разработке и бизнесе, сначала нужно разобраться, как устроена «всемирная паутина».

Всемирная паутина и удалённые серверы

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

При введении в адресную строку браузера www.facebook.com на удалённый сервер Facebook отправляется соответствующий запрос. Как только браузер получает ответ, то интерпретирует код и отображает страницу.

Каждый раз, когда пользователь посещает какую-либо страницу в сети, он взаимодействует с API удалённого сервера. API — это составляющая часть сервера, которая получает запросы и отправляет ответы.

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

API как способ обслуживания клиентов

Многие компании предлагают API как готовый продукт. Например, Weather Underground продаёт доступ к своему API для получения метеорологических данных.

Сценарий использования: на сайте небольшой компании есть форма для записи клиентов на приём. Компания хочет встроить в него Google Календарь, чтобы дать клиентам возможность автоматически создавать событие и вносить детали о предстоящей встрече.

Применение API: цель — сервер сайта должен напрямую обращаться к серверу Google с запросом на создание события с указанными деталями, получать ответ Google, обрабатывать его, и передавать соответствующую информацию в браузер, например, сообщение с запросом на подтверждение пользователю.

В качестве альтернативы браузер может сделать запрос к API сервера Google, минуя сервер компании.

Чем API Google Календаря отличается от API любого другого удалённого сервера в сети?

Технически, разница в формате запроса и ответа. Чтобы сгенерировать полную веб-страницу, браузер ожидает ответ на языке разметки HTML, в то время как API Google Календаря вернёт просто данные в формате вроде JSON.

Если запрос к API делает сервер веб-сайта компании, то он и является клиентом (так же, как клиентом выступает браузер, когда пользователь открывает веб-сайт).

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

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

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

Таким образом, когда компания предлагает своим пользователям API, это просто означает, что она создала ряд специальных URL, которые в качестве ответа возвращают только данные.

Такие запросы часто можно отправлять через браузер. Так как передача данных по протоколу HTTP происходит в текстовом виде, браузер всегда сможет отобразить ответ. Например, через браузер можно напрямую обратиться к API GitHub (https://api.github.com/users/petrgazarov), причём без маркера доступа, и получить вот такой ответ в формате JSON:Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

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

Онлайн-курсы, чтобы разобраться с API

Ещё несколько примеров API

Слово «application» (прикладной, приложение) может применяться в разных значениях. В контексте API оно подразумевает:

Любой фрагмент ПО, который можно чётко выделить из окружения, может заменять букву «А» в англоязычной аббревиатуре, и тоже может иметь некоторого рода API. Например, при внедрении в код разработчиком сторонней библиотеки, она становится частью всего приложения. Будучи самостоятельным фрагментом ПО, библиотека будет иметь некий API, который позволит ей взаимодействовать с остальным кодом приложения.

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

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Источник

Безопасность REST API от А до ПИ

Введение

Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответствии со спецификацией. Задача обеспечения безопасности REST API не так очевидна, как, например, обеспечение безопасности баз данных, но ее необходимость не менее важна.
В настоящее время многие онлайн системы с помощью API передают приватные данные пользователей, такие как медицинские или финансовые. Текущая же ситуация с безопасностью в веб-приложениях весьма печальна: по данным Comnews порядка 70% содержат кри­тичес­кие уязвимости. Поэтому всем, кто участвует в проектировании, реализации и тестировании онлайн систем, важно иметь общую картину по существующим угрозам и способам обеспечения безопасности как всей системы, так и используемого REST API.

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

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

Стандарты безопасности

Начнем со стандартов. Существует несколько стандартов, которые помогут нам сформулировать список требований к безопасности API:

OWASP (Open Web Application Security Project) известна своими списками рисков в разных программных технологиях. Нам интересен список «10 наиболее опасных уязвимостей при разработке API»:

API2:2019 — Broken User Authentication (Недостатки аутентификации пользователей)

Тема аутентификации пользователей идет на втором месте в списке OWASP, но я ее поставил на первое, т.к. с этого все начинается. Современные стандарты аутентификации и авторизации я уже рассматривал в своей статье про OAuth 2.0, OpenID Connect, WebAuthn. Здесь кратко опишу основные схемы безопасности и рассмотрим более подробно наиболее надежную на данный момент схему, основанную на токенах.

API key

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

Basic Authentication

В Basic Authentication используется аутентификация по двум строкам, например логину/паролю.

Для передачи информации используется HTTP заголовок ‘Authorization’ с ключевым словом Basic далее пробел и base64 закодированная строка username:password. Например:

Cookie-Based Authentication

Cookie-Based Authentication использует механизм передачи Cookies в HTTP запросах. В ответ на запрос клиента сервер посылает заголовок Set-Cookie, который содержит имя и значение cookie, а также дополнительные атрибуты: expires, domain, path, secure, httponly. Пример отправки cookie:

После этого клиент автоматически будет посылать заголовок Cookie при каждом запросе:

Для реализации этого механизма необходимо на сервере организовать хранение и проверку сессий пользователей. Подробнее использование Cookies рассмотрено в разделе «Insecure Cookies and Local Storage»

Token-Based Authentication

Также называют Bearer Authentication.

Token-Based Authentication использует подписанный сервером токен (bearer token), который клиент передает на сервер в заголовке Authorization HTTP с ключевым словом Bearer или в теле запроса. Например:

При получении токена сервер должен проверять его на валидность — что пользователь существует, время использования не прошло и т.д. Token-Based Authentication может использоваться как часть OAuth 2.0 или OpenID Connect протоколов, так и сервер сам может сформировать токен.

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

Алгоритм Token-Based Authentication

Разберем подробнее последнюю из описанных схем. На схеме представлен упрощенный алгоритм Token-Based Authentication на примере реализации возможности «Зайти с помощью Google аккаунта»

Не нужен сертификат использование только через api что это. Смотреть фото Не нужен сертификат использование только через api что это. Смотреть картинку Не нужен сертификат использование только через api что это. Картинка про Не нужен сертификат использование только через api что это. Фото Не нужен сертификат использование только через api что это

В случае перехвата токена, злоумышленник может какое-то время выдавать себя за владельца токена. Поэтому для передачи токена надо обязательно использовать HTTPS.

API1:2019 Broken Object Level Authorization (Недостатки контроля доступа к объектам)

Другое название этого риска: Insecure Direct Object References (Небезопасные прямые ссылки на объекты). Это самая распространенная проблема с API в настоящее время. Для иллюстрации приведу API, которое в дальнейшем использую еще для нескольких примеров уязвимостей.

Получить одного пользователя с userID:

Получить всех пользователей (может только администратор):

Удалить пользователя c userID: DELETE /users/

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

То необходима проверка, что эту команду может вызвать только сам пользователь 1 или администратор, а не, например, пользователь 2 от своего имени, просто изменив значение ID в вызове команды. Чтобы избежать подобных проблем нужно:

API5:2019 Broken Function Level Authorization (Недостатки контроля доступа на функциональном уровне)

Должна быть разработана четкая система разграничения доступа между ролями пользователей API. Например, есть роль: обычные пользователи и роль: администраторы. Команду по просмотру всех пользователей может вызвать только администратор:

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

API3:2019 Excessive Data Exposure (Разглашение конфиденциальных данных)

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

может вернуть не только имя / возраст, но и ответ на секретный вопрос, который пользователь задал во время регистрации:

Это и называется излишняя передача данных. Проблема усугубляется тем, что лишних данных может быть еще и просто много по объёму. При больших нагрузках это приведет к сетевым проблемам. Соответственно, при разработке API нельзя полагаться на фильтрацию данных в клиенте — все данные должны фильтроваться на сервере.

API6:2019 Mass Assignment (Небезопасная десериализация)

В данном случае ситуация обратная предыдущему пункту Excessive Data Exposure — лишние данные передаются на сервер с целью несанкционированной замены значений. Как это понимать? Предположим у нас есть пользователь-хакер с ID 1 со следующими данными:

Некоторые поля записей пользователь может легитимно менять сам, например, свой возраст. А поля, такие как balance должны устанавливать внешние системы.

Но наш сервер подвержен атаке Mass Assignment и без проверок источника записывает все пришедшие данные. Наш пользователь-хакер может отправить на сервер запрос на изменение возраста, в который добавляет дополнительный атрибут balance:

После этого баланс увеличится без внесения реальных денег. Чтобы предотвратить данную атаку необходимо:

API4:2019 Lack of Resources & Rate Limiting (Отсутствие проверок и ограничений)

Необходимо защитить сервер от атак по подбору пароля (brute force attack). Для этого нужно реализовать следующие ограничения:

Необходимо защитить сервер и от отказа в обслуживании (DoS-атаки)

Если на сервере отсутствует проверка size на максимальное значение, то передача в параметре злоумышленником, например, 1 000 000 может привести к исчерпанию памяти на сервере и отказу в обслуживании. Поэтому нужно проверять на сервере все значения параметров на допустимые, даже если на нашем клиенте есть такие проверки. Ведь никто не помешает вызвать API напрямую.

API7:2019 Security Misconfiguration (Некорректная настройка параметров безопасности)

Следующие действия могут привести к проблемам с безопасностью, соответственно, их надо избегать:

API8:2019 Injection (Внедрение)

Внедрение — это выполнение программного кода, не предусмотренного системой. Разделяют внедрения:

Если сервер выполняет команды без проверки, то злоумышленник может послать следующую команду с большой вероятностью вывода сервера из строя:

Для предотвращения подобных атак:

API9:2019 Improper Assets Management (Недостатки управления API)

API может иметь несколько точек входа (endpoints) с разными версиями и функциональными назначениями. Например:

Необходимо обеспечить учет и контроль версий API:

API10:2019 Insufficient Logging & Monitoring (Недостатки журналирования и мониторинга)

Чтобы выявить атаку или подозрительное поведение пользователей, систему надо мониторить, а события логировать с достаточным уровнем подробности:

Insecure Transport (Небезопасный транспортный уровень)

Если не шифровать трафик между клиентом и сервером, то все HTTP данные и заголовки будут передаваться в открытом виде. Чтобы предотвратить утечку данных, надо использовать протокол HTTPS (Hyper Text Transfer Protocol Secure) или реализовывать шифрование самостоятельно. Для использования HTTPS нужен SSL-сертификат. Сайты в интернете должны получать такие сертификаты в доверительных центрах выдачи сертификатов CA (Certificate Authority). Но для целей шифрования данных между нашим клиентом и сервером можно поступить проще:

Обеспечить поддержку HTTPS можно также средствами Apache, Nginx или других веб-серверов.

Insecure Passwords (Небезопасные пароли)

С этой темой все просто:

Insecure Cookies and Local Storage (Небезопасные Cookies и данные в Local Storage)

Cookies должны использоваться безопасно:

Using Components with Known Vulnerabilities (Использование компонент с известными уязвимостями)

Компоненты, такие как библиотеки и framework-и выполняются с теми же привилегиями, что и приложение. Поэтому если среди используемых библиотек окажется небезопасный компонент, то это может привести к захвату или выводу из строя сервера. Для проверки безопасности компонент используются специальные приложения, например, для JavaScript можно использовать Retire.

CWE-79 Cross-site Scripting (XSS) (Межсайтовое выполнение скриптов)

Межсайтовое выполнение скриптов считается самой опасной web-атакой. Суть ее в том, что вредоносный скрипт может быть внедрен в нашу страницу, а результат выполнения может привести к утечке конфиденциальных данных или к повреждению сервера. Чтобы защититься от атаки в запрос надо включить HTTP заголовок, который включает Cross-site scripting (XSS) фильтр:

CWE-352 Cross-Site Request Forgery (CSRF) (Межсайтовая подмена запросов)

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

Финансовый сайт успешно проверяет валидность Cookies и выполняет несанкционированную транзакцию. Для защиты от атак CSRF надо:

Cross-origin resource sharing (CORS) (Кросс-доменное использование ресурсов)

CORS — это механизм безопасности, который позволяет серверу задать правила доступа к его API. Например, если на сервере установить заголовок:

то это позволит использовать API без ограничения. Если это не публичное API, то для безопасности надо явно устанавливать Origin-ы, с которых разрешен доступ к API, например:

Также можно ограничивать HTTP методы, которые могут быть использованы для доступа к API:

И задать список заголовков, которые сервер может принимать:

Insecure HTTP Headers (Безопасность HTTP заголовков)

HTTP протокол включает в себя большое число заголовков, которые можно использовать в HTTP запросах/ответах. Для того, чтобы определить наиболее важные заголовки с точки зрения обеспечения безопасности, я использовал несколько списков:

X-Powered-By

Этот заголовок автоматически вставляется некоторыми серверами, что дает понять злоумышленнику, с каким сервером он имеет дело, например:

Отсутствие этого заголовка, конечно, никого не остановит, но сразу давать такую подсказку не стоит. Поэтому передачу этого заголовка надо запретить.

HTTP Strict Transport Security (HSTS)

Strict-Transport-Security заголовок запрещает браузеру обращаться к ресурсам по HTTP протоколу, только HTTPS:

max-age=31536000 — это год в секундах. Рекомендуется выcтавлять этот заголовок, т.к. он предотвратит атаки, связанные с принуждением браузера перейти на HTTP протокол и начать передавать информацию (например cookies) в открытом виде, которую может перехватить злоумышленник. Запрос к серверу по HTTP и атака возможна только при первом обращении к серверу, при последующих браузер запомнит настройку Strict-Transport-Security и будет обращаться только по HTTPS.

X-Frame-Options (защита от Clickjacking)

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

или разрешить использование только в нашем домене:

А лучше для предотвращения атаки Clickjacking использовать более современный механизм и установить правильную политику безопасности Content-Security-Policy

Content-Security-Policy

Позволяет защититься от атаки Cross-site scripting и других кросс-сайтовых инъекций, в том числе Clickjacking. Требует вдумчивого конфигурирования, т.к. параметров много. Но надо хотя бы поставить дефолтную политику, что предотвратит возможность атаки Cross-site Scripting:

Подробно значения заголовка Content-Security-Policy разбираются, например, по ссылке.

X-Content-Type-Options

Установка данного заголовка запрещает браузеру самому интерпретировать тип присланных файлов и принуждает использовать только тот, что был прислан в заголовке Content-Type. Без этого возможна ситуация, когда, например, посылается безобидный на вид txt файл, внутри которого вредоносный скрипт и браузер его выполняет как скрипт, а не как текстовой файл. Поэтому устанавливаем:

Cache-Control

Cache-Control позволяет управлять кешом на стороне клиента, рекомендуется запретить кеширование, чтобы в кеше случайно не оставались приватные данные:

Заключение

В статье мы рассмотрели угрозы, которые подстерегают API при его эксплуатации и способы борьбы с ними. В заключении приведу несколько общих выводов:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *