Data Security Details
Updated: Jul 31, 2024
In addition to the
Developer Platform Glossary and
Developer Data Security Best Practices guide, the following provides details about Meta’s expectations for how developers should protect User Data and/or Device User Data. You should be aware of this information because it significantly impacts the technical review of your app.
In order to be compliant with
Section 6 of the Developer Data Use Policy, your organization should have information security practices in place that consider your people, processes, technology, assets, and risks. These practices ensure that your organization has taken steps to protect the confidentiality, integrity, and availability of User Data and/or Device User Data. You should understand the risks related to storing and/or transmitting User Data and/or Device User Data. To prevent the unauthorized access or loss of User Data and/or Device User Data, you are expected to have the following information security measures in place:
- Access Management - Have practices to protect User Data and/or Device User Data from unauthorized access.
- Change Management - Utilize secure coding practices to prevent security vulnerabilities in code and preventing unauthorized changes that could compromise User Data and/or Device User Data.
- Operations - Have practices to keep systems that store and/or transmit User Data and/or Device User Data patched and up-to-date to prevent known vulnerabilities and exploits being used to access User Data and/or Device User Data in an unauthorized manner.
You should use known industry information security standards to inform your Information Security Practices. An information security standard is a framework that lays out a comprehensive plan for designing, enacting, and operating effective security for your organization. The following are a few examples of useful industry security standards.
Meta does not require you to follow a particular Information Security Standard or obtain a particular data security certification, but here are a few examples:
- ISO 27001 - ISO 27001 is part of a family of security standards from the International Organization for Standardization (ISO) that are intended to help organizations effectively manage an information security program across common security domains like access control, incident management and response, systems development and maintenance, and compliance. Organizations can implement controls according to the standard and then undergo an audit from an accredited firm to receive ISO 27001 certification.
- ISO 27018 - ISO 27018 is an international standard for protecting personal information in cloud storage.
- NIST CSF - The National Institute of Standards and Technology (NIST) cybersecurity framework (CSF) is a plan that contains five key pillars: identify, protect, detect, respond, and recover. Organizations who adopt the NIST CSF would adopt processes, use technology, and hire and train people in each of these areas to achieve their security objectives.
- OWASP - Open Web Application Security Project® (OWASP) is a nonprofit foundation that works to improve the security of software. Through community-led open-source software projects, hundreds of local chapters worldwide, tens of thousands of members, and leading educational and training conferences, the OWASP Foundation is the source for developers and technologists to secure the web.
- COBIT - The Control Objectives for Information and Related Technologies (COBIT) is a framework created by ISACA for information technology (IT) management and IT governance. The framework is business focused and defines a set of generic processes for the management of IT, with each process defined together with process inputs and outputs, key process-activities, process objectives, performance measures and an elementary maturity model.
- GDPR - Article 32 within the GDPR discusses technical and organizational measures that are required to protect the confidentiality, integrity, and availability of personal information. If you are required to be GDPR compliant, you may already have information security standards in place.
Data security certifications - ISO 27001 Certificate - an assessment from an auditor who has examined an organization’s implementation of the ISO27001 requirements certifying that the requirements have been met.
- ISO 27018 Certificate - an assessment from an auditor who has examined an organization’s implementation of the ISO27018 control objectives, controls, and guidelines for implementing measures to protect personally identifiable information (PII) certifying that the requirements have been met.
- SOC2 Type 2 Report - a SOC 2 Type 2 report is an assessment from an auditor about the effectiveness of an organization’s implementation of the SOC 2 Trust Services Criteria after six months. A SOC 2 Type 1 report is different in that it is a point-in-time evaluation of procedure design without observing the procedures in practice for a period of time.
Meta generally expects that all User Data and/or Device User Data stored at rest is encrypted. Encryption at rest protects data by transforming it into an unreadable format when it is saved to storage. Even if an unauthorized actor gets access to the encrypted disks or files, they will not be able to read the data unless they also have the key to decrypt it.
Encryption at rest is enforced when you:
- Identify where User Data and/or Device User Data is stored.
- Enact encryption where User Data and/or Device User Data is stored.
- Ensure through policy and audits that there are no exceptions to this approach (that is, where User Data and/or Device User Data is saved in unencrypted format).
Data that is not written to storage does not need encryption at rest. You may be able to reduce the complexity of encryption at rest by identifying storage destinations (for example, log files) where User Data and/or Device User Data does not need to be stored and changing your software or processes to remove this data from those unnecessary data stores.
Meta generally expects that all User Data and/or Device User Data is encrypted in transit. Encryption in transit protects data by transforming it into an unreadable format when it is sent across network connections, for example, using TLS 1.2 or alternatives that provide equivalent network communication security.
Encryption in transit is enforced when you:
- Identify all network connections where User Data and/or Device User Data is transmitted--considering both clients like web and mobile apps as well as any server-to-server transfers.
- Configure your software and infrastructure to require encrypted network connections and redirect or prohibit unencrypted connections.
- Ensure through policy and audits that there are no exceptions to this approach (that is, where User Data and/or Device User Data is transmitted in unencrypted format).
Vulnerability management and security testing
Testing software for vulnerabilities and security issues helps you find and fix these issues as soon as possible. To help with this, Meta runs a vulnerability scan on your app binary at upload. However, if you store User Data and/or Device User Data on non-Meta servers, you should have practices in place to manage vulnerabilities and perform security testing for any software and hardware that you maintain. Some best practices to consider include the following:
- Develop practices to identify, triage, monitor, and mitigate vulnerabilities or bugs in code through the use of static and dynamic tools and manual code reviews.
- Perform an assessment of the compliance of systems that store or access User Data and/or Device User Data with security policies, frameworks, and regulatory requirements.
- Conduct internal or external penetration tests to evaluate systems that store or access User Data and/or Device User Data. Penetration testing relies on security experts to test your product using the same techniques as malicious actors to find and prioritize vulnerabilities. Similar to penetration testing, ethical hackers may discover vulnerabilities in your system and disclose them via your Vulnerability Disclosure Program (VDP).
- Develop and implement vulnerability management and patching programs for systems that store or access User Data and/or Device User Data.
- Perform vulnerability scans/detection on systems that store or access User Data and/or Device User Data to identify vulnerabilities and evaluate the risks.
Coordinate with owners of systems that store or access User Data and/or Device User Data to resolve the vulnerabilities according to severity level and defined service levels.
- Use static analysis to examine your source code for coding errors that could result in security issues. For example, GitHub supports code scanning within its repositories, or you can configure GitHub to use a 3rd party scanning product.
No matter how a vulnerability is discovered, it should be triaged and resolved according to its priority, especially for critical, high, and medium severity vulnerabilities.
Protecting credentials and access tokens
Credentials and access tokens are sensitive because they are used to authenticate access to services like APIs. If a malicious actor is able to read an access token, they can impersonate the associated user to get unauthorized access to data.
The following can help you protect these sensitive credentials and tokens:
- Use tools, such as GitHub’s secret scanning features, to ensure that no credentials or access tokens have been checked into your code repository.
- Store credentials and access tokens such that only administrators can access them.
- Use a token vault in a cloud or server environment, if possible.
- Use system credential storage on mobile devices, if possible.
Multi-Factor Authentication and enforcement
Multi-Factor Authentication (MFA) requires a person to provide two or more forms of authentication before they can gain access. Examples of this include using a token from an authenticator app or an SMS message sent to a user’s phone. Requiring MFA reduces the risk of malicious actors being able to compromise accounts and exploit that access to get into your system.
One way to enforce MFA for remote access is to require a Virtual Private Network (VPN) connection and then require MFA for access to the VPN. Alternatively, you may be able to define a group policy for all users that requires MFA and blocks other authentication types. You’ll need to consult your provider(s) documentation for instructions on how to require MFA in your environment. An example of a policy template that can be used to require MFA can be found in the
Amazon AWS Identity and Access Management tool documentation.
Account maintenance systems
Identity providers such as Microsoft AzureAD, Okta, or other tools for the purpose of centralizing administration of user accounts.
Regardless of the technical implementation you choose, the following principles should be considered:
- Accounts should be created by administrators, and only when necessary.
- Accounts should be configured according to the principle of least privilege.
- Processes should be configured to run under normal user accounts whenever possible (as opposed to superuser or admin accounts).
- Accounts should be disabled promptly when no longer needed such as when the user leaves the organization.
- Accounts should be audited regularly for any exceptions to these principles.
Keep your software up to date to keep malicious actors from exploiting security vulnerabilities. This includes the software running on your servers, within your applications, and on the devices that the people in your organization use to do their work. Some best practices to consider include the following:
- Identify the relevant assets (for example, the servers, software, applications, dependencies, and devices) used to build, run, and administer your application.
- Create policies for keeping these assets consistently updated.
- Use relevant technology where possible to automate and enforce these policies.
- Audit your assets regularly for deviations.
The following are a few examples of various tools and technologies used to keep software up to date.
Production systems handle legitimate requests of your users but are also reachable directly by malicious actors. Some best practices to consider include the following:
- Identify what services are required on your systems and disable or remove all unnecessary services.
- Have procedures for keeping these systems updated with security patches and upgrades as they become available.
- Audit your systems regularly for deviations from your plan.
To more easily maintain systems as discussed above, the following are some additional best practices to consider:
- Use standard hardening configuration templates for applications that rely on a database.
- Define processes and approved channels for asset acquisition, including intake request and purchase approval.
- Maintain an asset inventory, tracking all assets throughout their lifecycle.
- Utilize end-of-life asset management procedures for the sanitization and destruction of all decommissioned production and non-volatile memory media including certification of sanitization/destruction where appropriate.
- Implement a mobile device management solution that allows controlled access to networks and has the ability to remotely wipe lost or stolen mobile devices.
- Implement a system development life cycle to manage systems.
- Periodically assess for unauthorized, unlicensed and unsupported hardware/software.
- Utilize secure configuration baselines for assets, and maintain baselines for servers, mobile devices and network devices.
- Store baseline configurations in a central repository and define the services available on each system and how those services should be configured.
- Establish standard configurations for network devices.
- Regularly check systems for compliance with secure configuration baseline, as mentioned above.
- Manage security configurations through configuration management and change control processes.
- Use centrally managed anti-malware software which is updated regularly.
Consistent monitoring practices of access logs can help maintain better control over your systems. Some best practices to consider to monitor access to Oculus and/or Device User Data include the following:
- Minimize the number of locations where User Data and Device User Data is held.
- Use network segmentation to isolate the User Data and Device User Data and prevent unauthorized access.
- Log all access and data egress to the protected segment.
Note: Audit logs should be protected from tampering after the fact so that malicious actors can’t easily hide their activities.
- Log changes to access levels for analysis and investigative purposes.
- Monitor assets that store or transmit User Data and/or Device User Data for unauthorized personnel, connections, devices, and software.
- Design logging and monitoring systems to generate logs of event types that enable security related activities to be detected.
- Collect and correlate event data from multiple sources and sensors.
- Send logs to remote log aggregator systems.
- Synchronize clocks to a single referenced time source.
- Protect security logs in transit where appropriate.
- Protect security logs against unauthorized changes or access.
- Back-up security logs according to defined schedules and retention policies.
- Implement procedures to ensure that notifications from detection systems are routed to dedicated security personnel for investigation and escalated where appropriate.
- Implement endpoint-monitoring software to log and monitor activity on managed IT assets.
- Implement cloud monitoring services.
- Use firewalls, host-based filtering, DDoS detection/mitigation technologies, anti-spoofing technologies on perimeter and edge information systems.
- Implement Network-Based IDS Sensors and Network-Based Intrusion Prevention Systems and keep them current.
Should you identify unauthorized access to User Data and/or Device User Data, you should have processes in place to triage and respond to events that may compromise the confidentiality, integrity, or availability of the data. Some best practices to consider include the following:
- Establish a formally defined security incident response plan to detect, record, prioritize and respond to security incidents, including defined roles and responsibilities.
- Create procedures for escalation and isolation/containment in the incident response plan.
- Develop recovery planning processes and incorporate lessons learned into future activities.
- Provide training to enable employees and contractors to identify and report security incidents.
- Regularly test, review, and update your incident response systems or processes through the incident response tabletop exercises, incident response blue team drills, or purple teaming as part of a penetration test.