Skip to content

HWSec-UNC/verviz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hardware Visualization

Overview

This project is part of the Hardware Security Lab at UNC, focused on developing a hardware security visualization tool to analyze symbolic execution and hyperflow graphs of Verilog RTL designs. The goal is to create an intuitive interface for visualizing execution paths and exploring security vulnerabilities in hardware systems, making complex verification tasks more accessible and efficient. This is a work in progress.

This tool is aimed to integrate with SEIF and SYLVIA, two symbolic execution frameworks, to enhance hardware security analysis by mitigating path explosion problems and improving execution efficiency.

Check out the website Here

Technologies to be Used

Frontend

  • React.js and React Router

Backend

  • Express.js - To manage API endpoints for file uploads and processing.
  • FastAPI - Built on top of Seif and Sylvia to process incoming files
  • PostgreSQL with neon.tech - To store execution logs and user files.

Visualization & Processing

  • D3.js/ graph.js / GraphCytoscape.js / Recharts.js - To visualize execution flow dynamically.
  • NetworkX, Graphviz, PyViz - Python libraries for visualizing graphs
  • WebAssembly (Future consideration) - To run Verilog analysis efficiently in the browser.

Features

  • Upload Verilog Files - Users can upload Verilog RTL files for processing.
  • Symbolic Execution Visualization - Displays execution paths in a clear, structured format.
  • Security Flow Analysis - Helps identify vulnerabilities in hardware designs.

Direction & Future Enhancements

  • Integration with SEIF and SYLVIA - Enhancing symbolic execution capabilities for improved security analysis.
  • Iteractive UI for hyperflow graphs and paths in symbolic execution

Setup & Installation

  1. Clone the repository:
    git clone https://github.com/your-repo/hardware-visualization.git
    cd hardware-visualization
  2. Open the Dev Container:
    1. Open VScode and Install Dev Containers extension
    2. Reopening the project in a dev container can be done with Ctrl+Shift+P(or Cmd+Shift+P on Mac) and typing "Dev Containers: Reopen in Container" and selecting that option. NOTE: You also may see a pop up in VSCode on the bottom right hand side of your screen roughly stating "Would you like to reopen this project in a dev container?" which you can click yes to to achieve the same result.
  3. Install dependencies:
    cd frontend
    npm install
    cd ../backend
    npm install
    NOTE: If you have any security vulnerabilities when running npm install, run npm audit fix to resolve these
  4. Run the application's frontend and backend:
    cd ../frontend
    npm run dev
    in a new terminal
    cd backend
    node server.js

Note: The Sylvia and Seif APIs are not available to use right now but will be deployed soon. External users cannot access the database. This will all be available once deployed on OKD.

Contribution

This project is actively evolving, and feedback on UI improvements, backend optimizations, and new visualization techniques is encouraged.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors