skip to main content
10.1109/ICSE.2019.00034acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

DifFuzz: differential fuzzing for side-channel analysis

Published: 25 May 2019 Publication History

Abstract

Side-channel attacks allow an adversary to uncover secret program data by observing the behavior of a program with respect to a resource, such as execution time, consumed memory or response size. Side-channel vulnerabilities are difficult to reason about as they involve analyzing the correlations between resource usage over multiple program paths. We present DifFuzz, a fuzzing-based approach for detecting side-channel vulnerabilities related to time and space. DifFuzz automatically detects these vulnerabilities by analyzing two versions of the program and using resource-guided heuristics to find inputs that maximize the difference in resource consumption between secret-dependent paths. The methodology of DifFuzz is general and can be applied to programs written in any language. For this paper, we present an implementation that targets analysis of Java programs, and uses and extends the Kelinci and AFL fuzzers. We evaluate DifFuzz on a large number of Java programs and demonstrate that it can reveal unknown side-channel vulnerabilities in popular applications. We also show that DifFuzz compares favorably against Blazer and Themis, two state-of-the-art analysis tools for finding side-channels in Java programs.

References

[1]
Apache FtpServer. https://mina.apache.org/ftpserver-project/. Accessed: 2018-08-21.
[2]
Authentication plugin for the Bukkit/Spigot API. https://github.com/AuthMe/AuthMeReloaded. Accessed: 2018-08-21.
[3]
H2 database engine. http://www.h2database.com/html/main.html. Accessed: 2018-05-06.
[4]
The Meltdown Attack. https://meltdownattack.com/. Accessed: 2018-08-21.
[5]
Xbox 360 Timing Attack. http://beta.ivc.no/wiki/index.php/Xbox_360_Timing_Attack. Accessed: 2018-08-21.
[6]
Dakshi Agrawal, Josyula R. Rao, and Pankaj Rohatgi. Multi-channel Attacks. In Colin D. Walter, Çetin Kaya Koç, and Christof Paar, editors, Cryptographic Hardware and Embedded Systems - CHES 2003, 5<sup>th</sup> International Workshop, Cologne, Germany, September 8--10, 2003, Proceedings, volume 2779 of Lecture Notes in Computer Science, pages 2--16. Springer, 2003.
[7]
B. Almeida, M. Barbosa, J. S. Pinto, and B. Vieira. Formal verification of side-channel countermeasures using self-composition. In Science of Computer Programminga78(7), 2013.
[8]
Timos Antonopoulos, Paul Gazzillo, Michael Hicks, Eric Koskinen, Tachio Terauchi, and Shiyi Wei. Decomposition instead of self-composition for proving the absence of timing channels. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18--23, 2017, pages 362--375, 2017.
[9]
Lucas Bang, Abdulbaki Aydin, Quoc-Sang Phan, Corina S. Păsăreanu, and Tevfik Bultan. String Analysis for Side Channels with Segmented Oracles. In Proc. of the 2016 24<sup>th</sup> ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pages 193--204, New York, NY, USA, November 2016. ACM.
[10]
Gilles Barthe, Pedro R. D'Argenio, and Tamara Rezk. Secure information flow by self-composition. In Proceedings of the 17th IEEE Workshop on Computer Security Foundations, CSFW '04, pages 100-, Washington, DC, USA, 2004. IEEE Computer Society.
[11]
Marcel Böhme. STADS: Software testing as species discovery. ACM Transactions on Software Engineering and Methodology, 27(2):7:1--7:52, June 2018.
[12]
Tegan Brennan, Seemanta Saha, Tevfik Bultan, and Corina S. Păsăreanu. Symbolic path cost analysis for side-channel detection. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2018, pages 27--37, New York, NY, USA, 2018. ACM.
[13]
David Brumley and Dan Boneh. Remote Timing Attacks Are Practical. In Proc. of the 12<sup>th</sup> Conf. on USENIX Security Symposium - Volume 12, SSYM'03, Berkeley, CA, USA, 2003. USENIX Association.
[14]
Jia Chen, Yu Feng, and Isil Dillig. Precise detection of side-channel vulnerabilities using quantitative cartesian hoare logic. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, CCS 2017, Dallas, TX, USA, October 30 - November 03, 2017, pages 875--890, 2017.
[15]
Shuo Chen, Rui Wang, XiaoFeng Wang, and Kehuan Zhang. Side-Channel Leaks in Web Applications: A Reality Today, a Challenge Tomorrow. In Proc. of the 2010 IEEE Symposium on Security and Privacy, SP '10, pages 191--206, Washington, DC, USA, 2010. IEEE Computer Society.
[16]
Tom Chothia, Yusuke Kawamoto, and Chris Novakovic. LeakWatch: Estimating Information Leakage from Java Programs. In 19th European Symposium on Research in Computer Security - Volume 8713, ESORICS 2014, pages 219--236, New York, NY, USA, 2014. Springer-Verlag New York, Inc.
[17]
Quoc Huy Do, Richard Bubel, and Reiner Hähnle. Exploit Generation for Information Flow Leaks in Object-Oriented Programs. In ICT Systems Security and Privacy Protection: 30<sup>th</sup> IFIP TC 11 Intl. Conf., SEC 2015, Hamburg, Germany, pages 401--415. Springer, 2015.
[18]
Goran Doychev, Dominik Feld, Boris Köpf, Laurent Mauborgne, and Jan Reineke. CacheAudit: A Tool for the Static Analysis of Cache Side Channels. In Proc. of 22<sup>nd</sup> USENIX Conf. on Security, SEC'13, pages 431--146, Berkeley, CA, USA, 2013. USENIX Association.
[19]
Thai Duong and Juliano Rizzo. The CRIME attack. In Presentation at ekoparty Security Conf., 2012.
[20]
Mr. Dustin Fraze. Space/Time Analysis for Cybersecurity (STAC). https://www.darpa.mil/program/space-time-analysis-for-cybersecurity. Accessed: 2018-08-21.
[21]
Matthias Höschele and Andreas Zeller. Mining input grammars from dynamic taints. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016, pages 720--725, New York, NY, USA, 2016. ACM.
[22]
Ralf Hund, Carsten Willems, and Thorsten Holz. Practical timing side channel attacks against kernel space aslr. In Security and Privacy (SP), 2013 IEEE Symposium on, pages 191--205. IEEE, 2013.
[23]
Yusuke Kawamoto, Fabrizio Biondi, and Axel Legay. Hybrid Statistical Estimation of Mutual Information for Quantifying Information Flow. In FM, volume 9995 of Lecture Notes in Computer Science, pages 406--425, 2016.
[24]
Rody Kersten, Kasper Luckow, and Corina S. Păsăreanu. Poster: Afl-based fuzzing for java with kelinci. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, CCS '17, pages 2511--2513, New York, NY, USA, 2017. ACM.
[25]
Paul C. Kocher. Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems. In Proc. of the 16<sup>th</sup> Annual International Cryptology Conf. on Advances in Cryptology, CRYPTO '96, pages 104--113, London, UK, UK, 1996. Springer-Verlag.
[26]
Boris Köpf and David Basin. An Information-theoretic Model for Adaptive Side-channel Attacks. In Proc. of the 14<sup>th</sup> ACM Conf. on Computer and Communications Security, CCS '07, pages 286--296, New York, NY, USA, 2007. ACM.
[27]
Boris Köpf, Laurent Mauborgne, and Martín Ochoa. Automatic quantification of cache side-channels. In Proc. of the 24<sup>th</sup> international Conf. on Computer Aided Verification, CAV'12, pages 564--580, Berlin, Heidelberg, 2012. Springer-Verlag.
[28]
Nate Lawson. Timing attack in Google Keyczar library. https://rdist.root.org/2009/05/28/timing-attack-in-google-keyczar-library/, 2009. Accessed: 2018-08-21.
[29]
Caroline Lemieux, Rohan Padhye, Koushik Sen, and Dawn Song. Perffuzz: Automatically generating pathological inputs. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2018, pages 254--265, New York, NY, USA, 2018. ACM.
[30]
Caroline Lemieux and Koushik Sen. Fairfuzz: A targeted mutation strategy for increasing greybox fuzz testing coverage. In Proceedings of the 2018 33rd ACM/IEEE International Conference on Automated Software Engineering, ASE 2018, New York, NY, USA, 2018. ACM.
[31]
Fangfei Liu, Yuval Yarom, Qian Ge, Gernot Heiser, and Ruby B Lee. Last-level cache side-channel attacks are practical. In Security and Privacy (SP), 2015 IEEE Symposium on, pages 605--622. IEEE, 2015.
[32]
Heiko Mantel, Alexandra Weber, and Boris Köpf. A systematic study of cache side channels across aes implementations. In Eric Bodden, Mathias Payer, and Elias Athanasopoulos, editors, Engineering Secure Software and Systems, pages 213--230, Cham, 2017. Springer International Publishing.
[33]
P. Mardziel, M. S. Alvim, M. Hicks, and M. R. Clarkson. Quantifying information flow for dynamic secrets. In 2014 IEEE Symposium on Security and Privacy (SP), pages 540--555, May 2014.
[34]
Yannic Noller, Rody Kersten, and Corina S. Păsăreanu. Badger: Complexity analysis with fuzzing and symbolic execution. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2018, pages 322--332, New York, NY, USA, 2018. ACM.
[35]
Corina S Pasareanu, Quoc-Sang Phan, and Pasquale Malacaria. Multi-run side-channel analysis using symbolic execution and max-smt. In Computer Security Foundations Symposium (CSF), 2016 IEEE 29th, pages 387--400. IEEE, 2016.
[36]
Theofilos Petsios, Adrian Tang, Salvatore J. Stolfo, Angelos D. Keromytis, and Suman Jana. NEZHA: efficient domain-independent differential testing. In 2017 IEEE Symposium on Security and Privacy, SP 2017, San Jose, CA, USA, May 22--26, 2017, pages 615--632, 2017.
[37]
Quoc-Sang Phan, Lucas Bang, Corina S. Pasareanu, Pasquale Malacaria, and Tevfik Bultan. Synthesis of adaptive side-channel attacks. In 30th IEEE Computer Security Foundations Symposium, CSF 2017, Santa Barbara, CA, USA, August 21--25, 2017, pages 328--342, 2017.
[38]
S. Sivakorn, G. Argyros, K. Pei, A. D. Keromytis, and S. Jana. Hvlearn: Automated black-box analysis of hostname verification in ssl/tls implementations. In 2017 IEEE Symposium on Security and Privacy (SP), pages 521--538, May 2017.
[39]
Jiayi Wei, Jia Chen, Yu Feng, Kostas Ferles, and Isil Dillig. Singularity: Pattern fuzzing for worst case complexity. In Proceedings of the 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018, New York, NY, USA, 2018. ACM.
[40]
Yuan Xiao, Mengyuan Li, Sanchuan Chen, and Yinqian Zhang. Stacco: Differentially analyzing side-channel traces for detecting ssl/tls vulnerabilities in secure enclaves. In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, CCS '17, pages 859--874, New York, NY, USA, 2017. ACM.
[41]
Xuejun Yang, Yang Chen, Eric Eide, and John Regehr. Finding and understanding bugs in c compilers. In Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '11, pages 283--294, New York, NY, USA, 2011. ACM.
[42]
Michal Zalewski. American fuzzy lop (afl). http://lcamtuf.coredump.cx/afl/, 2014. Accessed: 2018-05-06.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '19: Proceedings of the 41st International Conference on Software Engineering
May 2019
1318 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Badges

Author Tags

  1. dynamic analysis
  2. fuzzing
  3. side-channel analysis
  4. vulnerability detection

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media