Vincenzo Eramo

96 papers A 1B 12Journal 53Unranked 30
YearRankTypeTitle / Venue / Authors
2025 J jnl
Future Internet
Francesco Valente, Francesco Giacinto Lavacca, Marco Polverini, Tiziana Fiori, Vincenzo Eramo
2024 conf
ICTON
Vincenzo Eramo, Francesco Giacinto Lavacca, Antonio Cianfrani, Marco Polverini, Marco Listanti
2024 B conf
NOMS
Francesco Valente, Francesco Giacinto Lavacca, Tiziana Fiori, Vincenzo Eramo
2024 J jnl
IEEE Access
Tiziana Fiori, Francesco Giacinto Lavacca, Francesco Valente, Vincenzo Eramo
2024 J jnl
Comput. Networks
Francesco Valente, Francesco Giacinto Lavacca, Tiziana Fiori, Vincenzo Eramo
2023 B conf
NOMS
Francesco Valente, Francesco Giacinto Lavacca, Vincenzo Eramo
2023 J jnl
Comput. Commun.
Vincenzo Eramo, Tiziana Fiori, Francesco Giacinto Lavacca, Francesco Valente, Andrea Baiocchi, Simone Ciabuschi, Marta Albano, Enrico Cavallini
2023 conf
ICTON
Vincenzo Eramo, Francesco Giacinto Lavacca, Francesco Valente, V. Filippetti, Antonello Rosato, Alessio Verdone, Massimo Panella
2023 J jnl
Comput. Networks
Francesco Valente, Vincenzo Eramo, Francesco Giacinto Lavacca
2023 conf
ICC
Francesco Valente, Francesco Giacinto Lavacca, Vincenzo Eramo
2022 J jnl
IEEE Trans. Netw. Serv. Manag.
Vincenzo Eramo, Tiziana Catena
2022 J jnl
Comput. Networks
Tiziana Catena, Vincenzo Eramo, Massimo Panella, Antonello Rosato
2022 B conf
NOMS
Francesco Giacinto Lavacca, Vincenzo Eramo, Antonio Cianfrani, Marco Listanti, Francesco Valente
2021 J jnl
IEEE Trans. Netw. Serv. Manag.
Marco Polverini, Jaime Galán-Jiménez, Francesco Giacinto Lavacca, Antonio Cianfrani, Vincenzo Eramo
2021 conf
ICTC
Vincenzo Eramo, Francesco Valente, Francesco Giacinto Lavacca, Tiziana Catena
2021 J jnl
Comput. Networks
Vincenzo Eramo, Francesco Giacinto Lavacca, Tiziana Catena, Paul Jaime Perez Salazar
2021 J jnl
Future Internet
Vincenzo Eramo, Francesco Valente, Tiziana Catena, Francesco Giacinto Lavacca
2021 B conf
GLOBECOM
Vincenzo Eramo, Tiziana Catena
2020 J jnl
Comput. Networks
Marco Polverini, Jaime Galán-Jiménez, Francesco Giacinto Lavacca, Antonio Cianfrani, Vincenzo Eramo
2020 J jnl
Future Internet
Vincenzo Eramo, Francesco Giacinto Lavacca, Tiziana Catena, Paul Jaime Perez Salazar
2020 J jnl
IEEE Access
Vincenzo Eramo, Francesco Giacinto Lavacca, Tiziana Catena, Flavio Di Giorgio
2020 conf
ICTON
Vincenzo Eramo, Tiziana Catena, Francesco Giacinto Lavacca, Paul Jaime Perez Salazar
2020 conf
ICTON
Vincenzo Eramo, Tiziana Catena, Francesco Giacinto Lavacca, Flavio Di Giorgio
2019 conf
NOF
Marco Polverini, Jaime Galán-Jiménez, Francesco Giacinto Lavacca, Antonio Cianfrani, Vincenzo Eramo
2019 J jnl
Future Internet
Vincenzo Eramo, Francesco Giacinto Lavacca, Tiziana Catena, Marco Polverini, Antonio Cianfrani
2019 J jnl
IEEE Access
Vincenzo Eramo, Francesco Giacinto Lavacca
2019 conf
ICTON
Vincenzo Eramo, Tiziana Catena, Francesco Giacinto Lavacca
2019 conf
ICTON
Vincenzo Eramo, Antonio Cianfrani, Tiziana Catena, Marco Polverini, Francesco Giacinto Lavacca
2018 J jnl
IEEE Commun. Lett.
Vincenzo Eramo, Francesco Giacinto Lavacca
2018 conf
ICTON
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Paola Iovanna
2018 conf
ICTON
Vincenzo Eramo, Francesco Giacinto Lavacca
2018 B conf
CNSM
Vincenzo Eramo, Francesco Giacinto Lavacca, Tiziana Catena, Marco Polverini, Antonio Cianfrani
2017 J jnl
IEEE/ACM Trans. Netw.
Vincenzo Eramo, Emanuele Miucci, Mostafa H. Ammar, Francesco Giacinto Lavacca
2017 conf
ICTON
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Paola Iovanna, Giulio Bottari, Filippo Ponzini
2017 conf
TIWDC
Vincenzo Eramo, Francesco Giacinto Lavacca
2017 J jnl
IEEE Access
Vincenzo Eramo, Mostafa H. Ammar, Francesco Giacinto Lavacca
2016 J jnl
J. Electr. Comput. Eng.
Vincenzo Eramo, Xavier Hesselbach-Serra, Yan Luo, Juan Felipe Botero
2016 conf
ICTON
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Paola Iovanna, Giulio Bottari, Filippo Ponzini
2016 J jnl
J. Electr. Comput. Eng.
Vincenzo Eramo, Alessandro Tosti, Emanuele Miucci
2016 J jnl
IEEE J. Sel. Areas Commun.
Vincenzo Eramo, Emanuele Miucci, Mostafa H. Ammar
2016 J jnl
IEEE Access
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Paola Iovanna, Giulio Bottari, Filippo Ponzini
2015 conf
ONDM
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Roberto Sabella, Francesco Testa
2015 conf
ICC Workshops
Vincenzo Eramo, Emanuele Miucci, L. Compagnone, Mostafa H. Ammar
2015 J jnl
JOCN
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Francesco Testa, Roberto Sabella
2015 conf
ICTON
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Francesco Testa, Roberto Sabella
2014 conf
ICTON
Vincenzo Eramo, Marco Listanti, Francesco Giacinto Lavacca, Francesco Testa, Roberto Sabella
2014 J jnl
J. Electr. Comput. Eng.
Vincenzo Eramo, Sebastiano Testa, Emanuele Miucci
2014 J jnl
J. Electr. Comput. Eng.
Vincenzo Eramo, Xavier Hesselbach-Serra, Yan Luo
2014 J jnl
JOCN
Vincenzo Eramo, Marco Listanti, Roberto Sabella, Francesco Testa
2014 conf
ICTC
Vincenzo Eramo, Emanuele Miucci
2014 J jnl
Photonic Netw. Commun.
Jason P. Jue, Vincenzo Eramo, Víctor López, Zuqing Zhu
2014 J jnl
IEEE Commun. Lett.
Vincenzo Eramo, Emanuele Miucci, Mostafa H. Ammar
2014 A conf
ITC
Vincenzo Eramo, Antonio Cianfrani, Emanuele Miucci, Marco Listanti, D. Carletti, L. Gentilini
2013 conf
ICTC
Vincenzo Eramo, Marco Listanti, Antonio Cianfrani, Emanuele Miucci
2013 conf
ICTC
Vincenzo Eramo, Emanuele Miucci, Marco Listanti, Antonio Cianfrani, Sebastiano Testa
2012 J jnl
IEEE Trans. Netw. Serv. Manag.
Antonio Cianfrani, Vincenzo Eramo, Marco Listanti, Marco Polverini, Athanasios V. Vasilakos
2012 J jnl
JOCN
Vincenzo Eramo, Marco Listanti, Roberto Sabella, Francesco Testa
2012 J jnl
J. Networks
Vincenzo Eramo, Lorenzo Piazzo, Angelo Germoni, Antonio Cianfrani, Marco Listanti
2012 conf
e-Energy
Antonio Cianfrani, Vincenzo Eramo, Marco Listanti, Marco Polverini
2011 J jnl
Opt. Switch. Netw.
Nail Akar, Vincenzo Eramo, Carla Raffaelli
2011 J jnl
JOCN
Vincenzo Eramo
2011 J jnl
IEEE Commun. Lett.
Vincenzo Eramo, Lorenzo Piazzo
2009 J jnl
JOCN
Antonio Cianfrani, Vincenzo Eramo, Angelo Germoni, Carla Raffaelli, Michele Savi
2009 J jnl
Comput. Networks
Vincenzo Eramo, Angelo Germoni, Carla Raffaelli, Michele Savi
2009 J jnl
IET Commun.
Vincenzo Eramo
2009 J jnl
JOCN
Vincenzo Eramo, Marco Listanti
2008 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, Angelo Germoni
2008 J jnl
IEEE Trans. Netw. Serv. Manag.
Vincenzo Eramo, Marco Listanti, Antonio Cianfrani
2008 conf
ICC
Vincenzo Eramo, Marco Listanti, Raffaele Tiberio
2007 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, Angelo Germoni
2007 J jnl
Int. J. Comput. Sci. Appl.
Vincenzo Eramo, Marco Listanti, Antonio Cianfrani
2006 J jnl
IEICE Trans. Commun.
Vincenzo Eramo, Marco Listanti, Luca Silvio Bovo
2006 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, Andrea Valletta
2006 conf
ICC
Vincenzo Eramo, Marco Listanti
2005 J jnl
Photonic Netw. Commun.
Vincenzo Eramo, Marco Listanti, Andrea Valletta
2005 J jnl
IEICE Trans. Commun.
Vincenzo Eramo, Marco Listanti, Nicola Caione, Igor Russo, Giuseppe Gasparro
2005 J jnl
IEICE Trans. Commun.
Vincenzo Eramo, Marco Listanti, Federico Gasperini
2005 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, L. Venuti, M. Tarola
2005 conf
EuroIMSA
Vincenzo Eramo, Marco Listanti, Nicola Caione, Igor Russo, Giuseppe Gasparro
2005 J jnl
Comput. Commun.
Vincenzo Eramo, Marco Listanti, Andrea Valletta
2005 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, Antonio Cianfrani
2004 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, Matteo Spaziani
2003 B conf
GLOBECOM
Vincenzo Eramo, Marco Listanti, M. Tarola
2003 conf
QoS-IP
Vincenzo Eramo, Marco Listanti
2003 conf
ICC
Vincenzo Eramo, Marco Listanti, Giovanni Pacifici
2003 J jnl
IEEE Commun. Lett.
Vincenzo Eramo, Marco Listanti
2002 conf
ICC
Andrea Detti, Vincenzo Eramo, Marco Listanti
2002 J jnl
Int. J. Commun. Syst.
Vincenzo Eramo, Marco Listanti, Carl J. Nuzman, Phil Whiting
2002 J jnl
IEEE Commun. Lett.
Vincenzo Eramo, Marco Listanti
2000 J jnl
IEEE Commun. Mag.
Marco Listanti, Vincenzo Eramo, Roberto Sabella
2000 J jnl
Photonic Netw. Commun.
Vincenzo Eramo, Marco Listanti
2000 J jnl
Comput. Networks
Vincenzo Eramo, Marco Listanti
1998 J jnl
Comput. Commun.
Nicola Blefari-Melazzi, Vincenzo Eramo, Marco Listanti
1994 conf
ICPR (2)
Vincenzo Consorti, Luigi P. Cordella, Vincenzo Eramo, Alessandra Esposito, D. Perifano
1992 J jnl
Computer
Luca Boatto, Vincenzo Consorti, Monica Del Buono, Silvano Di Zenzo, Vincenzo Eramo, Alessandra Esposito, Francesco Melcarne, Marco Meucci, Andrea Morelli, Marco Mosciatti, Stefano Scarci, Marco Tucci
1992 conf
ICPR (2)
Luca Boatto, Vincenzo Consorti, Monica Del Buono, Vincenzo Eramo, Alessandra Esposito, Francesco Melcarne, Marco Meucci, Andrea Morelli, Marco Mosciatti, Aido Spirito, Marco Tucci
yara/README.md
← Index yara/README.md markdown
# YARA Rules Directory

This folder contains YARA rules for scanning binary samples.

## Setting Up YARA-Forge Rules

To use the YARA-Forge rules from [https://github.com/YARAHQ/yara-forge](https://github.com/YARAHQ/yara-forge):

```bash
# Download the latest release
cd /path/to/redb/yara
# wget https://github.com/YARAHQ/yara-forge/releases/latest/download/yara-forge-rules-core.zip
wget https://github.com/YARAHQ/yara-forge/releases/latest/download/yara-forge-rules-extended.zip

# Extract rules
# unzip yara-forge-rules-core.zip
unzip yara-forge-rules-extended.zip
```

Available packages:
- `yara-forge-rules-core.zip` - Core rules (~5,000 rules)
- `yara-forge-rules-extended.zip` - Extended rules (~10,000 rules)
- `yara-forge-rules-full.zip` - Full rules (~11,000+ rules)

## Pre-compiling Rules (Recommended for Production)

For large rulesets like YARA-Forge, pre-compiling rules significantly improves startup time:

```bash
# Pre-compile all rules into a single .yarac file
python -m redb.extractors.yara --compile

# Or specify custom paths
python -m redb.extractors.yara --compile --rules-path /path/to/rules --output /path/to/output.yarac
```

This creates `yara/compiled_rules.yarac` which is loaded automatically on subsequent runs.

### Performance Comparison

| Method | First Scan Startup | Subsequent Scans |
|--------|-------------------|------------------|
| Source files (.yar) | ~10-30 seconds (11k rules) | Instant (cached) |
| Pre-compiled (.yarac) | ~1-2 seconds | Instant (cached) |

## Directory Structure

```
yara/
├── README.md
├── .gitkeep
├── compiled_rules.yarac    # (optional) Pre-compiled rules
├── packages/               # YARA-Forge packages
│   └── core/
│       └── *.yar
└── custom/                 # Your custom rules
    └── my_rules.yar
```

Rules are loaded in this priority:
1. `compiled_rules.yarac` (if exists) - fastest
2. All `.yar` and `.yara` files recursively - compiles on first run

## Usage

### Scan with YARA only

```bash
# Scan local files
python start.py --path /path/to/samples -y --repo my_repo --index_prefix redb

# Scan S3 samples
python start.py --s3 --repo bazaar -y --index_prefix redb

# Dry-run (print results instead of storing in ClickHouse)
python start.py --path /path/to/samples -y --dry-run --repo test --index_prefix redb
```

### Scan already-analyzed samples

Run YARA on samples that were previously analyzed (already in `basic_properties`).
Deduplication is handled by the `yara_matches` table — samples already scanned are
automatically excluded before processing begins:

```bash
# Scan all analyzed macho samples with YARA
python start.py --analyzed --magika macho -y --index_prefix redb

# Scan all analyzed PE samples with YARA
python start.py --analyzed --magika pe -y --index_prefix redb

# Scan all analyzed samples (no filetype filter)
python start.py --analyzed -y --index_prefix redb
```

### Partition large YARA runs by date

Combine `--analyzed` with `--range` to partition millions of samples into
manageable batches. Only samples in `basic_properties` AND within the date
range (by `first_seen` in `catalog_samples`) are processed:

```bash
# Scan analyzed PE samples from Feb 2025
python start.py --range 2025-02-01 2025-02-28 --analyzed --magika pebin -y --index_prefix redb

# Scan analyzed PE samples from first week of March 2025
python start.py --range 2025-03-01 2025-03-08 --analyzed --magika pebin -y --index_prefix redb
```

YARA dedup still applies — re-running a range safely skips already-scanned samples.

### Combined Features + YARA

Run feature extraction and YARA scanning together on the same samples:

```bash
# Local files with features + YARA
python start.py --path /path/to/samples --with-yara --repo my_repo --index_prefix redb

# S3 samples with features + YARA
python start.py --s3 --repo bazaar --with-yara --index_prefix redb
```

### Pre-compile Rules

```bash
# Compile and save to default location (yara/compiled_rules.yarac)
python -m redb.extractors.yara --compile

# Compile with custom paths
python -m redb.extractors.yara --compile --rules-path ./my_rules --output ./compiled.yarac
```

### Sync Rules to Database

Before batch scanning, sync rules to ensure all rule metadata is stored:

```bash
# Sync rules to database
python -m redb.extractors.yara --sync-rules

# Sync with custom source collection name
python -m redb.extractors.yara --sync-rules --source-collection yara-forge-core

# Compile and sync in one command
python -m redb.extractors.yara --compile --sync-rules
```

## ClickHouse Table Schema

YARA data uses a **normalized schema** with two tables for efficient storage.

### Matches Table: `yara_matches`

Stores one row per sample-rule match (optimized with binary sha256 and rule_id):

| Column | Type | Description |
|--------|------|-------------|
| sha256 | FixedString(32) | Binary SHA256 (32 bytes, use `hex(sha256)` to display) |
| rule_id | UInt64 | Unique rule identifier (xxHash64 of canonical rule content) |
| rule_name | LowCardinality(String) | YARA rule name (denormalized for convenience) |
| scan_date | DateTime64(3, 'UTC') | Scan timestamp |
| match_strings | Array(String) | Matched string identifiers |

### Rules Table: `yara_rules`

Stores rule metadata once per unique rule (deduplicated by rule_id):

| Column | Type | Description |
|--------|------|-------------|
| rule_id | UInt64 | Unique rule identifier (xxHash64 of canonical rule content) |
| rule_name | String | YARA rule name |
| source_collection | LowCardinality(String) | Source collection (e.g., 'yara-forge-core', 'malpedia') |
| ingested_at | DateTime64(3, 'UTC') | When this rule was ingested |
| rule_text | String | Full rule source code |
| rule_meta | JSON | Rule metadata (author, description, reference, etc.) |
| rule_tags | Array(LowCardinality(String)) | Rule tags |

### Schema Benefits

- **Binary SHA256**: 32 bytes vs 64 bytes (50% storage savings on hash columns)
- **UInt64 rule_id**: Fast joins and lookups via integer key
- **Content-based rule_id**: xxHash64 of canonical rule content (excluding metadata) for deduplication
- **Denormalized rule_name**: Allows queries without joins for common use cases

### Example Queries

```sql
-- Get matches with hex sha256
SELECT
    hex(m.sha256) as sha256,
    m.rule_name,
    m.match_strings
FROM yara_matches m
WHERE m.sha256 = unhex('abc123...')

-- Join with rules for full metadata
SELECT
    hex(m.sha256) as sha256,
    m.rule_name,
    m.match_strings,
    r.rule_meta,
    r.source_collection
FROM yara_matches m
JOIN yara_rules r ON m.rule_id = r.rule_id
WHERE m.sha256 = unhex('abc123...')

-- Find all samples matching a specific rule
SELECT hex(sha256), scan_date
FROM yara_matches
WHERE rule_name = 'APT_Lazarus_Loader'
ORDER BY scan_date DESC
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `YARA_RULES_PATH` | Override the YARA rules directory | `yara/` |
| `YARA_COMPILED_RULES` | Compiled rules filename | `compiled_rules.yarac` |
| `YARA_SOURCE_COLLECTION` | Default source collection name | `default` |