Valeria Herskovic

83 papers A 2B 2C 12Journal 31Unranked 34
YearRankTypeTitle / Venue / Authors
2025 J jnl
SoftwareX
Bernardo Fernández-Zambrano, Carolina Fuentes, Pedro O. Rossel, Valeria Herskovic
2025 C conf
CLEI
Carla Paris, Valeria Herskovic, Katherine Vergara
2025 J jnl
SoftwareX
Andrés A. Sánchez-Cabrera, Pedro O. Rossel, Fabiola Aguirre-Delgado, Laura Aravena-Canese, Karen Chandía-Vásquez, Valeria Espejo-Videla, Valeria Herskovic
2024 conf
SIGCSE (1)
Valeria Herskovic, Jorge Munoz-Gama, Fernando Balladares, Pablo Flores, Nicolás Quiróz
2024 J jnl
PeerJ Comput. Sci.
Andres Jahr, Javiera Meza, Jorge Munoz-Gama, Luis Herskovic, Valeria Herskovic
2024 J jnl
IEEE Access
Mateo Ormeno, Ha Dao, Valeria Herskovic, Kensuke Fukuda
2024 conf
CSCW Companion
Carolina Fuentes, Iyubanit Rodríguez, Gabriela Cajamarca, Laura Cabrera Quiros, Andrés Lucero, Valeria Herskovic, Kenton O'Hara
2023 J jnl
J. Ambient Intell. Humaniz. Comput.
Iyubanit Rodriguez, Pedro O. Rossel, Marcelo Fernández, Carolina Fuentes, Alberto León, Valeria Herskovic
2023 conf
CHItaly
Alessio Bellino, Valeria Herskovic
2023 A conf
Conference on Designing Interactive Systems
Gabriela Cajamarca, Valeria Herskovic, Stephannie Dondighual, Carolina Fuentes, Nervo Verdezoto
2022 A conf
Conference on Designing Interactive Systems
Gabriela Cajamarca, Valeria Herskovic, Andrés Lucero, Angeles Aldunate
2022 J jnl
PeerJ Comput. Sci.
Fabián Fernández-Vera, Denisse C. Urrutia, Pedro O. Rossel, Valeria Herskovic, Carolina Fuentes
2022 J jnl
J. Theor. Appl. Electron. Commer. Res.
Carmen Gerea, Valeria Herskovic
2022 conf
ICER (2)
Katherine Vergara, Valeria Herskovic, Patricia Guerrero
2022 J jnl
Int. J. Hum. Comput. Stud.
Gabriela Cajamarca, Valeria Herskovic
2021 J jnl
ACM Trans. Comput. Educ.
Alessio Bellino, Valeria Herskovic, Michael Hund, Jorge Munoz-Gama
2021 conf
SCCC
Jorge Munoz-Gama, Juan Salas-Morales, Valeria Herskovic
2021 J jnl
Softw. Syst. Model.
Fernanda Gonzalez-Lopez, Luise Pufahl, Jorge Munoz-Gama, Valeria Herskovic, Marcos Sepúlveda
2021 J jnl
Pers. Ubiquitous Comput.
Luís A. Castro, Laura S. Gaytán-Lugo, Pedro C. Santana-Mancilla, Valeria Herskovic, Elba del Carmen Valderrama Bahamóndez
2020 J jnl
J. Biomed. Informatics
Camilo Alvarez, Cecilia Saint-Pierre, Valeria Herskovic, Marcos Sepúlveda, Florencia Prieto
2020 J jnl
Sensors
Gabriela Cajamarca, Valeria Herskovic, Pedro O. Rossel
2020 J jnl
IEEE J. Biomed. Health Informatics
Cecilia Saint-Pierre, Florencia Prieto, Valeria Herskovic, Marcos Sepúlveda
2019 conf
INTERACT (1)
Iyubanit Rodríguez, Maria Karyda, Andrés Lucero, Valeria Herskovic
2019 J jnl
IEEE Access
Alessio Bellino, Valeria Herskovic
2019 J jnl
J. Univers. Comput. Sci.
Valeria Herskovic, Sergio F. Ochoa, José A. Pino
2019 conf
UCAmI
Gabriela Cajamarca, Valeria Herskovic, Pedro O. Rossel
2019 conf
CHI Extended Abstracts
Carolina Fuentes, Martin Porcheron, Joel E. Fischer, Enrico Costanza, Nervo Verdezoto, Valeria Herskovic, Oren Zuckerman, Leila Takayama
2019 J jnl
CoRR
Carolina Fuentes, Martin Porcheron, Joel E. Fischer, Nervo Verdezoto, Oren Zuckerman, Enrico Costanza, Valeria Herskovic, Leila Takayama
2019 J jnl
Int. J. Distributed Sens. Networks
Pedro O. Rossel, Lorenzo Paredes, Antonio Bascur, Claudia Martínez-Carrasco, Valeria Herskovic
2019 conf
CLIHC
Iyubanit Rodríguez, Simón Rodríguez, Andrés Lucero, Valeria Herskovic
2019 conf
CHI Extended Abstracts
Yunan Chen, Nervo Verdezoto, Xinning Gui, Xiaojuan Ma, Claus Bossen, Naveen Bagalkot, Valeria Herskovic, Bernd Ploderer
2018 J jnl
J. Biomed. Informatics
Camilo Alvarez, Eric Rojas, Michael Arias, Jorge Munoz-Gama, Marcos Sepúlveda, Valeria Herskovic, Daniel Capurro
2018 conf
UCAmI
Antonio Bascur, Pedro O. Rossel, Valeria Herskovic, Claudia Martínez-Carrasco
2018 conf
CHI Extended Abstracts
Iyubanit Rodriguez, Maria Karyda, Andrés Lucero, Valeria Herskovic
2018 J jnl
Sensors
Gabriela Cajamarca, Iyubanit Rodríguez, Valeria Herskovic, Mauricio Campos, Juan Carlos Riofrío
2018 conf
Business Process Management Workshops
Ricardo Lira, Juan Salas-Morales, Rene de la Fuente, Ricardo Fuentes, Marcos Sepúlveda, Michael Arias, Valeria Herskovic, Jorge Munoz-Gama
2017 J jnl
J. Ambient Intell. Humaniz. Comput.
Carolina Fuentes, Valeria Herskovic, Iyubanit Rodriguez, Carmen Gerea, Maíra Marques, Pedro O. Rossel
2017 conf
CRIWG
Cecilia Saint-Pierre, Valeria Herskovic, Marcos Sepúlveda
2017 conf
HICSS
Iyubanit Rodriguez, Carolina Fuentes, Valeria Herskovic, José A. Pino
2017 J jnl
Mob. Inf. Syst.
Iyubanit Rodriguez, Gabriela Cajamarca, Valeria Herskovic, Carolina Fuentes, Mauricio Campos
2017 conf
UCAmI
Marcelo Fernández, Iyubanit Rodriguez, Pedro O. Rossel, Carolina Fuentes, Valeria Herskovic
2017 conf
BPM (Demos)
Eric Rojas, Carlos Fernández-Llatas, Vicente Traver, Jorge Munoz-Gama, Marcos Sepúlveda, Valeria Herskovic, Daniel Capurro
2017 conf
UCAmI
Gabriela Cajamarca, Iyubanit Rodriguez, Valeria Herskovic, Mauricio Campos
2016 conf
UbiComp Adjunct
Iyubanit Rodriguez, Valeria Herskovic, Carolina Fuentes, Mauricio Campos
2016 J jnl
Inf. Syst. Frontiers
Pedro O. Rossel, Valeria Herskovic, Erika Ormeño
2016 B conf
TEI
Carolina Fuentes, Iyubanit Rodriguez, Valeria Herskovic
2016 conf
UCAmI (1)
Iyubanit Rodriguez, Carolina Fuentes, Valeria Herskovic, Mauricio Campos
2015 conf
AmIHEALTH
Carolina Fuentes, Iyubanit Rodriguez, Valeria Herskovic
2015 conf
CLIHC
Carmen Gerea, Valeria Herskovic
2015 C conf
CSCWD
Iyubanit Rodriguez, Macarena Oteo, Samuel Gleisner, Valeria Herskovic
2015 conf
UCAmI
Carolina Fuentes, Carmen Gerea, Valeria Herskovic, Maíra Marques, Iyubanit Rodriguez, Pedro O. Rossel
2014 C conf
CSCWD
Alvaro Monares, Sergio F. Ochoa, Valeria Herskovic, Rodrigo M. Santos, José A. Pino
2014 J jnl
Int. J. Hum. Comput. Interact.
Carolina Fuentes, Carlos Hernández, Lizbeth Escobedo, Valeria Herskovic, Monica Tentori
2014 J jnl
J. Syst. Softw.
Pedro Antunes, Valeria Herskovic, Sergio F. Ochoa, José A. Pino
2013 conf
CRIWG
Pedro O. Rossel, Valeria Herskovic
2013 ed.
ChileCHI
Cristian Rusu, Javier Bustos-Jiménez, Valeria Herskovic
2013 conf
CRIWG
Valeria Herskovic, Sergio F. Ochoa, José A. Pino, Pedro Antunes, Emilio G. Ormeño
2013 C conf
CSCWD
Pedro Antunes, Valeria Herskovic, Sergio F. Ochoa, José A. Pino
2013 J jnl
J. Univers. Comput. Sci.
Valeria Herskovic, Carolina Fuentes, Richard Ibarra, Javier Bustos-Jiménez
2013 conf
ChileCHI
Cecilia Saint-Pierre, Esteban Piñones, Matías Rojas, Valeria Herskovic
2013 conf
ChileCHI
Teresa Siu, Valeria Herskovic
2013 conf
UCAmI
Carolina Fuentes, Valeria Herskovic, Jurgen Heysen, Monica Tentori
2012 conf
LA-WEB
Ricardo Baeza-Yates, Cristian Barrera, Valeria Herskovic
2012 ed.
CRIWG
Valeria Herskovic, Heinz Ulrich Hoppe, Marc Jansen, Jürgen Ziegler
2012 C conf
CSCWD
Alvaro Monares, Sergio F. Ochoa, José A. Pino, Valeria Herskovic
2012 B conf
SMC
Sergio F. Ochoa, José A. Pino, Nelson Baloian, Pedro Antunes, Valeria Herskovic
2012 J jnl
ACM Comput. Surv.
Pedro Antunes, Valeria Herskovic, Sergio F. Ochoa, José A. Pino
2012 C conf
CSCWD
Valeria Herskovic, H. Andrés Neyem, Sergio F. Ochoa, José A. Pino, Pedro Antunes
2011 C conf
CSCWD
Alvaro Monares, Valeria Herskovic, David Suarez, Manuel J. Ibarra, Sergio F. Ochoa, José A. Pino
2011 J jnl
Expert Syst. Appl.
Alvaro Monares, Sergio F. Ochoa, José A. Pino, Valeria Herskovic, Juan Rodríguez-Covili, H. Andrés Neyem
2011 J jnl
J. Univers. Comput. Sci.
Valeria Herskovic, Sergio F. Ochoa, José A. Pino, H. Andrés Neyem
2011 J jnl
Future Gener. Comput. Syst.
Juan Rodríguez-Covili, Sergio F. Ochoa, José A. Pino, Valeria Herskovic, Jesús Favela, David A. Mejia, Alberto L. Morán
2010 conf
CRIWG
Rodrigo Bartels, Valeria Herskovic, Alvaro Monares, Sergio F. Ochoa, José A. Pino, Marcos R. S. Borges
2010 conf
CRIWG
Pedro Antunes, Cláudio Sapateiro, José A. Pino, Valeria Herskovic, Sergio F. Ochoa
2009 J jnl
Inf. Sci.
Sergio F. Ochoa, Valeria Herskovic, Edgard Pineda, José A. Pino
2009 conf
CRIWG
Valeria Herskovic, David A. Mejia, Jesús Favela, Alberto L. Morán, Sergio F. Ochoa, José A. Pino
2009 C conf
CSCWD
Alvaro Monares, Sergio F. Ochoa, José A. Pino, Valeria Herskovic, H. Andrés Neyem
2009 C conf
CSCWD
Valeria Herskovic, Sergio F. Ochoa, José A. Pino
2008 conf
CRIWG
Antonio Ferreira, Valeria Herskovic, Pedro Antunes
2008 C conf
CSCWD
Valeria Herskovic, Sergio F. Ochoa, José A. Pino, H. Andrés Neyem
2007 C conf
CSCWD
Sergio F. Ochoa, Valeria Herskovic, José A. Pino
2007 conf
CRIWG
Valeria Herskovic, José A. Pino, Sergio F. Ochoa, Pedro Antunes
2006 C conf
CSCWD
Valeria Herskovic, Sergio F. Ochoa, José A. Pino
redb/extractors/js_extractors/js_deobfuscation.py
← Index redb/extractors/js_extractors/js_deobfuscation.py python
import hashlib
import inspect
import re
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.js_extractor import JSExtractor
from redb.extractors.js_extractors.js_patterns import PATTERNS

# String literals of 4+ characters; only used by the deobfuscation diff to count
# strings revealed after deobfuscation. Compiled once at module load.
_STRING_LITERAL_4PLUS_RE = re.compile(r"[\"\']([^\"\']{4,})[\"\']")


class JSDeobfuscationExtractor(JSExtractor):
    """Compute pre/post-deobfuscation metrics for a JS sample.

    The actual deobfuscation pass (external tool with jsbeautifier fallback)
    lives on `JSContext.deobfuscated` and is cached per sample, so any other
    extractor that needs the deobfuscated text reads the same value without
    re-running the subprocess. Configure the external tool via env vars:
        JS_DEOBFUSCATOR_PATH    Path or name (default: webcrack)
        JS_DEOBFUSCATE_TIMEOUT  Seconds (default: 60)
    """

    def __init__(
        self, filepath, log, exporters=None, index_prefix=None,
        known_benign=False, known_malicious=False, source=None, context=None,
    ):
        super().__init__(
            filepath, log, exporters, index_prefix,
            known_benign, known_malicious, source, context=context,
        )
        self.deobfuscation_result = None
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.JS_DEOBFUSCATION.value

    def extract(self):
        src = self.js_source
        if not src:
            return None

        deobfuscated, deobfuscator_used = self._context.deobfuscated
        if deobfuscated is None:
            return None

        original_size = len(src)
        original_entropy = self._context.text_entropy
        deobfuscated_size = len(deobfuscated)
        deobfuscated_entropy = self._calculate_text_entropy(deobfuscated)
        size_change_ratio = round(deobfuscated_size / original_size, 4) if original_size else 0.0

        # Strings revealed by deobfuscation: matched literals are extracted from
        # both versions and the set difference is the count of "new" strings.
        original_strings = set(_STRING_LITERAL_4PLUS_RE.findall(src))
        deobfuscated_strings = set(_STRING_LITERAL_4PLUS_RE.findall(deobfuscated))
        new_strings = deobfuscated_strings - original_strings

        # Suspicious APIs revealed by deobfuscation. Both sides of the diff
        # come from JSContext caches: the raw scan is computed once for the
        # whole pipeline; the deobfuscated scan is computed once and reused
        # by JSSuspiciousAPIsExtractor's revealed_by_deobf rows.
        original_apis = {n for n in self._context.scan if n in PATTERNS}
        deobfuscated_apis = set(self._context.scan_deobfuscated)
        new_apis = deobfuscated_apis - original_apis

        deobfuscated_sha256 = hashlib.sha256(deobfuscated.encode('utf-8')).hexdigest()

        self.deobfuscation_result = {
            'deobfuscator_used': deobfuscator_used,
            'deobfuscation_successful': True,
            'original_size': original_size,
            'deobfuscated_size': deobfuscated_size,
            'size_change_ratio': size_change_ratio,
            'original_entropy': original_entropy,
            'deobfuscated_entropy': deobfuscated_entropy,
            'new_strings_found': len(new_strings),
            'new_apis_found': len(new_apis),
            'deobfuscated_sha256': deobfuscated_sha256,
        }
        return self.deobfuscation_result

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ClickHouseExporter":
            if not self.deobfuscation_result:
                return None

            r = self.deobfuscation_result
            current_time = datetime.now(timezone.utc)
            data = [[
                self.sha256,
                r['deobfuscator_used'],
                int(r['deobfuscation_successful']),
                r['original_size'],
                r['deobfuscated_size'],
                r['size_change_ratio'],
                r['original_entropy'],
                r['deobfuscated_entropy'],
                r['new_strings_found'],
                r['new_apis_found'],
                r['deobfuscated_sha256'],
                current_time,
            ]]

            column_names = [
                "sha256", "deobfuscator_used", "deobfuscation_successful",
                "original_size", "deobfuscated_size", "size_change_ratio",
                "original_entropy", "deobfuscated_entropy",
                "new_strings_found", "new_apis_found",
                "deobfuscated_sha256", "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)", "LowCardinality(String)", "UInt8",
                "UInt64", "UInt64", "Float64",
                "Float64", "Float64",
                "UInt32", "UInt32",
                "FixedString(64)", "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_js_deobfuscation"