Ian Postlethwaite

125 papers B 2C 20Journal 67Unranked 35
YearRankTypeTitle / Venue / Authors
2019 J jnl
IEEE Access
Khalid Abidi, Ian Postlethwaite
2019 conf
CDC
Khalid Abidi, Hang Jian Soo, Ian Postlethwaite
2017 J jnl
J. Intell. Robotic Syst.
Mangal Kothari, Joel G. Manathara, Ian Postlethwaite
2016 J jnl
Eur. J. Control
Kumar Pakki Bharani Chandra, Da-Wei Gu, Ian Postlethwaite
2014 J jnl
Int. J. Control
Kumar Pakki Bharani Chandra, Da-Wei Gu, Ian Postlethwaite
2014 conf
CSNDSP
Pep Canyelles-Pericas, Krishna Busawon, Rupak Kharel, Ian Postlethwaite
2014 conf
CSNDSP
Pep Canyelles-Pericas, Rupak Kharel, Krishna Busawon, Ian Postlethwaite
2014 J jnl
Syst. Control. Lett.
Prathyush P. Menon, Christopher Edwards, Ian Postlethwaite
2014 J jnl
J. Intell. Robotic Syst.
Mangal Kothari, Ian Postlethwaite, Da-Wei Gu
2013 J jnl
J. Intell. Robotic Syst.
Mangal Kothari, Ian Postlethwaite
2013 C conf
CCA
Mangal Kothari, P. B. Sujit, Ian Postlethwaite
2013 J jnl
J. Intell. Robotic Syst.
Mangal Kothari, Rajnikant Sharma, Ian Postlethwaite, Randal W. Beard, Daniel J. Pack
2013 conf
ECC
Kumar Pakki Bharani Chandra, Da-Wei Gu, Ian Postlethwaite
2013 J jnl
Int. J. Control
Ian Postlethwaite, Mangal Kothari
2012 J jnl
J. Intell. Robotic Syst.
Andrew J. Berry, Jeremy Howitt, Da-Wei Gu, Ian Postlethwaite
2012 J jnl
IEEE Trans. Autom. Control.
Matthew C. Turner, Murray Kerr, Ian Postlethwaite
2012 conf
VSS
Kumar Pakki Bharani Chandra, Hemnath Srikanthan, Da-Wei Gu, Bijnan Bandyopadhyay, Ian Postlethwaite
2011 C conf
ACC
Paresh Deshpande, Prathyush P. Menon, Christopher Edwards, Ian Postlethwaite
2011 J jnl
Int. J. Control
Murray Kerr, Matthew C. Turner, Elizabeth Villota, Suhada Jayasuriya, Ian Postlethwaite
2011 C conf
ACC
Kumar Pakki Bharani Chandra, Da-Wei Gu, Ian Postlethwaite
2011 conf
CDC/ECC
Paresh Deshpande, Prathyush P. Menon, Christopher Edwards, Ian Postlethwaite
2010 J jnl
Int. J. Control
Ihab Samy, Ian Postlethwaite, Da-Wei Gu
2010 J jnl
Int. J. Control
Bijnan Bandyopadhyay, Deepak Fulwani, Ian Postlethwaite, Matthew C. Turner
2010 J jnl
Int. J. Control
Jorge I. Sofrony, Matthew C. Turner, Ian Postlethwaite
2010 C conf
ACC
Rajnikant Sharma, Mangal Kothari, Clark N. Taylor, Ian Postlethwaite
2010 conf
CDC
Ihab Samy, Ian Postlethwaite, Da-Wei Gu
2010 C conf
ACC
Murray L. Kerr, Matthew C. Turner, Ian Postlethwaite
2010 J jnl
Int. J. Control
Ihab Samy, Ian Postlethwaite, Da-Wei Gu
2010 conf
ISIC
Kumar Pakki Bharani Chandra, Da-Wei Gu, Ian Postlethwaite
2010 C conf
ACC
Matthew C. Turner, Murray Kerr, Ian Postlethwaite, Jorge I. Sofrony
2009 conf
ECC
Ping Li, Ian Postlethwaite, Visakan Kadirkamanathan, Michael Z. Q. Chen
2009 conf
CDC
Rihan Ahmed, Da-Wei Gu, Ian Postlethwaite
2009 conf
ECC
Mangal Kothari, Da-Wei Gu, Ian Postlethwaite
2009 conf
Complex (2)
Michael Z. Q. Chen, Zhao Cheng, Hai-Tao Zhang, Tao Zhou, Ian Postlethwaite
2009 J jnl
Syst. Control. Lett.
Emmanuel Prempain, Matthew C. Turner, Ian Postlethwaite
2009 J jnl
Autom.
Matthew C. Turner, Guido Herrmann, Ian Postlethwaite
2009 conf
CDC
Sajjad Fekri, Da-Wei Gu, Ian Postlethwaite
2009 conf
CDC
Mangal Kothari, Ian Postlethwaite, Da-Wei Gu
2009 J jnl
IEEE Trans. Autom. Control.
Matthew C. Turner, Murray Kerr, Ian Postlethwaite
2009 C conf
ACC
Matthew C. Turner, Murray Kerr, Ian Postlethwaite
2009 J jnl
Autom.
Yoonsoo Kim, Da-Wei Gu, Ian Postlethwaite
2009 J jnl
J. Intell. Robotic Syst.
Ihab Samy, Ian Postlethwaite, Da-Wei Gu
2008 C conf
ACC
Emmanuel Prempain, Ian Postlethwaite
2008 J jnl
Autom.
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite
2008 J jnl
IEEE Trans. Control. Syst. Technol.
Guido Herrmann, Branislav Hredzak, Matthew C. Turner, Ian Postlethwaite, Guoxiao Guo
2008 J jnl
BMC Syst. Biol.
Najl V. Valeyev, Declan G. Bates, Pat Heslop-Harrison, Ian Postlethwaite, Nikolay V. Kotov
2008 J jnl
IEEE Trans. Autom. Control.
Jongrae Kim, Declan G. Bates, Ian Postlethwaite
2008 C conf
ACC
Oliver Brieger, Murray Kerr, Ian Postlethwaite, Jorge I. Sofrony, Matthew C. Turner
2008 J jnl
Bioinform.
Jongrae Kim, Declan G. Bates, Ian Postlethwaite, Pat Heslop-Harrison, Kwang-Hyun Cho
2008 conf
CDC
Ihab Samy, Ian Postlethwaite, Da-Wei Gu
2008 J jnl
Autom.
Yoonsoo Kim, Da-Wei Gu, Ian Postlethwaite
2007 J jnl
Autom.
Andrés Marcos, Declan G. Bates, Ian Postlethwaite
2007 J jnl
IMA J. Math. Control. Inf.
Vassilios A. Tsachouridis, Nicos Karcanias, Ian Postlethwaite
2007 J jnl
IEEE Trans. Autom. Control.
Andrés Marcos, Matthew C. Turner, Ian Postlethwaite
2007 C conf
ACC
Oliver Brieger, Murray Kerr, Dirk Leibling, Ian Postlethwaite, Jorge I. Sofrony, Matthew C. Turner
2007 J jnl
Int. J. Control
Jorge I. Sofrony, Matthew C. Turner, Ian Postlethwaite
2007 B conf
IEEE Congress on Evolutionary Computation
Prathyush P. Menon, Declan G. Bates, Ian Postlethwaite
2007 J jnl
IEEE Trans. Autom. Control.
Matthew C. Turner, Guido Herrmann, Ian Postlethwaite
2007 J jnl
BMC Bioinform.
Jongrae Kim, Declan G. Bates, Ian Postlethwaite, Pat Heslop-Harrison, Kwang-Hyun Cho
2007 C conf
CCA
Sajjad Fekri, Declan G. Bates, Ian Postlethwaite
2007 J jnl
BMC Syst. Biol.
Najl V. Valeyev, Nikolai V. Kotov, Ian Postlethwaite, Declan G. Bates
2007 B conf
IEEE Congress on Evolutionary Computation
Declan G. Bates, Sajjad Fekri, Prathyush P. Menon, Ian Postlethwaite
2007 C conf
ACC
Ping Li, Ian Postlethwaite, Matthew C. Turner
2007 J jnl
IEEE Trans. Neural Networks
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite
2007 J jnl
IEEE Trans. Autom. Control.
Yoonsoo Kim, Da-Wei Gu, Ian Postlethwaite
2007 J jnl
Annu. Rev. Control.
Ian Postlethwaite, Matthew C. Turner, Guido Herrmann
2007 J jnl
PLoS Comput. Biol.
Jongrae Kim, Pat Heslop-Harrison, Ian Postlethwaite, Declan G. Bates
2007 C conf
ACC
Yoonsoo Kim, Da-Wei Gu, Ian Postlethwaite
2006 C conf
ACC
Prathyush P. Menon, Declan G. Bates, Ian Postlethwaite
2006 conf
CDC
Jorge I. Sofrony, Matthew C. Turner, Ian Postlethwaite, Oliver Brieger, Dirk Leibling
2006 J jnl
IEEE Trans. Evol. Comput.
Prathyush P. Menon, Jongrae Kim, Declan G. Bates, Ian Postlethwaite
2006 conf
CDC
Kannan Natesan, Da-Wei Gu, Ian Postlethwaite, Jianchi Chen
2006 J jnl
Int. J. Syst. Sci.
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite
2006 conf
CDC
Prathyush P. Menon, Guido Herrmann, Matthew C. Turner, Declan G. Bates, Ian Postlethwaite
2006 C conf
ACC
Andrés Marcos, Matthew C. Turner, Ian Postlethwaite
2006 C conf
ACC
Guido Herrmann, Branislav Hredzak, Matthew C. Turner, Ian Postlethwaite, Guoxiao Guo
2006 J jnl
Eng. Appl. Artif. Intell.
Will N. Browne, L. Yao, Ian Postlethwaite, S. Lowes, M. Mar
2006 J jnl
Autom.
Jongrae Kim, Declan G. Bates, Ian Postlethwaite
2006 J jnl
Syst. Control. Lett.
Jongrae Kim, Declan G. Bates, Ian Postlethwaite
2005 conf
CDC/ECC
Andrés Marcos, Declan G. Bates, Ian Postlethwaite
2005 conf
CDC/ECC
Prathyush P. Menon, Declan G. Bates, Ian Postlethwaite
2005 conf
CDC/ECC
Jongrae Kim, Declan G. Bates, Ian Postlethwaite
2005 conf
CDC/ECC
Wassem A. Kamal, Da-Wei Gu, Ian Postlethwaite
2005 conf
CDC/ECC
Jongrae Kim, Declan G. Bates, Ian Postlethwaite, Lan Ma, Pablo A. Iglesias
2005 J jnl
Autom.
Emmanuel Prempain, Ian Postlethwaite
2004 C conf
ACC
Matthew C. Turner, Guido Herrmann, Ian Postlethwaite
2004 conf
CDC
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite
2004 conf
CDC
Emmanuel Prempain, Ian Postlethwaite
2004 C conf
ACC
Declan G. Bates, Thomas Mannchen, Ridwan Kureemun, Ian Postlethwaite
2003 J jnl
IEEE Trans. Autom. Control.
Gene Grimm, Jay Hatfield, Ian Postlethwaite, Andrew R. Teel, Matthew C. Turner, Luca Zaccarian
2003 C conf
ACC
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite, Guoxiao Guo
2003 J jnl
Eur. J. Control
Gene Grimm, Ian Postlethwaite, Andrew R. Teel, Matthew C. Turner, Luca Zaccarian
2003 conf
ECC
Matthew C. Turner, Guido Herrmann, Ian Postlethwaite
2003 conf
ECC
Guido Herrmann, Matthew C. Turner, Ian Postlethwaite
2002 J jnl
IEEE Trans. Autom. Control.
Matthew C. Turner, Ian Postlethwaite
2002 J jnl
IEEE Trans. Autom. Control.
Abdul-Wahid A. Saif, Da-Wei Gu, Davout Kavranoglu, Ian Postlethwaite
2001 conf
ECC
Matthew C. Turner, Declan G. Bates, Ian Postlethwaite
2001 conf
ECC
Emmanuel Prempain, Ian Postlethwaite, Dave Vorley
2001 conf
ECC
Gene Grimm, Ian Postlethwaite, Andrew R. Teel, Matthew C. Turner, Luca Zaccarian
2001 conf
CDC
Gene Grimm, Jay Hatfield, Ian Postlethwaite, Andrew R. Teel, Matthew C. Turner, Luca Zaccarian
2001 J jnl
Autom.
Emmanuel Prempain, Ian Postlethwaite
2001 C conf
ACC
Gene Grimm, Ian Postlethwaite, Andrew R. Teel, Matthew C. Turner, Luca Zaccarian
2001 conf
ECC
S. L. Gatley, Declan G. Bates, M. J. Hayes, Ian Postlethwaite
2001 J jnl
Syst. Control. Lett.
Emmanuel Prempain, Ian Postlethwaite
2000 J jnl
Eur. J. Control
Ian Postlethwaite, Ioannis K. Konstantopoulos, Xiao-dong Sun, Daniel J. Walker, Adrian G. Alford
2000 J jnl
Autom.
Paul F. Weston, Ian Postlethwaite
2000 conf
CDC
Matthew C. Turner, Ian Postlethwaite
1999 conf
ECC
Vassilios A. Tsachouridis, Ian Postlethwaite
1999 J jnl
Autom.
Christopher Edwards, Ian Postlethwaite
1999 conf
ECC
Ian Postlethwaite, Ioannis K. Konstantopoulos, Xiao-dong Sun, Daniel J. Walker, Adrian G. Alford
1998 J jnl
Autom.
Christopher Edwards, Ian Postlethwaite
1998 J jnl
IEEE Trans. Control. Syst. Technol.
Eric John Muir Geddes, Ian Postlethwaite
1997 J jnl
Int. J. Syst. Sci.
Xiao-Yun Lu, Sarah K. Spurgeon, Ian Postlethwaite
1996 J jnl
Eur. J. Control
Raza Samar, Ghassan Murad, Ian Postlethwaite, Da-Wei Gu
1994 J jnl
Autom.
Ian Postlethwaite, James F. Whidborne, Ghassan Murad, Da-Wei Gu
1994 J jnl
IEEE Trans. Control. Syst. Technol.
James F. Whidborne, Ian Postlethwaite, Da-Wei Gu
1993 J jnl
Int. J. Robotics Res.
Weining Feng, Ian Postlethwaite
1993 J jnl
IEEE Trans. Autom. Control.
Da-Wei Gu, B. W. Choi, Ian Postlethwaite
1993 J jnl
Autom.
J.-L. Lin, Ian Postlethwaite, Da-Wei Gu
1992 J jnl
Autom.
M. C. Tsai, E. J. M. Geddes, Ian Postlethwaite
1990 J jnl
Autom.
Da-Wei Gu, M. C. Tsai, Ian Postlethwaite
1989 J jnl
Autom.
Da-Wei Gu, M. C. Tsai, Ian Postlethwaite
1985 J jnl
Autom.
Ian Postlethwaite, Yung Kuan Foo
1982 J jnl
Autom.
Ian Postlethwaite
1978
Ian Postlethwaite
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;