Click here for the PDF version

BABAK SALAMAT

Summary

  • 12 years of experience in research & development with in-depth knowledge in software security, compilers, and computer architecture.

Education

  • PhD in Computer Science
    University of California, Irvine, CA
    Sep. 2005 - Jul. 2009

    Dissertation: "Multi-Variant Execution: Run-Time Defense against Malicious Code Injection Attacks"
    GPA 4.0 out of 4.0
  • MSc in Computer Architecture
    Sharif University of Technology, Tehran, Iran
    Sep. 1998 - Jan. 2001

    Dissertation: "Data Consistency Controller for Distributed Shared Memory"
  • BSc in Computer Engineering
    Sharif University of Technology, Tehran, Iran
    Sep. 1994 - Sep. 1998

    Final project: "Design and implementation of an ALU for a Digital Signal Processor (DSP) on FPGA"

Skills

  • Languages: C++, C, C#, Java, PHP, Python, HTML, Javascript, XML, SQL, VHDL
  • Operating Systems: Linux, Mac OS X, Windows
  • Other techniques and Protocols: Familiar with GCC Internals, Linux kernel and System Calls, Libc Internals, WebKit, Multithreaded Programming, Superscalar Processor Architecture, MPI, OpenMP, RADIUS, SNMP

Work Experience

  • Virtuata, Research Lead, September 2011 - Present
    • Designs new mechanisms to improve security of JITs and works on new techniques to mitigate JIT spraying attacks.
  • Qualcomm Bay Aread R&D, Staff System Software Engineer, March 2010 - September 2011
    • Conducted research on new software technologies to improve power consumption and performance of mobile web browsers with emphasis on efficient compilation of JavaScript.
  • Yahoo! Search, Senior System Software Developer, August 2009 - February 2010
    • Improved performance of the searcher nodes' start-up by more than a factor of two using caching and parallelization techniques
    • Developed an adaptive optimization technique to significantly reduce network bandwidth usage of the search engine back-end
    • Profiled and analyzed the real-time search engine for performance improvement purposes
    • Managed release and deployment of a new version of the search engine
  • VMware Inc., Summer Intern in Monitor Reliability Group (R&D), June 2008 - September 2008
    • Wrote custom static analysis checkers using Coverity products
    • Added functionality to memory allocation functions to detect heap-based buffer overflows
    • Developed a Python tool to run static analyzers automatically
  • Fara Rayaneh, Manager of Software Department and Lead Programmer, February 2001 - August 2004
    • Developed a very successful user management and accounting software package with unique features for ISPs and VoIP service providers. More information can be found at: www.easyisp.info/english
  • Fara Rayaneh, Manager of Network Department and Network Administrator, May 1999 - February 2001
    • Expanded the internet service capacity of the company to 20 times of its starting point.
  • Co-founder of Fara Rayaneh Eng. Co., which later acquired Morva Net and is now one of the largest Iranian Internet Service Providers, Tehran/Iran, May 1999

Research Experience

  • Exploring new software technologies and building prototypes for smart phones and other mobile devices to improve power consumption and performance of mobile applications.
  • Developed a Multi-Variant Execution Environment that runs multiple variants of a single application, synchronizes and monitors them at the granularity of system-calls to prevent exploitation of vulnerabilities.
  • Modified GCC and also LLVM-GCC to generate executables which write stack in the reverse direction. These executables are used as variants in the multi-variant execution environment to prevent exploitation of buffer overflow vulnerabilities.
  • Introduced fast address generation and way caching to reduce dynamic and static energy consumption of L1 data cache
  • Developed simulator and evaluated fast address generation and L0 data cache to reduce memory access latency
  • Developed the middle- and back-end for an optimizing compiler using Java.
  • Proposed an efficient scoreboard access technique to reduce energy consumption in embedded processors
  • Customized pipeline gating techniques for embedded processors to reduce energy dissipation caused by branch misprediction
  • Improved accuracy of small branch predictors used in embedded processors

Teaching Experience

  • Teaching Assistant, Compilers and Interpreters, University of California, Irvine, Fall 2007
  • Lab. Instructor, Digital Design, University of Victoria, Summer 2005
  • Lab. Instructor, Computer Architecture, University of Victoria, Spring 2005
  • Lab. Instructor, FPGA and PLD, Sharif University of Technology, Fall 2000
  • Lab. Instructor, Computer Architecture, Sharif University of Technology, Fall 1999 and Spring 1999
  • Teaching assistant, Computer Architecture, Sharif University of Technology, Fall 2000, Spring 2000, Fall 1999 & Fall 1998

Awards and Honors

  • Best paper and project award, Qualcomm QTech Software Forum, 2011
  • UCIrvine School of Information and Computer Sciences (ICS) Dean's Fellowship for three years ($100,000+), 2005
  • University of Victoria Fellowship ($15000), 2004
  • Ranked 1st among 10 M.Sc. Fellows, Computer Architecture, Sharif University of Technology, 1998-2001
  • Ranked 6th among more than 8000 graduates participating in the nationwide M.Sc. program entrance exam, Iran, August 1998
  • Ranked 115th among more than 400,000 students participating in the nationwide undergraduate entrance exam, Iran, August 1994

Related Course Work

  • Advanced Compiler Construction
  • Advanced Programming Languages
  • Intro. to Parallel and Cluster Computing
  • Advanced Computer Architecture
  • Advanced Computer Networks
  • Operating Systems I & II
  • Language-based Security
  • Real Time Systems
  • Advanced Microprocessor Design
  • Fault Tolerant Systems

Patent

  • "Multi-Variant Parallel Program Execution to Detect Malicious Code Injection,"
    US Application Serial No. 12/075,127 (pending), March 2008

Publications

  • Book Chapter: "Compiler-Generated Software Diversity,"
    T. Jackson, B. Salamat, A. Homescu, K. Manivannan, G. Wagner, A. Gal, S. Brunthaler, Ch. Wimmer, and M. Franz; In
    "Moving Target Defense: Creating Asymmetric Uncertainty for Cyber Threats,"
    S. Jajodia, A.K. Ghosh, V. Swarup, C. Wang, and X.S. Wang (Editors), Springer, ISBN-10: 1461409764 | ISBN-13: 978-1461409762, August 2011
  • "Run-Time Defense against Code Injection Attacks using Replicated Execution,"
    Babak Salamat, Todd Jackson, Gregor Wagner, Christian Wimmer, Michael Franz.
    IEEE Transactions on Dependable and Secure Computing, Volume 8, No. 4, IEEE Computer Society, July 2011.
  • "On the Effectiveness of Multi-Variant Program Execution for Vulnerability Detection and Prevention,"
    Todd Jackson, Babak Salamat, Gregor Wagner, Christian Wimmer, and Michael Franz. International Workshop on Security Measurements and Metrics (MetriSec 2010), September 2010
  • "Power-Aware Scoreboard Alternatives for Multimedia Processors,"
    Amirali Baniasadi, Babak Salamat, and Kaveh Jokar Deris. Elsevier Journal of Microprocessors and Microsystems (MICPRO), Volume 33, June 2009
  • "Orchestra: Intrusion Detection Using Parallel Execution and Monitoring of Program Variants in User-Space,"
    Babak Salamat, Todd Jackson, Andreas Gal, and Michael Franz. Proceedings of the European Conference in Computer Systems (EuroSys'09), March 2009
  • "Reverse Stack Execution in a Multi-Variant Execution Environment,"
    Babak Salamat, Andreas Gal, and Michael Franz. The 2008 Workshop on Compiler and Architectural Techniques for Application Reliability and Security (CATARS'08) in conjunction with DSN 2008, June 2008
  • "Multi-Variant Program Execution: Using Multi-Core Systems to Defuse Buffer-Overflow Vulnerabilities,"
    Babak Salamat, Andreas Gal, Todd Jackson, Karthikeyan Manivannan, Gregor Wagner, and Michael Franz. Proceedings of the International Conference on Complex, Intelligent and Software Intensive Systems (CISIS'08), March 2008
  • "Stopping Buffer Overflow Attacks at Run-Time: Simultaneous Multi- Variant Program Execution on a Multicore Processor,"
    Babak Salamat, Andreas Gal, Todd Jackson, Karthik Manivannan, Gregor Wagner, Michael Franz. Technical Report No. 07-13, School of Information and Computer Sciences, University of California, Irvine, December 2007
  • "Reverse Stack Execution,"
    Babak Salamat, Andreas Gal, Alexander Yermolovich, Karthik Manivannan and Michael Franz. Technical Report No. 07-07, School of Information and Computer Sciences, University of California, Irvine, August 2007
  • "Fast Speculative Address Generation and Way Caching for Reducing L1 Data Cache Energy,"
    Dan Nicolaescu, Babak Salamat, Alexander Veidenbaum and Mateo Valero. Proceedings of 24th IEEE International Conference on Computer Design (ICCD'06), October 2006
  • "Area-Aware Optimizations for Resource Constrained Branch Predictors Exploited in Embedded Processors,"
    Babak Salamat, Amirali Baniasadi and Kaveh Jokar Deris. Proceedings of the International Conference on Embedded Computer Systems: Architectures, MOdeling, and Simulation (IC-SAMOS), July 2006
  • "Power-Aware Scoreboard for Multimedia Processors,"
    Amirali Baniasadi and Babak Salamat. 7th workshop on Media and Streaming Processors (MSP-7) held in conjunction with MICRO-38, November 2005
  • "Area-Aware Pipeline Gating for Embedded Processors,"
    Babak Salamat and Amirali Baniasadi. International Workshop on Power and Timing Modeling, Optimization and Simulation (PATMOS'05), SEP 2005
  • "Design and implementation of a system for microprocessor laboratory,"
    Ghassem Miremadi, Babak Salamat and Amin Firoozshahian. Proc. of Sharif Univ. of Tech., 1998-1999