Giter VIP home page Giter VIP logo

ossem's People

Contributors

ashwin-patil avatar bfuzzy avatar breakersall avatar chills42 avatar cyb3rpandah avatar cyb3rward0g avatar demondep avatar dominiklohmann avatar fryguy04 avatar grogsaxle avatar hxnoyd avatar jaredcatkinson avatar jorgeborges143 avatar jsecurity101 avatar kharchenikhil avatar neu5ron avatar nicolasreich avatar olafhartong avatar sahar55 avatar solhuebner avatar svch0stz avatar szabolevo avatar zackpayton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ossem's Issues

Extending data dictionaries?

There is an extension mechanism for entities, in order not to duplicate field definitions. It would be good to have such a mechanism for data dictionaries as well. For example, all Zeek network protocol events have fields for source and destination IP and port, which are duplicated across all the data dictionaries; instead, they all could extend a generic dictionary which defines these common fields. What do you think? Is that already part of your plans?

Windows Security 5145: Missing Field Names and title is wrong

Event: https://github.com/Cyb3rWard0g/OSSEM/blob/master/data_dictionaries/windows/security/events/event-5145.md

Missing fields from : https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5145

<Data Name="SubjectUserSid">S-1-5-21-3457937927-2839227994-823803824-1104</Data> 
 <Data Name="SubjectUserName">dadmin</Data> 
 <Data Name="SubjectDomainName">CONTOSO</Data> 
 <Data Name="SubjectLogonId">0x38d34</Data> 
 <Data Name="ObjectType">File</Data> 
 <Data Name="IpAddress">fe80::31ea:6c3c:f40d:1973</Data> 
 <Data Name="IpPort">56926</Data> 
 <Data Name="ShareName">\\\\\*\\Documents</Data> 
 <Data Name="ShareLocalPath">\\??\\C:\\Documents</Data> 
 <Data Name="RelativeTargetName">Bginfo.exe</Data> 
 <Data Name="AccessMask">0x100081</Data> 
 <Data Name="AccessList">%%1541 %%4416 %%4423</Data> 
 <Data Name="AccessReason">%%1541: %%1801 D:(A;;FA;;;WD) %%4416: %%1801 D:(A;;FA;;;WD) %%4423: %%1801 D:(A;;FA;;;WD)</Data> 

Sysmon data dictionaries compliant with entities

Sysmon data dictionaries aren't compliant with the latest version of entities. I can start working on a compliant version right now, but @Cyb3rWard0g mentioned in other issues that you were reviewed all Windows events, so I want to make sure you haven't something ongoing on your side, to not duplicate work.

Yaml entries

Hi. Any thoughts on using yaml to represent data dictionaries and cim entries? That would help consuming the data. Thanks!

Windows Security logs, Computer Account Management auditing fields mismatch between events

In the Data Dictionary of Windows Security Event 4741, the field UserParameters is translated into target_host_user_paremeters (with a typo), and UserAccountControl into target_host_user_account_control. For Event 4742, the corresponding fields are translated into target_host_parameters and target_host_account_control, so with one user fewer. I haven't been able to find those defined in the CDM; what is the right standard field name?

`event_category_type` is duplicated (?)

I am not sure if this is a mistake, or how it should be interpreted, but event_category_type can be found twice in the event attributes:

Name Type Description Sample Value
event_category_type string A description of the event, which can help with categorization. If the vendor defines a category/grouping for its log. i.e. Zeek has a few category types for its many logs (network-protocols, network-observations, etc...). Example. sysmon event id 12 is EventType field is this. network-protocols
event_category_type string If the event contains a category, then this it. i.e For the Windows Security channel, this could be something such as Audit object access. For Zeek conn.log, this would be network-protocols. Audit Object Access

https://github.com/OTRF/OSSEM/blob/master/docs/cdm/entities/event.md?plain=1#L9-L10

Thoughts about Elastic Common Schema (ECS)

Seems like the Elastic Common Schema (ECS) is seeking to solve the same problem: establishing a naming convention with consistent field names across any data source. Just curious what your perspective is on ECS, where you see OSSEM addressing areas missed by ECS, etc. Thanks!

Question: Defining Data Models as Ontologies

Hey guys,

I see that you have defined the Common Data Model as a YAML to help with readability etc, but I was wondering if it would be worthwhile to describe these models as an ontology. It might also help describe the relationships between elements. I was already looking at describing a series of ontologies that relate attacks and the sort of data you would require to detect it. Would this be something of interest ?

Sysmon data dictionary Update

  • Event id 3: Field name DestinationHostName is missing.
    image

  • Event id 15: Field name Hashes should be changed to Hash based on the event XML.
    image

  • In events 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18 the field name RuleName is missing. The standard name might be tag
    image

Creating a Sub-Repo for Data Dictionaries

We currently have a sub-repo for Common Data Model (CDM) and Detection Data Model (DDM). We should have one sub-repo for data dictionaries (DD). We need to validate the potential impact on different scripts within the main OSSEM repo.

Upated sysmon parser script to fix issue reported on Sentinel Github

Hi @Cyb3rWard0g

Referencing issues raised PR by @lostInSpaceSomewhere from Azure Sentinel Github. since we are generating parser from automated script, it makes sense to update original template to get those changes in the script.

PR : Azure/Azure-Sentinel#1754

Summary of changes required in original template:

  • Formatting fixes - added line breaks in each project list of fields so parser looks legible.
  • Update Hashes like below in related event Ids where Hashes field is available.
    | extend Hashes = extract_all(@"(?P<key>\w+)=(?P<value>[a-zA-Z0-9]+)", dynamic(["key","value"]), tostring(EventDetail.[17].["#text"]))
  • update all union section from line 515 till end. - changes are additional fields in project.

WMI fields mismatch between sysmon events and built in wmi events

Their might be a mismatch between 2 log definition related to WMI events.

For example:
Sysmon EventID: 20

https://github.com/OTRF/OSSEM/blob/a47073b4a9fd51198880d87976d589fde9b03e1f/source/data_dictionaries/windows/sysmon/events/event-20.yml

WMI EventID: 5861
https://github.com/OTRF/OSSEM/blob/a47073b4a9fd51198880d87976d589fde9b03e1f/source/data_dictionaries/windows/etw-providers/Microsoft-Windows-WMI-Activity/events/event-5861.yml

wmi_consumer_type vs CONSUMER
wmi_consume_name vs ESS

We might need to extract and modify fields from the built-in. But I believe that most of the info are present on the EventID: 5861. Was it done on purpose?

Update OSSEM CDM source, destination or target guideline

Several events that the OSSEM CDM project describes have a sense of direction.

Usually in a network connection, this sense of direction is represented by source and destination to describe the origin of the connection and where the network packets are sent to.
This concept of direction is not only represented in a network connection, but also other events such as creation of a process where an entity interacts with another entity.
Therefore, the OSEEM project is also using the concept of target instead of destination when describing an interaction between entities that are not part of a network connection.

We need to provide some documentation for these use cases.

Translation sheet

As previously discussed offline, a translation sheet needs to be made for field names - logon_impersonation_level, SIDS, and more.

Entities for scheduled tasks and services?

There are no entities defined in the CDM for scheduled tasks or services as far as I can see. While scheduled tasks is a Windows name, they are generic concepts, with cron as a linux equivalent; and services have a direct equivalent in linux, and I guess in a lot of different systems as well.

CIM - References Sections

References Links on entities fields

  • References added to description field
    • Example: 1
name: Image
type: string
description: Adding References in this field section [1](http://..com)

Detection data model and required data fields

The current detection data model (DDM) does not take into consideration mandatory data fields, for example: I want to develop a detection analytic on "win registry key modification", and I require "registry_key_path", "registry_key_value_name" and "registry_key_value_data" to be present. If my EDR solution lacks to provide one of this fields (i.e. "registry_key_value_data"), both the data dictionary (of the EDR in question) and common information model will provide a "win registry" object that lacks a data field needed by the analytic (i.e. "registry_key_value_data").

Is this by design, something you want to keep out of the DDM?

Windows Security logs, fields mismatch for Object Access

Hello,
the
In some Windows Security logs concerning Object Access, the field (e.g. 4656) AccessList is translated into user_privilege_list while for others it is object_access_list. Which one is right?

PS: Is opening issues on this repo the right procedure for issues like this? Is there something you would prefer?

Add event 'version' field to the data dictionary schema

Problem
With ETW on-boarding, we now have multiple data dictionaries with the same 'event code' but different versions. The version is available in the filename, and in the tags array of the event.

Those consuming data dictionaries YML, will find that it is complex to distinguish between events with the same 'event code', specially when filtering for specific versions of a data dictionary. Parsing an array to retrieve the data dictionary version is cumbersome, since it introduces additional complexity.

Example
Because OSSEM data dictionaries are atomic file entities, the workaround to avoid file name conflicts as to append the version number to the data dictionary file name with '_v#', for example: event-4624_v1.yml.

If no version information is available, the filename only contains the event code, for example event-4624.yml

Proposal

  • Add a 'version' field to the data dictionary YAML schema, and update all data dictionary entries accordingly.
  • Default value is 0 when no version information is available.
  • Keep the version information available in the filename, if applicable.

CDM vs data dictionaries - what's the "source of truth" in cases of mismatch?

Hello,

In some cases, there are mismatches between the CDM and Data Dictionaries, which is normal for such a young project. When such a case arises, what should be considered correct?

For example of such a mismatch, the full path of the executable file of a process is called process_file_path in the CDM, but process_path in most of the data dictionaries where it appears.

Cheers

Questions on ossem_converter to convert markdown to yaml

Hi,

First of all, thank you for taking time to write the python tool ossem_converter.py to convert to and from markdown and yaml. I am currently contributing aws data sources to the project and have created multiple markdowns for the aws data sources at https://github.com/hunters-forge/OSSEM/tree/aws-datadictionary/data_dictionaries/aws.
I tried using the tool to convert it to yaml before raising PR but was unsuccessful. It seems the code to convert from markdown to yaml is currently commented out (lines: 554-555,560-561,569-578), i tried uncommenting and use it locally but did not work. Before i investigate it further , i thought i should ask.

syntax used after uncommenting. It does not produce any error but also does not produce output files.
: python ossem_converter.py --from-md <aws folder path with markdowns> --to-yml <dest path>

ossem_converter-output

Could you please point me or guide me correct instructions to convert those markdowns in aws folder to yaml with the script if supported ?

Also i have couple of follow-up questions when we do conversions.

  • Does the script accepts multi line markdowns for description field ?
  • Some of the fields in aws data sources are of dictionary/dynamic data type which can be seen in sample value. (e.g. UserIdentity, requestParameters, responseElements in CloudTrail). Are these supported in the markdown-to-yaml conversion ?

Thanks.

Data dictionaries for the cowrie honeypot

Hello, as mentioned in other issues, we are working on extending OSSEM coverage for different technologies we are using. One of them is the cowrie honeypot, for which we have reached what we think is a satisfying quality. Could you have a look and let us know whether it seems to match your standards? If so, we could then open a pull request.

The changes are in the cowrie data dictionaries as well as the markdown versions.

I wasn't able to regenerate the general data dictionary markdown README, the ossem_converter script crashes with FileNotFoundError: [Errno 2] No such file or directory: '.../source/data_dictionaries/aws/readme.yml' even though said file is present.

Feedback based on usage in Grapl

Hey, I saw that feedback was asked for regarding contributing. I'm the author of a tool, Grapl:
https://github.com/insanitybit/grapl

I've decided to adopt a schema that is heavily based on the CIM description here (it's in a branch currently), with only minor changes to support a bit more of a 'graph' feel. As two examples,

  • Instead of 'process_path' being an attribute of a process, it is an edge from a ProcessNode to a FileNode
  • Instead of having attributes of a parent process be inline with the child process, I just have a ProcessNode, with an edge from parent to child

So it's mostly just a subset.

I chose this over CAR for a few reasons - I found the naming to be more general, and I liked that things such as digital signatures were attached to files, and not processes.

I thought this feedback might be of interest to you. Thanks for putting this project together.

I will say though, I hope that this stabilizes soon. If it takes a long time I will probably end up not bother to make any breaking updates and it would be a shame to diverge.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.