Changes

Jump to: navigation, search

Security Severity Ratings

1,400 bytes added, 14:33, 31 October 2011
no edit summary
Security bugs are rated by specifying [sg:<rating>] in the "Whiteboard" field in bugzilla. For example, a bug with a Critical severity rating would be marked as [sg:critical]. You might also notice a [ws:<rating>] in the "Whiteboard" field which is used for our Web Applications. The severity rating system can be found on the [https://wiki.mozilla.org/WebAppSec/Web_App_Severity_Ratings Web Application Security Severity Rating] page.
==Severity Ratings Table==<table border="1"><tr><th scope="col">Severity</th><th scope="col">Decription</th><th scope="col">Examples</th></tr><tr><th scope="row">Critical</th><td align="left" valign="top"><p>;'''sg:critical''': Run attacker code with local user privilege or install malicious software, requiring no user interaction beyond normal browsing. The big bada boom.</p></td><td align="left" valign="top"> <p>Overflows resulting in native code excution</p> <p>JavaScript injection into browser chrome</p> <p>Launching of arbitrary local application with provided arguments</p> <p>Filetype spoofing where executables can masquerade as benign content types</p> <p>Installation & execution of plugins/modules with chrome/native privileges, without user consent or via user dialog fatigue</p> <p>Any crash where random memory or NULL is executed (the top of the stack is not a function)</p> <p>Any crash where random memory is accessed</p></td></tr><tr><th scope="row">High</th><td align="left" valign="top"><p>Obtain confidential data from other sites the user is visiting or the local machine, or inject data or code into those sites, requiring no more than normal browsing actions.</p> <p>Indefinite DoS of the user's system, requiring OS reinstallation or extensive cleanup</p></td><td align="left" valign="top"><p>Cross-site Scripting (XSS)</p> <p>Theft of arbitrary files from local system</p> <p>Spoofing of full URL bar or bypass of SSL integrity checks</p></td>
</tr><tr><th scope="row">Moderate</th><td align="left" valign="top"><p>Disclosure of sensitive information that represents a violation of privacy but by itself does not expose the user or organization to immediate risk.</p>''Examples:'' <p>A vulnerability that combined with another moderate vulnerability could result * Overflows resulting in an attack of high or critical severity (aka stepping stone).</p>native code execution <p>Indefinite application DoS via corruption of state, requiring application re-installation</p> <p>Temporary DoS of the user's system, requiring reboot</p><td align="left" valign="top"> <p>Disclosure of OS username</p> <p>Disclosure of * JavaScript injection into browser cache salt</p>chrome <p>Disclosure of entire browsing history</p> <p>Detection of arbitrary local files</p> <p>* Launching of arbitrary local application without with provided arguments</p> <p>Local storage of passwords in unencrypted form </p> <p>Persistent DoS attacks that prevent the user from starting Firefox or another application in the future</p></td></tr><tr><th scope="row">Low</th><td align="left" valign="top"><p>Minor security vulnerabilities such * Filetype spoofing where executables can masquerade as leaks or spoofs of non-sensitive information.</p>benign content types</td><td align="left" valign="top"><p>Detection * Installation & execution of previous visit to a specific site<plugins/p> <p>Identification of users by profiling browsing behavior.<modules with chrome/p>native privileges, without user consent or via user dialog fatigue <p>Corruption of chrome dialogs * Any crash where random memory or user input without NULL is executed (the ability to spoof arbitrary messages</p></td></tr><tr><th scope="row">DoS</th><td align="left" valign="top"><p>Temporary Denial of Service attacks that users can avoid by not visiting the site again.</p><p>It stack is not necessary to mark each bug with [sg:dos]; adding the hang or a function)* Any crash keyword where random memory is sufficient.</p>accessed</td>* Any bug where random memory is written to is critical<td align="left" valign="top"> <p>Script that hangs the application for more than 5-10 seconds * Any bug where random memory is read from and then used in a subsequent memory or jump operation (without triggering the &quot;slow script&quot; dialogoffset, array, etc)</p> <p>Application crash.</p> <p>Infinite loop of dialogs that a user cannot escape.</p></td></tr></table> is critical
==Mitigating Circumstances==;'''sg:high''': Obtain confidential data from other sites the user is visiting or the local machine, or inject data or code into those sites, requiring no more than normal browsing actions. Indefinite DoS of the user's system, requiring OS reinstallation or extensive cleanup
If there are mitigating circumstances that severely reduce the effectiveness ''Examples:''* Cross-site Scripting (XSS)* Theft of the exploit, then the exploit could be reduced by one level arbitrary files from local system* Spoofing of severity. Examples full URL bar or bypass of mitigating circumstances include difficulty SSL integrity checks* Memory read that results in reproducing due to very specific timing data being written into an inert container (ie string or load order requirements, complex or unusual set of actions the user would have image) that is subsequently accessible to take beyond normal browsing behaviors, or unusual software configuration. content
As ;'''sg:moderate''': Disclosure of sensitive information that represents a rough guide, violation of privacy but by itself does not expose the user or organization to be considered for reduction immediate risk. The vulnerability combined with another moderate vulnerability could result in severity an exploit should execute successfully less than 10% attack of the timehigh or critical severity (aka stepping stone). If measures can be taken to improve the reliability Indefinite application Denial of the exploit to over 10% Service (by combining it with other existing bugs DoS) via corruption of state, requiring application re-installation or techniques)temporary DoS of the user's system, then it should not be considered to be mitigated.requiring reboot
==Additional Security Status Codes==''Examples:''If a potential security issue has not yet been assigned a severity rating, * Disclosure of OS username* Disclosure of browser cache salt* Disclosure of entire browsing history* Detection of arbitrary local files* Launching of arbitrary local application without arguments* Local storage of passwords in unencrypted form* Persistent DoS attacks that prevent the user from starting Firefox or a rating is not appropriate, the whiteboard may instead contain one of another application in the following security status codes.future
<table border="1"><tr><th width="130" scope="col">Severity</th><th scope="col">Decription</th><th scope="col">Examples</th></tr><tr><th scope="row">;'''sg:needinfo</th><td align="left" valign="top"><p>Information contained within the bug is incomplete, and additional information from the original submitter is required to confirm the bug.</p></td><td align="left" valign="top"> <p>Ambiguous or incomplete bug description</p> <p>Inconsistency in reproducing the issue</p></td></tr><tr><th scope="row">sglow''':want</th><td align="left" valign="top"><p>New features Minor security vulnerabilities such as leaks or improvement ideas related to security</p></td><td align="left" valign="top"> <p>User interface refinements</p> <p>Support for new types spoofs of authentication</p> <p>Code refactoring / cleanup</p></td>non-sensitive information.
</tr>''Examples:''<tr><th scope="row"><strike>sg:investigate</strike></th>* Detection of previous visit to a specific site<td align="left" valign="top"><p>DEPRECATED* Identification of users by profiling browsing behavior. Use sg:audit for legitimate code audit bugs, otherwise use the most appropriate status code given the bug state.</p><td align="left" valign="top"> <p>Further research is required to determine exploitability</p> <p>Bugs that involve reviewing * Corruption of chrome dialogs or user input without the codebase ability to discover potentially dangerous implementation patterns</p></td></tr>spoof arbitrary messages
<tr><th scope="row">;'''sg:audit</th><td align="left" valign="top"><p>Bug requires a code audit to investigate potential security problemsdos''' (Denial of Service): Temporary Denial of Service attacks that users can avoid by not visiting the site again.</p></td><td align="left" valign="top"u><p>Look for pattern x in library yNote:</pu> <p>Audit file z for string buffer abuseIt is not necessary to mark each bug with [sg:dos]; adding the hang or crash keyword is sufficient.</p></td></tr>
<tr>''Examples:''<th scope=* Script that hangs the application for more than 5-10 seconds (without triggering the "rowslow script">sg:nse</th>dialog)<td align="left" valign="top"><p>Bugs that may not be exploitable security issues but are kept confidential to protect sensitive information* Application crash.</p><td align="left" valign="top"> <p>Bugs * Infinite loop of dialogs that contain sensitive information about the bug submitter or another a user</p> <p>Bugs that are related to security issues currently unfixed in Mozilla products or other products</p></td></tr>cannot escape.
<tr><th scope="row">sg;'''Mitigating Circumstances''':dupe <bugid></th><td align="left" valign="top"><p>Designates a duplicate If there are mitigating circumstances that severely reduce the effectiveness of another security bugthe exploit, then the exploit could be reduced by one level of severity.</p><td align="left" valign="top"> <p>Copy Examples of mitigating circumstances include difficulty in reproducing due to very specific timing or load order requirements, complex or unusual set of an existing bug targeting a different release</p> <p>Same underlying bug filed independently</p></td></tr>actions the user would have to take beyond normal browsing behaviors, or unusual software configuration.
<tr>As a rough guide, to be considered for reduction in severity an exploit should execute successfully less than 10% of the time. If measures can be taken to improve the reliability of the exploit to over 10% (by combining it with other existing bugs or techniques), then it should not be considered to be mitigated. ==Additional Security Status Codes==If a potential security issue has not yet been assigned a severity rating, or a rating is not appropriate, the whiteboard may instead contain one of the following security status codes.<th scope{| style="rowwidth: 800px;">sg:vector-X</th><td alignclass="leftfullwidth-table" valign|-! style="topwidth:5%"><p>Flaws in software not controlled by (shipped with) Firefox, but that can cause security problems for people browsing with Firefox.</p>| Code <td align! style="leftwidth:10%" valign| Description! style="topwidth:5%">| Examples|- | <pb>Bugs in pluginssg:needinfo</pb> |Information contained within the bug is incomplete, and additional information from the original submitter is required to confirm the bug.|Ambiguous or incomplete bug description. Inconsistency in reproducing the issue|-|<pb>Bugs in system libraries used by Firefoxsg:want</pb></td>|New features or improvement ideas related to security|User interface refinements </tr>Support for new types of authentication
Code refactoring / cleanup|-|<b>sg:audit</b>|Bug requires a code audit to investigate potential security problems.|Look for pattern x in library yAudit file z for string buffer abuse.|-| <b>sg:nse</b>|Bugs that may not be exploitable security issues but are kept confidential to protect sensitive information.|Bugs that contain sensitive information about the bug submitter or another userBugs that are related to security issues currently unfixed in Mozilla products or other products|-|<b>sg:dupe <BugID></b>|Designates a duplicate of another security bug.|Copy of an existing bug targeting a different releaseSame underlying bug filed independently|-|<b>sg:vector-X</b>|Flaws in software not controlled by (shipped with) Firefox, but that can cause security problems for people browsing with Firefox.|Bugs in pluginsBugs in system libraries used by Firefox|-|colspan="3" style="text-align:center"|<b>Bugzilla Codes</b>|-|<b>sec-review-needed</b>|A security review is needed for the bug, this could mean a variety of things. If there is no secr:<username> in the whiteboard the item has not been triaged and action is unknown. Once triaged a note will be placed in the bug as to the action to be taken||-|<b>sec-review-complete</b>|The security review / actions desired have been completed. This will result in either a link to the notes from security actions or a note from the assigned resource in the bug.||-|<b>secr:<username></b>|This designates the assigned security resource that is accountable for actions to be taken on the designated item|[secr:curtisk] indicates that curtisk is the accountable party for action|-|colspan="3" style="text-align:center"|<b>Feature Page Codes</b>|-|-|<b>sec-review-needed</b>|A security review is needed for the feature, this could mean a variety of things. If there is no <username> in the notes then a full review needs to be scheduled, if a <username> is present than that person will follow-up with the feature team on whatever task is needed.||-|<b>sec-review-complete</b>|The security review / actions desired have been completed. This will result in a link to the notes from security actions or a note from the assigned resource.||-|<b>sec-review-active</b>| There are active tasks associated with the review that are yet to be completed in order for the review to be seen as completed. These will be captured in the "Action Items" section of the review notes.||-|<b>sec-review-sched</b>| Security review tasks have been scheduled, if this is a full security review the date of the scheduled review will be present in the security notes.||-|<b>sec-review-unnecessary</b>| After triage it was felt the feature needed no review or security actions. ||-| <b>Security health: <blank></b>| There are no notes or status is unknown.| Color: <None>|-| <b>Security health: OK</b>| The tasks are on schedule or completed and are considered non-blocking.| {{StatusHealthy|status=Color: Green}}|-| <b>Security health: Blocked</b>| Some aspect of the security review has given cause to block the feature from further work or landing. The reasons will be listed in the security notes or linked to a larger review outcome for follow-up.| {{StatusBlocked|status=Color: Yellow}}|-| <b>Security health: At Risk</b>| Some aspect of the security review may cause the feature to be blocked or put the feature at risk of being off schedule.The reasons will be listed in the security notes or linked to a larger review outcome for follow-up.| {{StatusAtRisk|status=Color: Red}}|-| <b>Security health: Assigned</tableb>| Security tasks have been assigned to a member of the team to followup. The name of this resource will be in the security notes.| {{StatusAssigned|status=Color: Teal}}|-|}
[[/Security_Severity_Ratings/archive | archive]]
Canmove, confirm, emeritus
2,776
edits

Navigation menu