LoFP LoFP / false positives may be present if a suspicious processname is similar to a benign processname.

Techniques

Sample rules

Detect suspicious processnames using pretrained model in DSDL

Description

The following analytic uses a pre-trained Deep Learning model to predict whether a processname is suspicious or not. Malwares and malicious programs such as ransomware often use tactics, techniques, and procedures (TTPs) such as copying malicious files to the local machine to propagate themselves across the network. A key indicator of compromise is that after a successful execution of the malware, it copies itself as an executable file with a randomly generated filename and places this file in one of the directories. Such techniques are seen in several malwares such as TrickBot. We develop machine learning model that uses a Recurrent Neural Network (RNN) to distinguish between malicious and benign processnames. The model is trained independently and is then made available for download. We use a character level RNN to classify malicious vs. benign processnames. The higher is_malicious_prob, the more likely is the processname to be suspicious (between [0,1]). The threshold for flagging a processname as suspicious is set as 0.5.

Detection logic


| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes by Processes.process_name Processes.parent_process_name Processes.process Processes.user Processes.dest 
| `drop_dm_object_name(Processes)` 
| rename process_name as text 
| fields text, parent_process_name, process, user, dest 
| apply detect_suspicious_processnames_using_pretrained_model_in_dsdl 
| rename predicted_label as is_suspicious_score 
| rename text as process_name 
| where is_suspicious_score > 0.5 
| `detect_suspicious_processnames_using_pretrained_model_in_dsdl_filter`