How to Perform a Security Audit - Part 2
- Technical Architecture Requirements
- Web Server Configuration
- Software Development
- Virus-Scanning Software
- Browser Configuration
- General Security Information
This article looks at the technical aspects involved in a security audit of IT systems, particularly those related to e-business systems. The previous article dealt with the business issues involved.
Technical Architecture Requirements
The auditor must ensure that the technical architecture can support the level of security required.
For example, very different security requirements exist for a technical architecture to run an intranet than for one that runs an Internet Web site.
An intranet technical architecture is designed to allow access to internal data and systems only to internal users (usually employees). In such a scenario, a single firewall or proxy server might provide a gateway through which all employees can access the Internet, but no one on the Internet can gain access to internal systems. (This firewall may also restrict the types of content that can be brought back from the Internet by internal userstypically filtering ActiveX controls, downloadable executable files, or sex-related content.) Any mobile employees dialing into the intranet will typically use a VPN mechanism to gain access. It is important for the auditor to check all routes in and out of the intranet to ensure that only authorized users can gain access.
A technical architecture required to support an extranet scenario might employ a DMZ (demilitarized zone) consisting of an internal firewall that provides access to internal systems and data only to internal users (employees), and an external firewall that allows access to certain systems and data to internal users and certain identified external users (usually business partnersfor example, Sainsbury's allows key suppliers such as Nestle and Procter and Gamble into its extranet). Intranet users may be logged on transparently to extranet systems, and extranet firewalls may be set up to provide access in this way using IP addresses to identify authorized users (although "spoofing" means that this method is not foolproof).
It is important to check that there are no "back doors" from the extranet into the intranet through which a determined hacker could access internal systems. One of the most common back doors in this scenario is open to the hacker because FTP has not been disabled on the extranet Web server, and the hacker can use FTP to gain access to the intranet system.
Internet-based sites (sites housed at an ISP or at a location where no firewall is used to prevent access) are often overlooked during security audits because they are not housed internally, but they can be the most vulnerable systems because anyone can access them (depending upon the information and data stored within them). Even if there is no restriction on who can or cannot use the Internet site, the site may store personal (or even personalized) information (such as name and address, and credit card information) that must be protected, not only to maintain good customer relationships but also to ensure conformance with data protection legislation.
All three of these types of architectures may require authentication/security controls to be implemented at a number of levels of the architecture. Such measures can be implemented at the network level using firewalls, proxy servers, VPNs, and so on. At the session level, SSL or SET (see http://developer.netscape.com/tech/security/ssl/howitworks.html for information on how the Secure Sockets Layer protocol works) may be used to encrypt all data passing to and from the Web server. At the database level, it is possible to restrict access to individual database servers, databases, tables, columns, rows, views, and stored procedures using database security to users within certain groups or to individual users. It is possible to use database or operating system authentication to identify database users in many cases (for example, using SQL Server). At the operating system level, it is possible to restrict access to individual files, directories, and actions upon files (such as read, write, or execute). At the Web server software level, it is possible to further restrict users and groups when accessing individual Web pages, virtual directories, scripting facilities, and so on.
One of the problems with so many security levels is the inconvenience to the authorized users of having so many levels of security switched on. A compromise must be reached between the amount of inconvenience to the user that is acceptable and the extent to which security is necessary. When data/information is not very sensitive, it may be appropriate to use a single username and password as authentication to identify the user to all systems within a company's extranet, for example. However, when such systems are very sensitive, it is likely that a very different set of usernames and passwords will exist for each one of the extranet systems.
It is important that a security auditor know the implications of using these different methods of security control and ensure that they are being used appropriately. One of the big criticisms of the Microsoft NT/IIS Web server combination is that security possibilities (designed to allow any combination of these security control types to be used) are so complex that many do not bother to use them.
It is also important for the security auditor to recognize the impact upon security of the way the Internet operates. For example, it is often difficult to predict load for a Web site because anyone anywhere in the world theoretically has access to that site at any time. Tales abound in newspapers of sites that collapsed under the strain after a TV show published the URL or an unexpected event brought a surge in visitors (for example, the death of Princess Diana brought down a number of news and florists' sites). Sometimes sites are brought down by denial-of-service attacks also.
The auditor must check that the site's data integrity will remain intact if the site is brought down for any reason. This involves examining how transactions are structured within the database to ensure that when partial transactions exist, either they are rolled back if they lead to inconsistencies or the user has a way of completing the transaction when the site reappears later. For very sensitive transactions, this may require Message Queuing or other transaction-guarantee mechanisms.
It is also sensible within an audit to suggest techniques that could help prevent the site being brought down in this way, such as by careful capacity planning or using redundant hardware. For example, RAID technology can be used to ensure that a disk failure does not bring down the Web server.
Load balancing is another consideration. This may involve a number of Web servers working together and sharing load, or it may simply involve partitioning data into separate databases or database servers, depending upon where the bottleneck is perceived to be. Depending upon the sensitivity of the data, it may make sense anyhow to partition the data in this way so that different business partners are further prevented from accessing information pertaining to their competitors, or so that customers are further prevented from accessing information that only employees should have access to.
For instances in which the site is brought down, it may be prudent for the auditor to suggest improvements to the backup/archiving strategy employed and to investigate more fully the disaster recovery plan.