SlideShare una empresa de Scribd logo
1 de 89
Descargar para leer sin conexión
Mobile SSL Interception
in the Wild
Where, how, and why?
Alban Diquet
Thomas Sileo
Data Theorem BlueHat 2017
Mobile SSL Interception
• Analyzed 10 million “SSL incident" reports

• Sent by mobile devices all around the world

• What did we find?
DEMO
Agenda
• Data collection methodology

• Data set and analysis of forged SSL certificates

• Results of the analysis

• Conclusion
Data Collection
Methodology
TrustKit
• Open-source library for SSL reporting and pinning

• Released for iOS in 2015 and for Android earlier this
year

• https://github.com/datatheorem/TrustKit 

• Makes it easy to monitor and improve the security of the
app’s network connections
SSL Pinning
• Hardcode in the app the SSL public key(s) to be expected
to be used by the app’s server(s)
SSL Pinning
SSL Pinning
SSL Pinning
lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=
SSL Pinning
• Hardcode in the app the SSL public key(s) to be expected
to be used by the app’s server(s)
SSL Pinning
• Hardcode in the app the SSL public key(s) to be expected
to be used by the app’s server(s)
// Initialize TrustKit
NSDictionary *trustKitConfig =
@{
kTSKPinnedDomains: @{
@"www.datatheorem.com" : @{
kTSKPublicKeyHashes : @[
@"lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=",
@"TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=",
]
}}};
[TrustKit initializeWithConfiguration:trustKitConfig];
SSL Pinning
• Hardcode in the app the SSL public key(s) to be expected
to be used by the app’s server(s)
// Initialize TrustKit
NSDictionary *trustKitConfig =
@{
kTSKPinnedDomains: @{
@"www.datatheorem.com" : @{
kTSKPublicKeyHashes : @[
@"lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=",
@"TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=",
]
}}};
[TrustKit initializeWithConfiguration:trustKitConfig];
SSL Reporting
• Send a report whenever an SSL error occurred

• Gives an overview of "SSL incidents" around the world

• Helps understanding connection errors across the user
base

• Helps making a decision on whether to deploy SSL
pinning

• Useful to all apps
SSL Incident
• Default SSL validation error

• Name mismatch, expired certificate,
untrusted CA, etc.

• Pinning validation error
App Server
SSL Reporting
{
"app-bundle-id": "com.datatheorem.testtrustkit",
"app-version": “1.2",
"app-vendor-id": "599F9C00-92DC-4B5C-9464-7971F01F8370",
"app-platform": "IOS",
"trustkit-version": “1.5.3",
"hostname": "www.datatheorem.com",
"port": 443,
"noted-hostname": "datatheorem.com",
"include-subdomains": true,
"enforce-pinning": true,
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"date-time": "2015-06-08T01:58:05Z",
"known-pins": [
"pin-sha256="rFjc3wG7lTZe43zeYTvPq8k4xdDEutCmIhI5dn4oCeE="",
"pin-sha256="TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=""
],
"validation-result": 1
}
SSL Reporting
• Any domain can be configured in TrustKit for where the
reports should be sent

• Data Theorem hosts one for free that developers can leverage

• Reporting dashboard to see trends and inspect individual
reports

• Notifications for when something unexpected happens

• Suspicious actor

• Spike in reports
Demo
Data Set and Report
Classification
The Data Set
• 10 million reports from 2 million devices in 2 years

• From apps configured to use Data Theorem’s reporting
server

• Mostly from iOS devices

• 70% of the reports came from the US

The Data Set
• From nearly 2 000 different apps

• Banking

• Shopping

• Music/streaming

• News
Top Platform
iOS 93.3%
Android 5.3%
macOS 1%
tvOS 0.4%
The Data Set
Top Countries
US 71%
GB 9.5%
TW 7.3%
CA 1.8%
HK 1.3%
The Data Set
• 3.3 million unique
certificate chains

• 38% of the certificate are
self-signed

• 78% of the certificate
matched the hostname
Certificate chain depth
2 62.2%
3 24%
1 11.4%
4 1.8%
5 0.5%
6 0.001%
Report Classification
• Use different heuristics to find the root cause

• By looking at the content of the report, mainly the
certificate chain

• Save some metadata along with the server date

• Contact the server for the hostname that was in the
report, to fetch its certificate chain
Report Classification
• Re-verify the certificate chain

• Set of rules that can target:

• A specific certificate or a specific public key

• Any certificate fields (Common Name, etc.)
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
==
misconfiguration / certificate_chain_valid
Report Classification
{
"app-bundle-id": "com.datatheorem.pin_misconfig",
"hostname": "www.datatheorem.com",
"date-time": "2017-05-12T06:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 1,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-12T06:00:25Z",
}
raw report
report metadata
unknown / to_review
!=
Report Classification
{
"app-bundle-id": “com.datatheorem.coporate_proxy",
"hostname": "www.datatheorem.com",
“validated-certificate-chain”: [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"date-time": "2017-03-03T21:27:12Z",
"validation-result": 1,
"...": “…",
raw report
{
"app-bundle-id": “com.datatheorem.coporate_proxy",
"hostname": "www.datatheorem.com",
“validated-certificate-chain”: [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"date-time": "2017-03-03T21:27:12Z",
"validation-result": 1,
"...": “…",
Report Classification
raw report
{
"app-bundle-id": “com.datatheorem.coporate_proxy",
"hostname": "www.datatheorem.com",
“validated-certificate-chain”: [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"date-time": "2017-03-03T21:27:12Z",
"validation-result": 1,
"...": “…",
Report Classification
raw report
Report Classification
{
"app-bundle-id": “com.datatheorem.coporate_proxy",
"hostname": "www.datatheorem.com",
“validated-certificate-chain”: [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"date-time": "2017-03-03T21:27:12Z",
"validation-result": 1,
"...": “…",
{
"certificate_chain_infos": [
{"issuer":
{"common_name":"Fortigate CA",
“…": […],
raw report
certificate chain info
Report Classification
corporate_appliance / Fortinet
corporate_appliance:
Fortinet:
leaf:
- !IssuerCommonName 'FortiGate CA'
{
"certificate_chain_infos": [
{"issuer":
{"common_name":"Fortigate CA",
“…": […],
certificate chain info
classifier ruleset
Report Classification
{
"app-bundle-id": “com.datatheorem.bad_device_clock”,
"hostname": "www.datatheorem.com",
"date-time": "2017-03-14T04:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 2,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-22T04:00:54Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": “com.datatheorem.bad_device_clock”,
"hostname": "www.datatheorem.com",
"date-time": "2017-03-14T04:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 2,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-22T04:00:54Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": “com.datatheorem.bad_device_clock”,
"hostname": "www.datatheorem.com",
"date-time": "2017-03-14T04:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 2,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-22T04:00:54Z",
}
raw report
report metadata
Report Classification
{
"app-bundle-id": “com.datatheorem.bad_device_clock”,
"hostname": "www.datatheorem.com",
"date-time": "2017-03-14T04:00:22Z",
"validated-certificate-chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"validation-result": 2,
"…": […],
"…": […],
"server_certificate_chain": [
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
“-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----"
],
"received_at”: “2017-05-22T04:00:54Z",
}
raw report
report metadata
misconfigured_device / bad_clock
Results of the
Analysis
Classification Categories
9 195 807 reports
Classification Categories
9 195 807 reports
Captive Portals 11%
Not Reviewed Yet 6%
Unknown 2.5%
Client Clock Misconfig 0.5%
Server Misconfig 4.3%
Previous Work
• Data from Chrome desktop for google.com:
Classification Categories
9 195 807 reports
Captive Portals 11%
Not Reviewed Yet 6%
Unknown 2.5%
Client Clock Misconfig 0.5%
Server Misconfig 4.3%
Classification Categories
9 195 807 reports
Server Misconfig 4.3%
Server Misconfiguration
• Category for servers with misconfigured SSL certificates

• Right now only one subcategory: expired certificates

• For example, huge spike of report when a certificate
deployed in production expired:
Classification Categories
9 195 807 reports
Captive Portals 11%
Not Reviewed Yet 6%
Unknown 2.5%
Client Clock Misconfig 0.5%
Server Misconfig 4.3%
Classification Categories
9 195 807 reports
Spyware 39%
Pins Misconfig 34%
Captive Portals 11%
Not Reviewed Yet 6%
Server Misconfig 4.3%
Corp Networks 2.2%
Unknown 2.5%
Client Clock Misconfig 0.5%
Dev Artifacts 0.5%
Classification Categories
9 195 807 reports
Spyware 39%
Pins Misconfig 34%
Dev Artifacts 0.5%
Corp Networks 2.2%
Classification Categories
9 195 807 reports
Corp Networks 2.2%
Corporate Networks
Classification Categories
9 195 807 reports
Spyware 39%
Pins Misconfig 34%
Dev Artifacts 0.5%
Corp Networks 2.2%
Classification Categories
9 195 807 reports
Dev Artifacts 0.5%
Dev Proxies
Classification Categories
9 195 807 reports
Spyware 39%
Pins Misconfig 34%
Dev Artifacts 0.5%
Corp Networks 2.2%
Classification Categories
9 195 807 reports
Pins Misconfig 34%
Pins Misconfiguration
• The SSL pins hardcoded in the app do not match the
server’s certificate chain

• With enforcement disabled:

• The app still works but is constantly sending reports

• With enforcement enabled:

• The app’s connections will fail
Pins Misconfiguration
“On a Thanksgiving Day, November 24, 2016 an
emergency has occurred.
Customers of Barclays Bank, which were users of
mobile banking application, were unable to perform
any transactions due to pinning the outdated
intermediate certificate in the application.”
Pins Misconfiguration
“Several thousands of customers of small and
medium-sized businesses, operating mostly in the
UK market, will not be able to perform any
transactions from 8.30 a.m. 25/11/16 on a "Black
Friday" and during the holiday shopping period.
This will affect hundreds of thousands of
customer's transactions, until the application is
updated, and then released again.”
Pins Misconfiguration
• 22% of apps with more than 30% of misconfiguration
issues

• Pressure on mobile developers to implement SSL pinning
in their apps

• From security teams, bug bounties, etc.

• But most apps do not need it

• Requires not just code changes but also very good
processes around server SSL keys
Global Categories
9 195 807 reports
Spyware 39%
Pins Misconfig 34%
Server Misconfig 4.3%
Dev Artifacts 0.5%
Corp Networks 2.2%
Classification Categories
9 195 807 reports
Spyware 39%
Spyware Categories
Market Intelligence

3 580 078 reports
Ad Blocker

18 463 reports
Parental Control

10 820 reports
Spyware Categories
Market Intelligence

3 580 078 reports
MobileXpression 91%
Digital Reflection 4%
Verto Analytics 3.3%
Luth 1.4%
AnalyzeMe 0.3%
Ad Blocker

18 463 reports
Parental Control

10 820 reports
Spyware - Market Intel
• Mainly investigated MobileXpression and Digital
Reflection

• Large number of reports across ~20 000 devices
MobileXpression
Demo
MobileXpression
What Happened?
• A configuration profile was installed on the device

• With an always-on VPN config

• To route all traffic through the MobileXpression server

• With a custom root CA added to the device’s trust store

• To allow traffic decryption by the MobileXpression server
MobileXpression VPN App Server
MobileXpression?
“MobileXpression is a service of comScore, Inc., a
global leader in measuring the digital world,
providing insights into consumer behavior and
attitudes.”
ComScore
“This capability is based on a massive, global
cross-section of approximately 2 million
consumers, who have allowed comScore to collect
their online browsing, hardware and application
usage, and purchasing behavior.”
ComScore
• Owner of several “market research” apps

• MobileXpression, Digital Reflection

• Promise users rewards (gif cards, etc.) for installing the
app and configuration profile
ComScore
• Owner of several “market research” apps

• MobileXpression, Digital Reflection

• Promise users rewards (gif cards, etc.) for installing the
app and configuration profile
ComScore
• Inspect/decrypt all the users’ traffic to measure app
usage

• ComScore’s business model as a "measurement
company”
Spyware - Market Intel
• Configuration profiles are problematic

• Highly technical security warnings when installing the profile

• The profile/VPN does not get uninstalled when removing the app

• Makes sense from a technical perspective but will confuse users

• But not an easy issue to fix

• Corporate enrollment / MDM use case

• A profile can be installed directly via Safari

• Banning the spyware app from the store does not prevent it
Spyware Categories
Market Intelligence

3 580 078 reports
Ad Blocker

18 463 reports
Parental Control

10 820 reports
Spyware Categories
Market Intelligence

3 580 078 reports
Parental Control

10 820 reports
Ad Blocker

18 463 reports
Defend My WiFi 59%
AdBl0ck 34%
AdGuard 7%
Spyware - Ad Blocker
• Similar technical implementation with a VPN and custom CA

• Defend My WiFi

• "Automatically turns public Wi-Fi into safe and secure private
WiFi”

• Company does not exist anymore?

• Adblock Mobile

• iOS 8: SSL mitm on ad domains only

• iOS 9+: No more custom CA installed
Spyware Categories
Market Intelligence

3 580 078 reports
Ad Blocker

18 463 reports
Parental Control

10 820 reports
Spyware Categories
Market Intelligence

3 580 078 reports
Ad Blocker

18 463 reports
Parental Control

10 820 reports
Qustodio 74%
Accountable2You 24%
Circle Go 2%
Spyware - Parental Control
• Qustodio, Accountable2You, Circle Go

• Parental control/monitoring tools
Conclusion
What did we see?
• Traffic interception does happen, and for many reasons

• Usually not malicious

• Employers

• Users “willingly” sharing their data for a reward

• No visible move from Apple and Google on this

• Similarities and differences compared to previous work
on the web/desktop (Google, Facebook, Cloudflare)
What do we do?
• Which group does your app belong to?

• It is acceptable to expose the user’s data to “lawful
interception” (such as the user’s employer)

• Games, Business apps

• The user’s data is private and can never be exposed

• Mobile banking

• Can be technically enforced via SSL pinning
What do we do?
• More options on mobile compared to the web

• SSL reporting helps you understand what is happening
across your user base

• SSL pinning can be used for sensitive apps

• Significant burden and risk of catastrophic failure

• Must be decided and planned carefully

• Does not prevent reverse-engineering of your app
Thanks!
@nabla_c0d3
@trucsdedev

Más contenido relacionado

La actualidad más candente

BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations
BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations
BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations BlueHat Security Conference
 
BSides Roma 2018 - Red team techniques
BSides Roma 2018 - Red team techniquesBSides Roma 2018 - Red team techniques
BSides Roma 2018 - Red team techniquesGuglielmo Scaiola
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat Security Conference
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 ||  Detecting Compromise on Windows Endpoints with Osquery  BlueHat v17 ||  Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat Security Conference
 
BlueHat v18 || May i see your credentials, please
BlueHat v18 || May i see your credentials, pleaseBlueHat v18 || May i see your credentials, please
BlueHat v18 || May i see your credentials, pleaseBlueHat Security Conference
 
Инциденты с использованием ransomware. Расследование
Инциденты с использованием ransomware. РасследованиеИнциденты с использованием ransomware. Расследование
Инциденты с использованием ransomware. РасследованиеPositive Hack Days
 
ReCertifying Active Directory
ReCertifying Active DirectoryReCertifying Active Directory
ReCertifying Active DirectoryWill Schroeder
 
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...BlueHat Security Conference
 
Web security for developers
Web security for developersWeb security for developers
Web security for developersSunny Neo
 
CSW2017 chuanda ding_state of windows application security
CSW2017 chuanda ding_state of windows application securityCSW2017 chuanda ding_state of windows application security
CSW2017 chuanda ding_state of windows application securityCanSecWest
 
BlueHat v18 || Malicious user profiling using a deep neural net
BlueHat v18 || Malicious user profiling using a deep neural netBlueHat v18 || Malicious user profiling using a deep neural net
BlueHat v18 || Malicious user profiling using a deep neural netBlueHat Security Conference
 
1.3. (In)security Software
1.3. (In)security Software1.3. (In)security Software
1.3. (In)security Softwaredefconmoscow
 
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector BlueHat Security Conference
 
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...CanSecWest
 
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...Jakub Kałużny
 

La actualidad más candente (20)

BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations
BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations
BlueHat v17 || Raising the Bar: New Hardware Primitives for Exploit Mitigations
 
BSides Roma 2018 - Red team techniques
BSides Roma 2018 - Red team techniquesBSides Roma 2018 - Red team techniques
BSides Roma 2018 - Red team techniques
 
Certified Pre-Owned
Certified Pre-OwnedCertified Pre-Owned
Certified Pre-Owned
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 ||  Detecting Compromise on Windows Endpoints with Osquery  BlueHat v17 ||  Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
 
Anatomy of a Cloud Hack
Anatomy of a Cloud HackAnatomy of a Cloud Hack
Anatomy of a Cloud Hack
 
BlueHat v18 || May i see your credentials, please
BlueHat v18 || May i see your credentials, pleaseBlueHat v18 || May i see your credentials, please
BlueHat v18 || May i see your credentials, please
 
Инциденты с использованием ransomware. Расследование
Инциденты с использованием ransomware. РасследованиеИнциденты с использованием ransomware. Расследование
Инциденты с использованием ransomware. Расследование
 
ReCertifying Active Directory
ReCertifying Active DirectoryReCertifying Active Directory
ReCertifying Active Directory
 
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...
BlueHat v17 || Wannacrypt + Smbv1.0 Vulnerability = One of the Most Damaging ...
 
An easy way into your sap systems v3.0
An easy way into your sap systems v3.0An easy way into your sap systems v3.0
An easy way into your sap systems v3.0
 
Web security for developers
Web security for developersWeb security for developers
Web security for developers
 
CSW2017 chuanda ding_state of windows application security
CSW2017 chuanda ding_state of windows application securityCSW2017 chuanda ding_state of windows application security
CSW2017 chuanda ding_state of windows application security
 
BlueHat v18 || Malicious user profiling using a deep neural net
BlueHat v18 || Malicious user profiling using a deep neural netBlueHat v18 || Malicious user profiling using a deep neural net
BlueHat v18 || Malicious user profiling using a deep neural net
 
Implementing ossec
Implementing ossecImplementing ossec
Implementing ossec
 
Endpoint is not enough
Endpoint is not enoughEndpoint is not enough
Endpoint is not enough
 
1.3. (In)security Software
1.3. (In)security Software1.3. (In)security Software
1.3. (In)security Software
 
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector
BlueHat v17 || Don't Let Your Virtualization Fabric Become the Attack Vector
 
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...
CSW2017 Minrui yan+Jianhao-liu a visualization tool for evaluating can-bus cy...
 
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...
In The Middle of Printers - The (In)Security of Pull Printing solutions - Hac...
 

Similar a BlueHat v17 || Where, how, and why is SSL traffic on mobile getting intercepted? A look at three million real-world SSL incidents

Microsoft Bluehat 2017: Mobile SSL Interception
Microsoft Bluehat 2017: Mobile SSL InterceptionMicrosoft Bluehat 2017: Mobile SSL Interception
Microsoft Bluehat 2017: Mobile SSL InterceptionHimanshu Dwivedi
 
Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018MOnCloud
 
SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)Priyanka Aash
 
Certificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsCertificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsLuca Bongiorni
 
Securing the hybrid environment with Microsoft Cloud App Security
Securing the hybrid environment with Microsoft Cloud App SecuritySecuring the hybrid environment with Microsoft Cloud App Security
Securing the hybrid environment with Microsoft Cloud App SecurityMatt Fooks
 
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB
 
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack apiLiang Bo
 
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptxOralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptxssuser865ecd
 
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...Andrejs Vorobjovs
 
Best Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudBest Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudAmazon Web Services
 
SSL/TLS for Mortals (GOTO Berlin)
SSL/TLS for Mortals (GOTO Berlin)SSL/TLS for Mortals (GOTO Berlin)
SSL/TLS for Mortals (GOTO Berlin)Maarten Mulders
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET CoreNETUserGroupBern
 
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingWebinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingForgeRock
 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the CloudAmazon Web Services
 

Similar a BlueHat v17 || Where, how, and why is SSL traffic on mobile getting intercepted? A look at three million real-world SSL incidents (20)

Microsoft Bluehat 2017: Mobile SSL Interception
Microsoft Bluehat 2017: Mobile SSL InterceptionMicrosoft Bluehat 2017: Mobile SSL Interception
Microsoft Bluehat 2017: Mobile SSL Interception
 
Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018Microservices security - jpmc tech fest 2018
Microservices security - jpmc tech fest 2018
 
F5 TLS & SSL Practices
F5 TLS & SSL PracticesF5 TLS & SSL Practices
F5 TLS & SSL Practices
 
SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)
 
Certificate Pinning in Mobile Applications
Certificate Pinning in Mobile ApplicationsCertificate Pinning in Mobile Applications
Certificate Pinning in Mobile Applications
 
RSA SecurID Access
RSA SecurID AccessRSA SecurID Access
RSA SecurID Access
 
Hacking mobile apps
Hacking mobile appsHacking mobile apps
Hacking mobile apps
 
Securing the hybrid environment with Microsoft Cloud App Security
Securing the hybrid environment with Microsoft Cloud App SecuritySecuring the hybrid environment with Microsoft Cloud App Security
Securing the hybrid environment with Microsoft Cloud App Security
 
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
 
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptxOralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptx
 
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
 
Secure DevOps: A Puma's Tail
Secure DevOps: A Puma's TailSecure DevOps: A Puma's Tail
Secure DevOps: A Puma's Tail
 
Best Practices of IoT Security in the Cloud
Best Practices of IoT Security in the CloudBest Practices of IoT Security in the Cloud
Best Practices of IoT Security in the Cloud
 
SSL/TLS for Mortals (GOTO Berlin)
SSL/TLS for Mortals (GOTO Berlin)SSL/TLS for Mortals (GOTO Berlin)
SSL/TLS for Mortals (GOTO Berlin)
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingWebinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the Cloud
 

Más de BlueHat Security Conference

BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...BlueHat Security Conference
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Security Conference
 
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and DefenseBlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and DefenseBlueHat Security Conference
 
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come aloneBlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come aloneBlueHat Security Conference
 
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILsBlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILsBlueHat Security Conference
 
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.BlueHat Security Conference
 
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Security Conference
 
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR InvestigationsBlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR InvestigationsBlueHat Security Conference
 
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...BlueHat Security Conference
 
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...BlueHat Security Conference
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Security Conference
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat Security Conference
 
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzingBlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzingBlueHat Security Conference
 
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxyBlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxyBlueHat Security Conference
 
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windowsBlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windowsBlueHat Security Conference
 
BlueHat v18 || Memory resident implants - code injection is alive and well
BlueHat v18 || Memory resident implants - code injection is alive and wellBlueHat v18 || Memory resident implants - code injection is alive and well
BlueHat v18 || Memory resident implants - code injection is alive and wellBlueHat Security Conference
 
BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat Security Conference
 
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...BlueHat Security Conference
 
BlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deceptionBlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deceptionBlueHat Security Conference
 

Más de BlueHat Security Conference (20)

BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
 
BlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || KeynoteBlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || Keynote
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
 
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and DefenseBlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
 
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come aloneBlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
 
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILsBlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
 
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
 
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
 
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR InvestigationsBlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
 
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
 
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
 
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzingBlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
 
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxyBlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
 
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windowsBlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
 
BlueHat v18 || Memory resident implants - code injection is alive and well
BlueHat v18 || Memory resident implants - code injection is alive and wellBlueHat v18 || Memory resident implants - code injection is alive and well
BlueHat v18 || Memory resident implants - code injection is alive and well
 
BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without device
 
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
 
BlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deceptionBlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deception
 

Último

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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.pdfOrbitshub
 
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...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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 challengesrafiqahmad00786416
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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, Adobeapidays
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
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...Zilliz
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

BlueHat v17 || Where, how, and why is SSL traffic on mobile getting intercepted? A look at three million real-world SSL incidents

  • 1. Mobile SSL Interception in the Wild Where, how, and why? Alban Diquet Thomas Sileo Data Theorem BlueHat 2017
  • 2. Mobile SSL Interception • Analyzed 10 million “SSL incident" reports • Sent by mobile devices all around the world • What did we find?
  • 4. Agenda • Data collection methodology • Data set and analysis of forged SSL certificates • Results of the analysis • Conclusion
  • 6. TrustKit • Open-source library for SSL reporting and pinning • Released for iOS in 2015 and for Android earlier this year • https://github.com/datatheorem/TrustKit • Makes it easy to monitor and improve the security of the app’s network connections
  • 7. SSL Pinning • Hardcode in the app the SSL public key(s) to be expected to be used by the app’s server(s)
  • 11. SSL Pinning • Hardcode in the app the SSL public key(s) to be expected to be used by the app’s server(s)
  • 12. SSL Pinning • Hardcode in the app the SSL public key(s) to be expected to be used by the app’s server(s) // Initialize TrustKit NSDictionary *trustKitConfig = @{ kTSKPinnedDomains: @{ @"www.datatheorem.com" : @{ kTSKPublicKeyHashes : @[ @"lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=", @"TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=", ] }}}; [TrustKit initializeWithConfiguration:trustKitConfig];
  • 13. SSL Pinning • Hardcode in the app the SSL public key(s) to be expected to be used by the app’s server(s) // Initialize TrustKit NSDictionary *trustKitConfig = @{ kTSKPinnedDomains: @{ @"www.datatheorem.com" : @{ kTSKPublicKeyHashes : @[ @"lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=", @"TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY=", ] }}}; [TrustKit initializeWithConfiguration:trustKitConfig];
  • 14. SSL Reporting • Send a report whenever an SSL error occurred • Gives an overview of "SSL incidents" around the world • Helps understanding connection errors across the user base • Helps making a decision on whether to deploy SSL pinning • Useful to all apps
  • 15. SSL Incident • Default SSL validation error • Name mismatch, expired certificate, untrusted CA, etc. • Pinning validation error App Server
  • 16. SSL Reporting { "app-bundle-id": "com.datatheorem.testtrustkit", "app-version": “1.2", "app-vendor-id": "599F9C00-92DC-4B5C-9464-7971F01F8370", "app-platform": "IOS", "trustkit-version": “1.5.3", "hostname": "www.datatheorem.com", "port": 443, "noted-hostname": "datatheorem.com", "include-subdomains": true, "enforce-pinning": true, "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "date-time": "2015-06-08T01:58:05Z", "known-pins": [ "pin-sha256="rFjc3wG7lTZe43zeYTvPq8k4xdDEutCmIhI5dn4oCeE="", "pin-sha256="TQEtdMbmwFgYUifM4LDF+xgEtd0z69mPGmkp014d6ZY="" ], "validation-result": 1 }
  • 17. SSL Reporting • Any domain can be configured in TrustKit for where the reports should be sent • Data Theorem hosts one for free that developers can leverage • Reporting dashboard to see trends and inspect individual reports • Notifications for when something unexpected happens • Suspicious actor • Spike in reports
  • 18. Demo
  • 19. Data Set and Report Classification
  • 20. The Data Set • 10 million reports from 2 million devices in 2 years • From apps configured to use Data Theorem’s reporting server • Mostly from iOS devices • 70% of the reports came from the US

  • 21. The Data Set • From nearly 2 000 different apps • Banking • Shopping • Music/streaming • News Top Platform iOS 93.3% Android 5.3% macOS 1% tvOS 0.4%
  • 22. The Data Set Top Countries US 71% GB 9.5% TW 7.3% CA 1.8% HK 1.3%
  • 23. The Data Set • 3.3 million unique certificate chains • 38% of the certificate are self-signed • 78% of the certificate matched the hostname Certificate chain depth 2 62.2% 3 24% 1 11.4% 4 1.8% 5 0.5% 6 0.001%
  • 24. Report Classification • Use different heuristics to find the root cause • By looking at the content of the report, mainly the certificate chain • Save some metadata along with the server date • Contact the server for the hostname that was in the report, to fetch its certificate chain
  • 25. Report Classification • Re-verify the certificate chain • Set of rules that can target: • A specific certificate or a specific public key • Any certificate fields (Common Name, etc.)
  • 26. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata
  • 27. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata
  • 28. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata
  • 29. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata
  • 30. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata == misconfiguration / certificate_chain_valid
  • 31. Report Classification { "app-bundle-id": "com.datatheorem.pin_misconfig", "hostname": "www.datatheorem.com", "date-time": "2017-05-12T06:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 1, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-12T06:00:25Z", } raw report report metadata unknown / to_review !=
  • 32. Report Classification { "app-bundle-id": “com.datatheorem.coporate_proxy", "hostname": "www.datatheorem.com", “validated-certificate-chain”: [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "date-time": "2017-03-03T21:27:12Z", "validation-result": 1, "...": “…", raw report
  • 33. { "app-bundle-id": “com.datatheorem.coporate_proxy", "hostname": "www.datatheorem.com", “validated-certificate-chain”: [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "date-time": "2017-03-03T21:27:12Z", "validation-result": 1, "...": “…", Report Classification raw report
  • 34. { "app-bundle-id": “com.datatheorem.coporate_proxy", "hostname": "www.datatheorem.com", “validated-certificate-chain”: [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "date-time": "2017-03-03T21:27:12Z", "validation-result": 1, "...": “…", Report Classification raw report
  • 35. Report Classification { "app-bundle-id": “com.datatheorem.coporate_proxy", "hostname": "www.datatheorem.com", “validated-certificate-chain”: [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "date-time": "2017-03-03T21:27:12Z", "validation-result": 1, "...": “…", { "certificate_chain_infos": [ {"issuer": {"common_name":"Fortigate CA", “…": […], raw report certificate chain info
  • 36. Report Classification corporate_appliance / Fortinet corporate_appliance: Fortinet: leaf: - !IssuerCommonName 'FortiGate CA' { "certificate_chain_infos": [ {"issuer": {"common_name":"Fortigate CA", “…": […], certificate chain info classifier ruleset
  • 37. Report Classification { "app-bundle-id": “com.datatheorem.bad_device_clock”, "hostname": "www.datatheorem.com", "date-time": "2017-03-14T04:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 2, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-22T04:00:54Z", } raw report report metadata
  • 38. Report Classification { "app-bundle-id": “com.datatheorem.bad_device_clock”, "hostname": "www.datatheorem.com", "date-time": "2017-03-14T04:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 2, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-22T04:00:54Z", } raw report report metadata
  • 39. Report Classification { "app-bundle-id": “com.datatheorem.bad_device_clock”, "hostname": "www.datatheorem.com", "date-time": "2017-03-14T04:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 2, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-22T04:00:54Z", } raw report report metadata
  • 40. Report Classification { "app-bundle-id": “com.datatheorem.bad_device_clock”, "hostname": "www.datatheorem.com", "date-time": "2017-03-14T04:00:22Z", "validated-certificate-chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "validation-result": 2, "…": […], "…": […], "server_certificate_chain": [ "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", “-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----n[…]n-----END CERTIFICATE-----" ], "received_at”: “2017-05-22T04:00:54Z", } raw report report metadata misconfigured_device / bad_clock
  • 43. Classification Categories 9 195 807 reports Captive Portals 11% Not Reviewed Yet 6% Unknown 2.5% Client Clock Misconfig 0.5% Server Misconfig 4.3%
  • 44. Previous Work • Data from Chrome desktop for google.com:
  • 45. Classification Categories 9 195 807 reports Captive Portals 11% Not Reviewed Yet 6% Unknown 2.5% Client Clock Misconfig 0.5% Server Misconfig 4.3%
  • 46. Classification Categories 9 195 807 reports Server Misconfig 4.3%
  • 47. Server Misconfiguration • Category for servers with misconfigured SSL certificates • Right now only one subcategory: expired certificates • For example, huge spike of report when a certificate deployed in production expired:
  • 48. Classification Categories 9 195 807 reports Captive Portals 11% Not Reviewed Yet 6% Unknown 2.5% Client Clock Misconfig 0.5% Server Misconfig 4.3%
  • 49. Classification Categories 9 195 807 reports Spyware 39% Pins Misconfig 34% Captive Portals 11% Not Reviewed Yet 6% Server Misconfig 4.3% Corp Networks 2.2% Unknown 2.5% Client Clock Misconfig 0.5% Dev Artifacts 0.5%
  • 50. Classification Categories 9 195 807 reports Spyware 39% Pins Misconfig 34% Dev Artifacts 0.5% Corp Networks 2.2%
  • 51. Classification Categories 9 195 807 reports Corp Networks 2.2%
  • 53. Classification Categories 9 195 807 reports Spyware 39% Pins Misconfig 34% Dev Artifacts 0.5% Corp Networks 2.2%
  • 54. Classification Categories 9 195 807 reports Dev Artifacts 0.5%
  • 56. Classification Categories 9 195 807 reports Spyware 39% Pins Misconfig 34% Dev Artifacts 0.5% Corp Networks 2.2%
  • 57. Classification Categories 9 195 807 reports Pins Misconfig 34%
  • 58. Pins Misconfiguration • The SSL pins hardcoded in the app do not match the server’s certificate chain • With enforcement disabled: • The app still works but is constantly sending reports • With enforcement enabled: • The app’s connections will fail
  • 60. “On a Thanksgiving Day, November 24, 2016 an emergency has occurred. Customers of Barclays Bank, which were users of mobile banking application, were unable to perform any transactions due to pinning the outdated intermediate certificate in the application.”
  • 62. “Several thousands of customers of small and medium-sized businesses, operating mostly in the UK market, will not be able to perform any transactions from 8.30 a.m. 25/11/16 on a "Black Friday" and during the holiday shopping period. This will affect hundreds of thousands of customer's transactions, until the application is updated, and then released again.”
  • 63. Pins Misconfiguration • 22% of apps with more than 30% of misconfiguration issues • Pressure on mobile developers to implement SSL pinning in their apps • From security teams, bug bounties, etc. • But most apps do not need it • Requires not just code changes but also very good processes around server SSL keys
  • 64. Global Categories 9 195 807 reports Spyware 39% Pins Misconfig 34% Server Misconfig 4.3% Dev Artifacts 0.5% Corp Networks 2.2%
  • 65. Classification Categories 9 195 807 reports Spyware 39%
  • 66. Spyware Categories Market Intelligence
 3 580 078 reports Ad Blocker
 18 463 reports Parental Control
 10 820 reports
  • 67. Spyware Categories Market Intelligence
 3 580 078 reports MobileXpression 91% Digital Reflection 4% Verto Analytics 3.3% Luth 1.4% AnalyzeMe 0.3% Ad Blocker
 18 463 reports Parental Control
 10 820 reports
  • 68. Spyware - Market Intel • Mainly investigated MobileXpression and Digital Reflection • Large number of reports across ~20 000 devices
  • 70. Demo
  • 72. What Happened? • A configuration profile was installed on the device • With an always-on VPN config • To route all traffic through the MobileXpression server • With a custom root CA added to the device’s trust store • To allow traffic decryption by the MobileXpression server MobileXpression VPN App Server
  • 73. MobileXpression? “MobileXpression is a service of comScore, Inc., a global leader in measuring the digital world, providing insights into consumer behavior and attitudes.”
  • 74. ComScore “This capability is based on a massive, global cross-section of approximately 2 million consumers, who have allowed comScore to collect their online browsing, hardware and application usage, and purchasing behavior.”
  • 75. ComScore • Owner of several “market research” apps • MobileXpression, Digital Reflection • Promise users rewards (gif cards, etc.) for installing the app and configuration profile
  • 76. ComScore • Owner of several “market research” apps • MobileXpression, Digital Reflection • Promise users rewards (gif cards, etc.) for installing the app and configuration profile
  • 77. ComScore • Inspect/decrypt all the users’ traffic to measure app usage • ComScore’s business model as a "measurement company”
  • 78. Spyware - Market Intel • Configuration profiles are problematic • Highly technical security warnings when installing the profile • The profile/VPN does not get uninstalled when removing the app • Makes sense from a technical perspective but will confuse users • But not an easy issue to fix • Corporate enrollment / MDM use case • A profile can be installed directly via Safari • Banning the spyware app from the store does not prevent it
  • 79. Spyware Categories Market Intelligence
 3 580 078 reports Ad Blocker
 18 463 reports Parental Control
 10 820 reports
  • 80. Spyware Categories Market Intelligence
 3 580 078 reports Parental Control
 10 820 reports Ad Blocker
 18 463 reports Defend My WiFi 59% AdBl0ck 34% AdGuard 7%
  • 81. Spyware - Ad Blocker • Similar technical implementation with a VPN and custom CA • Defend My WiFi • "Automatically turns public Wi-Fi into safe and secure private WiFi” • Company does not exist anymore? • Adblock Mobile • iOS 8: SSL mitm on ad domains only • iOS 9+: No more custom CA installed
  • 82. Spyware Categories Market Intelligence
 3 580 078 reports Ad Blocker
 18 463 reports Parental Control
 10 820 reports
  • 83. Spyware Categories Market Intelligence
 3 580 078 reports Ad Blocker
 18 463 reports Parental Control
 10 820 reports Qustodio 74% Accountable2You 24% Circle Go 2%
  • 84. Spyware - Parental Control • Qustodio, Accountable2You, Circle Go • Parental control/monitoring tools
  • 86. What did we see? • Traffic interception does happen, and for many reasons • Usually not malicious • Employers • Users “willingly” sharing their data for a reward • No visible move from Apple and Google on this • Similarities and differences compared to previous work on the web/desktop (Google, Facebook, Cloudflare)
  • 87. What do we do? • Which group does your app belong to? • It is acceptable to expose the user’s data to “lawful interception” (such as the user’s employer) • Games, Business apps • The user’s data is private and can never be exposed • Mobile banking • Can be technically enforced via SSL pinning
  • 88. What do we do? • More options on mobile compared to the web • SSL reporting helps you understand what is happening across your user base • SSL pinning can be used for sensitive apps • Significant burden and risk of catastrophic failure • Must be decided and planned carefully • Does not prevent reverse-engineering of your app