вступление

Безопасность API — огромная тема, и решение этой проблемы — еще более сложная задача. Теперь краткое заявление об отказе от ответственности: когда дело доходит до доверия к API, не существует волшебной палочки. Но есть некоторые вещи, которые вы должны принять во внимание. Это только начало, и в этой статье я могу рассказать не так много.

Развитие API и вызовы

API продолжают расти в геометрической прогрессии. По данным Akamai, количество обращений к API растет на 30% в годовом исчислении и, как ожидается, к 2024 году достигнет 42 триллионов обращений. Кроме того, Gartner прогнозирует, что к 2025 году в приложениях будет использоваться 30% сторонних API по сравнению с % в 2021 году.

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

Чтобы подлить масла в огонь, по словам Gartner, продолжится бурный рост API, и этот рост превзойдет возможности команд по управлению ими. По данным Gartner, к 2025 году менее 50% корпоративных API будут управляться, поскольку рост API превышает возможности управления. Таким образом, у нас не только проблемы с безопасностью, но и API перерастают собственную поддержку.

Завоевать доверие

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

Что ж, до доверия приходит знание, «знание — сила». Я не могу не подчеркнуть, насколько это важно. Если вы используете API, вам сначала нужно узнать, какие API вы используете и что они делают. Это звучит очень просто, но просто подумайте об этом.

Похоже на отношения

Доверие к API — это то же самое, что доверие к отношениям. Вы же не ходите вокруг, доверяя каждому человеку, которого видите, верно? В противном случае вы можете остаться с разбитым сердцем или, что еще хуже, с пустым кошельком. Прежде чем доверять кому-то, вы должны кое-что узнать об этом человеке. Вы должны понимать их и знать, о чем они. То же самое относится и к API. Вы должны понимать этот API.

Критичность данных

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

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

С другой стороны, если я выпрыгиваю из самолета, мне определенно нужно очень доверять парашюту, прежде чем прыгать. Я собираюсь осмотреть каждый дюйм этого парашюта. Потому что прыжок из самолета имеет решающее значение, это жизнь или смерть.
Я пытаюсь сказать, что вы должны думать о данных и выбирать свои сражения, чтобы увидеть, стоит ли вкладывать время и усилия. in. Потому что не все варианты использования одинаковы.

Не раскрывайте данные

Вы предоставляете правильный объем данных или избыточный объем данных, больше, чем требуется?

Если вы пытаетесь продать обувь, зачем вам моя дата рождения? Зачем тебе моя история болезни, если я покупал очки? Я имею в виду, что в первые дни компании просто пытались собрать как можно больше данных, но иногда чем меньше, тем лучше.

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

Понять технологию

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

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

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

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

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

Понять контекст

Позвольте мне привести вам еще один пример. Кто прошел тест на COVID, а затем должен был ждать, пока вам пришлют ваши результаты? Хорошо, как вы получили свои результаты?

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

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

Видите ли, наличие базовых знаний имеет решающее значение. Если вы не понимаете, что делает API, с какими данными вы имеете дело, или самой технологии, как вы можете рассчитывать на создание или завоевание доверия?

Соответствие, чтобы завоевать доверие

Получив некоторые знания об API, которые мы используем, на что мы можем обратить внимание, чтобы завоевать доверие? Во-первых, мы можем посмотреть, соответствуют ли они требованиям. Это само по себе не гарантирует, что мы можем доверять API, это просто подтверждает, что он следует определенному набору правил. И важно отметить, что соответствие не равно безопасности. С учетом сказанного, рассмотрение соблюдения требований является достойным началом для укрепления доверия.

Если вы имеете дело с API, который собирает данные от жителей по всему ЕС, вам лучше убедиться, что он соответствует GDPR (Общее положение о защите данных). Если вы не знакомы с GDPR, то это постановление, вступившее в силу в 2018 году, и в нем излагаются ожидания в отношении обработки пользовательских данных в ЕС.

Если вы имеете дело с API, который передает данные кредитной карты, вам необходимо убедиться, что он соответствует стандарту безопасности данных индустрии платежных карт (PCI DSS). Если вы не знакомы с PCI DSS, это стандарт, которым предприятия обрабатывают любую информацию о кредитных картах.

Если вы хотите убедиться, что API соответствует международным стандартам информационной безопасности, вам нужно, чтобы они соответствовали ISO/IEC 27001.

Пример с твилио

Существует множество сертификатов соответствия, которые соответствуют определенным правилам. Давайте посмотрим на Twilio в качестве примера. Twilio сертифицирован по ISO/IEC 27001, имеет аттестации по ISO/IEC 27017 и ISO/IEC 27018 и поддерживает соответствие SOC 2. Кроме того, Twilio позволяет клиентам включать FIPS (федеральные стандарты обработки информации) уровня 3, стандарт для криптографии. Добавление делового партнера (BAA) к Условиям обслуживания Twilio было добавлено, поэтому Twilio и ее клиенты несут совместную ответственность, когда речь идет о HIPAA (Закон о переносимости и подотчетности медицинского страхования). Twilio Voice соответствует стандарту PCI DSS уровня 1, поэтому мы можем собирать данные кредитных карт по телефону и/или осуществлять платежи от имени клиентских приложений. Мы являемся продавцом PCI уровня 3, поэтому мы можем принимать кредитные карты в качестве формы оплаты, но кредитные карты не входят в нашу среду. Мы не отделяем клиентов из ЕС от клиентов из других стран, а вместо этого применяем высокие стандарты GDPR ко всем пользователям и всем данным, а не только к персональным данным из ЕС.

Теперь, всякий раз, когда вы строите доверительные отношения с человеком, важно, чтобы вы часто общались и устанавливали некоторые границы и ожидания. Что ж, если вы используете API, разве не должно применяться то же самое? Частое общение с вашими партнерами важно, как и понимание ожиданий. Вы можете сделать это, применяя SLA и соблюдение. Вы должны применять такие же строгие требования к обеспечению времени безотказной работы, производительности, безопасности, условий лицензирования и планов развития продуктов, как и в отношении традиционных услуг SaaS.

Советы по созданию API

Это здорово, и до сих пор мы смотрели на вещи с точки зрения потребителя. Теперь давайте посмотрим на обратную сторону, если вы являетесь компанией, производящей API. Что вы можете сделать, чтобы завоевать доверие клиентов?

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

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

Вернуться к основам

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

Обращайтесь с данными, как с радиоактивными

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

Если у вас есть люди, перемещающие его повсюду, это увеличивает вероятность утечки этого материала. То же самое относится и к персональным данным. Старайтесь не перемещать его слишком часто, потому что вы рискуете утечкой данных.

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

Кроме того, не просто собирайте как можно больше радиоактивных материалов. Накопление этого — огромный риск. То же самое касается данных. Вы не должны просто собирать большие объемы данных, собирайте только то, что вам нужно.

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

Заключение

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