SlideShare a Scribd company logo
1 of 11
– Observations on Controlling Access to Mobile APIs
Using the Pokemon Go Example
Block
KEY PRESENTATION MESSAGE
• Your next app or API service may be a brilliant idea!
• Why not?
• Consider success:
• MAU (monthly active users)
numbers from your dreams
• Traffic beyond your
scale tests
• Revenue to die for
• Will you capitalize on it?
BOTs AND MOBILE APIs
• What is a bot?
• We’re talking about bad bots here
• Definition: Automated software using your API against your desires
• What: Extraction, degradation, cheating
• Why: Make money or mischief
• And why should you care?
• Increased client functionality &
API richness
• Traffic migrating from web to mobile
• No mobile protection solutions
POKEMON GO: THE LAUNCH
• Mobile game first released 6th July 2016
• Staggered geo release over 3 months
• After 8 weeks:
• >100 countries
• >500M downloads
• >4.6B miles walked
(7.3B km)
• Not bad, eh?
• (First mistake: No GPS spoofing
protection) Image: Reddit user Inkblob
POKEMON GO: REVERSING THE API
• Action -
• Simple man-in-the-middle approach revealed API protocol
• First game release used (unpinned)TLS secured communication to prevent
people looking at traffic
• Enthusiasts were keen to know what
they could do through automation,
e.g. geolocation spoofing
• Reaction -
• Niantic implemented certificate pinning
• However a lot of useful information
had already been extracted
• Pokemon proximity functionality disabled
POKEMON GO: DISABLING CERTIFICATE
PINNING
• Action -
• Enthusiasts disabled certificate pinning
• For example using a Xposed module
• Recovered Pokemon proximity functionality
• Reaction -
• Niantic enables the
‘unknown6’ pre-built
checksum mechanism
• Effect is to block
IP addresses of mobile
API abusers
POKEMON: UNRAVELLING CHECKSUMS
• Action -
• The community mobilized itself and cracked ‘unknown6’ in 4 days
• This circumvents the checksum protection in the app
• This effectively returns API access to
to the enthusiasts
• Reaction -
• Legal action
• Root checks
• CAPTCHAs
POKEMON GO: THE IMPACT
• Brand image
• Unhappy players
• Significant unplanned
engineering effort
• Revenue
• Would the chart have been
different if the engineering
resources focused on new
feature development instead?
CRITICALBLUE?
• Dynamic
Insight
Technology
www.approov.io
KEY TAKEAWAYS
• When it’s easy to do, it pays to plan for success
• Control use of your server resources and APIs
• Keep your development focused on delivering your roadmap
• Software authentication delivers this peace of mind
• Consumers are fickle and easily
spooked
• Is it worth the risk?
• Prepare for the bot onslaught
when you win!
(28.3g)
(454 g)
Tack så mycket!
info@approov.io @critblue

More Related Content

What's hot

Redefine Omni-Channel Retailing - Harness the Power of APIs
 Redefine Omni-Channel Retailing - Harness the Power of APIs Redefine Omni-Channel Retailing - Harness the Power of APIs
Redefine Omni-Channel Retailing - Harness the Power of APIs
Apigee | Google Cloud
 
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
Apigee | Google Cloud
 
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon TrenchesAPI Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
Alex Gaber
 

What's hot (20)

API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration
 
Apigee Edge Product Demo
Apigee Edge Product DemoApigee Edge Product Demo
Apigee Edge Product Demo
 
Transition from SOA to APIs for the App Economy - Bending the Spoon
Transition from SOA to APIs for the App Economy  - Bending the SpoonTransition from SOA to APIs for the App Economy  - Bending the Spoon
Transition from SOA to APIs for the App Economy - Bending the Spoon
 
Apigee Products Overview
Apigee Products OverviewApigee Products Overview
Apigee Products Overview
 
Why APIs are Different Than Integration
Why APIs are Different Than IntegrationWhy APIs are Different Than Integration
Why APIs are Different Than Integration
 
Redefine Omni-Channel Retailing - Harness the Power of APIs
 Redefine Omni-Channel Retailing - Harness the Power of APIs Redefine Omni-Channel Retailing - Harness the Power of APIs
Redefine Omni-Channel Retailing - Harness the Power of APIs
 
APIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons LearnedAPIs in the Enterprise -Lessons Learned
APIs in the Enterprise -Lessons Learned
 
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile PlatformI Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
I Love APIs 2015: Implementing an API Tier to Enable a New Mobile Platform
 
Pivotal + Apigee Workshop (June 4th, 2019)
Pivotal + Apigee Workshop (June 4th, 2019)Pivotal + Apigee Workshop (June 4th, 2019)
Pivotal + Apigee Workshop (June 4th, 2019)
 
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
I Love APIs 2015: Advanced Crash Course in Apigee Edge Workshop
 
API Design Workflows
API Design WorkflowsAPI Design Workflows
API Design Workflows
 
Evolution of API Management in the BBC
Evolution of API Management in the BBCEvolution of API Management in the BBC
Evolution of API Management in the BBC
 
APIs.JSON: Bootstrapping The Web of APIs
APIs.JSON: Bootstrapping The Web of APIsAPIs.JSON: Bootstrapping The Web of APIs
APIs.JSON: Bootstrapping The Web of APIs
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ng
 
Demo: New open banking platform
Demo: New open banking platformDemo: New open banking platform
Demo: New open banking platform
 
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon TrenchesAPI Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
 
APIs Are Forever - How to Design Long-Lasting APIs
APIs Are Forever - How to Design Long-Lasting APIsAPIs Are Forever - How to Design Long-Lasting APIs
APIs Are Forever - How to Design Long-Lasting APIs
 
ProgrammableWeb's eSignature API Research Report
ProgrammableWeb's eSignature API Research ReportProgrammableWeb's eSignature API Research Report
ProgrammableWeb's eSignature API Research Report
 
Webcast: Apigee Edge Product Demo
Webcast: Apigee Edge Product DemoWebcast: Apigee Edge Product Demo
Webcast: Apigee Edge Product Demo
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
 

Similar to Gotta Block ‘Em All – Observations on Controlling Access to Mobile APIs using the Pokemon Go Example (David Stewart)

6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
Dynatrace
 
Option 2015- Getting Started with Optimizely for Mobile
Option 2015- Getting Started with Optimizely for MobileOption 2015- Getting Started with Optimizely for Mobile
Option 2015- Getting Started with Optimizely for Mobile
Optimizely
 
SplunkLive! New York Dec 2012 - SNAP Interactive
SplunkLive! New York Dec 2012 - SNAP InteractiveSplunkLive! New York Dec 2012 - SNAP Interactive
SplunkLive! New York Dec 2012 - SNAP Interactive
Splunk
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyar
Kartik Ayyar
 

Similar to Gotta Block ‘Em All – Observations on Controlling Access to Mobile APIs using the Pokemon Go Example (David Stewart) (20)

Google IO 2017 Recap
Google IO 2017 RecapGoogle IO 2017 Recap
Google IO 2017 Recap
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
 
Mobile apps that win
Mobile apps that winMobile apps that win
Mobile apps that win
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Check Out our Rich Python Portfolio: Leaders in Python & Django‎
Check Out our Rich Python Portfolio: Leaders in Python & Django‎Check Out our Rich Python Portfolio: Leaders in Python & Django‎
Check Out our Rich Python Portfolio: Leaders in Python & Django‎
 
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler SingletaryBuilding A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
 
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
 
Devfest09 App Engine Java
Devfest09  App Engine  JavaDevfest09  App Engine  Java
Devfest09 App Engine Java
 
Option 2015- Getting Started with Optimizely for Mobile
Option 2015- Getting Started with Optimizely for MobileOption 2015- Getting Started with Optimizely for Mobile
Option 2015- Getting Started with Optimizely for Mobile
 
App Proposal - EDDY.pptx
App Proposal - EDDY.pptxApp Proposal - EDDY.pptx
App Proposal - EDDY.pptx
 
Desarrollo de apps multiplataforma con tecnologías web
Desarrollo de apps multiplataforma con tecnologías webDesarrollo de apps multiplataforma con tecnologías web
Desarrollo de apps multiplataforma con tecnologías web
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanley
 
Razorfish 2014 Tech Summit - Director, Social Technologies at Razorfish Rafi ...
Razorfish 2014 Tech Summit - Director, Social Technologies at Razorfish Rafi ...Razorfish 2014 Tech Summit - Director, Social Technologies at Razorfish Rafi ...
Razorfish 2014 Tech Summit - Director, Social Technologies at Razorfish Rafi ...
 
SplunkLive! New York Dec 2012 - SNAP Interactive
SplunkLive! New York Dec 2012 - SNAP InteractiveSplunkLive! New York Dec 2012 - SNAP Interactive
SplunkLive! New York Dec 2012 - SNAP Interactive
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyar
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive Web Apps
 
DevOps for Hackathons: DevOps without the Ops
DevOps for Hackathons: DevOps without the OpsDevOps for Hackathons: DevOps without the Ops
DevOps for Hackathons: DevOps without the Ops
 
Android Performance and Monitoring - Meetup 3 25-14
Android Performance and Monitoring - Meetup 3 25-14Android Performance and Monitoring - Meetup 3 25-14
Android Performance and Monitoring - Meetup 3 25-14
 
GAUGE Google Analytics Conference: Mobile SDK
GAUGE Google Analytics Conference: Mobile SDKGAUGE Google Analytics Conference: Mobile SDK
GAUGE Google Analytics Conference: Mobile SDK
 

More from Nordic APIs

The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
Nordic APIs
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Nordic APIs
 

More from Nordic APIs (20)

How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
How I Built Bill, the AI-Powered Chatbot That Reads Our Docs for Fun , by Tod...
 
The Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at ApitureThe Art of API Design, by David Biesack at Apiture
The Art of API Design, by David Biesack at Apiture
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs? by Dav...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by Dav...
 
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
Crafting a Cloud Native API Platform to Accelerate Your Platform Maturity - B...
 
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
The Federated Future: Pioneering Next-Gen Solutions in API Management - Marku...
 
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNLAPI Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
API Authorization Using an Identity Server and Gateway - Aldo Pietropaolo, SGNL
 
API Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, GraylogAPI Discovery from Crawl to Run - Rob Dickinson, Graylog
API Discovery from Crawl to Run - Rob Dickinson, Graylog
 
Productizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, MoseifProductizing and Monetizing APIs - Derric Gilling, Moseif
Productizing and Monetizing APIs - Derric Gilling, Moseif
 
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.io
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Gotta Block ‘Em All – Observations on Controlling Access to Mobile APIs using the Pokemon Go Example (David Stewart)

  • 1. – Observations on Controlling Access to Mobile APIs Using the Pokemon Go Example Block
  • 2. KEY PRESENTATION MESSAGE • Your next app or API service may be a brilliant idea! • Why not? • Consider success: • MAU (monthly active users) numbers from your dreams • Traffic beyond your scale tests • Revenue to die for • Will you capitalize on it?
  • 3. BOTs AND MOBILE APIs • What is a bot? • We’re talking about bad bots here • Definition: Automated software using your API against your desires • What: Extraction, degradation, cheating • Why: Make money or mischief • And why should you care? • Increased client functionality & API richness • Traffic migrating from web to mobile • No mobile protection solutions
  • 4. POKEMON GO: THE LAUNCH • Mobile game first released 6th July 2016 • Staggered geo release over 3 months • After 8 weeks: • >100 countries • >500M downloads • >4.6B miles walked (7.3B km) • Not bad, eh? • (First mistake: No GPS spoofing protection) Image: Reddit user Inkblob
  • 5. POKEMON GO: REVERSING THE API • Action - • Simple man-in-the-middle approach revealed API protocol • First game release used (unpinned)TLS secured communication to prevent people looking at traffic • Enthusiasts were keen to know what they could do through automation, e.g. geolocation spoofing • Reaction - • Niantic implemented certificate pinning • However a lot of useful information had already been extracted • Pokemon proximity functionality disabled
  • 6. POKEMON GO: DISABLING CERTIFICATE PINNING • Action - • Enthusiasts disabled certificate pinning • For example using a Xposed module • Recovered Pokemon proximity functionality • Reaction - • Niantic enables the ‘unknown6’ pre-built checksum mechanism • Effect is to block IP addresses of mobile API abusers
  • 7. POKEMON: UNRAVELLING CHECKSUMS • Action - • The community mobilized itself and cracked ‘unknown6’ in 4 days • This circumvents the checksum protection in the app • This effectively returns API access to to the enthusiasts • Reaction - • Legal action • Root checks • CAPTCHAs
  • 8. POKEMON GO: THE IMPACT • Brand image • Unhappy players • Significant unplanned engineering effort • Revenue • Would the chart have been different if the engineering resources focused on new feature development instead?
  • 10. KEY TAKEAWAYS • When it’s easy to do, it pays to plan for success • Control use of your server resources and APIs • Keep your development focused on delivering your roadmap • Software authentication delivers this peace of mind • Consumers are fickle and easily spooked • Is it worth the risk? • Prepare for the bot onslaught when you win! (28.3g) (454 g)

Editor's Notes

  1. If you are exposing mobile APIs, you *must* plan for success (ie this isn't a doom and gloom presentation from the department of no, this is all about ensuring that you maximize the monetization of your success!).
  2. This is the summary of presentation. The case that will be made: it's much better to bake in invisible API protection rather than have to retro-fit it in the field. Intel’s statement regarding working with startups – they never plan for success. Don’t imagine that your company, your app or your APIs are not ‘interesting’ to be targeted. If you are successful, the bots will come.
  3. Bad Bot: Piece of automated software that uses your API in a way you didn't intend and don't want What do: Extract data from your servers, degrade performance (DDoS), give people an unfair advantage Why: Curiosity to see what can be done, Extract data to make Money, Mischief Mobile vs Web: Sometimes(not everyone treats mobile apps differently to web) Richer interface Perhaps worth mentioning an emerging attack vector as traffic moves away from web where some techniques exist to block them Bot behaviour: Examples of API probing, cloning game players, exfiltration of sensitive data. Mobile APIs: comparison to web APIs. Increased richness, increased client functionality, lots of API calls to be targeted, increased risks to business Don’t assume that it is only businesses which suffers from fraud that get hacked
  4. Pokemon Go definition: location based gaming, Pokemon cards coming to life. Pokemon Go: tell the story: launch statistics, staged geographic release, describe the phenomenon Note that the first slip up was not providing any GPS spoofing protection - so people outside of the launch countries were getting access and GPS spoofing to the areas where the game was lauched, so unexpected and uncontrolled load
  5. Let’s not forget that the people doing were not really bad guys. A bit over-zealous maybe, but not bad guys. Let’s call them enthusiasts! Man In The Middle: Insert yourself into a secure connection to observe secret traffic, good way of examining the API By MITMing the connection, and reverse engineering the API and data structures, it was possible to rapidly understand and use the API. Later Niantic implemented pinning of the connection to protect it, but a lot of information had already been gained at that point, and it is possible to circumvent certificate pinning because it is implemented in the client. 30/07/2016: Niantic Releases patch disabling “three footprints” functionality for finding nearby Pokemon – due to data and power issues. Enthusiasts not best pleased.  
  6. Once the API was accessed, it was possible to use it to play the game without moving around. It was also possible to generate maps of where pokemon were. This allowed players to get back and improve upon the functionality disabled by Niantic. A side effect of this was that apps and sites appeared which showed maps of pokemon near to players. This introduces a vector for malicious apps to trick their way into being installed on devices. Even for apps which provide the expected functionality, there is the side effect of increased server traffic. This has implications for the costs of Niantic and appeared to delay the release of the game in Brazil. Certificate Pinning can be disabled using a framework like Xposed which allows apps and the system to be easily modified on a rooted device. It can also be done by directly modifying the app and repackaging it. Pinning: Allows the app to check the server certificate is the one it expects. It stops MITM because if you are the man in the middle, you don't have the correct certificate because the correct cert is a signed by Niantic. It is significant that it is in the client because you have little control over the client code once it is out in the wild and can't prevent people from trying to circumvent stuff. As an aside, pinning also has problems if you have to change your certificate on the server because you then need to update your app. Not terrible, but can be annoying during the transition as you may have clients which don't update and expect the old cert. Geolocation spoofing started when the API was uncovered as it allowed people in areas with few pokemon to play in more populated areas. It also let people play in countries where the game wasn't released yet. They blocked IPs based on incorrect checksums. If you were using the API outside an app the checksum would be wrong and you could be identified.   As a response, Niantic enabled a checksum for messages that was already present in the app. This disabled any unauthorized access. By using the unknown6 checksum, Niantic were able to identify genuine app users vs those using the API to make mapping websites and apps. When they turned on those checks, so only authentic app users could access the API, they saw a massive dropin load on their servers. That is what the graph shows. Pinning is a way for the client to ensure it is talking to the correct server. It is a security mechanism to make it more difficult to snoop on traffic. For pinning, each client stores the expected certificate they should be seeing from the server (the certificate is used to set up the https connection). The client then compares what it gets when it tries to connect vs this known good value. If the values are different, it means someone with a different certificate is pretending to be the server and mounting a MITM attack. You can't do it on the server very easily because there is no way for the server to know what the client certificate is. The client certificate is also different for every client. You could retrieve the certificate for the server and send it back ot the server to check, which is what we do, but I think that is not a standard thing at all. Yes, unknown6 is the checksum. Cracked in 4 days once checks were turned on server side. Pinning prevents MITM attacks. It stops people inspecting your API which makes it more difficult to reverse engineer. Reverse engineering the API is what allowed people to use the API, if pinning had been enabled, it would have been much harder to do that to begin with.
  7. Action: Hackers circumvent HMAC protection present in Unknown 6 Reaction: Legal measures to take down sites abusing the API, Root checks enabled(v0.37) It took around 4 days for the combined efforts of the Unknown6 team to reverse-engineer and bypass the Niantic protection mechanism. A collection of enthusiasts examined and reverse engineered the protection mechanisms placed in side the app. Niantic responded to this by enabling root/jailbreak checks in side the app. This included using the google SafetyNet API to detect rooting. In addition I have seen some articles that suggest that pokemon go has added but not enabled captchas: It is also worth mentioning that the game currently still supports v0.35 of the API but normally forces you to upgrade to the latest. Not sure if unknown6 is an HMAC actually or something custom By breaking the checksum it enables people to use the API like before CAPTCHAS have now been enabled for suspicious traffic
  8. Pokemon Go: impact: brand image, unhappy users (normal ones as well as enthusiasts), unplanned engineering effort, panic At it’s peak, Pokemon was earning $10M/day for Niantic.
  9. Who is CriticalBlue? >150 man years of low level binary dynamic tracing and analysis Many mobile software performance and cryptography optimization projects completed Recent focus on software attestation and mobile API protection
  10. User authentication is not bad, or wrong, it’s just not enough, and is sometimes not needed at all. Equip yourself with the revolutionary “fire and forget” anti-bot weapon for mobile security: authenticate incoming requests to your mobile-facing API, drop illegitimate ones on the spot, forget about the problem, keep building your future. Hey, maybe there is a business opportunity for a bot proximity detector for mobile APIs