This project is a DO-178B standard compliant Secure logging system implemented in C++. It is designed to provide secure, reliable, and compliant logging mechanisms for use in critical systems that require high standards of software assurance, such as those in the aviation or defense sectors.
This project aims to implement a robust, compliant logging framework that can be integrated into systems requiring cybersecurity measures under DO-178B guidelines. It emphasizes:
- Secure communication for log transfers.
- Access control for authorized log access.
- Compliance traceability and adherence to the DO-178B safety standard.
The DO-178B standard outlines guidelines for the development of software for airborne systems and equipment. This logging system project ensures compliance through:
- Requirements traceability: Documentation for each function’s role and requirement.
- Safety-critical design: Use of safe coding practices, defensive programming, and thorough testing.
- Verification and validation: Unit and integration testing for all critical components.
- Compliance documentation: Evidence collection for audits, reviews, and certification.
To install this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/arrhenius975/Secure_Logs_178B.git
cd Secure_Logs_178B
-
Build the project:
-
Ensure you have CMake and a compatible compiler (like GCC or Clang) installed.
-
Run the following commands:
mkdir build cd build cmake .. make
-
-
Run tests:
make test
To use this logging system in a cybersecurity environment:
-
Configure the settings in the configs folder (e.g., logging_config.json).
-
Run the application:
./build/DO178B_CyberSecurity_Logging
-
Check the logs and outputs according to your setup and configuration.
Refer to the docs folder for detailed usage and implementation guides.
The project uses the following technologies and tools:
- Languages: C++
- Build System: CMake
- Version Control: Git
- Static Analysis Tools: LDRA, Cppcheck
- Testing Frameworks: Google Test for unit and integration tests
- CI/CD: GitHub Actions
- Compliance Documentation: Markdown files for traceability and requirements mapping
Contributions are welcome! To contribute:
- Fork the repository.
- Create a branch for your feature (git checkout -b feature-xyz).
- Commit your changes (git commit -m "Add feature xyz").
- Push to your branch (git push origin feature-xyz).
- Open a pull request.
Please ensure all code adheres to DO-178B guidelines and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.