Application Security Logging and Monitoring The Next Frontier OWASP Peter Freiberg Principal Consultant Shelde pfreiberg@shelde.com +61 3 9650 7852 April 2012 Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org Application Security Logging and Monitoring The Next Frontier This talk will discuss: • The four key challenges for application security logging and monitoring • Common issues in current logging practices • Current resources (or lack of) available to developers for security logging • Tools for correlating and alerting from log sources • Logging in multi-tiered architectures and disparate systems • Which logging capabilities can be driven by application security and what types of logging might be required by audit and the business OWASP 2 Key challenges for Application Security Logging 1. 2. 3. 4. Lack Lack Lack Lack of of of of Security Logging Frameworks guidance on what and how to log requirements for security logging correlation and alerting capabilities OWASP 3 Where is the real threat? According to the 2010 Fraud and Misconduct Survey by KPMG Australia • 65% of Fraud was from ‘Inside Jobs’ • This represented 98% of the total fraud loss. Do you think an insider used SQL injection or XSS to commit fraud? (Probably not) Source: https://www.kpmg.com/AU/en/IssuesAndInsights/ArticlesPublications/Fraud-Survey/Documents/Fraud-andMisconduct-Survey-2010.pdf OWASP 4 Key challenges for Application Security Logging Many applications have poor security logs (and sometimes have none at all) Without good security event information it is difficult to: • detect attacks • detect compromised user account • detect fraud • detect abuse of privileges and • Respond to events OWASP 5 Challenge #1 Lack of Security Logging Frameworks OWASP 6 Java Common Logging Severity Levels Where is the security log level? Log Level Description fatal Severe errors that cause premature termination. Expect these to be immediately visible on a status console. error Other runtime errors or unexpected conditions. Expect these to be immediately visible on a status console. warn Use of deprecated APIs, poor use of API, 'almost' errors, other runtime situations that are undesirable or unexpected, but not necessarily "wrong". Expect these to be immediately visible on a status console. info Interesting runtime events (startup/shutdown). Expect these to be immediately visible on a console, so be conservative and keep to a minimum debug detailed information on the flow through the system. Expect these to be written to logs only. trace more detailed information. Expect these to be written to logs only. Source: http://en.wikipedia.org/wiki/Java_logging_framework OWASP 7 Current Logging frameworks are focused on identifying where a technical fault has occurred. OWASP 8 Challenges for detail in logging functions Example given to developers public class Foo { private Log log = LogFactory.getLog(Foo.class);public void foo() { ... try { }… } catch (IllegalStateException e) log.error("Something bad happened to " + name, e); } Source: http://commons.apache.org/logging/apidocs/org/a pache/commons/logging/package-summary.html Log Event Data should include the following: 1. Time stamp from a trusted system component 2. Severity rating for each event 3. Tagging of security relevant events, if they are mixed with other log entries 4. Identity of the account/user that caused the event 5. Source IP address associated with the request 6. Event outcome (success or failure) 7. Description of the event Source: https://www.owasp.org/index.php/OWASP_Secure_Coding_ Practices_-_Quick_Reference_Guide OWASP 9 Security Logging needs to be more tightly coupled with the user performing the action (instead of the object class where the error occurred) OWASP 10 How to add a security log level in Framework X OWASP guide on how to add a security log level in the Java log4j framework. https://www.owasp.org/index.php/How_to_add_a_security_log_level_in_log4j However, there are lots of logging frameworks. OWASP 11 There are many logging frameworks Java (commonly used) .Net (commonly used) • Commons Logging • Microsoft Enterprise Library • Log4j • Log4net • Logback • Logger.NET • SLF4J • NLog Other frameworks Other frameworks Craftsman Spy, Houston, jLo, Jmyra, JTraceDump, Just4log, Limpid Log, Logging Toolkit, Monolog, ObjectGuy Framework, Protomatter, RP Logging, Simple Log, SmartInspect,TraceTool C# Logger, CommonData, CSharp Dot Net Logger, DebugWriter, LogThis, NetTrace, Nspring, ObjectGuy Framework, SmartInspect, TcpTrace, Traceract, TraceRT.NET, Traffic Monitor Source: http://www.java-logging.com/ Source: http://www.dotnetlogging.com/ OWASP 12 Other considerations for Logging Frameworks Data Validation (Who does the escaping – the developer or the framework?) • XSS in web based logging interfaces • Log Forging (Can an attacker guess the log format and alter it using carriage return injection?) Signal to noise ratio • Separating Application Logs and Security logs • Maybe the noise is the signal? (Is 40,000 exceptions and stack traces an attack?) Access control of security logs • Who has access to view or modify the security logs? (Are they just text files? Or database rows? Or centrally stored?) OWASP 13 Other considerations for Logging Frameworks Storage growth requirements (e.g. What volume of log data is generated per day or month? 1 MB, 100MB, 1GB?) Data retention periods (e.g. How long do you need logs for? 3 months? 3 years?) Regulatory restrictions on centralised logging solutions (e.g. It might not be allowed to centralise application logs outside of a country’s borders) OWASP 14 Challenge #2 Lack of guidance on what and how to log OWASP 15 What detail needs to be logged? What developers have log.error("Something bad happened to " + name, e); What security people want • Time stamp • Severity rating for each event • Identity of the account/user that caused the event • Source IP address associated with the request • User context across application tiers (internal webservice, MQ, Database) • Event outcome (success or failure) It would be nice if we had something like: Log.security( UserContext, // containing username, ip address, browser etc ApplicationEvents.DataValidationFailure, e); Free form text for log messages makes it harder to identify and correlate events OWASP 16 The level of details for logging Log Event Data should include the following: 1. Time stamp from a trusted system component 2. Severity rating for each event 3. Tagging of security relevant events, if they are mixed with other log entries 4. Identity of the account/user that caused the event 5. Source IP address associated with the request 6. Event outcome (success or failure) 7. Description of the event Source: https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-_Quick_Reference_Guide Challenges: • What event types are there (technical and logical) and are they defined for the application and the organisation? • What rating do you give events? • Do you have the details of the requesting user? (username, IP address, etc) • Are the logs in a format that can be easily consumed by logging and correlation tools OWASP 17 High level security logging requirements • Ensure log entries that include un-trusted data will not execute as code in the intended log viewing interface or software • Restrict access to logs to only authorized individuals • Utilize a master routine for all logging operations • Do not store sensitive information in logs, including unnecessary system details, session identifiers or passwords • Ensure that a mechanism exists to conduct log analysis Source: https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-_Quick_Reference_Guide OWASP 18 High level security logging events • Log all input validation failures • Log all authentication attempts, especially failures • Log all access control failures • Log all apparent tampering events, including unexpected changes to state data • Log attempts to connect with invalid or expired session tokens • Log all system exceptions • Log all administrative functions, including changes to the security configuration settings • Log all backend TLS connection failures • Log cryptographic module failures Challenge with this guidance: Mostly technical nature Source: https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-_Quick_Reference_Guide OWASP 19 Starting Point - OWASP AppSensor Project Overview The AppSensor project defines a conceptual framework and methodology that offers prescriptive guidance to implement intrusion detection and automated response into an existing application. Current efforts are underway to create the AppSensor tool which can be utilized by any existing application interested in adding detection and response capabilities. Detection AppSensor defines over 50 different detection points which can be used to identify a malicious attacker. Response AppSensor provides guidance on how to respond once a malicious attacker has been identified. Possible actions include: logging out the user, locking the account or notifying an administrator. More than a dozen response actions are described. Source: https://www.owasp.org/index.php/OWASP_AppSensor_Project OWASP 20 What to log? What level of detail is required to identify a user and reliably trace back to an unauthorised malicious action? Where are they? (is it a green screen internal application? An internet facing web application, a corporate desktop application?) What technical details can be identified and logged? (e.g. XSS, Change of IP address mid-session, data validation issues etc.) What business level detail must be logged? (e.g. viewing sensitive data, who did what for segregation of duties, etc.) OWASP 21 Challenge #3 Lack of requirements for security logging OWASP 22 Types of Business Events Logical, Behavioural and Compliance • Privileged User Access • Process Violations • Segregation of Duties bypass • Bulk Downloads • Privacy Violations Influencers: • Business Owners • Internal Audit • Regulatory Bodies • Operational Risk • Fraud Teams • Security Consultants (PCI-DSS, SOX, Government, etc.) OWASP 23 Challenges for Security Logging requirements Communication and Education • Does the fraud team talk to the business, security and developers? • What incidents have occured in the past? Could these have been avoided? • How can requirements be defined that can be technically implemented and tested? • How many applications and systems need to log to gain value by reducing risk and fraud? Technology: • What will be used to monitor and correlate events? Business: • Who pays for the monitoring technology? (Is it a security initiative or business solution?) OWASP 24 Challenge #4 Lack of correlation and alerting capabilities OWASP 25 Correlation and alerting capabilities If an business application has made it this far, its got: • Some type Security Logging Framework • Some list of security event types (including technical, logical and process) • Business requirements for logging So, we’ve got security event logs, what do we do with them? OWASP 26 Correlation Technology Security Information and Event Management (SIEM) technology provides: • Security Information Management (SIM) – log management and compliance reporting • Security Event Management (SEM) – real-time monitoring and incident management for security-related events from networks, security devices, systems and application SIEM Technology is typically deployed to support three primary use cases: • Compliance – Log management and compliance reporting • Threat Management – real-time monitoring of user activity, data access and application activity and incident management • A deployment that provides a mix of compliance and threat management capabilities Source: Gartner Magic Quadrant for SIEM. http://www.arcsight.com/collateral/whitepapers/Gartner_Magic_Quadrant_2011.pdf OWASP 27 Event correlation requires a broader view OWASP 28 Event correlation requires a broader view Often business processes rely on many applications and systems. To see the enterprise view or end to end process correlation needs to occur outside. Enterprise Event Correlation & Response Centralised Log Aggregation & Management Application 1 Meaningful Logs Application 2 Meaningful Logs Application 3 Meaningful Logs Application 4 Meaningful Logs … Application N Meaningful Logs OWASP 29 Where should correlation occur? Enterprises typically have more than one interface for a given application. For example: • Web application for customers • Green screen Mainframe application for back end administration • Desktop GUI for Help Desk staff Abuse case or threat scenario: • An administrator using the green screen application changes a help desk staff password who is on holidays • then logs on as a help desk operator and changes a customers password • then logs on as the customer from an internet café Can you detect this scenario in any single application? OWASP 30 Solving these challenges Technology challenges 1. Lack of Security Logging Frameworks 2. Lack of guidance on what and how to log Business challenges 1. Lack of requirements for security logging 2. Lack of correlation and alerting capabilities OWASP 31 Solving these challenges Where to start? Focus on high risks and incidents What risk or impact are you minimising: • Reduced internal fraud • Compromised user accounts (leading to external fraud) • Process Violations • Compliance with regulatory bodies • External compromise OWASP 32 Solving these challenges Technology challenge 1. Security Logging Frameworks Possible solutions: • OWASP Project providing security in common Logging Frameworks • Security professionals working with the producers of software (E.g. Oracle Java, Microsoft, PHP) • Create a reference implementation OWASP 33 Solving these challenges Technology challenge 2. Guidance on what and how to log Possible solutions: • Logging frameworks that support security • Defined event types with example implementations and outputs • Building and sharing experience through use of centralised logging, monitoring and correlation tools (Supporting projects like AppSensor which are defining event types and responses will help build industry knowledge) (Experience in the trenches of real applications and business will help drive what works and what doesn’t) • Event Standards like Common Event Expression (CEE) (see http://cee.mitre.org) OWASP 34 Solving these challenges Business challenge 3. Requirements for security logging Possible solutions: • Make it easy for the business – defined logging events allow for easier communication and implementation • Better Education and Consulting – How will this help the business? • Break down corporate silos • Be Realistic – What value will security logging and monitoring provide and what risks can this help mitigate (Understand what Fraud and Incidence response is occurring, what audit requirements exists and socialise with security and development for implementation) OWASP 35 Solving these challenges Business challenge 4. Correlation and alerting capabilities Possible solutions: • Look for Compliance drivers such as SOX, PCI-DSS • Adopt security logging standards for applications • Be realistic – what value will security logging and monitoring provide • Common event types and logging formats (Spending on monitoring and correlation infrastructure can’t always be justified, possibly can piggy back off other initiatives) (Having key applications log security events is better than waiting for the full enterprise solution.) OWASP 36 Application Security Logging and Monitoring The Next Frontier Summary: • The four key challenges for application security logging and monitoring • Common issues in current logging practices • Current resources (or lack of) available to developers for security logging • Tools for correlating and alerting from log sources • Logging in multi-tiered architectures and disparate systems • Which logging capabilities can be driven by application security and what types of logging might be required by audit and the business OWASP 37 Questions? Application Security Logging and Monitoring The Next Frontier Peter Freiberg Principal Consultant Shelde pfreiberg@shelde.com +61 3 9650 7852 OWASP 38