Wednesday, December 22, 2010
Tuesday, December 14, 2010
Tuesday, October 19, 2010
Friday, October 15, 2010
Security must be based on a solid (security) architecture
Wednesday, July 28, 2010
Robustness and resilience of large distributed applications and networks
In the area of clouds and large distributed automation and control networks, we need to deal with a vast number of (growing) endpoints integrated in the (dynamic) system. It is probably a misconception to assume that all these peers could be protected comprehensively at any time. Hence, it must be an important objective that the protection of the entire system must not depend on the security status (pertaining integrity, confidentiality and availability) of each and every endpoint. In other words, a compromised node must not affect or infect the stability and protection of the entire distributed system. This shall be adressed in the system and security architecture and needs to be defined (and tested !) as a crucial requirement. A (layered) defense in depth, as a general design principle, can help to meet this requirement. In addition, intrusion detection, prevention and a quick isolation of the compromised node can help to minimize the overall impact. Plan for failure is the underlying principle to implement this efficiently. Beside these classical security precautions and controls, a robust design as well as adequate redandancy mechanisms for critical subsystems can support the system stability.
Tuesday, June 22, 2010
Security in large distributed networks (aka Smart Grids)
Wednesday, June 02, 2010
Test your security!
- Document all functional and non-functional requirements and develop use case scenarios base on it (a picture helps a lot !)
- Invite security professionals for support and guidance
- Conduct a comprehensive threat assessment based on a well documented system architecture and (preferable) a security architecture (invite all relevant stakeholders: product management, architects, developer, test folks, …)
- The architecture must support flexible patch and update management
- Review the resulting design, at least the security relevant components
- Check on all 3rd party components in detail to identify known weaknesses; if so, look for alternatives
- Provide and teach (!) secure coding and secure design principles to the team
- Make sure that the team has enough time to learn and to apply such rules and principles (project management must plan accordingly!)
- Test all functional security requirements accoring to your test specification (use well documented requirements and use case scenarios to specify test cases)
- Use tools to check your code to identify flaws and derivations from your guidelines mentioned above
- Apply code review if tools are not sufficient
- Use a realistic test environment (set up) to run a kinda black box test based on tools (fuzzer, etc.)
- Test especially all user interface (focus on web based interfaces) as well as communication stacks
- Document all testing results and establish a rating based on criticality
- Communicate and share your experience
Friday, April 23, 2010
Divide and Protect
Divide and protect is one option to secure large distributed systems. The concept of Divide and Protect is about the compartmentation of a system into functional blocks with identical requirements in terms of security and privacy. It supports a defense in depth strategy, and it helps to handle the complexity of large installations. The compartmentation of a given system leads to security zones with different levels of trust that should be outlined in a digram. Based on such diagram (red = not trusted, .., green = trusted), the system architecture can be developed in a comprehensive manner. This is especially true for the communication architecture and the selection of appropriate protocols. By using this approach, non-functional requirements can be addressed in the early beginning of the product development process which means no change (requests) later on.