Graudit รองรับภาษาการเขียนโปรแกรมหลายภาษาและช่วยให้คุณสามารถรวมการทดสอบความปลอดภัยของ codebase เข้ากับกระบวนการพัฒนาได้โดยตรง
ที่มา:
การทดสอบเป็นส่วนสำคัญของวงจรการพัฒนาซอฟต์แวร์ การทดสอบมีหลายประเภท แต่ละประเภทสามารถแก้ปัญหาของตัวเองได้ วันนี้ผมอยากจะพูดถึงการค้นหาปัญหาด้านความปลอดภัยในโค้ด
แน่นอนว่าในความเป็นจริงสมัยใหม่ของการพัฒนาซอฟต์แวร์ สิ่งสำคัญคือต้องมั่นใจในความปลอดภัยของกระบวนการ ครั้งหนึ่งมีการนำคำศัพท์พิเศษ DevSecOps มาใช้ด้วยซ้ำ คำนี้หมายถึงชุดของขั้นตอนที่มุ่งระบุและกำจัดช่องโหว่ในแอปพลิเคชัน มีโซลูชั่นโอเพ่นซอร์สเฉพาะทางสำหรับการตรวจสอบช่องโหว่ตามมาตรฐาน
มีแนวทางที่แตกต่างกันในการแก้ปัญหาด้านความปลอดภัย เช่น การทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ (SAST), การทดสอบความปลอดภัยของแอปพลิเคชันแบบไดนามิก (DAST), การทดสอบความปลอดภัยของแอปพลิเคชันแบบโต้ตอบ (IAST), การวิเคราะห์องค์ประกอบของซอฟต์แวร์ และอื่นๆ
การทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่จะระบุข้อผิดพลาดในโค้ดที่เขียนไว้แล้ว วิธีการนี้ไม่ต้องการให้แอปพลิเคชันทำงาน ซึ่งเป็นสาเหตุที่เรียกว่าการวิเคราะห์แบบคงที่
ฉันจะมุ่งเน้นไปที่การวิเคราะห์โค้ดแบบคงที่และใช้เครื่องมือโอเพ่นซอร์สที่เรียบง่ายเพื่อสาธิตทุกสิ่งในทางปฏิบัติ
เหตุใดฉันจึงเลือกเครื่องมือโอเพ่นซอร์สสำหรับการวิเคราะห์ความปลอดภัยของโค้ดแบบคงที่
มีเหตุผลหลายประการสำหรับสิ่งนี้ ประการแรก ใช้งานได้ฟรีเนื่องจากคุณกำลังใช้เครื่องมือที่พัฒนาโดยชุมชนที่มีความคิดเหมือนกันที่ต้องการช่วยเหลือนักพัฒนารายอื่น หากคุณมีทีมเล็กๆ หรือบริษัทสตาร์ทอัพ คุณมีโอกาสที่ดีในการประหยัดเงินโดยใช้ซอฟต์แวร์โอเพ่นซอร์สเพื่อทดสอบความปลอดภัยของโค้ดเบสของคุณ ประการที่สอง คุณไม่จำเป็นต้องจ้างทีม DevSecOps แยกต่างหาก ซึ่งจะช่วยลดต้นทุนของคุณได้อีก
เครื่องมือโอเพ่นซอร์สที่ดีมักถูกสร้างขึ้นโดยคำนึงถึงข้อกำหนดที่เพิ่มขึ้นเพื่อความยืดหยุ่น ดังนั้นจึงสามารถใช้งานได้ในเกือบทุกสภาพแวดล้อมและครอบคลุมงานที่หลากหลาย นักพัฒนาสามารถเชื่อมต่อเครื่องมือดังกล่าวกับระบบที่พวกเขาสร้างขึ้นไว้แล้วขณะทำงานในโครงการของตนได้ง่ายกว่ามาก
แต่อาจมีบางครั้งที่คุณต้องการคุณสมบัติที่ไม่มีในเครื่องมือที่คุณเลือก ในกรณีนี้ คุณมีโอกาสที่จะแยกโค้ดและพัฒนาเครื่องมือของคุณเองโดยอิงจากโค้ดดังกล่าวพร้อมฟังก์ชันการทำงานที่คุณต้องการ
เนื่องจากในกรณีส่วนใหญ่การพัฒนาซอฟต์แวร์โอเพ่นซอร์สได้รับอิทธิพลอย่างแข็งขันจากชุมชน การตัดสินใจทำการเปลี่ยนแปลงจึงเกิดขึ้นอย่างรวดเร็วและตรงประเด็น: ผู้พัฒนาโครงการโอเพ่นซอร์สต้องอาศัยคำติชมและข้อเสนอแนะจากผู้ใช้ในรายงานของพวกเขา พบข้อผิดพลาดและปัญหาอื่นๆ
การใช้ Graudit เพื่อการวิเคราะห์ความปลอดภัยของโค้ด
คุณสามารถใช้เครื่องมือโอเพ่นซอร์สต่างๆ สำหรับการวิเคราะห์โค้ดแบบคงที่ ไม่มีเครื่องมือสากลสำหรับทุกภาษาการเขียนโปรแกรม นักพัฒนาบางส่วนทำตามคำแนะนำของ OWASP และพยายามครอบคลุมภาษาต่างๆ ให้ได้มากที่สุด
ที่นี่เราจะใช้
มีเครื่องมือที่คล้ายกันสำหรับการวิเคราะห์โค้ดแบบคงที่ ได้แก่ Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder และอื่นๆ แต่ Graudit มีความยืดหยุ่นมากและมีข้อกำหนดทางเทคนิคเพียงเล็กน้อย อย่างไรก็ตาม คุณอาจประสบปัญหาที่ Graudit ไม่สามารถแก้ไขได้ จากนั้นคุณสามารถค้นหาตัวเลือกอื่นๆ ได้ที่นี่
เราสามารถรวมเครื่องมือนี้เข้ากับโปรเจ็กต์เฉพาะ หรือทำให้พร้อมใช้งานสำหรับผู้ใช้ที่เลือก หรือใช้พร้อมกันในทุกโปรเจ็กต์ของเรา นี่คือจุดที่ความยืดหยุ่นของ Graudit เข้ามามีบทบาท ดังนั้นเรามาโคลน repo ก่อน:
$ git clone https://github.com/wireghoul/graudit
ตอนนี้เรามาสร้างลิงก์สัญลักษณ์สำหรับ Graudit เพื่อใช้ในรูปแบบคำสั่ง
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
มาเพิ่มนามแฝงให้กับ .bashrc (หรือไฟล์การกำหนดค่าใด ๆ ที่คุณใช้):
#------ .bashrc ------
alias graudit="~/bin/graudit"
รีบูต:
$ source ~/.bashrc # OR
$ exex $SHELL
ตรวจสอบว่าการติดตั้งสำเร็จหรือไม่:
$ graudit -h
หากคุณเห็นสิ่งที่คล้ายกันแสดงว่าทุกอย่างเรียบร้อยดี
ฉันจะทดสอบหนึ่งในโครงการที่มีอยู่ของฉัน ก่อนที่จะเรียกใช้เครื่องมือ จะต้องผ่านฐานข้อมูลที่สอดคล้องกับภาษาที่ใช้เขียนโปรเจ็กต์ของฉัน ฐานข้อมูลอยู่ในโฟลเดอร์ ~/gradit/signatures:
$ graudit -d ~/gradit/signatures/js.db
ดังนั้นฉันจึงทดสอบไฟล์ js สองไฟล์จากโปรเจ็กต์ของฉัน และ Graudit ได้แสดงข้อมูลเกี่ยวกับช่องโหว่ในโค้ดของฉันไปยังคอนโซล:
คุณสามารถลองทดสอบโครงการของคุณในลักษณะเดียวกันได้ คุณสามารถดูรายการฐานข้อมูลสำหรับภาษาการเขียนโปรแกรมต่างๆ ได้
ข้อดีและข้อเสียของ Graudit
Graudit รองรับภาษาการเขียนโปรแกรมมากมาย ดังนั้นจึงเหมาะสำหรับผู้ใช้ที่หลากหลาย มันสามารถแข่งขันกับแอนะล็อกฟรีหรือจ่ายเงินได้อย่างเพียงพอ และเป็นสิ่งสำคัญมากที่ยังคงมีการปรับปรุงโครงการอยู่ และชุมชนไม่เพียงแต่ช่วยเหลือนักพัฒนาเท่านั้น แต่ยังรวมถึงผู้ใช้รายอื่นที่กำลังพยายามค้นหาเครื่องมือนี้ด้วย
นี่เป็นเครื่องมือที่มีประโยชน์ แต่จนถึงขณะนี้ยังไม่สามารถระบุได้อย่างแน่ชัดว่าปัญหาคืออะไรด้วยโค้ดที่น่าสงสัย นักพัฒนายังคงปรับปรุง Graudit ต่อไป
แต่ไม่ว่าในกรณีใด การใส่ใจกับปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นในโค้ดเมื่อใช้เครื่องมือเช่นนี้จะเป็นประโยชน์
เริ่ม…
ในบทความนี้ ฉันดูวิธีหนึ่งในหลายวิธีในการค้นหาช่องโหว่ - การทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ การวิเคราะห์โค้ดแบบสแตติกเป็นเรื่องง่าย แต่เป็นเพียงจุดเริ่มต้นเท่านั้น หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความปลอดภัยของโค้ดเบสของคุณ คุณจะต้องรวมการทดสอบประเภทอื่นๆ เข้ากับวงจรการพัฒนาซอฟต์แวร์ของคุณ
เป็นโฆษณา
ที่มา: will.com