Security by design: Difference between revisions

From HORSE - Holistic Operational Readiness Security Evaluation.
Jump to navigation Jump to search
(New page: ==Abstract== '''Secure by design''', in software engineering, means that the program in question has been designed from the ground up to be secure. Often this involves being fully fault to...)
 
Line 6: Line 6:
Generally, designs that work well do not [[Security through obscurity|rely on being secret]]. It is not mandatory, but good security usually means that everyone is allowed to know and understand the design, ''because it is secure''. If a design is insecure, it is often kept secret to "protect" its users (and designers!). Conversely, if a design is kept secret, then it may be insecure without anyone's realizing it.<br>
Generally, designs that work well do not [[Security through obscurity|rely on being secret]]. It is not mandatory, but good security usually means that everyone is allowed to know and understand the design, ''because it is secure''. If a design is insecure, it is often kept secret to "protect" its users (and designers!). Conversely, if a design is kept secret, then it may be insecure without anyone's realizing it.<br>
<br>
<br>
Also, it is very important that everything work with the least [[privilege (computer science)|privilege]] possible. A Web server that runs as the administrative user (root or admin) can have the ability to remove files and users that do not belong to itself. Thus, a flaw in that program could put the entire system at risk. On the other hand, a Web server that runs inside a virtual private server and only has the privileges for required network and file system functions cannot compromise the system it runs on unless the security around it (the "sandbox") is also flawed.<br>
Also, it is very important that everything work with the least [[privilege (computer science)|privilege]] possible. A Web server that runs as the administrative user (root or admin) can have the ability to remove files and users that do not belong to itself. Thus, a flaw in that program could put the entire system at risk. On the other hand, a Web server that runs inside a virtual private server and only has the privileges for required network and file system functions cannot compromise the system it runs on unless the security around it (the "sandbox") is also flawed.
<br>
 
To summarize: a system which is "secure by design" has been designed to make it difficult to abuse or misuse.
==See also==
*[[Computer security]]
*[[Hardening]]
*[[Secure by default]]
*[[Security through obscurity]]
*[[Software Security Assurance]]
*[[zero-day exploit]]
 
==External links==
*[http://www.tldp.org/HOWTO/Secure-Programs-HOWTO/index.html Secure Programming for Linux and Unix HOWTO]
*[http://www.faqs.org/faqs/unix-faq/programmer/secure-programming/ Secure UNIX Programming FAQ]

Revision as of 18:17, 14 June 2007

Abstract

Secure by design, in software engineering, means that the program in question has been designed from the ground up to be secure. Often this involves being fully fault tolerant. If, for instance, a user has to type his name, and that name is then used elsewhere in the computer program, care must be taken that when a user enters a blank name, the program does not break.

The key idea of "security by design" is design. Many computer systems today are what one might call "secure by accident"; they are the results of years of testing and debugging, and while they may provide a great deal of security, they typically have no way to guarantee that a new bug or exploit won't be revealed tomorrow.

Generally, designs that work well do not rely on being secret. It is not mandatory, but good security usually means that everyone is allowed to know and understand the design, because it is secure. If a design is insecure, it is often kept secret to "protect" its users (and designers!). Conversely, if a design is kept secret, then it may be insecure without anyone's realizing it.

Also, it is very important that everything work with the least privilege possible. A Web server that runs as the administrative user (root or admin) can have the ability to remove files and users that do not belong to itself. Thus, a flaw in that program could put the entire system at risk. On the other hand, a Web server that runs inside a virtual private server and only has the privileges for required network and file system functions cannot compromise the system it runs on unless the security around it (the "sandbox") is also flawed.

See also

External links