alarm

ALARM: Active LeArning of Rowhammer Mitigations

https://github.com/sahnaseredini/alarm

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

ALARM: Active LeArning of Rowhammer Mitigations

Basic Info
  • Host: GitHub
  • Owner: sahnaseredini
  • License: other
  • Language: Java
  • Default Branch: master
  • Homepage:
  • Size: 7.37 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

ALARM Codebase

This repo contains the code accompanying the paper

ALARM: Active LeArning of Rowhammer Mitigations

by Amir Naseredini, Martin Berger, Matteo Sammartino and Shale Xiong. The paper was published at HASP 2022, and is available at https://arxiv.org/abs/2211.16942

How to build and run

The code is using make and Maven (https://maven.apache.org/). In order to run ALARM, you'll need to build the jar file by running make Then

  • Find the generated jar file in target
  • Run the code by java -jar <path to the jar>/ALARM-1.0.jar

Reproducing the plots in the paper

In order to generate all the plots in the paper simply run java -jar <path to the jar>/ALARM-1.0.jar --plotter The resulting plots will be in a directory named plots.

All options

We list all available options for our code:

``` -h, --help Help

-l, --learning Learning Algorithm (options: ttt, lstar)

-o, --oracle Equivalence Oracle (options: rw, wp, rwp)

-m, --memory-size Number of memory rows (options: a non-negative number)

-t, --trr-counters Number of TRR counters (options: a non-negative number)

-b, --bits Maximum number of bits to get flipped in a memory row (options: a non-negative number)

-n, --number Number of accesses to a row in each step (options: a non-negative number)

-s, --trr-threshold Minimum number of accesses required to a row in an interval to trigger TRR (options: a non-negative number)

-r, --rh-threshold Minimum number of accesses required to adjacent rows in an interval to trigger a possible bit flip in a row (options: a non-negative number)

-i, --interval Minimum number of read/write required to issue a refresh to all the memory rows (options: a non-negative number)

-v, --visualise Visualise and show the output automata

-x, --steps Maximum number of steps for the Random Walk Eq Oracle (options: a positive number)

-p, --plotter Run the plotter and plot the figures

-a, --plotter-minimal Run the plotter in a minimal way without averaging and plot the figures

-e, --ecc-off Turn off ECC in the memory

-f, --factor Select a specific parameter to run the plotter against it (options: a positive number in [0,7])

```

Owner

  • Name: Amir Naseredini
  • Login: sahnaseredini
  • Kind: user
  • Location: London, UK
  • Company: @canonical

Security Engineer at @canonical

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Naseredini"
  given-names: "Amir"
  orcid: ""
- family-names: "Berger"
  given-names: "Martin"
  orcid: "https://orcid.org/0000-0003-3239-5812"
- family-names: "Sammartino"
  given-names: "Matteo"
  orcid: ""
- family-names: "Xiong"
  given-names: "Shale"
  orcid: ""
title: "ALARM Codebase"
version: 1.0.0
doi: 10.1145/3569562.3569
date-released: TBC
url: "https://github.com/sahnaseredini/alarm"

GitHub Events

Total
Last Year

Dependencies

pom.xml maven
  • ch.qos.logback:logback-classic
  • commons-cli:commons-cli 1.3.1
  • de.learnlib.distribution:learnlib-distribution
  • org.jfree:jfreechart 1.5.3
  • org.junit.jupiter:junit-jupiter-api 5.0.0-M5