Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Free access
Just Accepted

RD-FAXID: Ransomware Detection with FPGA-Accelerated XGBoost

Online AM: 12 August 2024 Publication History

Abstract

Over the last decade, there has been a rise in cyberattacks, particularly ransomware, causing significant disruption and financial repercussions across public and private sectors. Tremendous efforts have been spent on developing techniques to detect ransomware to, ideally, protect data or have as minimum data loss as possible. Ransomware attacks are becoming more frequent and sophisticated as there is a constant tussle between attackers and cybersecurity defenders. Machine Learning (ML) approaches have proven more effective in detecting ransomware than classical signature-based detection. In particular, tree-based algorithms such as Decision Trees (DT), Random Forest (RF), and eXtreme Gradient Boosting (XGBoost) spike up interest among cybersecurity researchers. However, due to the nature of the problem, traditional CPUs and GPUs fail to keep up with the desired performance, especially for large data workloads. Thus, the problem demands a customized solution to detect the ransomware.
Here, we propose an FPGA accelerated tree-based ML model for multi-dataset ransomware detection. We show the capability of the proposed prototype to address the problem from more than one set of features, reducing false positive and negative rates to have robust predictions by looking at Hardware Performance Counters (HPCs), Operating System (OS) calls, and network traffic information simultaneously. With 1000 samples per batch, the FPGA prototype has 65.8x and 4.1x lower latency over the CPU and GPU, respectively. Moreover, the FPGA design is up to 11.3x cost-effective and 643x energy-efficient compared to the CPU and 3x cost-effective and 16.8x energy-efficient over the GPU.

References

[1]
Hamzeh Ahangari, Muhammet Mustafa Özdal, and Özcan Öztürk. 2023. HLS-based High-throughput and Work-efficient Synthesizable Graph Processing Template Pipeline. ACM Transactions on Embedded Computing Systems 22, 2 (2023), 1–24.
[2]
Bander Ali Saleh Al-rimy, Mohd Aizaini Maarof, and Syed Zainuddin Mohd Shaid. 2017. A 0-day aware crypto-ransomware early behavioral detection framework. In International Conference of Reliable Information and Communication Technology. Springer, 758–766.
[3]
Manaar Alam, Sayan Sinha, Sarani Bhattacharya, Swastika Dutta, Debdeep Mukhopadhyay, and Anupam Chattopadhyay. 2020. Rapper: Ransomware prevention via performance counters. arXiv preprint arXiv:2004.01712 (2020).
[4]
Adrián Alcolea and Javier Resano. 2021. FPGA Accelerator for Gradient Boosting Decision Trees. Electronics 10, 3 (2021), 314.
[5]
Omar MK Alhawi, James Baldwin, and Ali Dehghantanha. 2018. Leveraging machine learning techniques for windows ransomware network traffic detection. In Cyber Threat Intelligence. Springer, 93–106.
[6]
Ahmad O Almashhadani, Mustafa Kaiiali, Sakir Sezer, and Philip O’Kane. 2019. A multi-classifier network-based crypto ransomware detection system: A case study of locky ransomware. IEEE Access 7 (2019), 47053–47067.
[7]
AMD/Xilinx 2023. Alveo U200 and U250 Data Sheet. AMD/Xilinx. https://docs.xilinx.com/r/en-US/ds962-u200-u250/Summary.
[8]
AMD/Xilinx 2023. Alveo U280 Data Sheet. AMD/Xilinx. https://docs.xilinx.com/r/en-US/ds963-u280/Summary.
[9]
AMD/Xilinx 2023. Alveo U50 Data Sheet. AMD/Xilinx. https://docs.xilinx.com/r/en-US/ds965-u50/Summary.
[10]
Sana Aurangzeb, Rao Naveed Bin Rais, Muhammad Aleem, Muhammad Arshad Islam, and Muhammad Azhar Iqbal. 2021. On the classification of Microsoft-Windows ransomware using hardware profile. PeerJ Computer Science 7 (2021), e361.
[11]
Mario Barbareschi, Salvatore Del Prete, Francesco Gargiulo, Antonino Mazzeo, and Carlo Sansone. 2015. Decision tree-based multiple classifier systems: An FPGA perspective. In International Workshop on Multiple Classifier Systems. Springer, 194–205.
[12]
Leo Breiman. 2001. Random forests. Machine learning 45, 1 (2001), 5–32.
[13]
Ross Brewer. 2016. Ransomware attacks: detection, prevention and cure. Network Security 2016, 9 (2016), 5–9.
[14]
bstnbuck [n. d.]. ItsSoEasy. bstnbuck. https://github.com/bstnbuck/ItsSoEasy.
[15]
Lars Buitinck, Gilles Louppe, Mathieu Blondel, Fabian Pedregosa, Andreas Mueller, Olivier Grisel, Vlad Niculae, Peter Prettenhofer, Alexandre Gramfort, Jaques Grobler, Robert Layton, Jake VanderPlas, Arnaud Joly, Brian Holt, and Gaël Varoquaux. 2013. API design for machine learning software: experiences from the scikit-learn project. In ECML PKDD Workshop: Languages for Data Mining and Machine Learning. 108–122.
[16]
Sebastian Buschjäger and Katharina Morik. 2017. Decision tree and random forest implementations for fast filtering of sensor data. IEEE Transactions on Circuits and Systems I: Regular Papers 65, 1 (2017), 209–222.
[17]
Tianqi Chen and Carlos Guestrin. 2016. Xgboost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 785–794.
[18]
Chuan Cheng and Christos-Savvas Bouganis. 2013. Accelerating random forest training process using FPGA. In 2013 23rd International Conference on Field programmable Logic and Applications. IEEE, 1–7.
[19]
Hajredin Daku, Pavol Zavarsky, and Yasir Malik. 2018. Behavioral-based classification and identification of ransomware variants using machine learning. In 17th IEEE International Conference on Trust, Security and Privacy in Computing and Communications/12th IEEE International Conference on Big Data Science and Engineering (TrustCom/BigDataSE). IEEE, 1560–1564.
[20]
Tooska Dargahi, Ali Dehghantanha, Pooneh Nikkhah Bahrami, Mauro Conti, Giuseppe Bianchi, and Loris Benedetto. 2019. A Cyber-Kill-Chain based taxonomy of crypto-ransomware features. Journal of Computer Virology and Hacking Techniques 15, 4 (2019), 277–305.
[21]
Sanjeev Das, Jan Werner, Manos Antonakakis, Michalis Polychronakis, and Fabian Monrose. 2019. SoK: The challenges, pitfalls, and perils of using hardware performance counters for security. In IEEE Symposium on Security and Privacy (SP). IEEE, 20–38.
[22]
deadPix3l [n. d.]. CryptSky. deadPix3l. https://github.com/deadPix3l/CryptSky.
[23]
John Demme, Matthew Maycock, Jared Schmitz, Adrian Tang, Adam Waksman, Simha Sethumadhavan, and Salvatore Stolfo. 2013. On the feasibility of online malware detection with performance counters. ACM SIGARCH Computer Architecture NEWS 41, 3 (2013), 559–570.
[24]
Sukhpreet Singh Dhaliwal, Abdullah-Al Nahid, and Robert Abbas. 2018. Effective intrusion detection system using XGBoost. Information 9, 7 (2018), 149.
[25]
Mohammed Elnawawy, Assim Sagahyroon, and Tamer Shanableh. 2020. FPGA-based network traffic classification using machine learning. IEEE Access 8 (2020), 175637–175650.
[26]
Federal Bureau of Investigation (FBI) 2018. Internet Crime Report. Federal Bureau of Investigation (FBI). https://pdf.ic3.gov/2019_IC3Report.pdf.
[27]
Federal Bureau of Investigation (FBI) 2019. Internet Crime Report. Federal Bureau of Investigation (FBI). https://pdf.ic3.gov/2019_IC3Report.pdf.
[28]
Jerome H Friedman. 2001. Greedy function approximation: a gradient boosting machine. Annals of statistics (2001), 1189–1232.
[29]
Archit Gajjar. 2023. Ransomware Detection with XGBoost Hardware Acceleration for Data Centers using High-Level Synthesis. PhD Dissertation. North Carolina State University, Raleigh, NC. https://www.lib.ncsu.edu/resolver/1840.20/40998.
[30]
Archit Gajjar, Shivang Dave, T Andrew Yang, Lei Wu, and Xiaokun Yang. 2021. An IoT-Edge-Server System with BLE Mesh Network, LBPH, and Deep Metric Learning. In Advances in Artificial Intelligence and Applied Cognitive Computing: Proceedings from ICAI’20 and ACC’20. Springer, 757–773.
[31]
Archit Gajjar, Priyank Kashyap, Aydin Aysu, Paul Franzon, Sumon Dey, and Chris Cheng. 2022. FAXID: FPGA-Accelerated XGBoost Inference for Data Centers using HLS. In IEEE 30th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 1–9. https://doi.org/10.1109/FCCM53951.2022.9786085
[32]
Archit Gajjar, Xiaokun Yang, Hakduran Koc, Ishaq Unwala, Lei Wu, and Jiang Lu. 2018. Mesh-iot based system for large-scale environment. In International Conference on Computational Science and Computational Intelligence (CSCI). IEEE, 1019–1023.
[33]
Gaddisa Olani Ganfure, Chun-Feng Wu, Yuan-Hao Chang, and Wei-Kuan Shih. 2022. Deepware: Imaging performance counters with deep learning to detect ransomware. IEEE Trans. Comput. 72, 3 (2022), 600–613.
[34]
Mingxuan He, TN Vijaykumar, and Mithuna Thottethodi. 2020. Booster: An Accelerator for Gradient Boosting Decision Trees. arXiv preprint arXiv:2011.02022 (2020).
[35]
HugoLB0 [n. d.]. Ransom0. HugoLB0. https://github.com/HugoLB0/Ransom0.
[36]
InAccel 2019. XGBoost Exact Updater IP core. InAccel. https://github.com/InAccel/xgboost.
[37]
Intel 2019. RAID performance analysis on Intel VROC. Intel. https://www.xilinx.com/support/documentation/white_papers/wp485-hbm.pdf.
[38]
Hui Jiang, Zheng He, Gang Ye, and Huyin Zhang. 2020. Network intrusion detection based on PSO-XGBoost model. IEEE Access 8 (2020), 58392–58401.
[39]
jimmy-ly00 [n. d.]. Ransomware-PoC. jimmy-ly00. https://github.com/jimmy-ly00/Ransomware-PoC.
[40]
Sai Praveen Kadiyala, Pranav Jadhav, Siew-Kei Lam, and Thambipillai Srikanthan. 2020. Hardware performance counter-based fine-grained malware detection. ACM Transactions on Embedded Computing Systems (TECS) 19, 5 (2020), 1–17.
[41]
Kaggle 2021. Fraud Detection Bank Dataset. Kaggle. https://www.kaggle.com/volodymyrgavrysh/fraud-detection-bank-dataset-20k-records-binary.
[42]
Mikhail Kazdagli, Vijay Janapa Reddi, and Mohit Tiwari. 2016. Quantifying and improving the efficiency of hardware-based mobile malware detectors. In 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 1–13.
[43]
Amin Kharaz, Sajjad Arshad, Collin Mulliner, William Robertson, and Engin Kirda. 2016. {UNVEIL}: A {Large-Scale}, Automated Approach to Detecting Ransomware. In 25th USENIX Security Symposium (USENIX Security 16). 757–772.
[44]
Khaled N Khasawneh, Nael Abu-Ghazaleh, Dmitry Ponomarev, and Lei Yu. 2017. RHMD: Evasion-resilient hardware malware detectors. In Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture. 315–327.
[45]
Khaled N Khasawneh, Meltem Ozsoy, Caleb Donovick, Nael Abu-Ghazaleh, and Dmitry Ponomarev. 2015. Ensemble learning for low-level hardware-supported malware detection. In International Symposium on Recent Advances in Intrusion Detection. Springer, 3–25.
[46]
SH Kok, Azween Abdullah, and NZ Jhanjhi. 2020. Early detection of crypto-ransomware using pre-encryption detection algorithm. Journal of King Saud University-Computer and Information Sciences (2020).
[47]
Rafal Kulaga and Marek Gorgon. 2014. FPGA implementation of decision trees and tree ensembles for character recognition in Vivado HLS. Image Processing & Communications 19, 2-3 (2014), 71.
[48]
Sakari Lahti, Panu Sjövall, Jarno Vanne, and Timo D Hämäläinen. 2018. Are we there yet? A study on the state of high-level synthesis. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 38, 5 (2018), 898–911.
[49]
Soram Lim and Seokho Chi. 2019. Xgboost application on bridge management systems for proactive damage estimation. Advanced Engineering Informatics 41 (2019), 100922.
[50]
Xiang Lin, RD Shawn Blanton, and Donald E Thomas. 2017. Random forest architectures on FPGA for multiple applications. In Proceedings of the on Great Lakes Symposium on VLSI. 415–418.
[51]
lychhayly [n. d.]. Gowther. lychhayly. https://github.com/lychhayly/Gowther.
[52]
Corey Malone, Mohamed Zahran, and Ramesh Karri. 2011. Are hardware performance counters a cost effective way for integrity checking of programs. In Proceedings of the sixth ACM workshop on Scalable trusted computing. 71–76.
[53]
Yohei Mishina, Ryuei Murata, Yuji Yamauchi, Takayoshi Yamashita, and Hironobu Fujiyoshi. 2015. Boosted random forest. IEICE Transactions on Information and Systems 98, 9 (2015), 1630–1636.
[54]
Hiroki Nakahara, Akira Jinguji, Tomonori Fujii, and Simpei Sato. 2016. An acceleration of a random forest classification using Altera SDK for OpenCL. In International Conference on Field-Programmable Technology (FPT). IEEE, 289–292.
[55]
Ramanathan Narayanan, Daniel Honbo, Gokhan Memik, Alok Choudhary, and Joseph Zambreno. 2007. An FPGA implementation of decision tree classification. In Design, Automation & Test in Europe Conference & Exhibition. IEEE, 1–6.
[56]
Fairuz Amalina Narudin, Ali Feizollah, Nor Badrul Anuar, and Abdullah Gani. 2016. Evaluation of machine learning classifiers for mobile malware detection. Soft Computing 20 (2016), 343–357.
[57]
ncorbuk [n. d.]. Python-Ransomware. ncorbuk. https://github.com/ncorbuk/Python-Ransomware.
[58]
Daniel Nieuwenhuizen. 2017. A behavioural-based approach to ransomware detection. MWR Labs Whitepaper.
[59]
NullArray [n. d.]. Cypher. NullArray. https://github.com/NullArray/Cypher.
[60]
Open Source 2018. RAPIDS: Collection of Libraries for End to End GPU Data Science. Open Source. https://rapids.ai.
[61]
OpenML 2018. Madeline Dataset. OpenML. https://www.openml.org/d/41144.
[62]
Muhsen Owaida and Gustavo Alonso. 2018. Application partitioning on FPGA clusters: inference over decision tree ensembles. In 28th International Conference on Field Programmable Logic and Applications (FPL). IEEE, 295–2955.
[63]
Muhsen Owaida, Amit Kulkarni, and Gustavo Alonso. 2019. Distributed inference over decision tree ensembles on clusters of FPGAs. ACM Transactions on Reconfigurable Technology and Systems (TRETS) 12, 4 (2019), 1–27.
[64]
Muhsen Owaida, Hantian Zhang, Ce Zhang, and Gustavo Alonso. 2017. Scalable inference of decision tree ensembles: Flexible design for CPU-FPGA platforms. In 27th International Conference on Field Programmable Logic and Applications (FPL). IEEE, 1–8.
[65]
F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau, M. Brucher, M. Perrot, and E. Duchesnay. 2011. Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research 12 (2011), 2825–2830.
[66]
John Podolanko. 2019. Effective Crypto Ransomware Detection Using Hardware Performance Counters. Ph. D. Dissertation.
[67]
Subash Poudyal, Kul Prasad Subedi, and Dipankar Dasgupta. 2018. A framework for analyzing ransomware using machine learning. In IEEE Symposium Series on Computational Intelligence (SSCI). IEEE, 1692–1699.
[68]
Nitin Pundir, Mark Tehranipoor, and Fahim Rahman. 2020. RanStop: A Hardware-assisted Runtime Crypto-Ransomware Detection Technique. arXiv preprint arXiv:2011.12248 (2020).
[69]
Mohan Anand Putrevu, Venkata Sai Charan Putrevu, and Sandeep Kumar Shukla. 2023. Early Detection of Ransomware Activity based on Hardware Performance Counters. In Proceedings of the Australasian Computer Science Week. 10–17.
[70]
Ronny Richardson and Max M North. 2017. Ransomware: Evolution, mitigation and prevention. International Management Review 13, 1 (2017), 10.
[71]
RRZE-HPC/likwid 2020. LIKWID. RRZE-HPC/likwid. https://doi.org/10.5281/zenodo.5680946.
[72]
Tamon Sadasue, Takuya Tanaka, Ryosuke Kasahara, Arief Darmawan, and Tsuyoshi Isshiki. 2021. Scalable Hardware Architecture for fast Gradient Boosted Tree Training. IPSJ Transactions on System LSI Design Methodology 14 (2021), 11–20.
[73]
Fareena Saqib, Aindrik Dutta, Jim Plusquellic, Philip Ortiz, and Marios S Pattichis. 2013. Pipelined decision tree classification accelerator implementation in FPGA (DT-CAIF). IEEE Trans. Comput. 64, 1 (2013), 280–285.
[74]
Nolen Scaife, Henry Carter, Patrick Traynor, and Kevin RB Butler. 2016. Cryptolock (and drop it): stopping ransomware attacks on user data. In IEEE 36th International Conference on Distributed Computing Systems (ICDCS). IEEE, 303–312.
[75]
Wei Song, Qingquan Han, Zhonghang Lin, Nan Yan, Deng Luo, Yiqiao Liao, Milin Zhang, Zhihua Wang, Xiang Xie, Anhe Wang, et al. 2019. Design of a flexible wearable smart sEMG recorder integrated gradient boosting decision tree based hand gesture recognition. IEEE Transactions on Biomedical Circuits and Systems 13, 6 (2019), 1563–1574.
[76]
Sioni Summers, Giuseppe Di Guglielmo, Javier Duarte, Philip Harris, Duc Hoang, Sergo Jindariani, Edward Kreinar, Vladimir Loncar, Jennifer Ngadiuba, Maurizio Pierini, et al. 2020. Fast inference of Boosted Decision Trees in FPGAs for particle physics. Journal of Instrumentation 15, 05 (2020), P05026.
[77]
Takuya Tanaka, Ryosuke Kasahara, and Daishiro Kobayashi. 2018. Efficient logic architecture in training gradient boosting decision tree for high-performance and edge computing. arXiv preprint arXiv:1812.08295 (2018).
[78]
tarcisio-marinho [n. d.]. GonnaCry. tarcisio-marinho. https://github.com/tarcisio-marinho/GonnaCry.
[79]
Da Tong, Yun Rock Qu, and Viktor K Prasanna. 2017. Accelerating decision tree based traffic classification on FPGA and multicore platforms. IEEE Transactions on Parallel and Distributed Systems 28, 11 (2017), 3046–3059.
[80]
Faizan Ullah, Qaisar Javaid, Abdu Salam, Masood Ahmad, Nadeem Sarwar, Dilawar Shah, and Muhammad Abrar. 2020. Modified decision tree technique for ransomware detection at runtime through API Calls. Scientific Programming 2020 (2020).
[81]
Brian Van Essen, Chris Macaraeg, Maya Gokhale, and Ryan Prenger. 2012. Accelerating a random forest classifier: Multi-core, GP-GPU, or FPGA?. In IEEE 20th International Symposium on Field-Programmable Custom Computing Machines. IEEE, 232–239.
[82]
Yu-Lun Wan, Jen-Chun Chang, Rong-Jaye Chen, and Shiuh-Jeng Wang. 2018. Feature-selection-based ransomware detection with machine learning of data analysis. In 2018 3rd International Conference on Computer and Communication Systems (ICCCS). IEEE, 85–88.
[83]
Chen Wang, Chengyuan Deng, and Suzhen Wang. 2020. Imbalance-XGBoost: leveraging weighted and focal losses for binary label-imbalanced classification with XGBoost. Pattern Recognition Letters 136 (2020), 190–197.
[84]
Gongyu Wang, Herman Lam, Alan George, and Glen Edwards. 2015. Performance and productivity evaluation of hybrid-threading HLS versus HDLs. In 2015 IEEE High Performance Extreme Computing Conference (HPEC). IEEE, 1–7.
[85]
Xueyang Wang, Sek Chai, Michael Isnardi, Sehoon Lim, and Ramesh Karri. 2016. Hardware performance counter-based malware identification and detection with adaptive compressive sensing. ACM Transactions on Architecture and Code Optimization (TACO) 13, 1 (2016), 1–23.
[86]
Xelera 2020. Xelera Suite. Xelera. https://xelera.io/.
[87]
Xelera 2021. Xelera Decision Tree Inference. Xelera. https://github.com/xelera-technologies/Tree-Inference.
[88]
Zhen Xie, Wenqian Dong, Jiawen Liu, Hang Liu, and Dong Li. 2021. Tahoe: tree structure-aware high performance inference engine for decision tree ensemble on GPU. In Proceedings of the Sixteenth European Conference on Computer Systems. 426–440.
[89]
Xilinx 2019. Virtex UltraScale+ HBM FPGA: A Revolutionary Increase in Memory Performance. Xilinx. https://www.xilinx.com/support/documentation/white_papers/wp485-hbm.pdf.
[90]
Xilinx 2021. Vitis Unified Software Development Platform 2020.2 Documentation. Xilinx. https://www.xilinx.com/html_docs/xilinx2020_2/vitis_doc/index.html.
[91]
Pavol Zavarsky, Dale Lindskog, et al. 2016. Experimental analysis of ransomware on windows and android platforms: Evolution and characterization. Procedia Computer Science 94 (2016), 465–472.
[92]
Licheng Zhang and Cheng Zhan. 2017. Machine learning in rock facies classification: An application of XGBoost. In International Geophysical Conference, Qingdao, China, 17-20 April 2017. Society of Exploration Geophysicists and Chinese Petroleum Society, 1371–1374.
[93]
Boyou Zhou, Anmol Gupta, Rasoul Jahanshahi, Manuel Egele, and Ajay Joshi. 2018. Hardware performance counters can detect malware: Myth or fact?. In Proceedings of the Asia conference on computer and communications security. 457–468.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Reconfigurable Technology and Systems
ACM Transactions on Reconfigurable Technology and Systems Just Accepted
EISSN:1936-7414
Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Online AM: 12 August 2024
Accepted: 02 August 2024
Revised: 03 June 2024
Received: 21 September 2023

Check for updates

Author Tags

  1. FPGAs
  2. XGBoost
  3. Binary Classification
  4. High-Level Synthesis
  5. Ransomware
  6. Hardware Performance Counters
  7. Accelerators
  8. Machine Learning

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 204
    Total Downloads
  • Downloads (Last 12 months)204
  • Downloads (Last 6 weeks)64
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media