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

ASF GitHub Bot commented on METRON-686:
---------------------------------------

Github user nickwallen commented on the issue:

    https://github.com/apache/incubator-metron/pull/438
  
    > if you look at the JSONMapParser, Casey and I implemented a flattener...
    
    @ottobackwards Thanks for pointing that out.  If we end up going with 
option 2, I will try and reuse that flattener. 
    
     > I am more confused about there being non flattened things going through 
actually.
    
    Even if I use a parser that generates only flattened data, I could create 
an enrichment (like using `GEO_GET`) that appends non-flat data to a message.  
Thus we have non-flat data coursing through the veins of Metron. ;)
    
    I think the original idea of flattening data was because one of our 
Indexers could not handle non-flat, complex data types.  At the time, we just 
decided, well don't create any non-flat data.  
    
    But now, since we have a completely 'programmable' system, I don't think it 
is safe to assume that the data will always be non-flat.  A user could create 
their own Stellar function to use during enrichment.  Should we force on them 
the burden of flattening the data?
    
    It makes way more sense in my mind, to make the indexer transform the data 
however it needs to , to correctly index the data.  If the current issue is 
with the Solr Indexer, then we should fix that to flatten any data that it 
needs to.  There would be one touch point to address this issue rather than 
many.
    



> Record Rule Set that Fired During Threat Triage
> -----------------------------------------------
>
>                 Key: METRON-686
>                 URL: https://issues.apache.org/jira/browse/METRON-686
>             Project: Metron
>          Issue Type: Improvement
>            Reporter: Nick Allen
>            Assignee: Nick Allen
>
> h3. Problem
> There is little transparency into the Threat Triage process itself.  When 
> Threat Triage runs, all I get is a score.  I don't know how that score was 
> arrived at, which rules were triggered, and the specific values that caused a 
> rule to trigger.  
> More specifically, there is no way to generate a message that looks like "The 
> host 'powned.svr.bank.com' has '230' inbound flows, exceeding the threshold 
> of '202'".  This makes it difficult for an analyst to action the alert.
> h3. Proposed Solution
> To improve the transparency of the Threat Triage process, I am proposing 
> these enhancements.
> (1) Threat Triage should attach to each message all of the rules that fired 
> in addition to the total calculated threat triage score.
> (2) Threat Triage should allow a custom message to be generated for each 
> rule.  The custom message would allow for some form of string interpolation 
> so that I can add specific values from each message to the generated alert.  
> We could allow this in one or both of the new fields that Casey just added, 
> name and comment.
> (3) The specific method of string interpolation will be implemented under a 
> separate issue.
> h3. Example
> (1) In this example, we have a telemetry message with a field called 'value' 
> that we need to monitor.  In Enrichment, I calculate some sort of value 
> threshold, over which an alert should be generated.
> (2) In Threat Triage, I use the calculated value threshold to alert on any 
> message that has a value exceeding this threshold.  
> (3) By leveraging a new field called 'reason', I can embed values from the 
> message, like the hostname, value, and value threshold, into the alert 
> produced by Threat Triage.  
> {code}
>     "triageConfig" : {
>       "riskLevelRules" : [ {
>         "name" : "Abnormal DNS Port",
>         "rule" : "source.type == 'bro' and protocol == 'dns' and ip_dst_port 
> != 53",
>         "score" : 10.0,
>         "reason" : "FORMAT('Abnormal DNS Port: expected: 53, found: %s:%d', 
> ip_dst_addr, ip_dst_port)"
>       } ],
>       "aggregator" : "MAX",
>       "aggregationConfig" : { }
>     }
> {code}
> (4) The Threat Triage process today would add only the total calculated score.
> {code}
> "threat.triage.level": 10.0
> {code}
> With this proposal, Threat Triage would add the following to the message.  
> {code}
> "threat.triage.level":{
>    "score":10.0,
>    "rules":[
>       { 
>          "name":"Abnormal DNS Port",
>          "comment":null
>          "score":10.0,
>          "reason":"Abnormal DNS Port: expected: 53, found: 224.0.0.251:5353",
>       }
>    ]
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to