Vinay A. Vaishampayan

97 papers A* 3A 2B 18C 1Misc 6Journal 52Unranked 14
YearRankTypeTitle / Venue / Authors
2024 J jnl
CoRR
Vinay A. Vaishampayan, Thilaharani Antony, Amirthagunaraj Yogarathnam
2022 J jnl
IEEE Trans. Commun.
Vinay A. Vaishampayan, Maiara F. Bollauf
2021 J jnl
IEEE Trans. Inf. Theory
Maiara F. Bollauf, Vinay A. Vaishampayan, Sueli I. R. Costa
2021 J jnl
IEEE Trans. Commun.
Vinay A. Vaishampayan
2020 J jnl
CoRR
Maiara F. Bollauf, Vinay A. Vaishampayan, Sueli I. R. Costa
2020 J jnl
Adv. Math. Commun.
Marcelo Firer, Sueli I. R. Costa, Vinay A. Vaishampayan
2019 B conf
ISIT
Vinay A. Vaishampayan
2019 J jnl
CoRR
Vinay A. Vaishampayan
2018 J jnl
CoRR
Maiara F. Bollauf, Vinay A. Vaishampayan, Sueli I. R. Costa
2018 B conf
ISIT
Vinay A. Vaishampayan
2018 J jnl
CoRR
Vinay A. Vaishampayan
2018 J jnl
CoRR
Vinay A. Vaishampayan, Maiara F. Bollauf
2017 J jnl
CoRR
Vinay A. Vaishampayan, Maiara F. Bollauf
2017 B conf
ISIT
Vinay A. Vaishampayan, Maiara F. Bollauf
2017 J jnl
CoRR
Maiara F. Bollauf, Vinay A. Vaishampayan, Sueli I. R. Costa
2017 B conf
ISIT
Maiara F. Bollauf, Vinay A. Vaishampayan, Sueli I. R. Costa
2017 J jnl
CoRR
Vinay A. Vaishampayan
2016 J jnl
IEEE/ACM Trans. Netw.
Robert Margolies, Ashwin Sridharan, Vaneet Aggarwal, Rittwik Jana, N. K. Shankaranarayanan, Vinay A. Vaishampayan, Gil Zussman
2015 J jnl
CoRR
Antonio C. de A. Campello Jr., Vinay A. Vaishampayan
2015 conf
OFC
Goji Nakagawa, Mark D. Feuer, Vitaly Mikhailov, Vinay A. Vaishampayan, Shoichiro Oda, Kyosuke Sone, Setsuo Yoshida, Yasuhiko Aoki, Jens C. Rasmussen
2015 J jnl
IEEE Trans. Inf. Theory
Chao Tian, Birenjith Sasidharan, Vaneet Aggarwal, Vinay A. Vaishampayan, P. Vijay Kumar
2015 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, Antonio Campello
2014 A* conf
INFOCOM
Vaneet Aggarwal, Chao Tian, Vinay A. Vaishampayan, Yih-Farn Robin Chen
2014 A* conf
INFOCOM
Robert Margolies, Ashwin Sridharan, Vaneet Aggarwal, Rittwik Jana, N. K. Shankaranarayanan, Vinay A. Vaishampayan, Gil Zussman
2014 J jnl
CoRR
Chao Tian, Birenjith Sasidharan, Vaneet Aggarwal, Vinay A. Vaishampayan, P. Vijay Kumar
2014 J jnl
CoRR
Antonio Campello, Vinay A. Vaishampayan
2014 B conf
ITW
Antonio C. de A. Campello Jr., Vinay A. Vaishampayan
2013 J jnl
IEEE Trans. Inf. Theory
Cristiano Torezzan, Sueli I. R. Costa, Vinay A. Vaishampayan
2013 J jnl
CoRR
Vaneet Aggarwal, Chao Tian, Vinay A. Vaishampayan, Yih-Farn Robin Chen
2013 conf
IEEE BigData
Yih-Farn Chen, Scott Daniels, Marios Hadjieleftheriou, Pingkai Liu, Chao Tian, Vinay A. Vaishampayan
2013 J jnl
CoRR
Chao Tian, Vaneet Aggarwal, Vinay A. Vaishampayan
2013 B conf
ISIT
Chao Tian, Vaneet Aggarwal, Vinay A. Vaishampayan
2013 Misc conf
ITA
Sueli I. R. Costa, Cristiano Torezzan, Antonio Campello, Vinay A. Vaishampayan
2013 J jnl
IEEE Trans. Multim.
Vaneet Aggarwal, Vijay Gopalakrishnan, Rittwik Jana, K. K. Ramakrishnan, Vinay A. Vaishampayan
2013 J jnl
IEEE Trans. Parallel Distributed Syst.
Rajesh Krishna Panta, Rittwik Jana, Fan Cheng, Yih-Farn Robin Chen, Vinay A. Vaishampayan
2013 B conf
ITW
Antonio Campello, Vinay A. Vaishampayan, Sueli I. R. Costa
2013 conf
IEEE BigData
Antonio Campello, Vinay A. Vaishampayan
2012 Misc conf
CISS
Khawla Alnajjar, Vaneet Aggarwal, Vinay A. Vaishampayan, Xiaodong Wang
2012 B conf
ICIP
Lixia Yang, Chao Tian, Vinay A. Vaishampayan, Amy R. Reibman
2012 J jnl
CoRR
Cristiano Torezzan, Sueli I. R. Costa, Vinay A. Vaishampayan
2012 Misc conf
COMSNETS
Vaneet Aggarwal, Vijay Gopalakrishnan, Rittwik Jana, K. K. Ramakrishnan, Vinay A. Vaishampayan
2012 J jnl
CoRR
Vinay A. Vaishampayan
2011 J jnl
Discret. Comput. Geom.
Neil J. A. Sloane, Vinay A. Vaishampayan, Sueli I. Rodrigues Costa
2011 Misc conf
COMSNETS
Pat Diminico, Vijay Gopalakrishnan, Rittwik Jana, K. K. Ramakrishnan, Deborah F. Swayne, Vinay A. Vaishampayan
2011 B conf
ISIT
Vinay A. Vaishampayan, Chao Tian, Mark D. Feuer
2011 A conf
Internet Measurement Conference
Vijay Gopalakrishnan, Rittwik Jana, K. K. Ramakrishnan, Deborah F. Swayne, Vinay A. Vaishampayan
2011 conf
SD&A
Chao Tian, Vinay A. Vaishampayan, Yifu Zhang
2010 A* conf
INFOCOM
Vijay Gopalakrishnan, Rittwik Jana, Ralph Knag, K. K. Ramakrishnan, Deborah F. Swayne, Vinay A. Vaishampayan
2010 J jnl
IEEE J. Sel. Areas Commun.
Luca Venturino, Vinay A. Vaishampayan, Mark D. Feuer, Xiaodong Wang
2010 B conf
ISIT
Luca Venturino, Vinay A. Vaishampayan, Mark D. Feuer, Xiaodong Wang
2010 B conf
ISIT
Neil J. A. Sloane, Vinay A. Vaishampayan, Sueli I. Rodrigues Costa
2009 J jnl
IEEE Trans. Inf. Theory
Chao Tian, Vinay A. Vaishampayan, Neil J. A. Sloane
2009 J jnl
Discret. Comput. Geom.
Neil J. A. Sloane, Vinay A. Vaishampayan
2009 B conf
ISIT
Cristiano Torezzan, Sueli I. R. Costa, Vinay A. Vaishampayan
2006 J jnl
IEEE Trans. Inf. Theory
Ingrid Daubechies, Ronald A. DeVore, C. Sinan Güntürk, Vinay A. Vaishampayan
2006 J jnl
IEEE Trans. Multim.
Sandeep Kanumuri, Pamela C. Cosman, Amy R. Reibman, Vinay A. Vaishampayan
2006 conf
Peer-to-Peer Computing
Eric Weigle, Matti A. Hiltunen, Richard D. Schlichting, Vinay A. Vaishampayan, Andrew A. Chien
2005 J jnl
IEEE Trans. Commun.
Vinay A. Vaishampayan, Mark D. Feuer
2005 B conf
ISIT
Chao Tian, Vinay A. Vaishampayan, Neil J. A. Sloane
2004 B conf
ITW
Suhas N. Diggavi, Vinay A. Vaishampayan
2004 J jnl
IEEE Trans. Multim.
Amy R. Reibman, Vinay A. Vaishampayan, Yegnaswamy Sermadevi
2004 B conf
ICIP
Amy R. Reibman, Sandeep Kanumuri, Vinay A. Vaishampayan, Pamela C. Cosman
2003 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, Sueli I. Rodrigues Costa
2003 conf
ICIP (3)
Amy R. Reibman, Vinay A. Vaishampayan
2003 A conf
ICME
Amy R. Reibman, Vinay A. Vaishampayan
2002 J jnl
IEEE Trans. Inf. Theory
Neil J. A. Sloane, Vinay A. Vaishampayan
2002 J jnl
IEEE Trans. Inf. Theory
Suhas N. Diggavi, Neil J. A. Sloane, Vinay A. Vaishampayan
2002 B conf
ITW
Vinay A. Vaishampayan, Neil J. A. Sloane, Sueli I. R. Costa
2001 J jnl
IEEE Trans. Image Process.
Yao Wang, Michael T. Orchard, Vinay A. Vaishampayan, Amy R. Reibman
2001 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, Neil J. A. Sloane, Sergio D. Servetto
2001 J jnl
IEEE Trans. Inf. Theory
C. Sinan Güntürk, J. C. Lagarias, Vinay A. Vaishampayan
2000 Misc conf
ICASSP
Huan Yao, Vinay A. Vaishampayan
2000 B conf
Data Compression Conference
Suhas N. Diggavi, Neil J. A. Sloane, Vinay A. Vaishampayan
2000 J jnl
IEEE Trans. Image Process.
Sergio D. Servetto, Kannan Ramchandran, Vinay A. Vaishampayan, Klara Nahrstedt
2000 J jnl
IEEE Trans. Inf. Theory
Radu V. Balan, Ingrid Daubechies, Vinay A. Vaishampayan
1999 conf
ICIP (3)
Sam John, Vinay A. Vaishampayan
1999 B conf
Data Compression Conference
Sergio D. Servetto, Vinay A. Vaishampayan, Neil J. A. Sloane
1998 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, J.-C. Batllo
1998 conf
ICIP (1)
Sergio D. Servetto, Kannan Ramchandran, Vinay A. Vaishampayan, Klara Nahrstedt
1997 J jnl
IEEE Trans. Inf. Theory
J.-C. Batllo, Vinay A. Vaishampayan
1997 conf
ICIP (1)
Yao Wang, Michael T. Orchard, Amy R. Reibman, Vinay A. Vaishampayan
1996 conf
ICIP (1)
Jaroslaw Domaszewicz, Slawomir Kuklinski, Vinay A. Vaishampayan
1996 conf
ICIP (2)
Vinay A. Vaishampayan
1995 J jnl
IEEE Trans. Speech Audio Process.
Ajay Ingle, Vinay A. Vaishampayan
1995 Misc conf
ICASSP
Jaroslaw Domaszewicz, Vinay A. Vaishampayan
1995 J jnl
IEEE Trans. Commun.
Shih-Ming Yang, Vinay A. Vaishampayan
1994 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, Jaroslaw Domaszewicz
1994 conf
ICIP (3)
Jaroslaw Domaszewicz, Vinay A. Vaishampayan
1993 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan
1993 C conf
VCIP
Jaroslaw Domaszewicz, Vinay A. Vaishampayan
1993 conf
ICASSP (5)
Emil Ramirez, Vinay A. Vaishampayan
1992 J jnl
IEEE Trans. Inf. Theory
Vinay A. Vaishampayan, Nariman Farvardin
1992 conf
Coding And Quantization
Vinay A. Vaishampayan
1991 J jnl
IEEE Trans. Inf. Theory
Nariman Farvardin, Vinay A. Vaishampayan
1990 J jnl
IEEE Trans. Commun.
Vinay A. Vaishampayan, Nariman Farvardin
1989
Vinay A. Vaishampayan
1987 J jnl
IEEE Trans. Inf. Theory
Nariman Farvardin, Vinay A. Vaishampayan
redb/extractors/js_extractors/js_suspicious_apis.py
← Index redb/extractors/js_extractors/js_suspicious_apis.py python
import inspect
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 CATEGORIES, PATTERNS


# Backwards-compatible export: `{category: [(raw_pattern_string, api_name), ...]}`
# in canonical PATTERNS insertion order (code_execution, network, filesystem,
# process, registry, crypto_encoding, dom_manipulation). Kept so external
# callers (notably JSDeobfuscationExtractor pre-cleanup) keep working until
# they are migrated to PATTERNS directly.
SUSPICIOUS_APIS: "dict[str, list[tuple[str, str]]]" = {}
for _name, _compiled in PATTERNS.items():
    SUSPICIOUS_APIS.setdefault(CATEGORIES[_name], []).append((_compiled.pattern, _name))


class JSSuspiciousAPIsExtractor(JSExtractor):

    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.api_findings = None
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _get_context_snippet(self, line, max_len=200):
        """Get a truncated context snippet around a match."""
        line = line.strip()
        if len(line) > max_len:
            return line[:max_len] + "..."
        return line

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

        # Pass 1: shared per-sample scan over the raw source. The dict contains
        # entries for both PATTERNS and FEATURE_PATTERNS; the loop below only
        # consults PATTERNS keys, so feature-only entries are ignored.
        raw_scan = self._context.scan or {}
        raw_lines = self.lines

        # Pass 2: same patterns over the deobfuscated text, when the
        # deobfuscator produced something meaningfully different. APIs hidden
        # behind one obfuscation layer (Vjw0rm-style array.join + eval,
        # Dean-Edwards packers, jjencode, ...) only surface here. The scan is
        # cached on JSContext so JSDeobfuscationExtractor (which computes the
        # new_apis_found diff) reuses the same result.
        deobf_scan = self._context.scan_deobfuscated
        if deobf_scan:
            deobf_text, _ = self._context.deobfuscated
            deobf_lines = deobf_text.splitlines()
        else:
            deobf_lines = []

        findings = []
        # Iterate PATTERNS in canonical order so output is deterministic and
        # matches the historical category/pattern ordering. For each api_name,
        # raw findings take precedence; if an API is found only in the
        # deobfuscated text, we surface it as a row tagged revealed_by_deobf=1
        # with line numbers / snippets pulled from the deobfuscated source.
        for api_name in PATTERNS:
            raw_info = raw_scan.get(api_name)
            if raw_info:
                line_numbers = raw_info["lines"]
                lines_for_snippets = raw_lines
                revealed_by_deobf = 0
            else:
                deobf_info = deobf_scan.get(api_name)
                if not deobf_info:
                    continue
                line_numbers = deobf_info["lines"]
                lines_for_snippets = deobf_lines
                revealed_by_deobf = 1

            snippets = [
                self._get_context_snippet(lines_for_snippets[ln - 1])
                for ln in line_numbers[:3]
                if 0 < ln <= len(lines_for_snippets)
            ]
            findings.append({
                "api_name": api_name,
                "api_category": CATEGORIES[api_name],
                # Historical semantics: count = number of unique lines with a
                # match, not total in-source match count.
                "call_count": len(line_numbers),
                "line_numbers": line_numbers,
                "context_snippet": " | ".join(snippets),
                "revealed_by_deobf": revealed_by_deobf,
            })

        if not findings:
            return None

        self.api_findings = findings
        return findings

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

            current_time = datetime.now(timezone.utc)
            data = []
            for f in self.api_findings:
                data.append([
                    self.sha256,
                    f['api_name'],
                    f['api_category'],
                    f['call_count'],
                    f['line_numbers'],
                    f['context_snippet'],
                    f['revealed_by_deobf'],
                    current_time,
                ])

            column_names = [
                "sha256", "api_name", "api_category",
                "call_count", "line_numbers", "context_snippet",
                "revealed_by_deobf",
                "analysis_date",
            ]

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

            return (data, column_names, column_type_names)

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