Rahim Saeidi

66 papers A 19B 1C 1Misc 14Journal 16Unranked 15
YearRankTypeTitle / Venue / Authors
2019 J jnl
Comput. Speech Lang.
Emma Jokinen, Rahim Saeidi, Tomi Kinnunen, Paavo Alku
2018 conf
EUSIPCO
Pablo Peso Parada, Rahim Saeidi
2017 Misc conf
ICASSP
Ana Ramírez López, Rahim Saeidi, Lauri Juvela, Paavo Alku
2017 A conf
INTERSPEECH
Kong-Aik Lee, Ville Hautamäki, Tomi Kinnunen, Anthony Larcher, Chunlei Zhang, Andreas Nautsch, Themos Stafylakis, Gang Liu, Mickaël Rouvier, Wei Rao, Federico Alegre, J. Ma, Man-Wai Mak, Achintya Kumar Sarkar, Héctor Delgado, Rahim Saeidi, Hagai Aronowitz, Aleksandr Sizov, Hanwu Sun, Trung Hieu Nguyen, Guangsen Wang, Bin Ma, Ville Vestman, Md. Sahidullah, M. Halonen, Anssi Kanervisto, Gaël Le Lan, Fahimeh Bahmaninezhad, Sergey Isadskiy, Christian Rathgeb, Christoph Busch, Georgios Tzimiropoulos, Q. Qian, Z. Wang, Q. Zhao, T. Wang, H. Li, J. Xue, S. Zhu, R. Jin, T. Zhao, Pierre-Michel Bousquet, Moez Ajili, Waad Ben Kheder, Driss Matrouf, Zhi Hao Lim, Chenglin Xu, Haihua Xu, Xiong Xiao, Eng Siong Chng, Benoit G. B. Fauve, Kaavya Sriskandaraja, Vidhyasaharan Sethu, W. W. Lin, Dennis Alexander Lehmann Thomsen, Zheng-Hua Tan, Massimiliano Todisco, Nicholas W. D. Evans, Haizhou Li, John H. L. Hansen, Jean-François Bonastre, Eliathamby Ambikairajah
2017 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Paavo Alku, Rahim Saeidi
2016 J jnl
Speech Commun.
Pejman Mowlaee, Rahim Saeidi, Yannis Stylianou
2016 A conf
INTERSPEECH
Rahim Saeidi, Ilkka Huhtakallio, Paavo Alku
2016 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Rahim Saeidi, Paavo Alku, Tom Bäckström
2016 conf
Odyssey
Amir Hossein Poorjam, Rahim Saeidi, Tomi Kinnunen, Ville Hautamäki
2016 conf
Odyssey
Andreas Nautsch, Rahim Saeidi, Christian Rathgeb, Christoph Busch
2016 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Rahim Saeidi, Ramón Fernandez Astudillo, Dorothea Kolossa
2015 A conf
INTERSPEECH
Dhananjaya N. Gowda, Rahim Saeidi, Paavo Alku
2015 A conf
INTERSPEECH
Rahim Saeidi, Paavo Alku
2015 A conf
INTERSPEECH
Andreas Nautsch, Rahim Saeidi, Christian Rathgeb, Christoph Busch
2015 Misc conf
ICASSP
Andreas Nautsch, Christian Rathgeb, Rahim Saeidi, Christoph Busch
2015 A conf
INTERSPEECH
Antti Hurmalainen, Rahim Saeidi, Tuomas Virtanen
2015 J jnl
Speech Commun.
Miranti Indar Mandasari, Rahim Saeidi, David A. van Leeuwen
2015 Misc conf
ICASSP
Antti Hurmalainen, Rahim Saeidi, Tuomas Virtanen
2015 A conf
INTERSPEECH
Rahim Saeidi, Tuija Niemi, Hanna Karppelin, Jouni Pohjalainen, Tomi Kinnunen, Paavo Alku
2014 A conf
INTERSPEECH
Finnian Kelly, Rahim Saeidi, Naomi Harte, David A. van Leeuwen
2014 A conf
INTERSPEECH
Pejman Mowlaee, Mario Kaoru Watanabe, Rahim Saeidi
2014 conf
WEBIST (1)
Radu Mariescu-Istodor, Andrei Tabarcea, Rahim Saeidi, Pasi Fränti
2014 A conf
INTERSPEECH
Pejman Mowlaee, Rahim Saeidi, Yannis Stylianou
2014 J jnl
IET Biom.
Miranti Indar Mandasari, Manuel Günther, Roy Wallace, Rahim Saeidi, Sébastien Marcel, David A. van Leeuwen
2014 conf
IWAENC
Pejman Mowlaee, Rahim Saeidi
2013 Misc conf
ICASSP
Mohamad Hasan Bahari, Rahim Saeidi, Hugo Van hamme, David A. van Leeuwen
2013 A conf
INTERSPEECH
Ville Hautamäki, Kong-Aik Lee, David A. van Leeuwen, Rahim Saeidi, Anthony Larcher, Tomi Kinnunen, Taufiq Hasan, Seyed Omid Sadjadi, Gang Liu, Hynek Boril, John H. L. Hansen, Benoit G. B. Fauve
2013 Misc conf
ICASSP
Taufiq Hasan, Rahim Saeidi, John H. L. Hansen, David A. van Leeuwen
2013 A conf
INTERSPEECH
Rahim Saeidi, Kong-Aik Lee, Tomi Kinnunen, Tawfik Hasan, Benoit G. B. Fauve, Pierre-Michel Bousquet, Elie Khoury, Pablo Luis Sordo Martinez, Jia Min Karen Kua, Changhuai You, Hanwu Sun, Anthony Larcher, Padmanabhan Rajan, Ville Hautamäki, Cemal Hanilçi, Billy Braithwaite, Rosa González Hautamäki, Seyed Omid Sadjadi, Gang Liu, Hynek Boril, Navid Shokouhi, Driss Matrouf, Laurent El Shafey, Pejman Mowlaee, Julien Epps, Tharmarajah Thiruvaran, David A. van Leeuwen, Bin Ma, Haizhou Li, John H. L. Hansen, Jean-François Bonastre, Sébastien Marcel, John S. D. Mason, Eliathamby Ambikairajah
2013 J jnl
Comput. Speech Lang.
Ramón Fernandez Astudillo, Dorothea Kolossa, Alberto Abad, Steffen Zeiler, Rahim Saeidi, Pejman Mowlaee, João Paulo da Silva Neto, Rainer Martin
2013 Misc conf
ICASSP
David A. van Leeuwen, Rahim Saeidi
2013 J jnl
IEEE Signal Process. Lett.
Dorothea Kolossa, Steffen Zeiler, Rahim Saeidi, Ramón Fernandez Astudillo
2013 Misc conf
ICASSP
Pejman Mowlaee, Rahim Saeidi
2013 A conf
INTERSPEECH
Pejman Mowlaee, Mario Kaoru Watanabe, Rahim Saeidi
2013 J jnl
IEEE Trans. Speech Audio Process.
Miranti Indar Mandasari, Rahim Saeidi, Mitchell McLaren, David A. van Leeuwen
2013 Misc conf
ICASSP
Cemal Hanilçi, Tomi Kinnunen, Rahim Saeidi, Jouni Pohjalainen, Paavo Alku, Figen Ertas
2013 Misc conf
ICASSP
Pejman Mowlaee, Rahim Saeidi
2013 conf
ICB
Elie Khoury, Bostjan Vesnicer, Javier Franco-Pedroso, Ricardo P. V. Violato, Z. Boulkcnafet, L. M. Mazaira Fernandez, Mireia Díez, J. Kosmala, Houssemeddine Khemiri, T. Cipr, Rahim Saeidi, Manuel Günther, Jerneja Zganec-Gros, Rubén Zazo-Candil, Flávio Olmos Simões, Messaoud Bengherabi, Agustín Álvarez-Marquina, Mikel Peñagarikano, Alberto Abad, M. Boulayemen, Petr Schwarz, David A. van Leeuwen, Javier Gonzalez-Dominguez, Mário Uliani Neto, Elhocine Boutellaa, Pedro Gómez-Vilda, Amparo Varona, Dijana Petrovska-Delacrétaz, Pavel Matejka, Joaquín González-Rodríguez, Tiago Freitas Pereira, Farid Harizi, Luis Javier Rodríguez-Fuentes, Laurent El Shafey, Marcus A. Angeloni, Germán Bordel, Gérard Chollet, Sébastien Marcel
2012 J jnl
IEEE Trans. Speech Audio Process.
Pejman Mowlaee, Rahim Saeidi, Mads Græsbøll Christensen, Zheng-Hua Tan, Tomi Kinnunen, Pasi Fränti, Søren Holdt Jensen
2012 conf
Odyssey
Tomi Kinnunen, Rahim Saeidi, Jussi Leppänen, Jukka Saarinen
2012 Misc conf
ICASSP
Cemal Hanilçi, Tomi Kinnunen, Rahim Saeidi, Jouni Pohjalainen, Paavo Alku, Figen Ertas, Johan Sandberg, Maria Hansson-Sandsten
2012 conf
Odyssey
Rahim Saeidi, Antti Hurmalainen, Tuomas Virtanen, David A. van Leeuwen
2012 A conf
INTERSPEECH
Antti Hurmalainen, Rahim Saeidi, Tuomas Virtanen
2012 J jnl
IEEE Trans. Speech Audio Process.
Tomi Kinnunen, Rahim Saeidi, Filip Sedlak, Kong-Aik Lee, Johan Sandberg, Maria Hansson-Sandsten, Haizhou Li
2012 conf
LVA/ICA
Pejman Mowlaee, Rahim Saeidi, Rainer Martin
2012 A conf
INTERSPEECH
Pejman Mowlaee, Rahim Saeidi, Rainer Martin
2012 conf
Odyssey
Cemal Hanilçi, Tomi Kinnunen, Rahim Saeidi, Jouni Pohjalainen, Paavo Alku, Figen Ertas
2012 J jnl
IEEE Signal Process. Lett.
Cemal Hanilçi, Tomi Kinnunen, Figen Ertas, Rahim Saeidi, Jouni Pohjalainen, Paavo Alku
2012 Misc conf
ICASSP
Pejman Mowlaee, Rahim Saeidi, Mads Græsbøll Christensen, Rainer Martin
2011 C conf
ASRU
Luis Javier Rodríguez, Mikel Peñagarikano, Amparo Varona, Mireia Díez, Germán Bordel, David Martínez González, Jesús Antonio Villalba López, Antonio Miguel, Alfonso Ortega, Eduardo Lleida, Alberto Abad, Oscar Koller, Isabel Trancoso, Paula Lopez-Otero, Laura Docío Fernández, Carmen García-Mateo, Rahim Saeidi, Mehdi Soufifar, Tomi Kinnunen, Torbjørn Svendsen, Pasi Fränti
2011 A conf
INTERSPEECH
Pejman Mowlaee, Rahim Saeidi, Zheng-Hua Tan, Mads Græsbøll Christensen, Tomi Kinnunen, Pasi Fränti, Søren Holdt Jensen
2010 A conf
INTERSPEECH
Jouni Pohjalainen, Rahim Saeidi, Tomi Kinnunen, Paavo Alku
2010 A conf
INTERSPEECH
Rahim Saeidi, Pejman Mowlaee, Tomi Kinnunen, Zheng-Hua Tan, Mads Græsbøll Christensen, Søren Holdt Jensen, Pasi Fränti
2010 Misc conf
ICASSP
Rahim Saeidi, Tomi Kinnunen, Hamid Reza Sadegh Mohammadi, Robert D. Rodman, Pasi Fränti
2010 Misc conf
ICASSP
Pejman Mowlaee, Rahim Saeidi, Zheng-Hua Tan, Mads Græsbøll Christensen, Pasi Fränti, Søren Holdt Jensen
2010 J jnl
IEEE Signal Process. Lett.
Johan Sandberg, Maria Hansson-Sandsten, Tomi Kinnunen, Rahim Saeidi, Patrick Flandrin, Pierre Borgnat
2010 B conf
ICPR
Rahim Saeidi, Pejman Mowlaee, Tomi Kinnunen, Zheng-Hua Tan, Mads Græsbøll Christensen, Søren Holdt Jensen, Pasi Fränti
2010 conf
Odyssey
Rahim Saeidi, Jouni Pohjalainen, Tomi Kinnunen, Paavo Alku
2010 J jnl
IEEE Signal Process. Lett.
Rahim Saeidi, Jouni Pohjalainen, Tomi Kinnunen, Paavo Alku
2010 A conf
INTERSPEECH
Tomi Kinnunen, Rahim Saeidi, Johan Sandberg, Maria Hansson-Sandsten
2009 J jnl
IEEE Trans. Speech Audio Process.
Rahim Saeidi, H. R. S. Mohammadi, Todor Ganchev, Robert D. Rodman
2008 Misc conf
CSICC
Rahim Saeidi, Hamid Reza Sadegh Mohammadi, Todor Ganchev, Robert D. Rodman
2007 conf
ICASSP (4)
Rahim Saeidi, H. R. S. Mohammadi, Robert D. Rodman, Tomi Kinnunen
2007 conf
ICASSP (4)
H. R. S. Mohammadi, Rahim Saeidi, M. R. Rohani, Robert D. Rodman
2006 conf
ICASSP (1)
Rahim Saeidi, Hamid Reza Sadegh Mohammadi, Mohammad Khalaj-Amirhosseini
2006 conf
EUSIPCO
Hamid Reza Sadegh Mohammadi, Rahim Saeidi
sql/redb_js_tables.sql
← Index sql/redb_js_tables.sql sql
-- JavaScript malware analysis tables
-- Engine: ReplacingMergeTree(analysis_date) — latest analysis wins on re-processing
--
-- File order:
--   1. redb_js_features
--   2. redb_js_suspicious_apis
--   3. redb_js_deobfuscation
--   4. code_text_content              (generic text-content table; JS today,
--                                      PowerShell / Python / email / extracted
--                                      PDF / Office text in the future)
--   5. redb_iocs source_type ALTER    (extends Enum8 with text_raw/text_normalized
--                                      so JS — and any future text-based pipeline —
--                                      can distinguish IOCs found in the raw vs
--                                      normalised surface)
--   6. redb_iocs ioc_type ALTER       (adds registry_key=42 so HKLM/HKCU/HKEY_*
--                                      keys are extracted alongside file paths)
--
-- Decoded strings from JS still go into the shared code_binja_strings_raw
-- table (same schema used by DecompileBinja and DecompileAPK). JS
-- string_encoding values: hex, unicode, charcode, base64, concat. Plain long
-- literals are not extracted here — they're already in code_text_content and
-- scraped by the IOC pipeline over text_raw/text_normalized.
-- string_offset is the line number in the source file.
--
-- redb_js_features.script_type values (file format / container, first match):
--   jse, wsf, hta, embedded_html, wscript, esm, node_module, standalone, unknown
-- redb_js_features.detected_environment values (runtime by API surface, first
-- match):
--   wscript, browser_extension, service_worker, deno, node, browser, unknown

-- 1. Core features & obfuscation metrics (1 row per sample)
CREATE TABLE IF NOT EXISTS redb_js_features (
    sha256 FixedString(64),
    line_count UInt32,
    char_count UInt64,
    text_entropy Float64,
    max_line_length UInt32,
    avg_line_length Float64,
    is_minified UInt8,
    is_likely_obfuscated UInt8,
    obfuscator_name LowCardinality(String),
    obfuscation_score UInt8,
    obfuscation_techniques Array(String),
    eval_count UInt32,
    function_constructor_count UInt32,
    settimeout_setinterval_count UInt32,
    document_write_count UInt32,
    innerhtml_count UInt32,
    unescape_count UInt32,
    fromcharcode_count UInt32,
    atob_count UInt32,
    decodeuri_count UInt32,
    total_function_count UInt32,
    total_variable_count UInt32,
    max_nesting_depth UInt16,
    avg_identifier_length Float64,
    hex_string_count UInt32,
    unicode_escape_count UInt32,
    long_string_count UInt32,
    base64_string_count UInt32,
    comment_ratio Float64,
    script_type LowCardinality(String),
    detected_environment LowCardinality(String),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 2. Suspicious API calls (multi-row per sample)
--
-- `revealed_by_deobf` is 1 when the API only appears after the deobfuscation
-- pass (i.e. the call site is hidden in the raw artefact and surfaces only in
-- text_normalized). Useful for filtering "what did normalisation actually
-- buy us" without re-running the diff.
CREATE TABLE IF NOT EXISTS redb_js_suspicious_apis (
    sha256 FixedString(64),
    api_name String,
    api_category LowCardinality(String),
    call_count UInt32,
    line_numbers Array(UInt32),
    context_snippet String,
    revealed_by_deobf UInt8,
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY (sha256, api_name);

-- 3. Deobfuscation results (1 row per sample)
CREATE TABLE IF NOT EXISTS redb_js_deobfuscation (
    sha256 FixedString(64),
    deobfuscator_used LowCardinality(String),
    deobfuscation_successful UInt8,
    original_size UInt64,
    deobfuscated_size UInt64,
    size_change_ratio Float64,
    original_entropy Float64,
    deobfuscated_entropy Float64,
    new_strings_found UInt32,
    new_apis_found UInt32,
    deobfuscated_sha256 FixedString(64),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 4. Generic text-content table for any text-based artefact (JS today;
--    PowerShell, Python, plain text, email bodies, extracted PDF/Office text
--    in the future). One row per sha256. content_type carries the magika
--    label so callers can filter without joining other tables.
CREATE TABLE IF NOT EXISTS code_text_content (
    sha256 FixedString(64),
    content_type LowCardinality(String),
    text_raw String CODEC(ZSTD(3)),
    text_normalized Nullable(String) CODEC(ZSTD(3)),
    normalizer_used Nullable(String),
    analysis_date DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY sha256;

-- 5. Extend redb_iocs.source_type Enum8 with two universal text-content
--    surfaces: text_raw (the artefact's original text) and text_normalized
--    (a deobfuscated/canonicalised form). Used by the JS IOC extraction
--    pipeline today; any future text-based pipeline (PowerShell, PDF, etc.)
--    plugs into the same two values.
--
-- Existing rows keep their stored integer values; only newly-inserted rows
-- can use 4/5. The MODIFY COLUMN must list the full final enum, including
-- the existing values (1/2/3) — ClickHouse rejects partial alters.
ALTER TABLE redb_iocs
    MODIFY COLUMN source_type
    Enum8('decompiled_function'=1, 'disassembled_function'=2, 'string'=3,
          'text_raw'=4, 'text_normalized'=5);

-- 6. Extend redb_iocs.ioc_type Enum8 with registry_key=42. Windows registry
--    paths (HKLM\..., HKCU\..., HKEY_LOCAL_MACHINE\...) are a distinct class
--    of IOC from filesystem paths and were previously extracted by nothing.
--    Same MODIFY COLUMN constraint as the source_type alter — the full final
--    enum must be listed.
ALTER TABLE redb_iocs
    MODIFY COLUMN ioc_type
    Enum8('ipv4'=1, 'ipv6'=2, 'fqdn'=3, 'url'=4, 'email'=5, 'server'=6,
          'hash_md5'=10, 'hash_sha1'=11, 'hash_sha256'=12,
          'cve'=20, 'cwe'=21, 'cpe'=22,
          'crypto_btc'=30, 'crypto_eth'=31, 'crypto_xrp'=32, 'crypto_bch'=33,
          'crypto_ada'=34, 'crypto_substrate'=35,
          'path_linux'=40, 'path_windows'=41, 'registry_key'=42,
          'onion'=50);

-- 7. Migrate redb_js_features to the two-tier obfuscation verdict.
--    `is_obfuscated` (binary heuristic at score >=40) is renamed to
--    `is_likely_obfuscated` (heuristic at >=60 + ≥1 strong signal, OR
--    js-x-ray flagged the obfuscator family). `obfuscator_name` is the
--    family name reported by @nodesecure/js-x-ray (jsfuck, obfuscator.io,
--    morse, jjencode, freejsobfuscator, ...) or empty when not detected.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE redb_js_features
    RENAME COLUMN is_obfuscated TO is_likely_obfuscated;
ALTER TABLE redb_js_features
    ADD COLUMN IF NOT EXISTS obfuscator_name LowCardinality(String) AFTER is_likely_obfuscated;

-- 8. Harmonise code_text_content column names with redb_iocs.source_type
--    enum values. The enum already uses `text_raw` / `text_normalized` for
--    the surface labels; the table previously stored the same data under
--    `content_raw` / `content_normalized`, forcing every join across the two
--    to translate names. Renaming the columns produces a self-documenting
--    schema where `redb_iocs.source_type='text_raw'` points directly at
--    `code_text_content.text_raw`.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE code_text_content
    RENAME COLUMN content_raw TO text_raw;
ALTER TABLE code_text_content
    RENAME COLUMN content_normalized TO text_normalized;

-- 9. Add revealed_by_deobf flag to redb_js_suspicious_apis. The strings/APIs
--    extractors now scan both the raw source and the deobfuscated text so APIs
--    hidden behind one obfuscation layer (Vjw0rm-style array.join + eval,
--    Dean-Edwards packers, ...) surface in the table. The flag is 1 only when
--    the API was *not* found in the raw source — querying for it isolates
--    "deobf-only" findings without joining redb_js_deobfuscation.
--
--    Run once against an existing deployment. The CREATE TABLE above
--    already reflects the post-migration shape, so fresh installs skip this.
ALTER TABLE redb_js_suspicious_apis
    ADD COLUMN IF NOT EXISTS revealed_by_deobf UInt8 AFTER context_snippet;