ที่เก็บนี้มีรหัสสำหรับกระดาษ Dimva'18: "JAST: การตรวจจับวากยสัมพันธ์อย่างเต็มที่ของ JavaScript ที่เป็นอันตราย (ทำให้งง)"
โปรดทราบว่าในสถานะปัจจุบันรหัสเป็น POC และไม่ใช่ API ที่พร้อมผลิตเต็มรูปแบบ
การใช้งานของเราซึ่งมีจุดมุ่งหมายในการตรวจจับตัวอย่าง JavaScript ที่เป็นอันตรายนั้นแบ่งออกเป็นหลายแพ็คเกจที่มีฟังก์ชั่นที่แตกต่างกัน:
การตรวจจับตัวอย่าง JavaScript ที่เกี่ยวข้องกับไวยากรณ์ที่กำหนดโดย ECMA-International, การตรวจจับ JavaScript ที่เสียและไฟล์ที่ไม่ได้เขียนใน JavaScript
ในการใช้เครื่องมือนี้: Python3 <Path-of-js/is_js.py>-help
สามารถทำการวิเคราะห์ตัวอย่าง JavaScript ที่ใช้ AST ได้ การศึกษาครั้งนี้ขึ้นอยู่กับการวิเคราะห์ความถี่ของ N-grams ที่มีอยู่ในไฟล์ที่พิจารณา
หากคุณใช้ Jast สำหรับการวิจัยเชิงวิชาการคุณได้รับการสนับสนุนอย่างมากในการอ้างอิงบทความต่อไปนี้:
@inproceedings{fass2018jast,
author="Fass, Aurore and Krawczyk, Robert P. and Backes, Michael and Stock, Ben",
title="{textsc{JaSt}: Fully Syntactic Detection of Malicious (Obfuscated) JavaScript}",
booktitle="Proceedings of the International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment~(DIMVA)",
year="2018"
}
JavaScript เป็นภาษาสคริปต์เบราว์เซอร์ที่สร้างขึ้นในขั้นต้นเพื่อปรับปรุงการโต้ตอบของเว็บไซต์และเพื่อปรับปรุงความเป็นมิตรกับผู้ใช้ อย่างไรก็ตามในขณะที่มันปิดงานไปยังเบราว์เซอร์ของผู้ใช้จึงสามารถใช้ในการทำกิจกรรมที่เป็นอันตรายเช่นการขุด crypto การโจมตีแบบไดรฟ์โดยการดาวน์โหลดหรือการเปลี่ยนเส้นทางไปยังเว็บไซต์ที่โฮสต์ซอฟต์แวร์ที่เป็นอันตราย ด้วยความชุกของสคริปต์ที่ชั่วร้ายเช่นนี้อุตสาหกรรมต่อต้านไวรัสได้เพิ่มการมุ่งเน้นไปที่การตรวจจับของพวกเขา ในทางกลับกันผู้โจมตีใช้เทคนิคการทำให้งงงวยเพิ่มขึ้นเพื่อขัดขวางการวิเคราะห์และการสร้างลายเซ็นที่สอดคล้องกัน แต่ตัวอย่างที่เป็นอันตรายเหล่านี้ยังมีความคล้ายคลึงกันทางวากยสัมพันธ์ในระดับนามธรรมซึ่งช่วยให้สามารถข้ามการทำให้งงงวยและตรวจจับตัวแปรมัลแวร์ที่ไม่รู้จัก
ในบทความนี้เรานำเสนอ Jast ซึ่งเป็นโซลูชันที่มีหัวต่ำซึ่งรวมการสกัดคุณสมบัติจากต้นไวยากรณ์นามธรรมกับตัวจําแนกป่าแบบสุ่มเพื่อตรวจจับอินสแตนซ์จาวาสคริปต์ที่เป็นอันตราย มันขึ้นอยู่กับการวิเคราะห์ความถี่ของรูปแบบเฉพาะซึ่งเป็นทั้งการทำนายของตัวอย่างที่เป็นพิษเป็นภัยหรือเป็นอันตราย แม้ว่าการวิเคราะห์จะคงที่ทั้งหมด แต่ก็ให้ความแม่นยำในการตรวจจับที่สูงเกือบ 99.5% และมีอัตราการลบเท็จต่ำ 0.54%
นี่คืองานวิจัยและตั้งใจจะเผยแพร่ผลลัพธ์เพื่อให้ผลลัพธ์ตรวจสอบได้และเพื่อส่งเสริมความปลอดภัยของข้อมูล ไม่จำเป็นต้องสะท้อนถึงนโยบายหรือตำแหน่งอย่างเป็นทางการของ Bundesamt Für Sicherheit ใน Der InformationStechnik (BSI) แม้ว่าผู้เขียนได้ใช้ความพยายามทุกวิถีทางเพื่อให้แน่ใจว่าข้อมูลในเอกสารนี้ถูกต้อง แต่ผู้เขียนไม่ได้ถือว่าและขอปฏิเสธความรับผิดใด ๆ ต่อฝ่ายใดฝ่ายหนึ่งสำหรับการสูญเสียความเสียหายหรือการหยุดชะงักที่เกิดจากข้อผิดพลาดหรือการละเว้นไม่ว่าจะเป็นข้อผิดพลาดหรือการละเว้นดังกล่าวเกิดจากความประมาทเลินเล่ออุบัติเหตุหรือสาเหตุอื่น ๆ
Die von Dem Benutzer auf github bereitgestellten inhalte spiegeln nicht die meinung des bsi กว้างขึ้น
ตาย verwendung der bereitgestellten inhalte geschieht auf eigene gefahr des anwenders Eine Haftung für Die Richtigkeit, Vollständigkeit und Aktualität dieser inhalte kann seitens des bsi nicht übernommen werden
das bsi ist nicht verantwortlich und übernimmt keinerlei haftung fürschäden, unter Anderem für direkte, Indirekte, Zufällige, Vorab Konkret Zu Bestimmende
Esprima สร้างและบำรุงรักษาโดย Ariya Hidayat ถูกนำมาใช้เพื่อทำการวิเคราะห์ทั้งคำศัพท์และวากยสัมพันธ์ของไฟล์ JavaScript
"มูลนิธิลิขสิทธิ์ JS และผู้มีส่วนร่วมอื่น ๆ https://js.foundation/
อนุญาตให้แจกจ่ายและใช้งานในรูปแบบแหล่งที่มาและไบนารีโดยมีหรือไม่มีการแก้ไขได้รับอนุญาตหากเป็นไปตามเงื่อนไขต่อไปนี้:
ซอฟต์แวร์นี้จัดทำโดยผู้ถือลิขสิทธิ์และผู้มีส่วนร่วม "ตามที่เป็นอยู่" และการรับประกันโดยชัดแจ้งหรือโดยนัยใด ๆ รวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในการค้าและความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ไม่ว่าในกรณีใดจะต้องรับผิดชอบต่อความเสียหายทางตรงทางอ้อม, โดยบังเอิญ, พิเศษ, เป็นแบบอย่าง, หรือความเสียหายที่ตามมา (รวมถึง แต่ไม่ จำกัด เพียงการจัดหาสินค้าทดแทนหรือบริการการสูญเสียการใช้ข้อมูลหรือผลกำไรหรือการขัดจังหวะทางธุรกิจ) ความเสียหาย."