Skip to content

HyperSec is a research project to provide Visual Analytics for blockchain security monitoring

License

Notifications You must be signed in to change notification settings

sigma67/hypersec

 
 

Repository files navigation

HyperSec

HyperSec is a research project to provide Visual Analytics for blockchain security monitoring. A demo of the prototype is available at http://pcrw00262.ur.de:8080/ (user: exploreradmin, pass: exploreradminpw).

Research and Citation

Please consider citing our publication if you are using our HyperSec prototype for your research: https://doi.org/10.1007/978-3-030-78120-0_11

Putz, B., Böhm, F., Pernul, G. (2021). HyperSec: Visual Analytics for Blockchain Security Monitoring. In: Jøsang, A., Futcher, L., Hagen, J. (eds) ICT Systems Security and Privacy Protection. SEC 2021. IFIP Advances in Information and Communication Technology, vol 625. Springer, Cham. https://doi.org/10.1007/978-3-030-78120-0_11

Summary

The prototype in this repository is based on Hyperledger Explorer. It is intended for security monitoring and includes several visualizations to facilitate this.

Key technical improvements compared to Hyperledger Explorer include:

  • Dashboard: Fabric JIRA issues are shown on the dashboard
  • Network: The network structure (peers, orderers) is visualized in the network view. Docker Logs can be inspected from the frontend
  • Blocks: Blocks display is more compact, transaction detail inspection was moved to the block modal
  • Transactions: Prometheus Operations Service Metrics are displayed in interactive charts. Transaction display is enhanced with user and size information
  • Chaincodes: Security scan results can be inserted in the database and viewed in the frontend (use revive-cc for scans)

Setup

HyperSec requires some additional setup compared to a regular Hyperledger Explorer instance. Details are below.

Hyperledger Fabric Configuration

Make sure to configure logging output as JSON. You also need to configure the Operations service. The required variables for both are shown below for a peer:

FABRIC_LOGGING_FORMAT=json
CORE_OPERATIONS_LISTENADDRESS=peer0.org1.example.com:9443
CORE_METRICS_PROVIDER=prometheus

An example yaml file is available here.

If you want to use a pre-configured test network, you can use this repo for a correctly configured test network:

https://github.com/sigma67/fabric-samples (metrics branch)

Hyperledger Explorer

Please refer to the base project Hyperledger Explorer for how to set up Hyperledger Explorer with your Hyperledger Fabric instance: https://github.com/sigma67/hypersec/tree/master

Additional config: You must set the proxy parameter in package.json to point to your Hyperledger Explorer Backend. localhost:8080 works fine if the client is running on the same host. In your app\explorerconfig.json, set the JIRA username and password (your Linux Foundation credentials) to see Hyperledger Fabric issues on the dashboard.

Prometheus

A Prometheus instance is required and must be connected to a peer and an orderer.

An example config is available here:

https://github.com/sigma67/fabric-samples/blob/metrics/test-network/prometheus.yml

License

Like the Hyperledger Explorer Project source code HyperSec is released under the Apache 2.0 license. The README.md, CONTRIBUTING.md files, and files in the "images", "snapshots" folders are licensed under the Creative Commons Attribution 4.0 International License. You may obtain a copy of the license, titled CC-BY-4.0, at http://creativecommons.org/licenses/by/4.0/.

About

HyperSec is a research project to provide Visual Analytics for blockchain security monitoring

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 61.8%
  • TypeScript 25.8%
  • Go 6.7%
  • Shell 4.7%
  • CSS 0.5%
  • Dockerfile 0.3%
  • HTML 0.2%