Fortinet black logo

External Systems Configuration Guide

Appendix

Appendix

CyberArk to FortiSIEM Log Converter XSL

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href='./Syslog/RFC5424Changes.xsl'/>
  <xsl:output method="text" version="1.0" encoding="UTF-8" />
  <xsl:template match="/">
  <xsl:apply-imports />
  <xsl:for-each select="syslog/audit_record">
    <xsl:text>CYBERARK: Product="</xsl:text>
      <xsl:value-of select="Product" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Version="</xsl:text>
	  <xsl:value-of select="Version" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Hostname="</xsl:text>
	  <xsl:value-of select="Hostname" />
    <xsl:text>"</xsl:text>
    <xsl:text>;MessageID="</xsl:text>
      <xsl:value-of select="MessageID" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Message="</xsl:text>
      <xsl:value-of select="Message" />
    <xsl:text>"</xsl:text>
    <xsl:choose>
      <xsl:when test="Desc!=''">
        <xsl:text>;Desc="</xsl:text>
	      <xsl:value-of select="Desc" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Action!=''">
        <xsl:text>;Action="</xsl:text>
	      <xsl:value-of select="Action" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Location!=''">
        <xsl:text>;Location="</xsl:text>
	      <xsl:value-of select="Location" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:text>;Issuer="</xsl:text>
      <xsl:value-of select="Issuer" />
    <xsl:text>"</xsl:text>
    <xsl:choose>
      <xsl:when test="Station!=''">
        <xsl:text>;Station="</xsl:text>
          <xsl:value-of select="Station" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="File!=''">
        <xsl:text>;File="</xsl:text>
          <xsl:value-of select="File" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Safe!=''">
        <xsl:text>;Safe="</xsl:text>
          <xsl:value-of select="Safe" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Category!=''">
        <xsl:text>;Category="</xsl:text>
          <xsl:value-of select="Category" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="RequestId!=''">
        <xsl:text>;RequestId="</xsl:text>
          <xsl:value-of select="RequestId" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Reason!=''">
        <xsl:text>;Reason="</xsl:text>
          <xsl:value-of select="Reason" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="SeverityCategory!=''">
        <xsl:text>;Severity="</xsl:text>
          <xsl:value-of select="Severity" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="GatewayStation!=''">
        <xsl:text>;GatewayStation="</xsl:text>
          <xsl:value-of select="GatewayStation" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="SourceUser!=''">
        <xsl:text>;SourceUser="</xsl:text>
          <xsl:value-of select="SourceUser" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="TargetUser!=''">
        <xsl:text>;TargetUser="</xsl:text>
          <xsl:value-of select="TargetUser" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="TicketID!=''">
        <xsl:text>;TicketID="</xsl:text>
          <xsl:value-of select="TicketID" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="LogonDomain!=''">
        <xsl:text>;LogonDomain="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='LogonDomain'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Address!=''">
        <xsl:text>;Address="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='Address'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="CPMStatus!=''">
        <xsl:text>;CPMStatus="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='CPMStatus'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Database!=''">
        <xsl:text>;Database="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='Database'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>	
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="DeviceType!=''">
        <xsl:text>;DeviceType="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='DeviceType'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>	
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="ExtraDetails!=''">
        <xsl:text>;ExtraDetails="</xsl:text>
          <xsl:value-of select="ExtraDetails" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    </xsl:for-each>
  <xsl:text>&#13;&#10;</xsl:text>
  </xsl:template>
</xsl:stylesheet>

Appendix

CyberArk to FortiSIEM Log Converter XSL

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href='./Syslog/RFC5424Changes.xsl'/>
  <xsl:output method="text" version="1.0" encoding="UTF-8" />
  <xsl:template match="/">
  <xsl:apply-imports />
  <xsl:for-each select="syslog/audit_record">
    <xsl:text>CYBERARK: Product="</xsl:text>
      <xsl:value-of select="Product" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Version="</xsl:text>
	  <xsl:value-of select="Version" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Hostname="</xsl:text>
	  <xsl:value-of select="Hostname" />
    <xsl:text>"</xsl:text>
    <xsl:text>;MessageID="</xsl:text>
      <xsl:value-of select="MessageID" />
    <xsl:text>"</xsl:text>
    <xsl:text>;Message="</xsl:text>
      <xsl:value-of select="Message" />
    <xsl:text>"</xsl:text>
    <xsl:choose>
      <xsl:when test="Desc!=''">
        <xsl:text>;Desc="</xsl:text>
	      <xsl:value-of select="Desc" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Action!=''">
        <xsl:text>;Action="</xsl:text>
	      <xsl:value-of select="Action" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Location!=''">
        <xsl:text>;Location="</xsl:text>
	      <xsl:value-of select="Location" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:text>;Issuer="</xsl:text>
      <xsl:value-of select="Issuer" />
    <xsl:text>"</xsl:text>
    <xsl:choose>
      <xsl:when test="Station!=''">
        <xsl:text>;Station="</xsl:text>
          <xsl:value-of select="Station" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="File!=''">
        <xsl:text>;File="</xsl:text>
          <xsl:value-of select="File" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Safe!=''">
        <xsl:text>;Safe="</xsl:text>
          <xsl:value-of select="Safe" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Category!=''">
        <xsl:text>;Category="</xsl:text>
          <xsl:value-of select="Category" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="RequestId!=''">
        <xsl:text>;RequestId="</xsl:text>
          <xsl:value-of select="RequestId" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Reason!=''">
        <xsl:text>;Reason="</xsl:text>
          <xsl:value-of select="Reason" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="SeverityCategory!=''">
        <xsl:text>;Severity="</xsl:text>
          <xsl:value-of select="Severity" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="GatewayStation!=''">
        <xsl:text>;GatewayStation="</xsl:text>
          <xsl:value-of select="GatewayStation" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="SourceUser!=''">
        <xsl:text>;SourceUser="</xsl:text>
          <xsl:value-of select="SourceUser" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="TargetUser!=''">
        <xsl:text>;TargetUser="</xsl:text>
          <xsl:value-of select="TargetUser" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="TicketID!=''">
        <xsl:text>;TicketID="</xsl:text>
          <xsl:value-of select="TicketID" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="LogonDomain!=''">
        <xsl:text>;LogonDomain="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='LogonDomain'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Address!=''">
        <xsl:text>;Address="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='Address'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="CPMStatus!=''">
        <xsl:text>;CPMStatus="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='CPMStatus'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="Database!=''">
        <xsl:text>;Database="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='Database'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>	
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="DeviceType!=''">
        <xsl:text>;DeviceType="</xsl:text>
          <xsl:for-each select="CAProperties/CAProperty">
            <xsl:if test="@Name='DeviceType'">
              <xsl:value-of select="@Value" />
            </xsl:if>
          </xsl:for-each>
        <xsl:text>"</xsl:text>	
      </xsl:when>
    </xsl:choose>
    <xsl:choose>
      <xsl:when test="ExtraDetails!=''">
        <xsl:text>;ExtraDetails="</xsl:text>
          <xsl:value-of select="ExtraDetails" />
        <xsl:text>"</xsl:text>
      </xsl:when>
    </xsl:choose>
    </xsl:for-each>
  <xsl:text>&#13;&#10;</xsl:text>
  </xsl:template>
</xsl:stylesheet>