+
Skip to content

abwesend890/specmon

 
 

Repository files navigation

SpecMon

SpecMon Logo

Runtime monitoring of formal specifications

Build Status Issues License


🎯 About

SpecMon ensures that real-world systems comply with their formal specifications by monitoring applications at runtime. It tracks application behavior through event streams and verifies compliance with the defined rules. SpecMon is lightweight, capable of handling complex scenarios, and supports multiple concurrent sessions.


✨ Features

  • Flexible Architecture: Choose your preferred event aggregation method.
  • Multi-Session Monitoring: Seamlessly handle multiple concurrent sessions.
  • Debugging Made Easy: Quickly identify and fix errors with clear debug output.

📦 Installation

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/specmon/specmon.git
  2. Navigate to the project directory:

    cd specmon
  3. Build the application:

    go build

🚀 Usage

Note: Detailed documentation and examples will be linked here soon.

$ ./specmon --help
SpecMon is a runtime specification monitor using multiset-rewrite rules

Usage:
specmon [flags]
specmon [command]

Available Commands:
completion  Generate the autocompletion script for the specified shell
help        Help about any command
monitor     monitor the event trace

Flags:
-c, --cpu-profile-path string   cpu profile path
-d, --decompose                 decompose rules (default true)
-h, --help                      help for specmon
-l, --log-level string          log level (default "error")
-m, --mem-profile-path string   memory profile path
-q, --quiet                     quiet output
-r, --role string               role
-s, --spec-path string          specification path
-v, --verbose                   verbose output
   --version                   version for specmon

Use "specmon [command] --help" for more information about a command.

🤝 Contributing

Any contributions you make are greatly appreciated.

For details on how to get started, please see our Contributing Guidelines.


📜 License

This project is licensed under the GNU Affero General Public License (AGPL) 3.0. See the LICENSE file for details.


📚 Citation

If you use SpecMon in your research or projects, please cite it as follows:

@inproceedings{morio2024specmon,
  title={SpecMon: Modular Black-Box Runtime Monitoring of Security Protocols},
  author={Morio, Kevin and K{\"u}nnemann, Robert},
  booktitle={Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security},
  pages={2741--2755},
  year={2024}
}

About

Runtime monitoring of formal specifications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 86.5%
  • Go 12.9%
  • Other 0.6%
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载