canmove, Confirmed users, Bureaucrats and Sysops emeriti
2,776
edits
No edit summary |
|||
| (28 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
This page | {{warning|This page is no longer maintained. Please see [[SecurityEngineering/Roadmap]] for current projects}} | ||
This page once listed the security features under development and our plans for deployment. | |||
= Status Overview = | = Status Overview = | ||
<table class="fullwidth-table sortable" border> | |||
<tr> | |||
<th> Feature </th> | |||
<th> Design </th> | |||
<th> Discussion </th> | |||
<th> Review & Standards </th> | |||
<th> Prototype </th> | |||
<th> Implementation </th> | |||
<th> Version Target </th> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> Origin </td> | |||
<td style='background-color:#cfc;'> Done </td> | |||
<td style='background-color:#cfc;'> Done </td> | |||
<td style='background-color:#ffc;'> In Progress</td> | |||
| CSP | <td style='background-color:#fcc;'>Not Started </td> | ||
<td style='background-color:#fcc;'>Not Started</td> | |||
<td style='background-color:#fcc;'> </td> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> [[Security/CSP|CSP]] </td> | |||
<td style='background-color:#cfc;'> Done (2/2009)</td> | |||
<td style='background-color:#dfc;'> Pretty Much Done (9/2009)</td> | |||
<td style='background-color:#fcc;'> Not Started</td> | |||
<td style='background-color:#cfc;'> Done (8/2008)</td> | |||
<td style='background-color:#cfc;'> [http://hg.mozilla.org/mozilla-central/rev/7229621a1886 Done] (3/2010)</td> | |||
<td style='background-color:#cfc;'> 4.0 </td> | |||
| In Progress | </tr> | ||
<tr> | |||
<td style='background-color:;'> [https://bugzilla.mozilla.org/show_bug.cgi?id=495115 ForceTLS] </td> | |||
<td style='background-color:#cfc;'> Done (Q2 2009)</td> | |||
<td style='background-color:#ffc;'> In Progress</td> | |||
| | <td style='background-color:#ffc;'> [http://tools.ietf.org/html/draft-hodges-strict-transport-sec In Progress]</td> | ||
| | <td style='background-color:#cfc;'> Done (8/2010)</td> | ||
<td style='background-color:#cfc;'> [http://hg.mozilla.org/mozilla-central/rev/5dc3c2d2dd4f Done] (8/2009)</td> | |||
<td style='background-color:#cfc;'> 4.0 </td> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> [[Security/ProcessIsolation|Process Isolation]] </td> | |||
<td style='background-color:#cfc;'> Done</td> | |||
<td style='background-color:#ffc;'> In Progress</td> | |||
<td style='background-color:;'> </td> | |||
<td style='background-color:#eee;'> n/a </td> | |||
<td style='background-color:#ffc;'> In Progress</td> | |||
<td style='background-color:#ffc;'> ? </td> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> X-Frame-Options</td> | |||
<td style='background-color:#cfc;'> Done (Previous)</td> | |||
<td style='background-color:#ffc;'> In Progress (stable)</td> | |||
<td style='background-color:#cfc;'> Done (Previous)</td> | |||
<td style='background-color:#eee;'> n/a </td> | |||
<td style='background-color:#cfc;'> [https://bugzilla.mozilla.org/show_bug.cgi?id=475530 Done]</td> | |||
<td style='background-color:#cfc;'> 4.0 </td> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> [[Security/Features/Content Hashing|Content Hashing]]</td> | |||
<td style='background-color:#ffc;'> in progress</td> | |||
<td style='background-color:#ffc;'> in progress </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> ? </td> | |||
</tr> | |||
<tr> | |||
<td style='background-color:;'> [[Security/Features/XSS Filter|XSS Filter]]</td> | |||
<td style='background-color:#ffc;'> in progress</td> | |||
<td style='background-color:#ffc;'> in progress </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> tbd </td> | |||
<td style='background-color:#fcc;'> ? </td> | |||
</tr> | |||
</table> | |||
= Projects = | = Projects = | ||
This is intended to summarize the status and basic goals of each project, and not serve as an ultimate authority on each of the features. | This is intended to summarize the status and basic goals of each project, and not serve as an ultimate authority on each of the features. | ||
SEE ALSO: [[Privacy/Features/]] | |||
== Origin Header / Sec-From == | == Origin Header / Sec-From == | ||
Beginning as an [[Security/Origin]] header that aimed to prevent clickjacking as well as CSRF and JSON data theft, this feature has evolved into [[Security/Sec-From]] that will not prevent clickjacking, but can be compatible with various other specifications for similar HTTP request headers. | Beginning as an [[Security/Origin]] header that aimed to prevent clickjacking as well as CSRF and JSON data theft, this feature has evolved into [[Security/Sec-From]] that will not prevent clickjacking, but can be compatible with various other specifications for similar HTTP request headers. | ||
| Line 120: | Line 164: | ||
* {{done|get feedback (rinse, repeat) until comments are trivial}} | * {{done|get feedback (rinse, repeat) until comments are trivial}} | ||
* {{done|come to decision about whether or not to support meta tags (not supporting)}} | * {{done|come to decision about whether or not to support meta tags (not supporting)}} | ||
* {{ | * {{done|come to decision about whether or not to support multiple HTTP headers}} | ||
'''Review and Standardization''': In Progress. ETA: ? | '''Review and Standardization''': In Progress. ETA: ? | ||
| Line 147: | Line 191: | ||
* {{done|make patch to report policy violations}} | * {{done|make patch to report policy violations}} | ||
* {{done|make patch to implement base restriction enforcements}} | * {{done|make patch to implement base restriction enforcements}} | ||
* {{ | * {{done|land patch on trunk}} | ||
* {{ok|create document explaining how to write a good policy}} | * {{ok|create document explaining how to write a good policy}} | ||
* {{ok|create document explaining how to convert a site to support CSP}} | * {{ok|create document explaining how to convert a site to support CSP}} | ||
| Line 176: | Line 220: | ||
Tasks: | Tasks: | ||
* {{ok|IETF | * {{ok|[http://tools.ietf.org/html/draft-hodges-strict-transport-sec IETF]}} | ||
* {{ok|W3C?}} (Currently submitted here by Paypal) | * <s>{{ok|W3C?}} (Currently submitted here by Paypal)</s> | ||
'''Prototype''': Done. (6/2009) | '''Prototype''': Done. (6/2009) | ||
| Line 188: | Line 232: | ||
* {{done|submit to AMO for screening and public dissemination}} | * {{done|submit to AMO for screening and public dissemination}} | ||
'''Implementation''': | '''Implementation''': Done. (8/2010) | ||
Tasks: | Tasks: | ||
* {{ | * {{done|convert prototype to C++}} -- partially in JS, see {{bug|495115}} | ||
* {{ | * {{done|pick optimal location to scan for header}} | ||
* {{ | * {{done|write unit tests}} | ||
* {{ | * {{done|[http://hg.mozilla.org/mozilla-central/rev/5dc3c2d2dd4f land] on trunk}} | ||
== Process Isolation == | == Process Isolation == | ||
'''Design''': In Process. | '''Design''': In Process. | ||
https://wiki.mozilla.org/Electrolysis | |||
''Goals'' | ''Goals'' | ||
* Create infrastructure to allow process separation within Firefox | * Create infrastructure to allow process separation within Firefox | ||
* Put plugins in a separate process for stability reasons | |||
* Create separate content processes for stability and performance reasons | * Create separate content processes for stability and performance reasons | ||
* Implemented isolated processes to reduce the damage for various types of vulnerabilities | * Implemented isolated processes to reduce the damage for various types of vulnerabilities | ||
| Line 208: | Line 255: | ||
* {{done|[[Electrolysis#Phase_I:_Bootstrap|Phase 1 (bootstrap)]]}} | * {{done|[[Electrolysis#Phase_I:_Bootstrap|Phase 1 (bootstrap)]]}} | ||
* {{done|[[IPC_Protocols]] design}} | * {{done|[[IPC_Protocols]] design}} | ||
* {{ok|[[Electrolysis# | * {{ok|}}[https://bugzilla.mozilla.org/showdependencytree.cgi?id=OOPP&hide_resolved=1 Out of process plugins] | ||
* {{ok|[[Electrolysis# | * {{ok|}}[https://wiki.mozilla.org/Electrolysis#Fennec_OOP-Tabs_Phase_II_.28In_process.29 Multi-process tabs] | ||
* {{ok|[[Electrolysis#Fennec_OOP-Tabs_Phase_III:_extensions.2Fcompatibility.2Fperformance|Phase 3 (Extensions, Compatibility and Performance)]]}} | |||
* {{ok|[[Electrolysis#Phase_IV:_Multiple_content_processes|Phase 4 (Multiple content processes)]]}} | * {{ok|[[Electrolysis#Phase_IV:_Multiple_content_processes|Phase 4 (Multiple content processes)]]}} | ||
| Line 219: | Line 267: | ||
* {{done|Develop [[Security/ProcessIsolation/ThreatModel|threat model]]}} | * {{done|Develop [[Security/ProcessIsolation/ThreatModel|threat model]]}} | ||
'''Review and Standardization''': | '''Review and Standardization''': | ||
* IPD: https://wiki.mozilla.org/IPDL | |||
* Pepper API could allow for sandboxed plugins: https://wiki.mozilla.org/Plugins:PlatformIndependentNPAPI | |||
'''Prototype''': In Process. | '''Prototype''': In Process. | ||
* [[Content_Processes/Build|Build Instructions for Prototype]] | * [[Content_Processes/Build|Build Instructions for Prototype]] | ||
'''Implementation''': ? | '''Implementation''': | ||
''Phases'' | |||
https://wiki.mozilla.org/Electrolysis#Implementation | |||
* Plugin process separation - due to ship in Lorentz | |||
* Out of process tabs - in process | |||
* Add-on multi-process support and compatibility | |||
* Performance, caching, process pools | |||
* Sandboxing, of content processes and hopefully plugins | |||
== <tt>X-Frame-Options</tt> == | |||
'''Design''': Done. | |||
''Goals'' | |||
* Allow sites to specify how they may be enframed | |||
* Help prevent Clickjacking | |||
* Be compatible with IE/WebKit implementations | |||
'''Discussion''': In Process. | |||
''tasks'' | |||
* {{drop|Discuss extensions of XFO with other implementation bodies}} (e.g., whole-tree-walking, etc.) | |||
* {{done|Make sure this will work along side [Security/CSP]}} | |||
'''Review and Standardization''': | |||
There does not exist a formal specification. Eric Lawrence's [http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx blog post on X-Frame-Options] serves as the closest thing to a spec. | |||
'''Prototype''': None. | |||
'''Implementation''': Done (see [https://bugzilla.mozilla.org/show_bug.cgi?id=475530 bug 4755300]). | |||
''Tasks'' | |||
* {{done|Design Behavior}} | |||
* {{done|Implement Patch}} | |||
* {{done|Implement Unit Tests}} | |||
* {{done|Get reviewed and land on trunk}} | |||