<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Flimtix</title>
    <description>The latest articles on DEV Community by Flimtix (@flimtix).</description>
    <link>https://dev.to/flimtix</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F836380%2F8c334998-f288-43e3-bce2-cabbc931d9f6.jpeg</url>
      <title>DEV Community: Flimtix</title>
      <link>https://dev.to/flimtix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/flimtix"/>
    <language>en</language>
    <item>
      <title>Splunk Dashboards</title>
      <dc:creator>Flimtix</dc:creator>
      <pubDate>Sat, 03 May 2025 05:14:50 +0000</pubDate>
      <link>https://dev.to/flimtix/splunk-dashboards-2jlo</link>
      <guid>https://dev.to/flimtix/splunk-dashboards-2jlo</guid>
      <description>&lt;p&gt;I created these dashboards for splunk to detect some attacks:&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache Error Log Monitoring Dashboard
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.1"&lt;/span&gt; &lt;span class="na"&gt;theme=&lt;/span&gt;&lt;span class="s"&gt;"dark"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Apache Error Log Monitoring Dashboard&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Monitors Apache error logs for potential security events and path traversal attempts&lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;fieldset&lt;/span&gt; &lt;span class="na"&gt;submitButton=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt; &lt;span class="na"&gt;autoRun=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/fieldset&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Amount Of Errors Over Time&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" 
            | eval mytime=strftime(_time,"%Y-%m-%d %H:%M")
            | stats count as error_count by mytime
            | sort -error_count
            &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;pie&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Error Activity Over Time&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" 
          | timechart span=5m count by host&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;line&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.legend.placement"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;bottom&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Path Traversal Attempts&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" "AH00126: Invalid URI" OR "/../" OR ".." OR "%2E%2E"
            | rex field=_raw "GET (?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;request_path&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^ ]+) HTTP" 
            | table _time client request_path
            | sort -_time&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Admin Page Probing&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" "admin" OR "administrator" OR "login" OR "cp" OR "controlpanel" 
          | rex field=_raw "script '(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;requested_script&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^']+)'" 
          | stats count by requested_script 
          | sort -count&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;bar&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart.stackMode"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;default&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.legend.placement"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;bottom&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Top Client IPs&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" 
          | rex field=_raw "\[client (?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;client_ip&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^\:]+)\:(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;client_port&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;\d+)\]" 
          | stats count by client_ip 
          | sort -count&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;column&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Process IDs with Errors&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" 
          | rex field=_raw "\[pid (?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;process_id&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;\d+)\]" 
          | stats count by process_id 
          | sort -count&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;pie&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Recent Critical Events&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" "Invalid URI" OR "/etc/shadow" OR "/etc/passwd" OR "../" OR "%2E%2E" OR "/.." 
          | rex field=_raw "GET (?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;request_path&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^ ]+)" 
          | rex field=_raw "\[client (?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;client_ip&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^\:]+)\:(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;client_port&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;\d+)\]" 
          | table _time client_ip request_path 
          | sort -_time&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"count"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;10&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Search for Suspicious Activity&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;token=&lt;/span&gt;&lt;span class="s"&gt;"search_term"&lt;/span&gt; &lt;span class="na"&gt;searchWhenChanged=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Search Term&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;default&amp;gt;&lt;/span&gt;shadow&lt;span class="nt"&gt;&amp;lt;/default&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/input&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;source="/var/log/apache2/error.log" sourcetype="apache_error" "$search_term$" 
          | table _time _raw 
          | sort -_time&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"count"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"drilldown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;none&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Path Traversal Attempts
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;
&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.1"&lt;/span&gt; &lt;span class="na"&gt;theme=&lt;/span&gt;&lt;span class="s"&gt;"dark"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Path Traversal Attempts&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Top Missing Scripts&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;index=main sourcetype=apache_error "not found or unable to stat" 
| rex field=_raw "script '(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;script_path&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^']+)' not found" 
| stats count by script_path 
| sort -count&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;bar&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.legend.placement"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;right&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"height"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;250&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Path Traversal Attempts&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;index=main sourcetype=apache_error "Invalid URI" 
| regex _raw="(\.\./){2,}" 
| stats count by host, source, _time 
| sort -_time&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;column&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"height"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;250&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Recent PHP Errors&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;index=main sourcetype=apache_error "php7:error" 
| rex field=_raw "script '(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;script&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;[^']+)' not found" 
| table _time, script, client, host&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"count"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;10&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Uncommon Events&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;index=main sourcetype=apache_error 
| rare _raw 
| table _time, _raw&lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"count"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;10&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  SSH Brute Force Attack Dashboard
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;dashboard&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.1"&lt;/span&gt; &lt;span class="na"&gt;theme=&lt;/span&gt;&lt;span class="s"&gt;"light"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;SSH Brute Force Attack Dashboard&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Monitor and detect SSH brute force activities in real time&lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;SSH Login Attempts Over Time&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;
            index=* sourcetype="auth"
            | search "ssh*" AND ("Failed password" OR "authentication failure" OR "Invalid user")
            | bucket span=1m _time
            | stats count as login_attempts by _time
          &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h@h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;line&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Top Attacking IPs&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;
            index=* sourcetype="auth"
            | search "ssh*" AND ("Failed password" OR "authentication failure" OR "Invalid user")
            | eval src_ip=coalesce(src_ip, source_ip, src, clientip, rhost)
            | stats count by src_ip
            | sort -count
            | head 10
          &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h@h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;bar&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Top Targeted Usernames&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;
            index=* sourcetype="auth"
            | search "ssh*" AND ("Failed password" OR "authentication failure" OR "Invalid user")
            | rex field=_raw "(?:for|user)\s+(?:invalid user\s+)?(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;user&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;\w+)"
            | stats count by user
            | sort -count
            | head 10
          &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h@h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;pie&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Success vs Failure Attempts&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;chart&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;
            index="*" sourcetype="auth" "ssh*" 
| eval status=case(
    like(_raw, "%Accepted password%"), "Success",
    like(_raw, "%Failed password%") OR like(_raw, "%authentication failure%") OR like(_raw, "%Invalid user%"), "Failure"
)
| stats count by status
          &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h@h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"charting.chart"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;pie&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/chart&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;row&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;panel&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Detailed SSH Brute Force Attempts&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;search&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;query&amp;gt;&lt;/span&gt;
            index=* sourcetype="auth"
            | search "ssh*" AND ("Failed password" OR "authentication failure" OR "Invalid user")
            | rex field=_raw "(?:for|user)\s+(?:invalid user\s+)?(?&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;user&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;\w+)"
            | eval src_ip=coalesce(src_ip, source_ip, src, clientip, rhost)
            | table _time, src_ip, user, host, _raw
          &lt;span class="nt"&gt;&amp;lt;/query&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;earliest&amp;gt;&lt;/span&gt;-24h@h&lt;span class="nt"&gt;&amp;lt;/earliest&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;latest&amp;gt;&lt;/span&gt;now&lt;span class="nt"&gt;&amp;lt;/latest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/search&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/panel&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/row&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dashboard&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>programming</category>
      <category>security</category>
    </item>
  </channel>
</rss>
