canmove, Confirmed users, Bureaucrats and Sysops emeriti
2,776
edits
No edit summary |
|||
| (23 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> | |||
<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> | |||
</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 183: | 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 195: | 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|convert prototype to C++}} -- partially in JS, see {{bug|495115}} | ||
* {{done|pick optimal location to scan for header}} | * {{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 215: | 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 226: | 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> == | == <tt>X-Frame-Options</tt> == | ||
| Line 249: | Line 299: | ||
* {{done|Make sure this will work along side [Security/CSP]}} | * {{done|Make sure this will work along side [Security/CSP]}} | ||
'''Review and Standardization''': | '''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. | '''Prototype''': None. | ||
'''Implementation''': | '''Implementation''': Done (see [https://bugzilla.mozilla.org/show_bug.cgi?id=475530 bug 4755300]). | ||
''Tasks'' | ''Tasks'' | ||
| Line 259: | Line 311: | ||
* {{done|Implement Patch}} | * {{done|Implement Patch}} | ||
* {{done|Implement Unit Tests}} | * {{done|Implement Unit Tests}} | ||
* {{ | * {{done|Get reviewed and land on trunk}} | ||