Threat Modeling Report

Created on 3/31/2015 10:50:56 AM

Threat Model Name:

Owner:

Reviewer:

Contributors:

Description:

Assumptions:

External Dependencies:


Threat Model Summary:

Not Started0
Not Applicable9
Needs Investigation0
Mitigation Implemented17
Total26
Total Migrated0


Diagram: DSC for Linux

DSC for Linux diagram screenshot

DSC for Linux Diagram Summary:

Not Started0
Not Applicable9
Needs Investigation0
Mitigation Implemented17
Total26
Total Migrated0

Threat(s) Not Associated With an Interaction:

1. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:An external threat agent prevents access to a data store on the other side of the trust boundary.
Justification:The LCM will retry every so often (user specified) to grab the latest configuration MOF, and if it fails to connect it will continue to use its current configuration MOF.

Interaction: Call Function

Call Function interaction screenshot

2. Elevation Using Impersonation  [State: Not Applicable]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:Python may be able to impersonate the context of omiagent (C/Python interface) in order to gain additional privilege.
Justification:Python runs as root, which cannot be given additional privilege

3. omiagent (C/Python interface) Process Memory Tampered  [State: Not Applicable]  [Priority: High] 

Category:Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.
Description:If omiagent (C/Python interface) is given access to memory, such as shared memory or pointers, or is given the ability to control what Python executes (for example, passing back a function pointer.), then omiagent (C/Python interface) can tamper with the Python. Consider if the function could work with less access to memory, such as passing data, rather than pointers. Copy in data provided, and then validate it.
Justification:omiagent is entirely controlled by the root process, so it can modify memory of anything on the system in any case.

4. Packet Collision Attacks  [State: Not Applicable]  [Priority: High] 

Category:Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.
Description:Attackers who can send a series of packets can overlap data. For example, packet 1 may be 100 bytes starting at offset 0. Packet 2 may be 100 bytes starting at offset 25. Packet 2 will overwrite 75 bytes of packet 1. Ensure you reassemble data before filtering it, and ensure you explicitly handle these sorts of cases. A variant might be allowing offsets to be signed.
Justification:Only root can send data across the omiagent/python communication layer.

5. Packet Replay Attacks  [State: Not Applicable]  [Priority: High] 

Category:Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.
Description:Packets without sequence numbers or timestamps can be captured and replayed in a wide variety of ways. Use an anti-replay technique (investigate sequence numbers before timers) and a strong integrity technique.
Justification:Only root can send data across the omiagent/python communication layer.

Interaction: HTTP

HTTP interaction screenshot

6. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: High] 

Category:Information disclosure happens when the information can be read by an unauthorized party.
Description:Improper data protection of Configuration MOF can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:HTTPS (authenticated with certificates) communications are available for customers that with to protect information.

7. Potential Data Repudiation by omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation threats involve an adversary denying that something happened.
Description:omiserver (In Proc LCM) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:Users can use a firewall to ensure communication inside a trust boundary, and omiserver will log all connections and associated data.

8. JavaScript Object Notation Processing  [State: Mitigation Implemented]  [Priority: High] 

Category:Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.
Description:if a dataflow contains JSON, JSON processing and hijacking threats may be exploited.
Justification:The JSON sent is part of the http content block. Only JSON that matches a sequence of key-value pairs will be considered acceptable, which is parsed carefully.

9. Spoofing of Source Data Store Configuration MOF  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.
Description:Configuration MOF may be spoofed by an attacker and this may lead to incorrect data delivered to omiserver (In Proc LCM). Consider Consider using a standard authentication mechanism to identify the source data store.
Justification:A user can use HTTPS with client certificate auth if they wish for authentication.

10. Spoofing the omiserver (In Proc LCM) Process  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.
Description:omiserver (In Proc LCM) may be spoofed by an attacker and this may lead to information disclosure by Configuration MOF. Consider using a standard authentication mechanism to identify the source process.
Justification:A user can use HTTPS with client certificate auth if they wish for authentication.

11. Potential Process Crash or Stop for omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:omiserver (In Proc LCM) crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:If omiserver crashes, the service manager will restart it and then the Consistency Engine will begin where it left off the next time cron runs it.

12. Data Flow HTTP Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:An external threat agent interrupts data flowing across a trust boundary in either direction.
Justification:The LCM will fail the Apply Configuration and then retry in its next attempt to grab the configuration MOF.

13. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:An external threat agent prevents access to a data store on the other side of the trust boundary.
Justification:The LCM will fail the Apply Configuration and then retry in its next attempt to grab the configuration MOF.

14. omiserver (In Proc LCM) May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:Configuration MOF may be able to remotely execute code for omiserver (In Proc LCM).
Justification:The configuration MOF is just data, which is not executing any code

15. Elevation by Changing the Execution Flow in omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:An attacker may pass data into omiserver (In Proc LCM) in order to change the flow of program execution within omiserver (In Proc LCM) to the attacker's choosing.
Justification:This is intended, as the data that comes from the configuration MOF describes what sequences of commands to take on the system running the LCM. This is mitigated by the authentication mechanisms we have in place. Use HTTPS if this is something you are concerned with

Interaction: HTTPS

HTTPS interaction screenshot

16. Elevation by Changing the Execution Flow in omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:An attacker may pass data into omiserver (In Proc LCM) in order to change the flow of program execution within omiserver (In Proc LCM) to the attacker's choosing.
Justification:This is intended, as the data that comes from the configuration MOF describes what sequences of commands to take on the system running the LCM. This is mitigated by the authentication mechanisms we have in place. Use HTTPS if this is something you are concerned with

17. omiserver (In Proc LCM) May be Subject to Elevation of Privilege Using Remote Code Execution  [State: Not Applicable]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:Configuration MOF may be able to remotely execute code for omiserver (In Proc LCM).
Justification:The configuration MOF is just data, which is not executing any code

18. Data Store Inaccessible  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:An external threat agent prevents access to a data store on the other side of the trust boundary.
Justification:The LCM will fail the Apply Configuration and then retry in its next attempt to grab the configuration MOF.

19. Data Flow HTTPS Is Potentially Interrupted  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:An external threat agent interrupts data flowing across a trust boundary in either direction.
Justification:The LCM will fail the Apply Configuration and then retry in its next attempt to grab the configuration MOF.

20. Potential Process Crash or Stop for omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.
Description:omiserver (In Proc LCM) crashes, halts, stops or runs slowly; in all cases violating an availability metric.
Justification:If omiserver crashes, the service manager will restart it and then the Consistency Engine will begin where it left off the next time cron runs it.

21. Weak Access Control for a Resource  [State: Mitigation Implemented]  [Priority: High] 

Category:Information disclosure happens when the information can be read by an unauthorized party.
Description:Improper data protection of Configuration MOF can allow an attacker to read information not intended for disclosure. Review authorization settings.
Justification:HTTPS (authenticated with certificates) communications are available for customers that with to protect information.

22. Potential Data Repudiation by omiserver (In Proc LCM)  [State: Mitigation Implemented]  [Priority: High] 

Category:Repudiation threats involve an adversary denying that something happened.
Description:omiserver (In Proc LCM) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.
Justification:Users can use a firewall to ensure communication inside a trust boundary, and omiserver will log all connections and associated data.

23. Spoofing of Source Data Store Configuration MOF  [State: Mitigation Implemented]  [Priority: High] 

Category:Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.
Description:Configuration MOF may be spoofed by an attacker and this may lead to incorrect data delivered to omiserver (In Proc LCM). Consider Consider using a standard authentication mechanism to identify the source data store.
Justification:A user can use HTTPS with client certificate auth if they wish for authentication.

Interaction: Response

Response interaction screenshot

24. Elevation Using Impersonation  [State: Not Applicable]  [Priority: High] 

Category:A user subject gains increased capability or privilege by taking advantage of an implementation bug.
Description:omiagent (C/Python interface) may be able to impersonate the context of Python in order to gain additional privilege.
Justification:omiagent runs as root, which cannot be given additional privilege

25. Weak Authentication Scheme  [State: Not Applicable]  [Priority: High] 

Category:Information disclosure happens when the information can be read by an unauthorized party.
Description:Custom authentication schemes are susceptible to common weaknesses such as weak credential change management, credential equivalence, easily guessable credentials, null credentials, downgrade authentication or a weak credential change management system. Consider the impact and potential mitigations for your custom authentication scheme.
Justification:The communication layer and both python and omiagent are controlled only by root, and therefore only an administrator can modify/view data.

26. Python Process Memory Tampered  [State: Not Applicable]  [Priority: High] 

Category:Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.
Description:If Python is given access to memory, such as shared memory or pointers, or is given the ability to control what omiagent (C/Python interface) executes (for example, passing back a function pointer.), then Python can tamper with the omiagent (C/Python interface). Consider if the function could work with less access to memory, such as passing data, rather than pointers. Copy in data provided, and then validate it.
Justification:Python and omiagent are both running as root.