Skip to content

CONTRIBUTING.md

Clayton Lengel-Zigich edited this page Mar 3, 2015 · 3 revisions

Welcome to OpenSOC!

Thank you deeply for your interest in contributing to the OpenSOC project!

Objective

The OpenSOC project is a collaborative open source development project dedicated to providing an extensible and scalable advanced security analytics tool. It has strong foundations in the Apache Hadoop Framework and values collaboration for high-quality community-based open source development.

The OpenSOC project has the following goals:

  • To provide a collaborative open source community for development of an extensible and scalable advanced security analytics tool

  • To encourage open communication for additional features and identification of deficiencies for a stable and functionally usable tool

  • To identify key feature enhancements to drive technology efforts around efficient security analytics

The OpenSOC project welcomes participation from all people and organizations for development, enhancements, and/or implementation support.

Structure

OpenSOC is structured into multiple modules:

  • OpenSOC-streaming -- Storm topologies and attributes for streaming, enriching, indexing, and storing telemetry in Hadoop

  • Opensoc-ui -- User interface for investigations into OpenSOC data

Have you found a bug? Use the issue tracker in the relevant sub-project or open in the primary project issue tracker. One of the project wranglers will review and respond to your report.

Contributing to the OpenSOC project

Do you have some new functionality, a bug fix or other code you wish to contribute? Excellent! This section is for you!

Code Quality

When submitting code it is preferred to follow the Google Style guides for the language used. While not strictly enforced it will be beneficial in the long run.

Tests

Wherever possible please include tests, especially if your change implements or impacts a library routine. Even the slightest change can have a ripple effect of chaos.

OpenSOC-streaming

OpenSOC utilizes Apache Storm for stream processing. Storm allows most language to run in a topology but the majority of code is written in Java. Feel free to use the language of your choice.

OpenSOC-ui

The user interface is primarily compromised of NodeJS, AngularJS and Kibana code. Its purpose is to centralize communication from reporting bolts and allow searching and processing of content collected during the enrichment process. Wherever possible please include logical test routines for new modules and have them pass Travis-CI when submitting.

Bug Reporting

  • Do immediately report any security-related issues to [email protected]
  • Do use Github issues to submit requests for features, bugfixes and enhancements.
  • Do Write a detailed description of your issue and include screenshots if possible. The more detailed a report the easier it will be to discover a solution.
  • Don't Report duplicate issues in or across the issue trackers. We can move issues around to the correct repository if necessary.

If you need more guidance head over to our public Google Group, or ask your question on the Freenode IRC channel.

Thank You for reading this far and investing in making OpenSOC better. We appreciate any and all contributions!