0Pricing
Cyber Security Academy · บทเรียน

เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย

ระบุปัญหาด้านความปลอดภัยในการตรวจสอบโค้ด ได้แก่ กระแสข้อมูล ขอบเขตความน่าเชื่อถือ API อันตราย และการควบคุมที่ขาดหายไป

เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

เป้าหมายของการตรวจสอบรหัสอย่างปลอดภัย

การตรวจสอบรหัสอย่างปลอดภัยช่วยระบุช่องโหว่ด้านความปลอดภัยในรหัสต้นฉบับก่อนนำไปใช้งาน ต่างจากการตรวจสอบรหัสด้านการทำงาน เพราะมุ่งเน้นขอบเขตความไว้วางใจ การไหลของข้อมูล ส่วนต่อประสานที่เป็นอันตราย มาตรการควบคุมที่ขาดหาย และข้อผิดพลาดในตรรกะด้านความปลอดภัย ไม่ใช่ความถูกต้องหรือรูปแบบการเขียน

การตรวจสอบด้วยคนเทียบกับการตรวจสอบอัตโนมัติ

เครื่องมือ SAST แบบอัตโนมัติ เช่น Semgrep, SonarQube และ CodeQL ตรวจจับรูปแบบที่ทราบได้อย่างรวดเร็ว แต่พลาดข้อบกพร่องในตรรกะทางธุรกิจ ช่องโหว่ที่ซับซ้อนระหว่างหลายส่วนประกอบ และปัญหาที่ขึ้นอยู่กับบริบท การตรวจสอบด้วยคนช่วยค้นหาสิ่งที่ระบบอัตโนมัติพลาด ดังนั้นจึงจำเป็นต้องใช้ทั้งสองวิธี

การวิเคราะห์จุดรับข้อมูล

เริ่มการตรวจสอบความปลอดภัยด้วยการทำแผนผังจุดรับข้อมูลทั้งหมด ได้แก่ จุดปลายทางของคำขอ HTTP ตัวจัดการคิวข้อความ การอัปโหลดไฟล์ งานตามกำหนดเวลา เว็บฮุก และอาร์กิวเมนต์ CLI จุดรับข้อมูลแต่ละจุดที่รับข้อมูลจากภายนอกอาจเป็นจุดฉีดข้อมูล จึงต้องได้รับการตรวจสอบอย่างละเอียด

การติดตามการไหลของข้อมูล

ติดตามข้อมูลที่ผู้ใช้ควบคุมตั้งแต่จุดรับข้อมูล ผ่านแอปพลิเคชันไปจนถึงการใช้งานขั้นสุดท้าย ข้อมูลไปถึงคำสั่งในฐานข้อมูลหรือไม่ ไปถึงคำสั่งเชลล์หรือไม่ ไปถึงแม่แบบ HTML หรือไม่ หรือไปถึงการเรียกใช้ส่วนติดต่อโปรแกรมประยุกต์หรือไม่ ให้ติดตามการไหลของข้อมูลและตรวจสอบการแปลงรวมถึงทุกขั้นตอนการทำให้ข้อมูลปลอดภัย

การวิเคราะห์ขอบเขตความไว้วางใจ

การตัดสินใจด้านความปลอดภัยเกิดขึ้นที่ขอบเขตความไว้วางใจ ซึ่งเป็นจุดที่ข้อมูลเคลื่อนจากบริบทที่ได้รับความไว้วางใจน้อยกว่า เช่น คำขอ HTTP ไปยังบริบทที่ได้รับความไว้วางใจมากกว่า เช่น ฐานข้อมูลหรือ OS การข้ามขอบเขตความไว้วางใจทุกครั้งต้องตรวจสอบความถูกต้อง ทำให้ข้อมูลปลอดภัย หรืออนุญาตข้อมูลนั้น

รายการตรวจสอบส่วนต่อประสานที่เป็นอันตราย

ให้ตั้งข้อสังเกตการใช้งาน eval(), exec(), system(), shell_exec(), innerHTML, dangerouslySetInnerHTML, deserialize(), pickle.loads(), Runtime.exec(), ProcessBuilder ตัวแยกวิเคราะห์ XML ที่ไม่ได้ปิดการขยายเอนทิตี และองค์ประกอบพื้นฐานด้านการเข้ารหัสที่นำมาใช้โดยตรงแทนส่วนต่อประสานระดับสูง

การทบทวนการตรวจสอบสิทธิ์และการอนุญาต

ตรวจสอบว่า จุดปลายทางที่มีข้อมูลอ่อนไหวทุกจุดได้รับการป้องกันด้วยการตรวจสอบสิทธิ์หรือไม่ ตรวจสอบการอนุญาตจากฝั่งเซิร์ฟเวอร์สำหรับทุกการกระทำหรือไม่ ผู้ใช้สามารถเข้าถึงข้อมูลของผู้ใช้อื่นได้ด้วยการเปลี่ยนพารามิเตอร์ ID หรือไม่ (IDOR) และการดำเนินการที่มีข้อมูลอ่อนไหวได้รับการป้องกันจาก CSRF หรือไม่

การทบทวนการจัดการข้อผิดพลาด

มองหาบล็อก catch ที่กลืนข้อยกเว้นโดยไม่แจ้งให้ทราบ ตรวจสอบว่าข้อความข้อผิดพลาดที่แสดงต่อผู้ใช้ไม่เปิดเผยเส้นทางภายใน ร่องรอยสแต็ก หรือโครงสร้างฐานข้อมูล ตรวจสอบว่าข้อยกเว้นด้านความปลอดภัย เช่น AuthenticationException ได้รับการบันทึกและไม่ถูกเพิกเฉยอย่างเงียบ ๆ

การทบทวนการเข้ารหัส

ให้ตั้งข้อสังเกตการใช้ MD5 หรือ SHA-1 สำหรับการแฮชรหัสผ่าน ซึ่งควรใช้ bcrypt หรือ Argon2 แทน การใช้คีย์สมมาตรหรือเวกเตอร์เริ่มต้นที่ฝังตายตัว การเข้ารหัสในโหมด ECB ซึ่งควรใช้ GCM หรือ CBC ร่วมกับ HMAC การนำการเข้ารหัสที่สร้างขึ้นเองมาใช้ และตัวสร้างตัวเลขสุ่มที่ไม่ปลอดภัยตามหลักการเข้ารหัส

การทบทวนการพึ่งพาและการกำหนดค่า

ตรวจสอบ package.json/pom.xml เพื่อค้นหาการพึ่งพาที่ล้าสมัย ตรวจสอบการกำหนดค่าแอปพลิเคชันว่ามีการเปิดใช้โหมดแก้ไขข้อบกพร่องในระบบจริงหรือไม่ มีหน้าข้อผิดพลาดที่แสดงรายละเอียดมากเกินไปหรือไม่ มีข้อมูลรับรองผู้ดูแลระบบในไฟล์การกำหนดค่าหรือไม่ และมีส่วนหัวด้านความปลอดภัยที่ขาดหายไปหรือไม่ เช่น HSTS, CSP และ X-Frame-Options

เครื่องมือ: Semgrep และ CodeQL

กฎของ Semgrep จับคู่รูปแบบไวยากรณ์โดยตระหนักถึงความหมาย ควรเขียนกฎแบบกำหนดเองสำหรับรูปแบบเฉพาะของฐานรหัสของคุณ CodeQL มองรหัสเป็นข้อมูล ให้เขียนคำค้นเหนือ AST เพื่อค้นหาการไหลของข้อมูลจากแหล่งที่มาไปยังจุดปลายทางข้ามไฟล์และการเรียกใช้ฟังก์ชัน

การทดสอบความรู้

ช่องโหว่ IDOR คืออะไร และคุณจะมองหาช่องโหว่นี้ที่ใดในการตรวจสอบรหัส

สรุป

การตรวจสอบรหัสอย่างปลอดภัยที่มีประสิทธิผลผสานการทำแผนผังจุดรับข้อมูล การติดตามการไหลของข้อมูล การวิเคราะห์ขอบเขตความไว้วางใจ การตรวจจับส่วนต่อประสานที่เป็นอันตราย และเครื่องมือ SAST แบบอัตโนมัติ วิธีนี้ช่วยตรวจพบปัญหาด้านความปลอดภัยที่การตรวจสอบด้านการทำงานพลาด โดยเฉพาะข้อบกพร่องในตรรกะทางธุรกิจและช่องโหว่เล็กน้อยในการอนุญาต

คำถามที่พบบ่อย

บทเรียน “เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย”

ระบุปัญหาด้านความปลอดภัยในการตรวจสอบโค้ด ได้แก่ กระแสข้อมูล ขอบเขตความน่าเชื่อถือ API อันตราย และการควบคุมที่ขาดหายไป คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตรวจสอบข้อมูลป้อนเข้าและการเข้ารหัสข้อมูลส่งออก
  2. การจัดการส่วนพึ่งพาอย่างปลอดภัย
  3. OWASP ASVS: มาตรฐานตรวจสอบความปลอดภัยแอปพลิเคชัน
  4. เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย
← กลับไปที่ Cyber Security Academy