When working on my companies' flagship product Deep Security, every new feature requires significant planning. Unlike consumer grade security software or non-commercial packages (like our own open source product OSSEC), each new addition has a regiment of requirements to make it enterprise grade. For every feature, and indeed every line of code we add, we need to consider audit-ability, access control, API support, scalability, internationalization, and dozens of other issues unique to the enterprise environment. I have broken this down to 10 core 'abilities' that are required of enterprise quality security software in addition to the security services they provide. While this list was developed in relation to our server defense product, I think the tenets apply to all enterprise security products.
Deployability
In order to weave into the fabric of an enterprise, a security solution needs to be easily deployable. Good enterprise security software should minimize prerequisites, require the least amount of infrastructure or infrastructure change, and support a wide range of platforms (when applicable). Solutions requiring week-long installations, three or more tiers of components or specialized hardware will only deter trials and wide spread roll-out.
Configurability
The initial capability to tune a system to each environment is critical. Out-of-the-box policies help but having the tools, documentation and content to create the right policy for the systems being protected is critical. Depth of configurability is important as well, but not at the expense of usability. It's best to follow the policy of "Make the common easy, and the complex possible".
Tractability
Related to configurability, tractability ensures that the ongoing day to day management of the software is as efficient as possible. Time is money and the administrators of the system need to be able to complete routine maintenance, like content updates and policy changes, in the most expeditious way possible. Audit-ability is an important part of tractability, letting multiple administrators rapidly make changes that can be corrected and understood when undesirable outcomes ensue. Automation is another key part of tractability. Where possible, automation of processes like updates or discovery ensures that timely protection can be provided. If the system is easily managed and governed it reduces the overhead, both real and perceived, making it a daily part of security operations rather than a piece of shelf-ware.
Visibility
Notifications, reporting of events, is an essential part of any compensating control. Notifications serve to alert analysts of areas requiring immediate attention, while the reporting should provide key metrics and visualizations to convey the big picture as well as the areas that are most important. If the analyst needs to dig deeper, access to the raw logs with appropriate tools is key to fully understand a given incident. Another important part of visibility is having measurable results that the analyst can provide to the CISO, and they in turn to the other executives. Raw numbers alone are not enough, a system has to demonstrate its value in measurable results through quality metrics.
Usability
Despite the complexity of an enterprise-grade security product, it's important that usability not be overlooked. The design of the interface can drastically impact the performance of the user and when dealing with tens of thousands of nodes, events, etc. it's important that every operation, mouse click and keyboard stroke be streamlined. The use of relevant models that users already understand should be preferred over new, possibly foreign interfaces that require documentation to learn.
Defensibility
Enterprise security products have the dual responsibility of providing security services, while themselves being secure. They need to ensure they have a strong authentication, role-based access control, secure intra-node communication, integrity on the events and much more. When security is deployed as a host-based control, it must be able to withstand attacks from malware trying to disable it or tampering with the audit to cover it's tracks. Open management ports and consoles need to be carefully guarded and the operating systems and datastores fully hardened.
Availability
Enterprise-grade compensation controls need to have layers of resiliency to ensure they continue to be effective even under extreme conditions. Stability is very important for solutions running under high load 24/7. For management consoles, the ability to fail-over to warm standbys or have redundant systems is important in the case of hardware failure. No single point should be able to affect the overall security posture of the solution. The compensating controls being provided by the solution need to perform under all environments including adverse conditions like DoS attacks, low memory, irregular content, brute force attempts, etc.
Scalability
Regardless of the type of system (appliance, virtual appliance, host-based), scalability and performance is key. No matter of the type of data being processed or the number of nodes, the system needs a cost effective way to scale. If the answer to scalability is deploying more appliances or management consoles without a central point of configuration and monitoring, the costs and complexity quickly escalate.
Affordability
The software itself is only part of the overall cost of a security product. Other factors such as complexity of deployment, hours of management required, computing resources and professional services have to be factored in. Focusing on the above abilities can help reduce these costs significantly. Configurability, Tractability, Visibility, and Usability help to limit the number of management hours required to deploy, configure, and keep on top of the system's output. Efficient designs for Scalability and Availability help reduce computing resources.
Extensibility
No enterprise security product is an island of its own. It's part of a fabric of compensating controls that need to be able to work with other system. Every enterprise security product should have a library of import/export formats, support for push notifications and pull-based APIs. This includes standards such as Syslog, SNMP, Webservices (both SOAP and REST), SMTP and others depending on the type of product. While this adds a non-trivial amount of overhead to development, it also adds opportunity for working with complimentary systems (SI/EMs, Vulnerability Scanners, Patch Management, etc.) and the ability to quickly roll out integrations with non-security products in the enterprise fabric (EMS, Change Control, Tickets, etc).