Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-41516

Groovy script console actions should be logged

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • 2.427

      The Groovy script console (/script) does not log actions to the Jenkins log. The actions do not appear to be logged to the system anywhere. This allows an attacker or inside actor to perform actions against a Jenkins server via Groovy script console with no trail of what was done. In our case we had a misconfigured test Jenkins server which allowed open access to /script. Someone injected a bitcoin mining script via the Groovy script console which we found as a running process on the system. There was no log of this event in Jenkins. Now the misconfiguration of our test server was a big mistake but not having logs as a way to audit the specific actions that were performed is a big mistake on the part of Jenkins core which can amplify a user's mistake.

          [JENKINS-41516] Groovy script console actions should be logged

          R. Tyler Croy added a comment -

          the WEBSITE project pertains to documentation and jenkins.io, please use the JENKINS project in JIRA for tickets such as this.

          R. Tyler Croy added a comment - the WEBSITE project pertains to documentation and jenkins.io, please use the JENKINS project in JIRA for tickets such as this.

          Sorry, I don't know how that was set. When I tried to change it after the fact I didn't see a way to edit. Thanks for fixing.

          Adam Ochonicki added a comment - Sorry, I don't know how that was set. When I tried to change it after the fact I didn't see a way to edit. Thanks for fixing.

          Daniel Beck added a comment -

          Now the misconfiguration of our test server was a big mistake but not having logs as a way to audit the specific actions that were performed is a big mistake on the part of Jenkins core which can amplify a user's mistake.

          While it would be a useful improvement to log script console messages, this would not fix a lot in your situation: Script console access allows an attacker to (mostly) trivially wipe all traces of their attack: It's not just "run any program", but, as it runs inside the Jenkins process, can just wipe all logging related to these actions (including making private fields accessible etc. to achieve this).

          Unless there's an external append-only log of sorts configured, no improvements here are likely to substantially improve the situation. And once you need an admin to take action to protect themselves, it's easier to secure Jenkins properly.

          Daniel Beck added a comment - Now the misconfiguration of our test server was a big mistake but not having logs as a way to audit the specific actions that were performed is a big mistake on the part of Jenkins core which can amplify a user's mistake. While it would be a useful improvement to log script console messages, this would not fix a lot in your situation: Script console access allows an attacker to (mostly) trivially wipe all traces of their attack: It's not just "run any program", but, as it runs inside the Jenkins process, can just wipe all logging related to these actions (including making private fields accessible etc. to achieve this). Unless there's an external append-only log of sorts configured, no improvements here are likely to substantially improve the situation. And once you need an admin to take action to protect themselves, it's easier to secure Jenkins properly.

          With a proper external log shipping setup, log wiping becomes less of a concern. Yes, securing Jenkins is very important but that is not the only reason to implement logging on script console. My particular case of our unsecured test Jenkins instance was simply to illustrate one of many legitimate cases where logging the console script actions is important. Not just to investigate malicious activity but troubleshooting Jenkins problems or auditing for internal control purposes.

          Adam Ochonicki added a comment - With a proper external log shipping setup, log wiping becomes less of a concern. Yes, securing Jenkins is very important but that is not the only reason to implement logging on script console. My particular case of our unsecured test Jenkins instance was simply to illustrate one of many legitimate cases where logging the console script actions is important. Not just to investigate malicious activity but troubleshooting Jenkins problems or auditing for internal control purposes.

          Basil Crow added a comment -

          Causes JENKINS-72181.

          Basil Crow added a comment - Causes JENKINS-72181 .

            danielbeck Daniel Beck
            fromonesrc Adam Ochonicki
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: