Facebook Moments 15.0 (iOS / App Store) on Feb 4, 2017

175x175bb-4
This application is available for iOS. This app is designed to provide an easy way to get all the photos of yourself trapped on your friends’ phones. The latest build was released on Jul 10th, 2017.

This release protects all data items transferred over the Internet with SSL Pinning that means a weakness if you have a jailbroken device only

Findings Summary

Our examination revealed total 21 items, where were 9 DAR items and 12 DIT items found. Among DAR items were found 0 worst items, 7 bad items, 2 good items, and 0 best items. Among DIT items were found 0 worst items, 0 bad items, 12 good items, and 0 best items.

Below you find 2 infographics summarizing what we described above. Each image provides information about both DAR and DIT items.

 

This slideshow requires JavaScript.

Everything presented below is related to well-known CWEs, such as Sensitive data leakage [CWE-200], Unsafe sensitive data storage [CWE-312], Unsafe sensitive data transmission [CWE-319]. You can read more about it here.

Now let’s go deeper and examine each data item’s protection level.

Application Description

Let’s cite the description of this application below:

Moments helps you create shared photo albums with your friends and family. After celebrations, trips and outings you can privately collect all the photos and videos you’ll want to look back on. With Moments you can quickly send photos to your friends and get photos back.
The Moments app groups your photos and videos based on who’s in them and when they were taken. In one tap, you can send your photos to the right friends. Then, friends can add their own photos to the moment so you can store your photos together.

  • Keep all your photos and videos organized in one private place
  • Send multiple at once—no need to text or email individual photos
  • Search to find photos of yourself, your friends, places and more
  • View slideshows of your photos and share them to Facebook
  • A Favorites feature which stores photos in full resolution

Protection levels.

Locally stored data (Data-at-Rest, DAR).

Locally stored data groups include Media Information, Device Information, Account Information, Credentials Information, Address Book ‘n’ Contact Information, Log Information.
The average DAR value is 4.17 points (7.00 points of system protection and 1.33 points of own protection). It is higher than a typical value (3.5 points, where’s 7 points of system protection and 0 points of own protection).

Items’ GROUP #1 with average value 6.50 points (7 points of system protection, 6 points of own protection) means data protection levels have following definitions. Frankly talking, protection and privacy issues are still possible but might involve interaction with an app code where system protection level means – root/jailbreak is required but not possible without wiping device data, and own protection level means – data is not available in backups.

– Screen Snapshots (‘Media Information’ Group) – Screenshots of your device screen running certain apps; common as an iOS app multitasking feature (app swipes) or browser tab swipes. This data item related to mentioned group meant to be any data like photo, image, video, audio,

– Media Data (‘Address Book ‘n’ Contact Information’ Group) – Any info like images, audios, videos, media notes, etc. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even

Items’ GROUP #2 with average value 3.50 points (7 points of system protection, 0 points of own protection) means data protection levels have following definitions. Frankly talking, extra data found that shouldn’t be accessed where system protection level means – root/jailbreak is required but not possible without wiping device data, and own protection level means – stored as is.

– Device Data (‘Device Information’ Group) – Device ID, Device Name, Device OS Name and Version, and jailbroken/root status. This data item related to mentioned group meant to be details about your device,

– Account Data (‘Account Information’ Group) – Basic info about account like name, a list of sub-account (e.g. financial or other) and some linked data like a phone number. This data item related to mentioned group meant to be any info related to profiles, basic credential IDs like email or username or phone number plus some more info depends on applications,

– Credentials (IDs) (‘Credentials Information’ Group) – Only account IDs like an app or 3rd party user IDs including emails, phone number, usernames, etc. (depends on apps). This data item related to mentioned group meant to be any types of credentials including basic (IDs only), passwords, tokens, etc.,

– Contact Short Profile (‘Address Book ‘n’ Contact Information’ Group) – Name, Email ID, Phone number of contacts. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even,

– Media URLs (‘Address Book ‘n’ Contact Information’ Group) – URLs related to media info such as stream media or profile’s media, etc. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even,

– Media URLs (‘Account Information’ Group) – URLs related to media info such as stream media or profile’s media, etc. This data item related to mentioned group meant to be any info related to profiles, basic credential IDs like email or username or phone number plus some more info depends on applications,

– Log Data (‘Log Information’ Group) – Logged any data as a solid file or multipart files. This data item related to mentioned group meant to be any information stored in local or network logs

Also, keep in mind, using jailbroken device means the system protection level is 0 points and you’re using out-of-date iOS < 8.3 the system protection level is 2 points. If some data marked as shareable via iTunes, then the system protection level is 4 points.

Transferred data (Data-in-Transit, DIT).

Transferred data groups include Credentials Information, Account Information, Media Information, Address Book ‘n’ Contact Information, Device Information.
The average DIT value is 5.00 points (4.00 points of system protection and 6.00 points of own protection). It is higher than a typical value (4 points, where’s 4 points of system protection and 4 points of own protection).

Items with average value  5.00 points (4 points of system protection, 6 points of own protection) means data protection levels have following definitions. Frankly talking, data is not available all the time or partially accessed where system protection level means – informs if fake certificate imported into a device, and own protection level means – SSL pinning (can be patched).

– Credentials (IDs) (‘Credentials Information’ Group) – Only account IDs like an app or 3rd party user IDs including emails, phone number, usernames, etc. (depends on apps). This data item related to mentioned group meant to be any types of credentials including basic (IDs only), passwords, tokens, etc.,

– Credentials (Passwords) (‘Credentials Information’ Group) – Well-known passwords or PINs you’re using to get access to your account (usually it is worse than tokens because it gives full access to your account). This data item related to mentioned group meant to be any types of credentials including basic (IDs only), passwords, tokens, etc.,

– Credentials (Tokens) (‘Credentials Information’ Group) – Different tokens used to get access to your account, except for passwords but including app or 3rd party tokens, secret keys, etc. (usually give full access to your account). This data item related to mentioned group meant to be any types of credentials including basic (IDs only), passwords, tokens, etc.,

– Account Data (‘Account Information’ Group) – Basic info about account like name, a list of sub-account (e.g. financial or other) and some linked data like a phone number. This data item related to mentioned group meant to be any info related to profiles, basic credential IDs like email or username or phone number plus some more info depends on applications,

– Media Data (‘Media Information’ Group) – Any info like images, audios, videos, media notes, etc. This data item related to mentioned group meant to be any data like photo, image, video, audio,

– Media Stream (‘Account Information’ Group) – Any info like images, audios, videos, media notes, etc. This data item related to mentioned group meant to be any info related to profiles, basic credential IDs like email or username or phone number plus some more info depends on applications,

– Contact Short Profile (‘Address Book ‘n’ Contact Information’ Group) – Name, Email ID, Phone number of contacts. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even,

– Media Stream (‘Address Book ‘n’ Contact Information’ Group) – Any info like images, audios, videos, media notes, etc. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even,

– Media URLs (‘Address Book ‘n’ Contact Information’ Group) – URLs related to media info such as stream media or profile’s media, etc. This data item related to mentioned group meant to be info locally stored, cached or transferred over the network and belong to this application if it’s social even,

– Tracked Data ‘n’ Favorites (‘Media Information’ Group) – Any favorites data or tracked data marked as desirable by users and for users (Means, the user is on FB messenger, Viber, bank client or favourite hotel, room type, flight route, airline). This data item related to mentioned group meant to be any data like photo, image, video, audio

– Device Data (‘Device Information’ Group) – Device ID, Device Name, Device OS Name and Version, and jailbroken/root status. This data item related to mentioned group meant to be details about your device,

– Meta (‘Media Information’ Group) – Any info that gives extra data like EXIF. This data item related to mentioned group meant to be any data like photo, image, video, audio

Keep in mind if you’re using out-of-date iOS < 9.0, the system level equals 2 points instead of 4. It means your data can be stolen without involving your actions.

Privacy Policy

Full application privacy policy is available here.

You may find privacy policy details proceeding the link above to compare developer’s vision on data protection with our results.

More than 50 million users in total use this application.

[Dev Statement #1]>>

According to the full data use policy

Date of Last Revision: September 29, 2016. As you review our policy, keep in mind that it applies to all Facebook brands, products and services that do not have a separate privacy policy or that link to this policy, which we call the “Facebook Services” or “Services.”

[PrivacyMeter comment #1]>>

The last update of Privacy Policy written by Developer Team is bound to the September 26th, 2016 and cover all services including mobile applications

[Dev Statement #2]>>

I. What kinds of information do we collect?

Depending on which Services you use, we collect different kinds of information from or about you.
  • Things you do and information you provide. We collect the content and other information you provide when you use our Services, including when you sign up for an account, create or share, and message or communicate with others. This can include information in or about the content you provide, such as the location of a photo or the date a file was created. We also collect information about how you use our Services, such as the types of content you view or engage with or the frequency and duration of your activities.
  • Things others do and information they provide. We also collect content and information that other people provide when they use our Services, including information about you, such as when they share a photo of you, send a message to you, or upload, sync or import your contact information.
  • Your networks and connections. We collect information about the people and groups you are connected to and how you interact with them, such as the people you communicate with the most or the groups you like to share with. We also collect contact information you provide if you upload, sync or import this information (such as an address book) from a device.
  • Information about payments. If you use our Services for purchases or financial transactions (like when you buy something on Facebook, make a purchase in a game, or make a donation), we collect information about the purchase or transaction. This includes your payment information, such as your credit or debit card number and other card information, and other account and authentication information, as well as billing, shipping and contact details.
  • Device information. We collect information from or about the computers, phones, or other devices where you install or access our Services, depending on the permissions you’ve granted. We may associate the information we collect from your different devices, which helps us provide consistent Services across your devices. Here are some examples of the information we collect:

    • Attributes such as the operating system, hardware version, device settings, file and software names and types, battery and signal strength, and device identifiers.
    • Device locations, including specific geographic locations, such as through GPS, Bluetooth, or WiFi signals.
    • Connection information such as the name of your mobile operator or ISP, browser type, language and time zone, mobile phone number and IP address.
  • Information from websites and apps that use our Services. We collect information when you visit or use third-party websites and apps that use our Services (like when they offer our Like button or Facebook Log In or use our measurement and advertising services). This includes information about the websites and apps you visit, your use of our Services on those websites and apps, as well as information the developer or publisher of the app or website provides to you or us.
  • Information from third-party partners. We receive information about you and your activities on and off Facebook from third-party partners, such as information from a partner when we jointly offer services or from an advertiser about your experiences or interactions with them.
  • Facebook companies. We receive information about you from companies that are owned or operated by Facebook, in accordance with their terms and policies. Learn more about these companies and their privacy policies.

[PrivacyMeter comment #2]>>

The Facebook Team collects the following types of information, doesn’t describe how it is protected but each of them protected in two different ways. In the description below the ‘Group’ term means a place in the application where it was found, so there is a possibility that the same data item might be duplicated and found in one or more places at the same times with a different protected level too even.

For DIT (network) items that are part of activity related to the Good Protected Level

This group of data items includes 

  • Credentials (IDs), Credentials (Passwords), Credentials (Tokens) related to the ‘Credentials Information’ Group
  • Account Data, Media Stream related to the ‘Account Information’ Group
  • Device Data related to the ‘Device Information’ Group
  • Media Data, Tracked Data ‘n’ Favorites, Meta related to the ‘Media Information’ Group
  • Contact Short Profile, Media Stream, Media URLs related to the ‘Address Book ‘n’ Contact Information’ Group

Good Protected Level means all data items protected by SSL encryption mechanisms are pinned to the Facebook certificate and no other certificate accepts as valid one unless your device is jailbroken

If you have up-to-date iOS, it means you still do not have additional protection from the MITM attacks aimed to intercept the network traffic if you have trusted certificated installed by yourself. If you have outdated iOS below iOS 9th version, you might have issues that decrease your system level of protection due to known problems with security mechanisms and leads to the MITM attacks without installing a crafted certificate as trusted.

For DAR (local) items that are represented as data items stored in backup too and out of backup only and not accessible without jailbreak/outdated iOS.
The ‘in-backup’ items include

  • Account Data, Media URLs related to the ‘Account Information’ Group
  • Contact Short Profile, Media URLs related to the ‘Address Book ‘n’ Contact Information’ Group
  • Credentials (IDs) related to the ‘Credentials Information’ Group
  • Device Data related to the ‘Device Information’ Group
  • Log Data related to the ‘Log Information’ Group

The ‘Out of backup only’ items include

  • Media Data related to the ‘Address Book ‘n’ Contact Information’ Group
  • Screen Snapshots related to ‘Media Information’ Group

The locally stored data requires either jailbreak or a backup, however, usually, not all data items are included in a backup file. If you use outdated iOS below iOS 8.3th version, you might have issues that decrease your system level of protection due to known problems with security mechanisms and leads to stealing the data items of the application stored in an application folder (except keychains) without jailbreaking the device but having the device connected to PC/Mac.

[Statement #1 and comment #1]

[Solutions for Developers #1]>>
In general, the dev team should revise the policy and include information how the application data is protected because this part is obviously missed.

[Solutions for users #1]>>
Nothing required

[Statement #2 and comment #2]

[Solutions for Developers #2]>>
The dev team should implement SSL Pinning in a way to trust only Instagram SSL certificate. The certificate is easiest to pin. It is possible to fetch the certificate out of the band for the website, use openssl s_client to retrieve the certificate, etc. At runtime, the application retrieves the website or server’s certificate in the callback. Within the callback, the application compares the retrieved certificate with the certificate embedded within the program. If the comparison fails, then fail the method or function.

The locally stored data should be protected and encrypted. Adding information, what data is included in a backup, help users make a security decision clearly.

[Solutions for users #2]>>

You may safely use this application including main activities if your device is not jailbroken, but avoid installing suspicious SSL certificates into your device if you are not sure where it comes from, avoid using this application in the non-trusted network and check your device for installed user CA SSL certificates that marked as trusted. Also, you may use VPN solutions to prevent MITM.

Keep in mind, that a backup is an additional insecurity flow even if you do not have a jailbroken device. Avoid to create a non-encrypted (non-protected by password) backup files, use jailbroken device and outdated iOS below 8.3 version.