สารบัญ
- การแนะนำ
- ข้อกำหนดเบื้องต้น
- พื้นฐาน
- การพึ่งพาอาศัยกัน
- การพัฒนา
- วิธี
- select_pm
- select_pkg
- คลาน
- edit_dist
- การดาวน์โหลด
- get_versions
- get_author
- get_dep
- get_stats
- build_dep
- build_author
- Split_graph
- ติดตั้ง
- แอสเท็น
- เครื่องกรอง
- ทำให้เสีย
- filter_pkg
- คงที่
- พลวัต
- ตีความ _trace
- ตีความ _result
- เปรียบเทียบ _ast
- ตัวกรอง _versions
- เปรียบเทียบ _hash
- grep_pkg
- การเร่งความเร็ว
- เครื่องมือ
- การสแกนทั่วทั้งอินเทอร์เน็ต
- สถิติสำหรับผู้จัดการแพ็คเกจที่แตกต่างกัน
- เครื่องมือวิเคราะห์แบบคงที่สำหรับภาษาต่าง ๆ
- AST Parsers สำหรับภาษาต่าง ๆ
- ทรัพยากร
- อ้างอิง
การแนะนำ
โครงการนี้วิเคราะห์โครงการโอเพ่นซอร์สสำหรับมัลแวร์
เนื่องจากความต้องการสูงของชุมชนเราจึงตัดสินใจที่จะเปิดรหัสโอเพ่นมาในขณะนี้เพื่ออนุญาตให้ทำงานร่วมกัน รหัสส่วนใหญ่ได้รับการอัปเดตจนถึงเดือนพฤษภาคม 2562 ซึ่งระบุว่าส่วนประกอบบางอย่างอาจ ไม่ ทำงานอีกต่อไป โดยเฉพาะอย่างยิ่งส่วนประกอบที่ขึ้นอยู่กับเครื่องมือภายนอก (เช่น Sysdig, Airflow) หรือ APIs (เช่น NPM)
เรากำลังทำงานอย่างแข็งขันในการทดสอบและการปรับปรุง โปรดค้นหารายการสิ่งที่ต้องทำที่นี่ สำหรับวิธีเรียกใช้คำสั่งโปรดดูที่ส่วน HOWTO สำหรับวิธีการปรับใช้เครื่องจักรโปรดดูคำแนะนำในการปรับใช้ สำหรับวิธีการขอการเข้าถึงตัวอย่างการโจมตีห่วงโซ่อุปทานโปรดดูคำแนะนำในการร้องขอ
ที่เก็บนี้เปิดให้บริการภายใต้ใบอนุญาต MIT หากคุณพบว่าที่เก็บนี้มีประโยชน์โปรดอ้างอิงกระดาษของเรา:
@inproceedings{duan2021measuring,
title={Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages},
author={Duan, Ruian and Alrawi, Omar and Kasturi, Ranjita Pai and Elder, Ryan and Saltaformaggio, Brendan and Lee, Wenke},
booktitle = {28th Annual Network and Distributed System Security Symposium, {NDSS}},
month = Feb,
year = {2021},
url = {https://www.ndss-symposium.org/wp-content/uploads/ndss2021_1B-1_23055_paper.pdf}
}
ข้อกำหนดเบื้องต้น
พื้นฐาน
- นักเทียบท่า
- การตั้งค่าพื้นฐานสำหรับ ubuntu
- สำหรับระบบปฏิบัติการอื่น ๆ (เช่น macOS และ windows) โปรดดูที่
setup.sh และหาค่าเทียบเท่าของพวกเขา
การพึ่งพาอาศัยกัน
- ในการทดสอบและเรียกใช้โครงการในพื้นที่คุณต้องพึ่งพา มีสองวิธีในการเตรียมการพึ่งพา
- สร้างภาพ Maloss Docker และทดสอบภายใน
- สร้างภาพนักเทียบท่า
-
sudo docker build -t maloss .
- สร้างภาพนักเทียบท่าอีกครั้งโดยไม่ต้องแคช (ใช้เมื่อสร้างภาพใหม่)
-
sudo docker build -t maloss . --no-cache
- เรียกใช้อิมเมจนักเทียบท่าและแมปแหล่งข้อมูลท้องถิ่นของคุณกับมัน
-
sudo docker run -it --rm -v $(pwd):/code maloss /bin/bash
- เปลี่ยนเป็นรูทต้นฉบับที่ติดตั้งที่แมปและเริ่มทำการเปลี่ยนแปลง
- ติดตั้งการพึ่งพาในเครื่องและทดสอบ
- คำแนะนำสำหรับ Ubuntu 16.04 หากคุณพบว่าพวกเขาไม่ได้ทำงานกับระบบอื่นโปรดแก้ไขและกระทำการเปลี่ยนแปลงที่จำเป็น คำแนะนำเหล่านี้ถูกคัดลอกมาจาก Dockerfile ให้ดูเพื่อการแก้ไขปัญหา
- สำหรับการพัฒนาการวิเคราะห์ JS และ Python Static
-
pip install -r src/requirements.txt --user
- สำหรับคนอื่น ๆ (สิ่งที่ต้องทำ: ทำให้รายการยักษ์นี้ง่ายขึ้น)
-
sudo apt-get install -yqq curl php git ruby-full rubygems-integration nuget python python-pip python3-pip npm jq strace -
sudo ./src/install_dep.sh
การพัฒนา
โครงสร้าง
- โฟลเดอร์ Registries มีซอร์สโค้ดสำหรับ Mirroring Package Managers ในการเรียกใช้โปรแกรมคุณจะต้องใช้ 10TB สำหรับ NPM, 5TB สำหรับ PYPI และ 5TB สำหรับ RUBYGEMS
- โฟลเดอร์ SRC มีซอร์สโค้ดสำหรับการวิเคราะห์แบบคงที่ไดนามิกและข้อมูลเมตา
- โฟลเดอร์ หลัก มีซอร์สโค้ดสำหรับการประสานแบบไดนามิก
- โฟลเดอร์ Airflow มีซอร์สโค้ดสำหรับ orchestration แบบคงที่
- โฟลเดอร์ Sysdig มีการตั้งค่าและการกำหนดค่าสำหรับการติดตามแบบไดนามิก
- ข้อมูล มีการตั้งค่า Honeypot และสถิติ
- Config มีการกำหนดค่าสำหรับการวิเคราะห์แบบคงที่
- DOC มี API ที่มีป้ายกำกับด้วยตนเองซึ่งใช้ในการ กำหนดค่า
- TestData มีตัวอย่างการทดสอบ
- Ref มีงานที่เกี่ยวข้อง
- benignware มีแพ็คเกจที่อ่อนโยน
- มัลแวร์ มี รายการ ตัวอย่างที่เป็นอันตรายซึ่งสามารถใช้เพื่อการป้องกัน
- Maloss-Samples เป็น repo ส่วนตัวที่มีตัวอย่างการโจมตีห่วงโซ่อุปทานและได้รับการปรับปรุงเป็นระยะ กรุณากรอกแบบฟอร์ม Google เพื่อขอการเข้าถึง เราจะตอบสนองโดยเร็ว
คำแนะนำ
- ในโครงการนี้ขณะนี้เรากำลังใช้คื่น ฉ่าย + RabbitMQ เพื่อเรียกใช้ข้อมูลเมตาของเราและการวิเคราะห์แบบไดนามิกของเราในลักษณะกระจาย เรากำลังใช้ Airflow + Celery เพื่อทำการวิเคราะห์แบบคงที่ของเรา
- SRC/ โฟลเดอร์มีรหัสสำหรับการวิเคราะห์แต่ละครั้งและควรย่อให้เล็กสุดและมีอยู่ในตัวเอง
- โดยเฉพาะอย่างยิ่งสำหรับการวิเคราะห์แบบคงที่/ไดนามิก/ข้อมูลเมตางานใน SRC/ โฟลเดอร์ควรจัดการเพียงหนึ่งแพ็คเกจและหนึ่ง versoin
- การวิเคราะห์แต่ละครั้งควรได้รับการพัฒนาและมีอยู่ในโฟลเดอร์นี้
- หลัก/ โฟลเดอร์จัดการการคำนวณแบบกระจายสำหรับข้อมูลเมตาและการวิเคราะห์แบบไดนามิก
- โหนดหลักจะโหลดรายการงาน (แพ็คเกจและเวอร์ชันเพื่อวิเคราะห์) ส่งพวกเขาไปยังนายหน้า RabbitMQ
- โหนดทาสเชื่อมต่อกับนายหน้าและรับงานจากนายหน้า
- การวิเคราะห์แต่ละครั้งอาจจำเป็นต้องเปลี่ยน . ENV ในโฟลเดอร์นี้
- การไหล เวียนของอากาศ/ โฟลเดอร์จัดการการคำนวณแบบกระจายสำหรับการวิเคราะห์แบบคงที่
- โหนดหลักโหลด DAG ของงาน (แพ็คเกจที่เชื่อมต่อกันโดยความสัมพันธ์แบบพึ่งพา) ส่งไปยังนายหน้า Redis
- โหนดทาสเชื่อมต่อกับนายหน้า TE และรับงานจากโบรกเกอร์
- การวิเคราะห์แต่ละครั้งอาจจำเป็นต้องเปลี่ยน . ENV ในโฟลเดอร์นี้
- ในโครงการนี้เราทำการวิเคราะห์แต่ละครั้งโดยใช้ Docker ขั้นตอนต่อไปนี้แสดงวิธีเริ่มต้นหรือดีบักงานกระจายสำหรับข้อมูลเมตาและการวิเคราะห์แบบไดนามิก
- กับคนงาน
- สร้าง
main/config ที่กำหนดเองจาก main/config.tmpl - สร้างภาพนักเทียบท่า
-
sudo docker build -t maloss .
- สร้างภาพนักเทียบท่าอีกครั้งโดยไม่ต้องแคช (ใช้เมื่อสร้างภาพใหม่)
-
sudo docker build -t maloss . --no-cache
- สำหรับการทดสอบให้เรียกใช้อิมเมจ Docker และแนบไปกับมัน
-
sudo docker run -it --rm --cap-add=SYS_PTRACE -v /tmp/result:/home/maloss/result -v /tmp/metadata:/home/maloss/metadata maloss /bin/bash
- สำหรับการผลิตอ้างอิงถึง การปรับใช้ MD
- กับนาย
- สร้าง
main/config ที่กำหนดเองจาก main/config.tmpl - เริ่ม RabbitMQ
-
cd main && sudo docker-compose --compatibility -f docker-compose-master.yml up -d
- เพิ่มงานลงในคิว
-
python detector.py install -i ../data/pypi.csv
- การดีบัก
- แสดงความคิดเห็นออกมา
QUEUING = Celery ใน main/config จากนั้นงานควรทำงานในพื้นที่และตามลำดับ - จุดเริ่มต้นสำหรับงานขึ้นฉ่ายคือ
main/celery_tasks.py และจุดเริ่มต้นสำหรับ Master It main/detector.py
- TODO: วิธีการดีบักการวิเคราะห์แบบคงที่
วิธี
select_pm
- เลือกผู้จัดการแพ็คเกจเพื่อตรวจสอบตามเกณฑ์ num_pkg
select_pkg
- เลือกแพ็คเกจยอดนิยมตามเกณฑ์ที่ระบุเช่นการดาวน์โหลดหรือการใช้งาน
-
python main.py select_pkg ../data/pypi.with_stats.csv ../data/pypi.with_stats.popular.csv -n 10000 -
python main.py select_pkg ../data/maven.csv ../data/maven.popular.csv -n 10000 -f use_count
คลาน
- คลานตัวจัดการแพ็คเกจที่ระบุและบันทึกชื่อแพ็คเกจ
-
python main.py crawl $package_manager $outfile
- รวบรวมข้อมูลแพ็คเกจแพ็คเกจที่ระบุสำหรับชื่อแพ็คเกจสถิติการดาวน์โหลดการค้นหาและบันทึกเป็นไฟล์
-
python main.py crawl $package_manager $outfile -s -p 24
edit_dist
- รันแก้ไขระยะทางสำหรับชื่อแพ็คเกจ
-
python main.py edit_dist $source -t $target $outfile -
python main.py edit_dist ../data/pypi.with_stats.csv ../data/edit_dist/pypi_edist_dist.out -a c_edit_distance_batch -p 16 -
python main.py edit_dist ../data/pypi.with_stats.popular.csv ../data/edit_dist/pypi_pop_vs_all.out -t ../data/pypi.with_stats.csv -a c_edit_distance_batch -p 16 --pair_outfile ../data/edit_dist/pypi_pop_vs_all.csv
การดาวน์โหลด
- ดาวน์โหลดไฟล์ tarball โดยใช้ pip, ลิงค์
-
pip download --no-binary :all: --no-deps package
- ดาวน์โหลดไฟล์ tgz โดยใช้ NPM, ลิงค์
- ดาวน์โหลดแพ็คเกจ PHP โดยใช้นักแต่งเพลง
-
composer require -d ../testdata/php --prefer-source --no-scripts package
- ดาวน์โหลดแพ็คเกจทับทิมโดยใช้อัญมณี
- ดาวน์โหลดแพ็คเกจ Java โดยใช้ maven
-
mvn dependency:get -Dartifact=com.google.protobuf:protobuf-java:3.5.1 -Dtransitive=false && cp ~/.m2/repository/com/google/protobuf/protobuf-java/3.5.1/protobuf-java-3.5.1.jar ./
get_versions
- เรียกใช้งาน get_versions เพื่อรับเวอร์ชันหลักสำหรับรายการแพ็คเกจ
-
python main.py get_versions ../data/pypi.with_stats.popular.csv ../data/pypi.with_stats.popular.versions.csv -l python -c /data/maloss/info/python -
python main.py get_versions ../data/maven.popular.csv ../data/maven.popular.versions.csv -c /data/maloss/info/java -l java
- เรียกใช้งาน get_versions เพื่อรับทุกเวอร์ชันสำหรับรายการแพ็คเกจ
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num -1
- เรียกใช้งาน get_versions เพื่อรับทุกเวอร์ชันสำหรับรายการแพ็คเกจและรวมเวลาของพวกเขาเช่นกัน
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num -1 --with_time
- เรียกใช้งาน get_versions เพื่อรับเวอร์ชันล่าสุดสำหรับรายการแพ็คเกจ
-
python main.py get_versions ../data/2019.07/pypi.csv ../data/2019.07/pypi.versions.csv -c /data/maloss/info-2019.07/python -l python --max_num 100 --min_gap_days 1
get_author
- เรียกใช้งาน get_author ไปยังผู้แต่งสำหรับรายการแพ็คเกจ
-
python main.py get_author ../data/pypi.with_stats.popular.csv ../data/pypi.with_stats.with_author.popular.csv -l python -c /data/maloss/info/python
get_dep
- เรียกใช้งาน get_dep เพื่อแสดงรายการการพึ่งพาแพ็คเกจ Python
-
python main.py get_dep -l python -n protobuf -c ../testdata -
python main.py get_dep -l python -n scrapy -c ../testdata
- เรียกใช้งาน get_dep เพื่อแสดงรายการการพึ่งพาสำหรับแพ็คเกจ JavaScript
-
python main.py get_dep -l javascript -n eslint -c ../testdata
- เรียกใช้งาน get_dep เพื่อแสดงรายการพัสดุสำหรับแพ็คเกจทับทิม
-
python main.py get_dep -l ruby -n protobuf -c ../testdata
- เรียกใช้งาน GET_DEP เพื่อแสดงรายการการพึ่งพาสำหรับแพ็คเกจ PHP
-
python main.py get_dep -l php -n designsecurity/progpilot -c ../testdata
- เรียกใช้งาน GET_DEP เพื่อแสดงรายการการพึ่งพาสำหรับแพ็คเกจ Java
-
python main.py get_dep -l java -n com.google.protobuf/protobuf-java -c ../testdata
get_stats
- รับสถิติสำหรับแพ็คเกจที่ระบุ
-
python main.py get_stats ../malware/npmjs-mal-pkgs.june2019.txt ../malware/npmjs-mal-pkgs.june2019.with_stats.txt.new -m npmjs
- รับสถิติสำหรับแพ็คเกจที่ระบุ
- `python main.py get_stats ../malware/pypi-mal-pkgs.txt ../malware/pypi-mal-pkgs.with_stats.txt -m pypi
build_dep
- สร้างกราฟการพึ่งพา
-
python main.py build_dep -c /data/maloss/info/python -l python ../data/pypi.with_stats.csv ../airflow/data/pypi.with_stats.dep_graph.pickle
- สร้างกราฟการพึ่งพาด้วยเวอร์ชัน (ตัวเลือก -RECORD_VERSION )
-
python main.py build_dep -c /data/maloss/info/python -v -l python ../data/pypi.with_stats.popular.versions.csv ../airflow/data/pypi.with_stats.popular.versions.dep_graph.pickle
build_author
- สร้างกราฟแพ็คเกจผู้แต่งสำหรับแพ็คเกจยอดนิยมใน PYPI/NPMJS/Rubygems/Packagist
-
python main.py build_author ../data/author_pkg_graph.popular.pickle -i ../data/pypi.with_stats.with_author.popular.csv ../data/npmjs.with_stats.with_author.popular.csv ../data/rubygems.with_stats.with_author.popular.csv ../data/packagist.with_stats.with_author.popular.csv -l python javascript ruby php -t ../data/top_authors.popular.json
- สร้างกราฟแพ็คเกจผู้แต่งสำหรับแพ็คเกจทั้งหมดใน PYPI/NPMJS/Rubygems/Packagist/Maven
-
python main.py build_author ../data/author_pkg_graph.pickle -i ../data/pypi.with_stats.with_author.csv ../data/npmjs.with_stats.with_author.csv ../data/rubygems.with_stats.with_author.csv ../data/packagist.with_stats.with_author.csv ../data/maven.with_author.csv -l python javascript ruby php java -t ../data/top_authors.json
Split_graph
- แยกกราฟการพึ่งพา
- เปิดซิปไฟล์ดองก่อน
-
tar -zxf ../airflow/data/pypi.with_stats.dep_graph.pickle.tgz
- แบ่งออกเป็น n สำเนา
-
python main.py split_graph ../airflow/data/pypi.with_stats.dep_graph.pickle ../airflow/pypi_dags/ -d ../airflow/data/pypi_static.py -n 20 -
python main.py split_graph ../airflow/data/pypi.with_stats.popular.versions.dep_graph.pickle ../airflow/pypi_version_dags/ -d ../airflow/data/pypi_static_versions.py -n 10 -
python main.py split_graph ../airflow/data/maven.dep_graph.pickle ../airflow/maven_dags/ -d ../airflow/data/maven_static.py -n 20
- แบ่งออกเป็น n สำเนาและโฟลเดอร์ k
-
python main.py split_graph ../airflow/data/maven.popular.versions.dep_graph.pickle.tgz ../airflow/maven_version_dags/ -d ../airflow/data/maven_static_versions.py -n 80 -k 4
- แยกกราฟย่อยที่มีโหนดเมล็ด
-
python main.py split_graph ../airflow/data/pypi.with_stats.dep_graph.pickle ../airflow/pypi_dags/ -d ../airflow/data/pypi_static.py -s ../data/pypi.with_stats.popular.csv
ติดตั้ง
- เรียกใช้งานติดตั้งเพื่อติดตั้งแพ็คเกจ Python และการติดตามร่องรอย
-
python main.py install -n protobuf -l python -c ../testdata -o ../testdata
- เรียกใช้งานติดตั้งเพื่อติดตั้งแพ็คเกจ JavaScript และติดตามการติดตาม
-
python main.py install -n eslint -l javascript -c ../testdata -o ../testdata
- เรียกใช้งานติดตั้งเพื่อติดตั้งแพ็คเกจทับทิมและติดตามร่องรอย
-
python main.py install -n protobuf -l ruby -c ../testdata -o ../testdata
- เรียกใช้งานติดตั้งเพื่อติดตั้งแพ็คเกจ PHP และติดตามร่องรอย
-
python main.py install -n designsecurity/progpilot -l php -c ../testdata -o ../testdata
- เรียกใช้งานติดตั้งเพื่อติดตั้งแพ็คเกจ Java และการติดตามร่องรอย
-
python main.py install -n com.google.protobuf/protobuf-java -l java -c ../testdata -o ../testdata
แอสเท็น
- เรียกใช้งาน ASTGEN เพื่อคำนวณ AST สำหรับแพ็คเกจ Python และ Python3
-
python main.py astgen ../testdata/test-eval-exec.py ../testdata/test-eval-exec.py.out -c ../config/test_astgen_python.config -
python main.py astgen ../testdata/html5lib-1.0.1.tar.gz ../testdata/html5lib-1.0.1.tar.gz.out -c ../config/test_astgen_python.config -
python main.py astgen ../testdata/python-taint-0.40.tar.gz ../testdata/python-taint-0.40.tar.gz.out -c ../config/test_astgen_python.config
- เรียกใช้งาน ASTGEN เพื่อคำนวณ AST สำหรับแพ็คเกจ JavaScript
-
python main.py astgen ../testdata/test-eval.js ../testdata/test-eval.js.out -c ../config/test_astgen_javascript.config -l javascript -
python main.py astgen ../testdata/urlgrey-0.4.4.tgz ../testdata/urlgrey-0.4.4.tgz.out -c ../config/test_astgen_javascript.config -l javascript
- เรียกใช้งาน ASTGEN เพื่อคำนวณ AST สำหรับแพ็คเกจ PHP
-
cd static_proxy && php astgen.php -c ../../config/test_astgen_php.config.bin -i ../../testdata/test-eval-exec.php -o ../../testdata/test-eval-exec.php.out.bin && cd .. -
python main.py astgen ../testdata/test-eval-exec.php ../testdata/test-eval-exec.php.out -c ../config/test_astgen_php.config -l php -
python main.py astgen ../testdata/test-backtick.php ../testdata/test-backtick.php.out -c ../config/test_astgen_php.config -l php -
python main.py astgen ../testdata/php/vendor/guzzlehttp/guzzle/ ../testdata/guzzlehttp_guzzle.out -c ../config/test_astgen_php.config -l php
- เรียกใช้งาน ASTGEN เพื่อคำนวณ AST สำหรับแพ็คเกจทับทิม
-
cd static_proxy && ruby astgen.rb -c ../../config/test_astgen_ruby.config.bin -i ../../testdata/test-eval.rb -o ../../testdata/test-eval.rb.out.bin && cd .. -
python main.py astgen ../testdata/test-eval.rb ../testdata/test-eval.rb.out -c ../config/test_astgen_ruby.config -l ruby
- เรียกใช้งาน ASTGEN เพื่อคำนวณ AST สำหรับแพ็คเกจ Java
-
cd static_proxy/astgen-java && java -jar target/astgen-java-1.0.0-jar-with-dependencies.jar -help && cd ../../ -
cd static_proxy/astgen-java && java -jar target/astgen-java-1.0.0-jar-with-dependencies.jar -inpath ../../../testdata/Test.jar -outfile ../../../testdata/Test.jar.out -intype JAR -config ../../../config/astgen_java_smt.config -process_dir ../../../testdata/Test.jar && cd ../../ -
python main.py astgen ../testdata/protobuf-java-3.5.1.jar ../testdata/protobuf-java-3.5.1.jar.out -c ../config/test_astgen_java.config -l java -
python main.py astgen ../testdata/Test.jar ../testdata/Test.jar.out -c ../config/astgen_java_smt.config -l java
เครื่องกรอง
- ใช้ configs titled
../config/astgen_XXX_smt.config สำหรับแต่ละภาษา (เช่น ../config/astgen_javascript_smt.config ) ในงาน Astfilter - เรียกใช้งาน ASTFilter เพื่อประเมินการใช้ API สำหรับแพ็คเกจ Python/PYPI และแพ็คเกจที่ขึ้นอยู่กับ
-
python main.py astfilter -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
- เรียกใช้งาน ASTFilter เพื่อประเมินการใช้ API สำหรับแพ็คเกจ JavaScript/NPMJS และแพ็คเกจที่ขึ้นอยู่กับ
-
python main.py astfilter -n eslint-scope -c $javascript_config -d ../testdata/ -o ../testdata/ -l javascript
- เรียกใช้งาน ASTFilter เพื่อประเมินการใช้ API สำหรับแพ็คเกจ PHP/Packagist และแพ็คเกจที่ขึ้นอยู่กับ
-
python main.py astfilter -n designsecurity/progpilot -c $php_config -d ../testdata/ -o ../testdata/ -l php
- เรียกใช้งาน ASTFilter เพื่อประเมินการใช้ API สำหรับแพ็คเกจ Ruby/Rubygems และแพ็คเกจขึ้นอยู่กับมัน
-
python main.py astfilter -n protobuf -c $ruby_config -d ../testdata/ -o ../testdata -l ruby
- เรียกใช้งาน ASTFilter เพื่อประเมินการใช้ API สำหรับแพ็คเกจ Java/Maven และแพ็คเกจที่ขึ้นอยู่กับ
-
python main.py astfilter -n com.google.protobuf/protobuf-java -c $java_config -d ../testdata/ -o ../testdata -l java
ทำให้เสีย
- เรียกใช้การวิเคราะห์ taint สำหรับแพ็คเกจเฉพาะ
-
python main.py taint -n json -d /data/maloss/info/ruby -o /data/maloss/result/ruby -l ruby -c ../config/astgen_ruby_smt.config
- เรียกใช้การวิเคราะห์ taint สำหรับแพ็คเกจเฉพาะและไม่สนใจการอ้างอิงของพวกเขา
-
python main.py taint -n urllib -i ../malware/pypi-samples/urllib-1.21.1.tgz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
python main.py taint -n django-server -i ../malware/pypi-samples/django-server-0.1.2.tgz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
pip download --no-binary :all: --no-deps trustme && python main.py taint -n trustme -i trustme-0.5.1.tar.gz -d /data/maloss/info/python -o ./ -l python -c ../config/astgen_python_smt.config -
python main.py taint -n eslint-scope -i ../malware/npmjs-samples/eslint-scope-3.7.2.tgz -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n custom8 -i static_proxy/jsprime/jsprimetests/custom8.js -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n stream-combine -i ../malware/npmjs-samples/stream-combine-2.0.2.tgz -d /data/maloss/info/javascript -o ./ -l javascript -c ../config/astgen_javascript_smt.config -
python main.py taint -n test-eval-exec -i ../testdata/test-eval-exec.php -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config -
python main.py taint -n test-multiple-flows -i static_proxy/progpilot/projects/tests/tests/flows/ -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config -
python main.py taint -n test-flow -i ../testdata/test-flow.php -d /data/maloss/info/php -o ./ -l php -c ../config/astgen_php_smt.config
- เรียกใช้การวิเคราะห์ taint สำหรับไฟล์อินพุตเฉพาะ
-
python main.py taint -n active-support -l ruby -c ../config/astgen_ruby_smt.config -i ../malware/rubygems-samples/active-support-5.2.0.gem -o ./ -
python main.py taint -n bootstrap-sass -l ruby -c ../config/astgen_ruby_smt.config -i ../malware/rubygems-samples/bootstrap-sass-3.2.0.3.gem -o ./ -
python main.py taint -n brakeman-rails4 -l ruby -c ../config/astgen_ruby_smt.config -i ../testdata/rails4/ -o ./
filter_pkg
- แพ็คเกจตัวกรองขึ้นอยู่กับการใช้ API หรือสถานะการไหล
-
python main.py filter_pkg ../data/pypi.with_stats.csv ../data/pypi.with_stats.with_taint_apis.csv -c ../config/astgen_python_taint_apis.config -o /data/maloss/result/python -d /data/maloss/info/python -l python -
python main.py filter_pkg ../data/rubygems.with_stats.csv ../data/rubygems.with_stats.with_taint_apis.csv -c ../config/astgen_ruby_taint_apis.config -o /data/maloss/result/ruby -d /data/maloss/info/ruby -l ruby -
python main.py filter_pkg ../data/npmjs.with_stats.csv ../data/npmjs.with_stats.with_taint_apis.csv -c ../config/astgen_javascript_taint_apis.config -o /data/maloss/result/javascript -d /data/maloss/info/javascript -l javascript -
python main.py filter_pkg ../data/packagist.with_stats.csv ../data/packagist.with_stats.with_taint_apis.csv -c ../config/astgen_php_taint_apis.config -o /data/maloss/result/php -d /data/maloss/info/php -l php -
python main.py filter_pkg ../data/maven.csv ../data/maven.with_taint_apis.csv -c ../config/astgen_java_taint_apis.config -o /data/maloss/result/java -d /data/maloss/info/java -l java
คงที่
- ทำงานคงที่เพื่อดำเนินการวิเคราะห์ Astfilter, Taint และ Danger สำหรับแพ็คเกจ Python และ Python3
-
python main.py static -n protobuf -c $python_config -d ../testdata/ -o ../testdata/
พลวัต
- รันงานไดนามิกเพื่อติดตั้งแพ็คเกจ Python หลักและการออกกำลังกายและการติดตามร่องรอย
-
python main.py dynamic -n protobuf -l python -c ../testdata -o ../testdata
ตีความ _trace
- เรียกใช้งานตีความงานติดตามเพื่อแยกร่องรอยแบบไดนามิกและทิ้งไว้ในไฟล์เอาต์พุต PKG/เวอร์ชัน Protobuf
- หมายเหตุ: Sudo เป็นสิ่งจำเป็นสำหรับการเริ่มต้น Falco เพื่อแยกร่องรอย
-
sudo python main.py interpret_trace -l python --trace_dir /data/maloss1/sysdig/pypi -c /data/maloss/info/python -o /data/maloss/result/python -p 8
เปรียบเทียบ _ast
- เปรียบเทียบ AST ของไฟล์อินพุตและแพ็คเกจที่ระบุสำหรับการอนุญาต API ฯลฯ
-
python main.py compare_ast -i ../malware/npmjs-samples/flatmap-stream-0.1.1.tgz ../benignware/npmjs-samples/flatmap-stream-0.1.0.tgz -o ../testdata/ ../testdata/flatmap-stream.json -l javascript -c ../config/astgen_javascript_smt.config -
python main.py compare_ast -i ../testdata/test-backtick.php ../testdata/test-eval-exec.php -o tempout/ tempout/test_eval_backtick.json -l php -c ../config/astgen_php_smt.config -
python main.py compare_ast -i ../malware/rubygems-samples/bootstrap-sass-3.2.0.3.gem ../benignware/rubygems-samples/bootstrap-sass-3.2.0.2.gem -l ruby -c ../config/astgen_ruby_smt.config -o ../testdata/ --outfile ../testdata/bootstrap-sass-compare.txt -
python main.py compare_ast -i ../malware/rubygems-samples/active-support-5.2.0.gem ../benignware/rubygems-samples/activesupport-5.2.3.gem -c ../config/astgen_ruby_smt.config -o ../testdata/ --outfile ../testdata/activesupport-compare.txt -l ruby
ตัวกรอง _versions
- ตัวกรองแพคเกจเวอร์ชันตามผลลัพธ์ Compare_ast เพื่ออนุญาตการวิเคราะห์เพิ่มเติมเช่นการวิเคราะห์ Taint
-
python main.py filter_versions ../data/2019.07/packagist.versions.with_time.csv ../data/2019.07/packagist_ast_stats.apis.json ../data/2019.07/packagist.versions.with_time.filtered_loose_apis.csv
เปรียบเทียบ _hash
- เปรียบเทียบค่าแฮชของแพ็คเกจเดียวกันกับผู้จัดการแพ็คเกจที่แตกต่างกัน
-
python main.py compare_hash -i ../data/maven.csv ../data/jcenter.csv -d /data/maloss/info/java /data/maloss/info/jcenter -o ../data/maven_jcenter.json -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter.json
- เปรียบเทียบค่าแฮชของแพ็คเกจเดียวกันและการอนุญาตแฮชเนื้อหาหรือสิทธิ์ API ของพวกเขาในผู้จัดการแพ็คเกจที่แตกต่างกัน
-
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered.json --inspect_content -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered.json --inspect_api -c ../config/astgen_java_smt.config -
python main.py compare_hash -i ../data/jitpack.csv ../data/jcenter.csv -d /data/maloss/info/jitpack /data/maloss/info/jcenter -o ../data/jitpack_jcenter_filtered_api.json --inspect_api -c ../config/astgen_java_smt.config --compare_hash_cache ../data/jitpack_jcenter_filtered.json
ตีความ _result
- รวบรวมและพล็อตสถิติ API
-
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.csv ../data/pypi_api_stats.json -
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.popular.csv ../data/pypi_pop_api_stats.json -
python main.py interpret_result --data_type api -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.01/pypi.with_stats.csv ../data/pypi_api_mapping.json -d --detail_filename
- รวบรวมและพล็อตสถิติโดเมน
-
python main.py interpret_result --data_type domain -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.csv ../data/2019.06/pypi_domain_stats.json -
python main.py interpret_result --data_type domain -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.csv ../data/2019.06/pypi_domain_mapping.json -d
- รวบรวมสถิติการพึ่งพาล่วงหน้าที่สร้างขึ้นล่วงหน้า
-
python main.py interpret_result --data_type dependency -l python ../data/pypi.with_stats.popular.csv ../data/pypi_pop_dep_stats.json
- รวบรวมผลการเปรียบเทียบเวอร์ชันข้ามสามารถกรองโดยการอนุญาต, API ฯลฯ
-
python main.py interpret_result --data_type compare_ast -c /data/maloss/info/python -o /data/maloss/result/python -l python ../data/2019.06/pypi.with_stats.popular.csv ../data/2019.06/pypi_compare_ast_stats.json -
python main.py interpret_result --data_type compare_ast -c /data/maloss/info-2019.07/javascript -o /data/maloss/result-2019.07/javascript -l javascript ../data/2019.07/npmjs.csv ../data/2019.07/npmjs_ast_stats.json --compare_ast_options_file ../data/2019.07/compare_ast_options.json
- รวบรวมข้อมูลเมตา/ผลลัพธ์แบบคงที่/ไดนามิกและทิ้งแพ็คเกจที่น่าสงสัย
-
python main.py interpret_result --data_type install_with_network -c /data/maloss/info/javascript -o /data/maloss/result/javascript -l javascript -m npmjs ../data/2019.06/npmjs.csv ../data/2019.06/npmjs.install_with_network.json
- รวบรวมผลการพึ่งพาย้อนกลับ
-
python main.py interpret_result --data_type reverse_dep -l javascript -m npmjs ../airflow/data/high_impact.csv ../airflow/data/high_impact_npmjs.json -
python main.py interpret_result --data_type reverse_dep -l python -m pypi ../airflow/data/high_impact.csv ../airflow/data/high_impact_pypi.json -
python main.py interpret_result --data_type reverse_dep -l ruby -m rubygems ../airflow/data/high_impact.csv ../airflow/data/high_impact_rubygems.json
- รวบรวมข้อมูลเมตา/สแตติก/เปรียบเทียบ _ast และทิ้งแพ็คเกจที่น่าสงสัย
-
python main.py interpret_result --data_type correlate_info_api_compare_ast -c /data/maloss/info-2019.07/javascript -o /data/maloss/result-2019.07/javascript -l javascript -m npmjs -s ../data/2019.07/npmjs_skip_list.json ../data/2019.07/npmjs_ast_stats.json ../data/2019.07/npmjs_correlate_info_api_compare_ast.json -
python main.py interpret_result --data_type correlate_info_api_compare_ast -c /data/maloss/info-2019.07/php -o /data/maloss/result-2019.07/php -l php -m packagist -s ../data/2019.07/packagist_skip_list.json ../data/2019.07/packagist_ast_stats.json ../data/2019.07/packagist_correlate_info_api_compare_ast.json -
python main.py interpret_result --data_type taint -c /data/maloss/info-2019.07/php -o /data/maloss/result-2019.07/php -l php ../data/2019.07/packagist.csv ../data/2019.07/packagist_flow_stats.json
grep_pkg
- grep ผ่านแพ็คเกจ
-
python main.py grep_pkg ../data/2019.07/rubygems.csv ../data/2019.07/rubygems.csv.pastebin.com pastebin.com -l ruby -p 80 -
python main.py grep_pkg ../data/2019.07/npmjs.csv ../data/2019.07/npmjs.csv.pastebin.com pastebin.com -l javascript -p 20
การเร่งความเร็ว
- วัดประโยชน์การเร่งความเร็วจากบทสรุป
-
python main.py speedup ../data/2019.01/pypi.with_stats.popular.csv speedup.log -l python
เครื่องมือ
การสแกนทั่วทั้งอินเทอร์เน็ต
สถิติสำหรับผู้จัดการแพ็คเกจที่แตกต่างกัน
- สถิติ PYPI
- สถิติ PYPI ของแพ็คเกจ
- สถิติ NPMJS
- สถิติ Rubygems
- พอร์ทัลอย่างไม่เป็นทางการสำหรับการดาวน์โหลด Rubygems
- สถิติของ Nuget
- สถิตินักบรรจุหีบห่อ
- สถิติ Maven (ใช้โดยแพ็คเกจอื่น ๆ )
เครื่องมือวิเคราะห์แบบคงที่สำหรับภาษาต่าง ๆ
- รายการสรุป
- 13 เครื่องมือสำหรับการตรวจสอบความเสี่ยงด้านความปลอดภัยของการพึ่งพาโอเพนซอร์ซ
- การวิเคราะห์มัลแวร์ที่ยอดเยี่ยม: รายการเครื่องมือและทรัพยากรการวิเคราะห์มัลแวร์ที่ยอดเยี่ยม
- รายการ LINTERS CURATED, CODE CHECKERS และเครื่องมือวิเคราะห์แบบคงที่อื่น ๆ สำหรับภาษาการเขียนโปรแกรมต่างๆ
- PMD: เครื่องวิเคราะห์รหัสสแตติกข้ามภาษาที่ขยายได้ https://pmd.github.io
- PMD ไม่รองรับการวิเคราะห์ระหว่างกระบวนการในขณะนี้
- ชุดกฎความปลอดภัยที่กำหนดเองสำหรับเครื่องมือวิเคราะห์ Java Static ยอดนิยม PMD
- งูหลาม
- เครื่องมือวิเคราะห์แบบคงที่สำหรับการตรวจจับช่องโหว่ด้านความปลอดภัยในแอปพลิเคชันเว็บ Python
- Bandit เป็นเครื่องมือที่ออกแบบมาเพื่อค้นหาปัญหาความปลอดภัยทั่วไปในรหัส Python
- PHP
- รายการเครื่องมือวิเคราะห์แบบคงที่ PHP ที่มีประโยชน์
- ตรวจจับไฟล์ PHP ที่อาจเป็นอันตราย
- การวิเคราะห์ Taint สำหรับ PHP
- การตรวจสอบความปลอดภัยของ PHPCS
- เครื่องมือการวิเคราะห์แบบคงที่เพื่อความปลอดภัย
- API และเอกสารประกอบสำหรับ progpilot
- PHP Global Variables - Superglobals
- Taint เป็นส่วนขยาย PHP ที่ใช้สำหรับการตรวจจับรหัส XSS แบบไดนามิก
- ทับทิม
- ตรวจสอบปัญหาความปลอดภัยของทับทิม
- ล็อคทับทิมในปลอดภัย
- เครื่องสแกนช่องโหว่การรักษาความปลอดภัยการวิเคราะห์แบบคงที่สำหรับการใช้งาน Ruby on Rails, GitHub
- Brakeman Pro เป็นวิธีที่ดีที่สุดในการตรวจสอบท่าทางความปลอดภัยของ Ruby on Rails Code
- Dawn เป็นเครื่องสแกนความปลอดภัยการวิเคราะห์แบบคงที่สำหรับแอปพลิเคชันเว็บที่เขียนด้วยทับทิม รองรับ Sinatra, Padrino และ Ruby on Rails Frameworks
- คุณภาพเป็นเครื่องมือที่เรียกใช้การตรวจสอบคุณภาพบนรหัสของคุณโดยใช้เครื่องมือชุมชน
- npmjs
- 6 เครื่องมือในการสแกนแอปพลิเคชัน Node.js เพื่อความปลอดภัยช่องโหว่
- โหนดความปลอดภัยแพลตฟอร์มเครื่องมือบรรทัดคำสั่ง https://nodesecurity.io
- เครื่องมือวิเคราะห์ความปลอดภัยแบบคงที่ JavaScript
- Blackhat 2013 Talk for jsprime
- JShint เป็นเครื่องมือที่ช่วยตรวจจับข้อผิดพลาดและปัญหาที่อาจเกิดขึ้นในรหัส JavaScript ของคุณ
- ดูการรักษาความปลอดภัย Firefox OS เป็นครั้งแรก
- Wala ช้า
- JSPrime ยังสามารถทำการวิเคราะห์ DataFlow ได้ แต่สถาปัตยกรรมนั้นยากมากที่จะขยาย
- Scanjs เขียนโดย Mozilla ในบ้านอยู่ใกล้กับจิตวิญญาณของเราเอง
- NodeJSScan เป็นสแกนเนอร์รหัสความปลอดภัยแบบคงที่สำหรับแอปพลิเคชัน Node.js
- Flow เป็นตัวตรวจสอบชนิดคงที่สำหรับ JavaScript
- JSFLOW เป็นล่าม JavaScript ที่เพิ่มความปลอดภัยสำหรับการติดตามการไหลของข้อมูลอย่างละเอียด
- เครื่องมือสำหรับการศึกษามัลแวร์ JavaScript
- เครื่องมือวิเคราะห์มัลแวร์ JavaScript
- กรอบการวิเคราะห์ที่ปรับขนาดได้สำหรับ ecmascript
- เลิกใช้แล้ว: เครื่องมือการวิเคราะห์แบบคงที่สำหรับรหัส JavaScript
- วิเคราะห์ JavaScript และเว็บกับ Wala
- JSUNPACK: JSUNPACK-N จำลองการทำงานของเบราว์เซอร์เมื่อเยี่ยมชม URL
- คอลเลกชันตัวอย่างมัลแวร์ JavaScript เกือบ 40.000
- JSAI: แพลตฟอร์มการวิเคราะห์แบบคงที่สำหรับ JavaScript
- Clone of JSAI Static Analysis Framework
- การวิเคราะห์แบบคงที่ของแอปพลิเคชัน Node.js JavaScript
- กรอบการวิเคราะห์แบบไดนามิกสำหรับ JavaScript
- ชวา
- กรอบการตรวจจับมัลแวร์ Android
- รหัสสำหรับกระดาษตรวจจับมัลแวร์ Android ลึก
- ตัวติดตามการไหลของข้อมูลแบบคงที่ flowdroid
- คาร์บอน
- การสแกนรหัสความปลอดภัย - ตัววิเคราะห์รหัสแบบคงที่สำหรับ. NET
- เครื่องมือการจัดการการพึ่งพา
- Bower: ผู้จัดการแพ็คเกจสำหรับเว็บ
- เส้นด้าย: การจัดการการพึ่งพาอาศัยกันอย่างรวดเร็วเชื่อถือได้และปลอดภัย
- การวิเคราะห์แบบไดนามิก
- Dynamorio: แพลตฟอร์มเครื่องมือเครื่องมือวัดพลวัต
- การทดสอบความปลอดภัยแอปพลิเคชันแบบไดนามิก (DASTO)
- Valgrind เป็นกรอบเครื่องมือสำหรับการสร้างเครื่องมือวิเคราะห์แบบไดนามิก
- ปลั๊กอินที่มีการติดตาม Taint สำหรับเครื่องมือตรวจสอบหน่วยความจำ Valgrind
- กรอบการวิเคราะห์
- เฟรมเวิร์กการสแกน/วิเคราะห์ไฟล์แบบแยกส่วน: สนับสนุน Clamav ฯลฯ
- บริการวิเคราะห์มัลแวร์ฟรีสำหรับชุมชนที่ตรวจจับและวิเคราะห์ภัยคุกคามที่ไม่รู้จักโดยใช้เทคโนโลยีการวิเคราะห์ไฮบริดที่ไม่ซ้ำกัน
- โครงการโอเพ่นซอร์สมากกว่า 5200 โครงการและนักพัฒนา 25,000 คนใช้การสแกนความครอบคลุม
AST Parsers สำหรับภาษาต่าง ๆ
- Python AST Parser ใช้ AST.Parse
- ast.parse
- พารามิเตอร์ AST.Parse
- ใส่คำอธิบายประกอบ Python AST: Asttoken
- การเขียนสคริปต์การตั้งค่า
- JavaScript AST Parser ใช้ esprima
- Estree: ข้อกำหนด API JavaScript Parser API
- คำตอบอ้างถึง Spidermonkey และ Esprima
- Spidermonkey
- esprima, esprima เปรียบเทียบ
- Acorn, Acorn vs Esprima
- Babel Compiler ขึ้นอยู่กับ Acorn
- Python Port of Esprima
- วิธีที่ NPM จัดการฟิลด์ "สคริปต์" ได้อย่างไร
- ข้อมูลจำเพาะ Node.js API
- วัตถุมาตรฐาน JavaScript ตามหมวดหมู่
- Ruby Aster Parser
- ทับทิมในยี่สิบนาที
- ตัวแยกทับทับทิมดาวน์โหลดสถิติ
- Ruby_Parser
- การเปรียบเทียบระหว่าง parser และ ruby_parser
- ใช้ตัวแยกพาร์สเตอร์ทับทิมเพื่อค้นหาไวยากรณ์ที่เลิกใช้แล้ว
- ฟังก์ชั่น Ruby Eval อาจเป็นอันตราย
- Ruby Exec, ระบบ, %x () และ backticks
- จะเรียกใช้สคริปต์ในขณะที่ติดตั้งอัญมณีได้อย่างไร?
- Java Aster Parser
- เขม่า
- เครื่องราง
- เรียกใช้สคริปต์หลังจากติดตั้ง Maven
- ฟังก์ชั่น Java ที่ใช้ประโยชน์ได้
- C# AST PARSER
- Microsoft Binskim
- Automated C#/. NET Code Analyzer
- Verocode สนับสนุนการวิเคราะห์แบบคงที่ของหลายภาษา
- ความปลอดภัย-สแกน
- ผู้รักษาความปลอดภัย
- สแกน Puma
- การเปรียบเทียบเครื่องวิเคราะห์รหัส C#
- PHP AST PARSER
- PHP-parser
- php-ast
- สร้าง AST ของไฟล์ต้นฉบับ PHP
- phpjoern
- ฟังก์ชั่น PHP ที่ใช้ประโยชน์ได้
- ฟังก์ชั่น PHP อันตราย
- ปิดการใช้งานฟังก์ชั่น PHP ที่เป็นอันตราย
- สคริปต์นักแต่งเพลงสำหรับการวิเคราะห์แบบไดนามิก
- C/C ++ AST PARSER
ทรัพยากร
- Taobao Mirror of NPM
- Stanford Mirror of Pypi
- กระจกของการลงทะเบียนในประเทศจีน
- การรักษา NPM Registry Awesome: NPMJS ทำงานอย่างไร?
- Query NPMJS Registry ผ่าน API
- การค้นหา NPM ด้วยเวอร์ชันประวัติ
- ตัวเลขความแม่นยำตัวเลข: การดาวน์โหลด NPM ทำงานได้อย่างไร
- เอกสาร NPMJS API
- CLI ของ Synk ช่วยให้คุณค้นหาและแก้ไขช่องโหว่ที่รู้จักในการพึ่งพาของคุณทั้งเฉพาะเฉพาะกิจและเป็นส่วนหนึ่งของระบบ CI ของคุณ
- ใช้กระจก NPM ยุโรป
- สิ่งที่ฉันเรียนรู้จากการวิเคราะห์โมดูล Node.js รุ่น 1.65m ใน NPM
- archive.org snapshots เว็บไซต์และสามารถใช้สำหรับการวัดเว็บไซต์เหยื่อ
- การติดตามเหตุการณ์สำหรับ Windows (ETW)
- การตรวจสอบ Linux
- การปรับแต่งการตรวจสอบ: การตรวจสอบ Linux ที่มีประสิทธิภาพสูง
- Linux Audit Framework 101 - กฎพื้นฐานสำหรับการกำหนดค่า
- การตรวจสอบ Linux: การตรวจสอบการกำหนดค่าเครือข่าย
- วิธีใช้ระบบตรวจสอบ Linux บน CentOS 7
- บทที่ 7. การตรวจสอบระบบ
- เดินหน้า
- เครื่องวิเคราะห์กำมะถัน
- Python-Ptrace เป็นการผูก python ของไลบรารี ptrace
- Pystrace - เครื่องมือ Python สำหรับการแยกวิเคราะห์และวิเคราะห์ไฟล์เอาต์พุต Strace
- วิเคราะห์เอาท์พุท Strace
- การทำโปรไฟล์และการมองเห็นด้วย gnu strace
- ฉันสร้าง BNF grammer สำหรับเอาต์พุตและใช้ BNFC เพื่อสร้างตัวแยกวิเคราะห์โดยอัตโนมัติใน C ++
- เอาต์พุตที่มีโครงสร้างสำหรับ Strace
- ชอบ Strace แต่สำหรับรหัสทับทิม
- Pytrace เป็นตัวติดตาม Python ที่รวดเร็ว มันบันทึกการเรียกใช้ฟังก์ชันอาร์กิวเมนต์และค่าส่งคืน
- PHP-Strace ช่วยในการติดตาม Segfaults ในการเรียกใช้กระบวนการ PHP
- วิธีการตั้งค่าความกว้างสตริงอักขระของ Strace output ให้ยาวขึ้น?
- ตัวเลือก
-s ระบุขนาดสตริงสูงสุดในการพิมพ์ -
-v ตัวเลือกพิมพ์ argv ที่ไม่ได้รับการตรวจสอบ, สถิติ, เทอร์มิโอ ฯลฯ args
- Google Summer of Code สำหรับ strace output
- การมีส่วนร่วมของ Strace ใน GSOC 2014
- เอาต์พุตที่มีโครงสร้างอย่างแท้จริงสำหรับ Strace ใน GSOC 2016
- เอกสารสำหรับ GSOC 2016
- dtrace สำหรับ linux
- รหัสสำหรับแพลตฟอร์ม Cross, Single Source, OpEndTrace การใช้งาน
- FTRACE เป็นตัวติดตามภายในที่ออกแบบมาเพื่อช่วยนักพัฒนาและนักออกแบบระบบเพื่อค้นหาสิ่งที่เกิดขึ้นภายในเคอร์เนล
- อะไรคือความแตกต่างระหว่าง DTRACE และ Strace
- Sysdig vs Dtrace vs Strace: การสนทนาทางเทคนิค
- osQuery: กระบวนการและซ็อกเก็ตการตรวจสอบด้วย osQuery
- ข้อมูลที่รวบรวมโดย OsQuery (ตาราง)
- รายการเครื่องมือและทรัพยากรสำหรับการตอบสนองต่อเหตุการณ์ความปลอดภัยโดยมีวัตถุประสงค์เพื่อช่วยเหลือนักวิเคราะห์ความปลอดภัยและทีม DFIR
- วันที่ 1: ทีมใช้ OsQuery เป็นอย่างไรบ้าง?
- 2nd: อะไรคือจุดปวดในปัจจุบันของ OsQuery?
- 3rd: คุณต้องการให้ OsQuery ทำอะไรได้บ้าง?
- Kolide Cloud เป็นโซลูชันการตรวจสอบปลายทางซึ่งใช้ประโยชน์จากเครื่องมือ OsQuery โอเพนซอร์ซของ Facebook ลองวันนี้ ฟรีอย่างสมบูรณ์สำหรับอุปกรณ์ 10 เครื่องแรกของคุณ
- Kolide Fleet สำหรับการตรวจสอบเครื่อง OsQuery
- รองรับนักเทียบท่าใน OsQuery
- Dockerfiles สำหรับ OsQuery containerized
- Uptycs: การรักษาความปลอดภัยคอนเทนเนอร์: การใช้ OsQuery เพื่อแก้ปัญหาความท้าทายใหม่ที่โพสต์โดย Hosted Orchestration Services
- Uptycs: Docker and OsQuery
- OsQuery เพื่อความปลอดภัย: บทนำสู่ OsQuery - ตอนที่ 1
- OsQuery เพื่อความปลอดภัย - ตอนที่ 2
- osQuery - windows, macOS, การตรวจสอบ Linux และการตรวจจับการบุกรุก
- นักเทียบท่าและ osQuery
- Intro to OsQuery: คำถามที่พบบ่อยสำหรับผู้เริ่มต้น
- การกำหนดค่า osQuery จาก palantir
- Sysdig: เครื่องมือสำรวจและแก้ไขปัญหาระบบ Linux ด้วยการสนับสนุนชั้นหนึ่งสำหรับคอนเทนเนอร์
- Selinux, Seccomp, Sysdig Falco และคุณ: การสนทนาทางเทคนิค
- Prometheus Monitoring and Sysdig Monitor: การเปรียบเทียบทางเทคนิค
- วันที่ 3 - เซิร์ฟเวอร์บอกฉันเกี่ยวกับตัวคุณเอง บทนำสู่ Facter, OsQuery และ Sysdig
-
Whereas Facter and osquery are predominantly about querying infrequently changing information, Sysdig is much more suited to working with real-time data streams – for example, network or file I/O, or tracking errors in running processes.
- การตรวจสอบคอนเทนเนอร์: Prometheus และ Grafana Vs Sysdig และ Sysdig Monitor
- การตรวจสอบคอนเทนเนอร์ด้วย sysdig
- คู่มือผู้ใช้ Sysdig
- Sysdig Falco
- กฎ Sysdig Falco
- การตรวจจับ cryptojacking กับ Falco ของ Sysdig
- sysdig + logstash + elasticsearch
- Sysdig + Elk (ศักยภาพ)
- การส่งกิจกรรม Kubernetes & Docker ไปยัง Elasticsearch และ Splunk โดยใช้ sysdig
- ความปลอดภัยของคอนเทนเนอร์รันไทม์ - วิธีการใช้ความปลอดภัยคอนเทนเนอร์โอเพนซอร์ส
- WTF คอนเทนเนอร์ของฉันเพิ่งวางไข่เปลือกหอย
- ไปตรวจสอบ
- Go-Audit เป็นอีกทางเลือกหนึ่งสำหรับ daemon Auditd ที่จัดส่งด้วย distros มากมาย
- ฐานข้อมูลการตรวจสอบโพรโพรและฐานข้อมูลอนุกรมเวลา
- ไซต์อย่างเป็นทางการของ Prometheus
- ไปตรวจสอบ
- FIM และการตรวจสอบโทรระบบในระดับในการปรับใช้คอนเทนเนอร์ขนาดใหญ่
- Kubernetes: Kubernetes เป็นระบบโอเพนซอร์ซสำหรับการปรับใช้การปรับขนาดและการจัดการแอปพลิเคชันคอนเทนเนอร์โดยอัตโนมัติ
- Facter: รวบรวมและแสดงข้อเท็จจริงของระบบ
- ค้นหาไฟล์ PHP ที่ใช้ประโยชน์ได้โดยพารามิเตอร์ฟัซซิงและการติดตามการเรียกใช้ฟังก์ชัน
- เครื่องวิเคราะห์ OS X สำหรับโครงการ Cuckoo Sandbox
- Cuckoo Sandbox เป็นระบบวิเคราะห์มัลแวร์อัตโนมัติโอเพ่นซอร์สชั้นนำ
- ห้องสมุดพื้นเมืองกับ Maven
- Maven: การรวมห้องสมุดพื้นเมืองและแกะกล่อง
- ปลั๊กอินเก็บถาวรดั้งเดิมสำหรับ maven
- ระบบไฟล์ยืดหยุ่น (EFS) ติดตั้งนอก AWS
- การอัปเดต Amazon EFS-การเข้าถึงในสถานที่ผ่าน Direct Connect
- ภาษาการเขียนโปรแกรม GO
- เนื่องจากวิธีการดำเนินการนำเข้าบ้านสำนักหักบัญชีกลางเช่น Maven หรือ NPM จึงไม่จำเป็น
- Project for Go Search เครื่องมือค้นหาสำหรับการค้นหาแพ็คเกจยอดนิยมและที่เกี่ยวข้อง
- Ruby (ในที่สุด) ได้รับความนิยม แต่ไปที่ Plateaus
- ภาษาชั้นนำ: Java, C, C ++, Python, C#, PHP, JavaScript, Ruby
- การวิเคราะห์การวิเคราะห์แบบคงที่
- การอนุมานประเภทอัตโนมัติสำหรับโปรแกรมที่พิมพ์แบบไดนามิก
- เครื่องมือวิเคราะห์แบบคงที่สำหรับการค้นหาข้อผิดพลาดในแอปพลิเคชัน PHP
- IBM AppScan อนุญาตให้มีการสแกนแหล่งที่มา/รหัสที่รวบรวมสำหรับช่องโหว่
- สนับสนุนภาษาของ AppScan: รองรับ C/C ++, .NET, Java, JSP, JavaScript, PHP, ASP, Python
- IBM Security AppScan Source 9.0.3.10 มีให้ที่ Fix Central
- มีเวอร์ชันแหล่งที่มาของ AppScan
- การดำเนินการที่ จำกัด
- Sandboxed Python
- Ruby Sandboxing กับการรวมภาษาสคริปต์
- ถูกจำคุก - JS Sandbox ที่ยืดหยุ่น
- เป็นไปได้ไหมที่ Sandbox JavaScript ทำงานในเบราว์เซอร์?
- มีวิธีเรียกใช้รหัส php ในกล่องทรายจากภายใน php หรือไม่
- runkit_sandbox
- Sandboxing Java Code
- ดำเนินการวิธีการใน Java ด้วยสิทธิ์ที่ จำกัด
- AWS Batch Jobs
- การสอนชุด AWS
- AWS Batch: ทำให้การคำนวณแบบแบทช์ง่ายขึ้นในคลาวด์
- ตัวอย่างแบทช์ AWS
- EC2-Spot-Aws-batch
- SQS-EC2-Spot-Fleet-autoscaling
- Airflow DAG
- DAG ที่ใช้งานขนานในคื่นฉ่ายของ Python
- การไหลเวียนของอากาศ - ปรับขนาดด้วยคื่นฉ่าย
- Airflow DAG
- การแนะนำการไหลของอากาศ
- การไหลเวียนของอากาศบน Kubernetes (ตอนที่ 1): ผู้ให้บริการชนิดอื่น
- ไฟล์ Docker Image และ Kubernetes config เพื่อเรียกใช้ Airflow บน Kubernetes
- คำแนะนำเกี่ยวกับวิธีการสร้างเซิร์ฟเวอร์/คลัสเตอร์ Airflow
- คำแนะนำด้านความปลอดภัย
- ปัญหา Rubygems
- คำแนะนำด้านความปลอดภัยของ NPMPJS
- แพ็คเกจ Python
- แพ็คเกจแพ็คเกจ
- แพ็คเกจ maven
- แพ็คเกจ jcenter
- Mirror Data VulnDB
- แทร็กการพึ่งพา
- ตรวจสอบการพึ่งพา
- ที่ปรึกษาด้านความปลอดภัยของ Microsoft
อ้างอิง
- จำนวนโมดูล
- เว็บไซต์ด่วนเพื่อติดตามจำนวนโมดูลในที่เก็บต่างๆ
- เว็บไซต์ Typo-Squatting
- วิทยานิพนธ์พิมพ์ผิดพลาด
- ข้าวโพดคั่วเดเบียน
- แพ็คเกจ PYPI พบว่าเป็นอันตราย
- Python Typo Squatting
- PHP Typo Squatting
- JCENTER TYPO Squatting
- Rubygems typosquatting
- การล่าแพ็คเกจ NPM ที่เป็นอันตราย
- แพ็คเกจ NPM ที่เป็นอันตราย
- รายการแพ็คเกจ PYPI ทั้งหมด
- Crossenv Malware บนรีจิสทรี NPM
- แพ็คเกจโอเพนซอร์สที่มีเจตนาร้าย
- วิธีการครอบครองคอมพิวเตอร์ของนักพัฒนา Java (หรือ Clojure หรือ Scala)
- มุมความปลอดภัยกับ Snyk: ช่องโหว่หกอันดับแรกใน Maven และ NPM
- linux distro อื่นที่เป็นพิษด้วยมัลแวร์
- nodejs: การดำเนินการรหัสระยะไกลเป็นบริการ
- 17 ภาพนักเทียบท่าที่ถูกลบออกจาก Docker Hub
- Backdoored Python Library จับการขโมยข้อมูลรับรอง SSH
- ESLINT-SCOPE เป็นเครื่องวิเคราะห์ขอบเขต ECMASCRIPT ที่ใช้ใน ESLINT เวอร์ชัน 3.7.2 ถูกระบุว่าเป็นอันตรายหลังจากการครอบครองบัญชี NPM ที่เป็นไปได้ การติดตั้งแพ็คเกจที่เป็นอันตรายจะนำไปสู่การรั่วไหลของโทเค็น NPM ของผู้ใช้
- NPM ได้รับ ^Lift Security และ Platform Security Node
- วิเคราะห์การโจมตีซัพพลายเชน PIP SSH-Decorate
- ไฟล์. jar ที่เป็นอันตรายโฮสต์บน Google รหัส
- การผ่ามัลแวร์ Java (JRAT)
- แพ็คเกจที่อาจได้รับผลกระทบจากขอบเขต ESLINT
- โมดูลที่เป็นอันตราย - สิ่งที่คุณต้องรู้เมื่อติดตั้งแพ็คเกจ NPM
- ห้องสมุด Python ที่เป็นอันตรายสิบสองห้องพบและลบออกจาก PYPI
- แพ็คเกจมัลแวร์บน PYPI
- พล็อตเพื่อขโมย cryptocurrency ที่ถูกทำลายโดยทีมรักษาความปลอดภัย NPM
- ช่องโหว่ที่ค้นพบในกระเป๋าเงิน Agama ของ Komodo - นี่คือสิ่งที่คุณต้องทำ
- แพ็คเกจมัลแวร์ PYPI
- รายงานโครงการที่ทำลายแพ็คเกจอื่น ๆ อย่าปฏิบัติตามแนวทางหรือเป็นอันตราย
- คอลเลกชันของแบ็คดอร์ PHP
- คอลเลกชันของ Windows Malware
- งูในหญ้า! รหัสที่เป็นอันตรายเลื่อนเข้าสู่ที่เก็บ python pypi
- Cryptojacking บุกคลาวด์ แนวโน้มการปรับตัวของคอนเทนเนอร์ที่ทันสมัยถูกนำไปใช้โดยผู้โจมตี
- นี่คือรายการของแพ็คเกจทั้งหมดที่พบโดย @malicious-packages/core และถูกลบออกจากที่เก็บโดยทีมงาน NPM
- ความเสี่ยง 10 อันดับแรกสำหรับแอปพลิเคชันที่สร้างขึ้นจากการวิจัยสถาปัตยกรรมแบบไม่มีเซิร์ฟเวอร์โดย PureSec ที่ปล่อยออกมา
- การใช้ประโยชน์จากโครงสร้างพื้นฐานของนักพัฒนาเป็นเรื่องง่ายอย่างน่าขัน
- การวิเคราะห์ JavaScript Static + Dynamic
- เทคนิคการทำให้งงงวย Backdoor
- เทคนิคการทำให้งงงวย PHP
- ทำความเข้าใจกับรหัสที่ทำให้งงและวิธีการ deobfuscate php และ javaScript
- Backdoor ตัวสร้างปลั๊กอิน Joomla
- การพึ่งพาที่สับสน
- Exposed Docker Control API และภาพชุมชนที่ถูกทารุณกรรมเพื่อส่งมัลแวร์การขุด cryptocurrency
- การดำเนินการรหัสระยะไกลที่เป็นอันตรายที่ค้นพบใน Bootstrap-sass Ruby Gem ที่ได้รับความนิยม
- Backdoor ในปลั๊กอิน Captcha ส่งผลกระทบต่อไซต์ WordPress 300K
- Backdoor ที่พบใน Webmin ซึ่งเป็นยูทิลิตี้บนเว็บยอดนิยมสำหรับการจัดการเซิร์ฟเวอร์ UNIX
- defcon-webmin-1920-unauthenticated-remote-command-execution
- POLA จะป้องกันเหตุการณ์สตรีมเหตุการณ์
- อาชญากร cryptojacking กำลังใช้หลายเทคนิคในการติดตั้ง coinminers
- Google Analytics และ Angular ในสคริปต์การขโมยบัตรเครดิต Magento
- PSA: มีเวอร์ชันปลอมของแพ็คเกจนี้บน PYPI พร้อมรหัสที่เป็นอันตราย
- Typosquatting Barrage บนผู้ใช้ซอฟต์แวร์ที่เก็บซอฟต์แวร์ Rubygems
- pypi 官方仓库遭遇คำขอ恶意包投毒
- Sourmint: รหัสที่เป็นอันตรายการฉ้อโกงโฆษณาและการรั่วไหลของข้อมูลใน iOS
- การจี้ซอฟต์แวร์การจี้โซฟต์
- Sonatype Spots 275+ แพ็คเกจ NPM ที่เป็นอันตรายคัดลอกการโจมตีห่วงโซ่อุปทานซอฟต์แวร์ล่าสุดที่ตี 35 องค์กร
- แพ็คเกจความสับสนที่ระบุไว้ใหม่มีเป้าหมาย Amazon, Zillow และ Slack; ไปไกลกว่าแค่บั๊กเงินรางวัล
- ความสับสนในการพึ่งพา: วิธีที่ฉันแฮ็กเข้าสู่ Apple, Microsoft และ บริษัท อื่น ๆ อีกหลายสิบแห่ง
- สำหรับ PIP-
--extra-index-url สำหรับแพ็คเกจภายใน/ภายนอกจะเลือกเวอร์ชันที่มีหมายเลขเวอร์ชันสูงกว่า - สำหรับอัญมณี
gem install --source - index-url extra-index-url ลำดับความสำคัญลำดับความสำคัญ
- index-url extra-index-url ลำดับความสำคัญลำดับความสำคัญ-contd
- Pywheels สำหรับ Raspberry Pi
- ชื่อแพ็คเกจ Squatting: Cupy-Cuda112