In diesem Artikel möchten wir zeigen, wie sich mithilfe des Jira ScriptRunners eine Interoperabilität zum Reporting-Tool Dradis umsetzen lässt.

Die Software Jira wird heutzutage verstärkt auch im operativen Projektmanagement verwendet. Eines der wichtigsten Features von Jira, der Workflow bzw. das Tracking des Fortschritts von einzelnen Projekten, lässt sich auch bei Projekten für Sicherheitsanalysen anwenden. Als vereinfachtes Beispiel könnte ein solches Projekt die Phasen „Planung“, „Durchführung“ und „Abschluss“ durchlaufen. Während der Phase „Durchführung“ würden Analysten den praktischen Teil des Projekts ausführen und typischerweise auch ihre Findings dokumentieren. Ist ein Reporting-Tool im Einsatz, welches technische Interoperabilität erlaubt, kann Jira dazu angeleitet werden, Informationen zum Projekt in das Reporting-Tool zu übertragen und somit den Analysten formale Arbeit abnehmen.

Das Reporting-Tool Dradis, das wir hier vorgestellt haben, arbeitet ebenfalls projektbezogen. Es stellt außerdem eine REST-API für einen Teil seiner Funktionen bereit, sodass Projekte über die API angelegt und bearbeitet werden können. Somit kann Jira Dradis über seine REST-API ansprechen, um Projektinformationen für das Reporting zu übertragen.

Die Übertragung der Projektinformationen kann beispielsweise durchgeführt werden, sobald Analysten mit einer Sicherheitsanalyse beginnen, d.h. wenn der Jira Workflow die Phase „Durchführung“ erreicht. Dies kann mithilfe der Jira-Integration ScriptRunner implementiert werden. Mit ScriptRunner lassen sich Groovy-Scripts an verschiedenen Stellen in Jira einhängen – so auch bei Übergängen im Workflow.

Möchte man diese Automatisierung zwischen Dradis und Jira implementieren, dann kann man in den administrativen Einstellungen in Jira den Workflow-Schritt wählen, der die Ausführung des Scripts anstoßen soll und eine Script Runner Post Function erstellen:

Script Runner Post Function

Quelle: NSIDE

 

Beim Setup wird „Custom script post-function“ gewählt:

Custom script post-function

Quelle: NSIDE

Der Code für die Post Function wird in der Script-Sprache Groovy geschrieben.

Der folgende Code zeigt, wie über ein Script beispielsweise ein neues Projekt in Dradis erstellt werden kann:

Code post function

Quelle: NSIDE

Projektbezogene Daten können aus Feldern im Jira-Task, der das Projekt repräsentiert, ausgelesen werden („Projektnummer“, „Projektname“, „Kundennummer“, „Kundenname“, „Bearbeiter“ (assignee) und „Projektbeschreibung“):

Quelle: NSIDE

Diese können in Dradis z.B. in „Document Properties“ gespeichert werden.

Die Jira API, die man im Script nutzen kann, erlaubt es auch, Jira-Tasks zu bearbeiten. Beispielsweise kann man eine Referenz des eben erstellten Dradis-Projekts in die Beschreibung des Jira-Tasks speichern:

add dradis project URL to Jira description

Quelle: NSIDE

Um das Script-Debugging zu erleichtern, bietet sich ScriptRunners „Console“ an, die eine live-Ausführung von Groovy-Code ermöglicht:

ScriptRunners "Console"

Quelle: NSIDE