Security/Reviews/Marketplace Developer Registration: Difference between revisions

 
(7 intermediate revisions by the same user not shown)
Line 65: Line 65:


=== Introduction ===
=== Introduction ===
Include brief summary of feature/project, and link back to core feature/product pages.
This project allows developers to sign up with Marketplace and enable them to sell apps.
Links:
* [https://wiki.mozilla.org/Apps Primary Apps Home Page]
* [https://wiki.mozilla.org/Apps/StatusMeetings Meeting Notes]
* [https://wiki.mozilla.org/Apps/WebApplicationReceipt Web Application Receipt Details]
* [https://docs.google.com/document/d/15qntg0vPwv_l5_FcyisGZkHV-8cHi3Yu1EEkmKua-lE/edit?hl=en_US&pli=1 Mozilla Market Place - Google Doc]


=== Use Cases ===
=== Use Cases ===
[https://wiki.mozilla.org/Apps#Published_docs Published Docs]


=== Data Flows ===
=== Data Flows ===


==== Diagram ====
==== Diagram ====
[https://wiki.mozilla.org/Apps/ID_and_Payments#Payments_Data_Flow_Diagram Data Flow Diagrams]
[https://wiki.mozilla.org/Apps/ID_and_Payments#Developer_Registration_Data_Flow_Diagram DataFlow Diagrams]
 
==== Data Type Definition ====
[https://wiki.mozilla.org/Apps/ID_and_Payments#Developer_Registration_Data_Types Data Types]


== Stage 2: Design ==
== Stage 2: Design ==
Line 95: Line 92:
| align="center" style="background:#f0f0f0;"|'''Notes'''
| align="center" style="background:#f0f0f0;"|'''Notes'''
|-
|-
| 1||Compromise Paypal API Key||The Paypal API key is used for communication with paypal and identifies Mozilla.  If this key is leaked, it is possible to impersonate Mozilla to Paypal.||Separation of payment systems from the rest of AMO.  Incident response process to include communication with payal to disable API key.  Proper CEF logging key.||Skilled Attacker||12||3||4 – Reputation||
| 1||||||||||||||||
|-
|-
| 2||Compromise AMO database||Currently, customer's paypal information resides in the AMO database.  If the AMO database is compromised this would include paypal information.||Separation of payment data from the rest of AMO.  Incident response process to include communication with payal to disable pre-auth keys.  Proper CEF logging key.||Skilled Attacker||12||3||4 – Reputation||for an actual compromise, this would require the paypal API key as well.
| 2||||||||||||||||
|-
|-
| 3||malicious access to apps device ||If a phone is stolen or given to a friend/family member, it is possible for that person to make purchases.||A PIN is to be implemented that is required for purchases and in-app purchases.  CEF logging on transactions to track excessive purchases.  Incident response to deal wiht stolen phone.||Malicious User||12||3||4 – Reputation||In other systems (i.e. iOS, this i a configured parameter.
| 3||||||||||||||||
|-
|-
| 4||Malicious extension could steal browserid credentials ||A rogue extension could possibly steal credentials or cause transactions to happen.||A PIN is to be implemented that is required for purchases and in-app purchases.  CEF logging on transactions to track excessive purchases.  Incident response to deal with stolen credentials.||Malicious Developer||12||3||4 – Reputation||It is not possible to siphon funds to any paypal account.  Must be registered with marketplace.
| 4||||||||||||||||
|-
|-
| 5||Malicious App creates fake iframe  ||An app could create an iframe in order to overlay a purchase iframe. ||A PIN is to be implemented that is required for purchases and in-app purchases.  CEF logging on transactions to track excessive purchases.  Incident response to deal with stolen credentials.  Paypal account shows all purchases. ||Malicious App||12||3||4 – Reputation||
| 5||||||||||||||||
|-
|-
| 6||Malicious App creates fake iframe  ||An app could create an iframe in order to overlay a purchase iframe. ||A PIN is to be implemented that is required for purchases and in-app purchases.  CEF logging on transactions to track excessive purchases.  Incident response to deal with stolen credentials.  Paypal account shows all purchases. ||Malicious App||12||3||4 – Reputation||
| 6||||||||||||||||
|-
|-
| 7||XSS vuln could allow malicious user to force purchase ||If a XSS is found in the marketplace, this could be used to force a purchase. ||A PIN is to be implemented that is required for purchases and in-app purchases.  enable CSP on the marketplace site.  CEF logging on transactions to track excessive purchases.  Incident response to deal with stolen credentials.  Paypal account shows all purchases. ||Malicious App||12||3||4 – Reputation||
| 7||||||||||||||||
|-
|-
| 8||CSRF could force purchase. ||If a XSS is found in the marketplace, this could be used to force a purchase. ||A PIN is to be implemented that is required for purchases and in-app purchases.  enable CSRF protection token on the marketplace site.  CEF logging on transactions to track excessive purchases.  Incident response to deal with stolen credentials.  Paypal account shows all purchases. ||Malicious App||12||3||4 – Reputation||
| 8||||||||||||||||
|-
|-
|}
|}
Line 200: Line 197:


=== Critical Security Requirements ===
=== Critical Security Requirements ===
PIN required for purchases and in-app purchases. https://bugzilla.mozilla.org/show_bug.cgi?id=759021
Sensitive Bank information must go through Solitude.
 
Move paypal process to independent servers.  https://bugzilla.mozilla.org/show_bug.cgi?id=759055
 
https://bugzilla.mozilla.org/show_bug.cgi?id=759058
 
temporarily encrypt pre-auth key: https://bugzilla.mozilla.org/show_bug.cgi?id=717444


== Stage 4: Development ==
== Stage 4: Development ==
207

edits