Спасибо!

Почему в борьбе с мошенничеством необходим SDK c закрытым исходным кодом

Автор: Michel Hayet
closed source sdk is essential

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

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

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

Экономика так устроена, что многомиллиардные публичные компании обязаны показывать доходность и рост. Многие из них предлагают решения и услуги для борьбы с современными «проблемами» и «болезнями».

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

Возвращаясь к основам экономики: спрос рождает предложение. На рынке появились новые компании, предлагающие различные решения проблемы мошенничества.

Мне бы хотелось задать всем этим компаниям один и тот же вопрос: «А действительно ли они готовы сделать все возможное для устранения мошенничества и, как следствие, лишиться своего главного источника дохода? Есть ли спрос на технологии против мошенничества в мире без мошенничества?»

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

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

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

Еще один важный момент, который стоит упомянуть, — использование SDK с открытым исходным кодом в качестве основы для решений в борьбе с мошенничеством.

Почему в решении против мошенничества не должно быть открытого исходного кода

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

Википедия, Google и Adobe – это лишь некоторые из громких имен, использующих открытый исходный код, чтобы воспользоваться преимуществами совместной работы над продуктом.

Решения с открытым исходным кодом отлично работают. Тем не менее, наряду с множеством преимуществ, их основной недостаток становится очевидным при обсуждении вопросов безопасности и защиты в контексте фрода. 

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

Решения атрибуции на основе SDK с открытым исходным кодом, более подверженные взломам системы безопасности, породили новый вид мошенничества: SDK- спуфинг.

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

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

На данный момент основное внимание уделяется SDK спуфингу при атаках таких сетей, как MITM («Man in the Middle») или «Многочисленная атака». Однако подмена данных SDK может происходить не только здесь. Злоумышленник нередко собирает, обрабатывает и подменяет данные еще до их отправки по сети. Немало инструментов динамического анализа позволяют отслеживать любые данные и манипулировать ими в атакованном приложении до отправки данных на сервер (во время исполнения приложения).

Умело применяя подобные инструменты, мошенники манипулируют любыми интересующими их данными, не вызывая подозрения у механизмов «защиты» сети (данные на сервере воспринимаются как подлинные). Важно отметить, что реверсивному инжинирингу может быть подвергнуто любое программное обеспечение (с открытым исходным кодом или без него). Поставщики ПО, заявляющие об обратном, не знают о соответствующих рисках и/или слишком наивны.

Вопрос: что они делают для защиты своего программного обеспечения от попыток нападения?

Как это связано с открытым исходным кодом

  • Открытый исходный код упрощает и удешевляет процесс взлома — мошенники точно знают, как происходит сбор и компоновка данных внутри SDK. За счет этого им намного легче найти место, где данные можно подделать и создать «качественный фрод».
  • Механизмы защиты от этого вида мошенничества хорошо видны, поэтому их можно обойти. Если логика SDK неизвестна, на реверсивный инжиниринг потребуется больше ресурсов.
  • В решениях с открытым исходным кодом механизмы шифрования встроены в код и доступны, поэтому изучить или применить к ним обратную инженерию довольно легко.
  • Ответственность за защиту программного обеспечения с открытым исходным кодом в основном ложится на клиента. Если он не позаботится о должном уровне безопасности, злоумышленнику не составит труда разобраться, как реализовано ПО, и манипулировать им.

Правильно реализованная  защита от MITM предотвращает кражу персональных данных по сети (сценарий, в котором хакеры пытаются дистанционно украсть конфиденциальную информацию из сети).

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

Защита от атак MITM оказывается совершенно бессмысленной.

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

Основные выводы

Мошенничество — это не шутка.

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

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

AppsFlyer считает крайне важной разработку эффективного решения для предотвращения различных мошеннических действий — от подмены атрибуции (attribution hijacking) до генерации ботов – фейковых пользователей.

В стремлении найти лекарство от мошенничества в сфере мобильной рекламы «AppsFlyer» использует в своем SDK лучшие инструменты для защиты кода от реверсивного инжиниринга. В Protect360 – решении «AppsFlyer» для защиты от мошенничества – используются комплексные механизмы. В настоящее время это самое продвинутое решение для защиты от мошенничества в сфере мобильной рекламы. 

Закажите демо Protect360 прямо сейчас

Michel Hayet

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

Follow Michel Hayet

Background
array(4) {
  ["title"]=>
  string(60) "Готовы сделать правильный выбор?"
  ["buttons"]=>
  array(2) {
    ["button1"]=>
    array(7) {
      ["enabled"]=>
      bool(true)
      ["style"]=>
      string(34) "btn btn-primary btn-primary--white"
      ["size"]=>
      string(6) "btn-lg"
      ["text"]=>
      string(25) "Заказать демо"
      ["url"]=>
      string(40) "https://www.appsflyer.com/ru/start/demo/"
      ["target"]=>
      string(5) "_self"
      ["id"]=>
      string(0) ""
    }
    ["button2"]=>
    array(7) {
      ["enabled"]=>
      bool(true)
      ["style"]=>
      string(39) "btn btn-text btn-arrow btn-arrow--white"
      ["size"]=>
      string(3) "btn"
      ["text"]=>
      string(43) "Бесплатная регистрация"
      ["url"]=>
      string(35) "https://www.appsflyer.com/ru/start/"
      ["target"]=>
      string(5) "_self"
      ["id"]=>
      string(0) ""
    }
  }
  ["image"]=>
  array(24) {
    ["ID"]=>
    int(20792)
    ["id"]=>
    int(20792)
    ["title"]=>
    string(11) "img-cta-ziv"
    ["filename"]=>
    string(15) "img-cta-ziv.svg"
    ["filesize"]=>
    int(12525)
    ["url"]=>
    string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
    ["link"]=>
    string(70) "https://www.appsflyer.com/ru/trust/privacy/attachment/img-cta-ziv-3-2/"
    ["alt"]=>
    string(4) "blog"
    ["author"]=>
    string(1) "3"
    ["description"]=>
    string(0) ""
    ["caption"]=>
    string(0) ""
    ["name"]=>
    string(15) "img-cta-ziv-3-2"
    ["status"]=>
    string(7) "inherit"
    ["uploaded_to"]=>
    int(40380)
    ["date"]=>
    string(19) "2021-04-27 14:36:47"
    ["modified"]=>
    string(19) "2022-10-02 14:16:22"
    ["menu_order"]=>
    int(0)
    ["mime_type"]=>
    string(13) "image/svg+xml"
    ["type"]=>
    string(5) "image"
    ["subtype"]=>
    string(7) "svg+xml"
    ["icon"]=>
    string(62) "https://www.appsflyer.com/wp-includes/images/media/default.png"
    ["width"]=>
    int(576)
    ["height"]=>
    int(469)
    ["sizes"]=>
    array(18) {
      ["thumbnail"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["thumbnail-width"]=>
      int(290)
      ["thumbnail-height"]=>
      int(170)
      ["medium"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["medium-width"]=>
      int(300)
      ["medium-height"]=>
      int(300)
      ["medium_large"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["medium_large-width"]=>
      int(768)
      ["medium_large-height"]=>
      int(1)
      ["large"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["large-width"]=>
      int(1024)
      ["large-height"]=>
      int(1024)
      ["1536x1536"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["1536x1536-width"]=>
      int(576)
      ["1536x1536-height"]=>
      int(469)
      ["2048x2048"]=>
      string(68) "https://www.appsflyer.com/wp-content/uploads/2021/04/img-cta-ziv.svg"
      ["2048x2048-width"]=>
      int(576)
      ["2048x2048-height"]=>
      int(469)
    }
  }
  ["section_settings"]=>
  bool(false)
}
Готовы сделать правильный выбор?