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

Otto Fowler commented on METRON-984:
------------------------------------

"In this scenario, DECODE() would attempt to decode field as BASE16, but if it 
is not encoded as BASE16, it attempts BASE64, and finally if it is again not 
encoded as BASE64 it soft fails by adding a field to the message indicating the 
failed decode and passing it on (i.e. the field contains a character not 
allowed in BASE64 encoding). An alternative would be hardfail, where it drops 
the message into the error topology."

I am not sure about this part.  I am not sure that we can tell 'if it fails'.  
Even if we _can_ check if encoded (type ), that is redundant with IS_ENCODED.

AS a start, minimum viable I propose:

IS_ENCODED(X)  for each type where it is possible to detect
DECODE(X) for some number of types ( even if we can't detect ).

We can handle the 'chain attempts' after we get a handle on this.







> Create Stellar Decoding Functions
> ---------------------------------
>
>                 Key: METRON-984
>                 URL: https://issues.apache.org/jira/browse/METRON-984
>             Project: Metron
>          Issue Type: Improvement
>            Reporter: Jon Zeolla
>            Assignee: Otto Fowler
>
> It is rather commonplace for malicious actors to obfuscate exploits or data 
> transfers using encoding.  In order to identify and prioritize responses to 
> (or automatically mitigate) those attacks during threat triage we should have 
> a method for decoding in Stellar.  Some initial thoughts would be to handle 
> percent/URL encoding, base64, base32, base16/hex, HTML encoding, etc.
> I would expect that something like DECODE(something, encoding_type, 
> optional_failure_mode) would return the contents of field "something" after 
> attempting to decode it via "encoding_type".  If decoding fails, 
> optional_failure_mode would indicate whether or not to fail the message and 
> send it to the error topology, or to simply return the contents of the 
> original field "something" (in this example).



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

Reply via email to