[ 
https://issues.apache.org/jira/browse/LOG4J2-3508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17538462#comment-17538462
 ] 

Rufus Buschart commented on LOG4J2-3508:
----------------------------------------

We are proposing this additional appender to be included into the log4j core, 
because we believe that it could be beneficial for other organizations as well 
to ensure cryptographically that changes on a log file can be detected (compare 
[OWASP Top Ten Proactive Controls 2018 | C9: Implement Security Logging and 
Monitoring | OWASP 
Foundation|https://owasp.org/www-project-proactive-controls/v3/en/c9-security-logging]
 --> Secure Logging Design --> "Protect log integrity. An attacker may attempt 
to tamper with the logs."). Our approach goes beyond the proposal in 
https://issues.apache.org/jira/browse/LOG4J2-2797 as checksums could be 
re-calculated by an attacker and the digitial signatures we are proposing can 
only be re-calculated if the attacker would have access to the private key as 
well.

> Add a signature appender to the log4j2 core
> -------------------------------------------
>
>                 Key: LOG4J2-3508
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3508
>             Project: Log4j 2
>          Issue Type: New Feature
>          Components: Appenders
>            Reporter: Simon Huang
>            Priority: Minor
>
> h2. Goal
> Merge our implementation of a Signature appender into the log4j2 core.
> h2. What is a signature appender?
> Hello log4j2 contributors,
> I am a working student at Siemens and my superiours were looking for a way to 
> add a signature to their logs. The solution that we came up with is an outer 
> appender that works similar to the failover appender, i.e. it adds a 
> signature and delegates the appending to another appender.
> You can see our solution at 
> [github|https://github.com/simon-hng-smns/log4j2_signature_appender/tree/main]
>  as wenn as an [example 
> implementation|https://github.com/simon-hng-smns/log4j2_signature_appender/tree/example-implementation].
> We would appreciate any and all feedback, and hope you can guide us to 
> necessary changes, in order to incorporate our appender.
> h2. How does it work?
> The SignatureAppender takes in an inner appender, which can now use the 
> {{%sign}} PatternConverter.
> {code:xml}
>     <Appenders>
>         <SignatureAppender name="signatureAppender"
>                            signatureAlgorithm="SHA256withRSA"
>                            pathToKeyStore="signatureKeyStore.p12"
>                            keyStorePassword="password"
>         >
>             <Console name="console">
>                 <PatternLayout pattern="[%sign] %m%n"/>
>             </Console>
>         </SignatureAppender>
>     </Appenders>
> {code}
> h3. Creating the signature
> The signature is created using the internal java class {{Signature}}, which 
> gets a formatted message and the last signature and signs like this 
> {code:java}
> Signature.update(message + lastSignature)
> {code}
> h3. In general the steps are the following:
>  # SignatureAppender gets LogEvent creates the formatted message.
>  # Using this formatted message and the lastSignature, a signature is created 
> which we use to create a LogEvent with the signature as a property
>  # This new LogEvent is then send to the inner appender, where it is used by 
> the SignaturePatternConverter
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to