Sunrise is the first phase of the detection lifecycle. It marks the inception, development and deployment of the detection. During that phase there are 6 core functions that should be addressed:
Functions | Goal | Description | Guidelines |
---|---|---|---|
Research | Opportunity Identification | It can be triggered from analyzing threat intelligence reports, or OSINT, or internal knowledge for a particular security gap. Document the use case and the goals of the detection as part of the opportunity identification process. |
|
Prioritize | Detection engineering work has to be prioritized and tracked. Work prioritization can be based on urgency and priority. Backlog of detections and security posture activities is desirable and recommended. | Prioritization criteria:
| |
Develop Research Questions | Write your research questions that while answering you will gain understanding of the topic. | Examples:
| |
Information Gathering | Research and collect sufficient information in order to start understanding the detection | Provides a good overview of the topic if you are unfamiliar with it.
| |
Technical Context | Create and understand technical context around the detection |
| |
Prepare | Identify Dataset | Identify the log source that will be used for the detection | Know your environment
|
Visibility Check | Ensure there is sufficient logging, retention and visibility in order to successfully build the detection and satisfy the use case |
| |
Improve(optional) | Once the data is explored we can identify opportunities for improvements such as:
| Improvement initiatives and requests should be communicated to the responsible for the dataset in question team. For that purpose it makes sense to maintain a contact list that provides quick reference to technology, support/engineering teams and contact details. | |
Build & Enrich | Detection Creation | Create a detection query against the identified dataset | Having a good understanding of the technical context and the data source begin building queries to narrow down the data to actionable insight. |
Manual Testing | Perform a manual testing and ensure the query works syntax and logical perspective |
| |
Baseline development | Develop a baseline (if needed) that will improve the detection fidelity |
| |
Unittest Development | The unittest development is dependent on the type of devops pipeline. Simple goals are provided. | Goals for the unittesting:
| |
Enrich | Enrich with additional data source if required |
| |
Document |
|
| |
Validate | Confirm unittests | Confirm unittest are working | Confirmation of the unittests can be done by inspecting the implemented devops pipeline and ensuring that the actions (in the case of github) for unittests are running |
True Positive validation | Validate true positive event against real dataset using the query developed earlier. | True positive validation can be achieved by:
| |
False Positive Validation | Ensure no FP are produced by the query when ran against the prod dataset. |
| |
Automate | Automation & deployment | This step is entirely dependant on the environment and should follow the standard ci/cd or automation practices of the organization. | Integrate with devops pipeline and enable continuous deployment |
Share | Socialize the new detection | A notification process is required and it should be created. The process can be in the form of newsletter or slack channel notification, preferably automated one. | Follow a process to communicate the newly created detection with the Security Teams and inform them about it |
Update Sec Dependency Tree | This document is actually part of the repository and can be shared with data engineering and security teams. The goal of sharing it is to promote care mentality where teams would check before they change. Meaning, if data engineer is about to rename an index they should first check if the index is being used. Having dependency document as part of the repository makes it easy and seamless for them to check. | Update organization wide document showing dependencies for the detections |