การตรวจสอบการตรวจสอบซอฟต์แวร์
การตรวจสอบการตรวจสอบซอฟต์แวร์หรือ การตรวจสอบซอฟต์แวร์เป็นประเภทของการตรวจสอบซอฟต์แวร์ที่ผู้ตรวจสอบอย่างน้อยหนึ่งรายซึ่งไม่ใช่สมาชิกขององค์กรพัฒนาซอฟต์แวร์ดำเนินการ "การตรวจสอบผลิตภัณฑ์ซอฟต์แวร์ กระบวนการซอฟต์แวร์ หรือชุดกระบวนการซอฟต์แวร์เพื่อประเมินโดยอิสระ การปฏิบัติตามข้อกำหนด มาตรฐาน ข้อตกลงตามสัญญา หรือเกณฑ์อื่นๆ" [1]
"ผลิตภัณฑ์ซอฟต์แวร์" ส่วนใหญ่ แต่ไม่เฉพาะหมายถึงเอกสารทางเทคนิคบางประเภท IEEEมาตรฐาน 1028 [2]เสนอรายการ "ตัวอย่างผลิตภัณฑ์ซอฟต์แวร์ที่ต้องตรวจสอบ" จำนวน 32 รายการ รวมถึงผลิตภัณฑ์ที่เป็นเอกสาร เช่น แผน สัญญา ข้อมูลจำเพาะ การออกแบบ ขั้นตอน มาตรฐาน และรายงานประเภทต่างๆ แต่ยังรวมถึงผลิตภัณฑ์ที่ไม่ใช่เอกสาร เช่น ข้อมูล ข้อมูลทดสอบ และสื่อที่ส่งมอบ
การตรวจสอบซอฟต์แวร์แตกต่างจากการตรวจทานซอฟต์แวร์และการทบทวนการจัดการซอฟต์แวร์โดยดำเนินการโดยบุคลากรภายนอกและเป็นอิสระจากองค์กรพัฒนาซอฟต์แวร์ และเกี่ยวข้องกับการปฏิบัติตามผลิตภัณฑ์หรือกระบวนการ มากกว่าเนื้อหาทางเทคนิค คุณภาพทางเทคนิค หรือผลการบริหารจัดการ
คำว่า "การตรวจสอบการตรวจสอบซอฟต์แวร์" ถูกนำมาใช้ที่นี่เพื่อกำหนดรูปแบบของการตรวจสอบซอฟต์แวร์ที่อธิบายไว้ใน IEEE Std. 1028.
วัตถุประสงค์และผู้เข้าร่วม
"วัตถุประสงค์ของการตรวจสอบซอฟต์แวร์คือเพื่อให้การประเมินความสอดคล้องของผลิตภัณฑ์ซอฟต์แวร์และกระบวนการตามระเบียบข้อบังคับ มาตรฐาน แนวทาง แผน และขั้นตอนที่เกี่ยวข้องอย่างเป็นอิสระ" [3]แนะนำบทบาทต่อไปนี้:
- ผู้ริเริ่ม (ซึ่งอาจเป็นผู้จัดการในองค์กรที่ได้รับการตรวจสอบ ลูกค้าหรือตัวแทนผู้ใช้ขององค์กรที่ได้รับการตรวจสอบ หรือบุคคลที่สาม) ตัดสินใจเกี่ยวกับความจำเป็นในการตรวจสอบ กำหนดวัตถุประสงค์และขอบเขต ระบุเกณฑ์การประเมิน ระบุ ตรวจสอบบุคลากร ตัดสินใจว่าจะต้องดำเนินการติดตามผลใดบ้าง และแจกจ่ายรายงานการตรวจสอบ
- หัวหน้าผู้ตรวจประเมิน (ซึ่งต้องเป็นคน "ปราศจากอคติและมีอิทธิพลที่สามารถลดความสามารถของเขาเพื่อให้อิสระการประเมินผลวัตถุประสงค์") เป็นผู้รับผิดชอบในการบริหารงานเช่นการจัดเตรียมแผนการตรวจสอบและการประกอบและการจัดการทีมงานตรวจสอบและเพื่อให้มั่นใจว่า การตรวจสอบเป็นไปตามวัตถุประสงค์
- ผู้บันทึกจะบันทึกความผิดปกติ รายการดำเนินการ การตัดสินใจ และคำแนะนำจากทีมตรวจสอบ
- ผู้สอบบัญชี (ซึ่งจะต้องเป็นเหมือนหัวหน้าผู้ตรวจปราศจากอคติ) ตรวจสอบผลิตภัณฑ์ที่กำหนดไว้ในแผนการตรวจสอบเอกสารการสังเกตของพวกเขาและแนะนำการดำเนินการแก้ไข (อาจมีผู้ตรวจสอบบัญชีเพียงคนเดียว)
- องค์การตรวจสอบให้ประสานงานไปยังผู้ตรวจสอบและให้ข้อมูลทั้งหมดที่ร้องขอโดยผู้สอบบัญชี เมื่อการตรวจสอบเสร็จสิ้น องค์กรที่ได้รับการตรวจสอบควรดำเนินการแก้ไขและข้อเสนอแนะ
หลักการตรวจสอบซอฟต์แวร์
หลักการของการตรวจสอบต่อไปนี้ควรพบการสะท้อน: [4]
- ความทันเวลา:เฉพาะเมื่อกระบวนการและการเขียนโปรแกรมได้รับการตรวจสอบอย่างต่อเนื่องโดยคำนึงถึงความอ่อนไหวต่อข้อบกพร่องและจุดอ่อนที่อาจเกิดขึ้น แต่รวมถึงความต่อเนื่องของการวิเคราะห์จุดแข็งที่พบ หรือโดยการวิเคราะห์เชิงฟังก์ชันเปรียบเทียบกับแอปพลิเคชันที่คล้ายคลึงกัน กรอบที่อัปเดตแล้วสามารถ จะดำเนินต่อไป
- ความเปิดกว้างของแหล่งที่มา:ต้องมีการอ้างอิงที่ชัดเจนในการตรวจสอบโปรแกรมที่เข้ารหัส วิธีการจัดการโอเพนซอร์สจะต้องเข้าใจ เช่น โปรแกรมที่นำเสนอแอปพลิเคชันโอเพ่นซอร์สแต่ไม่ได้พิจารณาว่าเซิร์ฟเวอร์ IM เป็นโอเพ่นซอร์ส จะต้องถือว่ามีความสำคัญ ผู้ตรวจสอบบัญชีควรมีจุดยืนของตัวเองในกระบวนทัศน์ของความต้องการธรรมชาติโอเพนซอร์สภายในแอปพลิเคชันการเข้ารหัสลับ
- ความประณีต:กระบวนการตรวจสอบควรมุ่งเน้นไปที่มาตรฐานขั้นต่ำบางประการ กระบวนการตรวจสอบล่าสุดของซอฟต์แวร์เข้ารหัสมักจะแตกต่างกันอย่างมากในด้านคุณภาพ ในขอบเขตและประสิทธิภาพ และประสบการณ์ในการรับสื่อมักมีการรับรู้ที่แตกต่างกัน เนื่องจากความต้องการความรู้พิเศษในด้านหนึ่งและเพื่อให้สามารถอ่านโค้ดโปรแกรมได้และจากนั้นจึงมีความรู้เกี่ยวกับขั้นตอนการเข้ารหัสด้วย ผู้ใช้จำนวนมากถึงกับเชื่อถือข้อความยืนยันอย่างเป็นทางการที่สั้นที่สุด ความมุ่งมั่นส่วนบุคคลในฐานะผู้ตรวจสอบบัญชี เช่น ในด้านคุณภาพ ขนาด และประสิทธิผล จะต้องได้รับการประเมินโดยสะท้อนกลับสำหรับตัวคุณเองและต้องจัดทำเป็นเอกสารภายในการตรวจสอบ

- บริบททางการเงิน:จำเป็นต้องมีความโปร่งใสเพิ่มเติมเพื่อชี้แจงว่าซอฟต์แวร์ได้รับการพัฒนาในเชิงพาณิชย์หรือไม่ และการตรวจสอบได้รับการสนับสนุนในเชิงพาณิชย์หรือไม่ (การตรวจสอบแบบชำระเงิน) มันสร้างความแตกต่างไม่ว่าจะเป็นโครงการงานอดิเรก / ชุมชนส่วนตัวหรือว่า บริษัท การค้าอยู่เบื้องหลัง
- การอ้างอิงทางวิทยาศาสตร์ของมุมมองการเรียนรู้: การตรวจสอบแต่ละครั้งควรอธิบายสิ่งที่ค้นพบโดยละเอียดภายในบริบทและเน้นย้ำถึงความก้าวหน้าและความต้องการในการพัฒนาอย่างสร้างสรรค์ ผู้ตรวจสอบบัญชีไม่ใช่ผู้ปกครองของโครงการ แต่ทำหน้าที่เป็นที่ปรึกษา หากผู้ตรวจสอบถือเป็นส่วนหนึ่งของวงจรการเรียนรู้ของ PDCA ( PDCA = Plan-Do-Check-Act) ควรมีถัดจากคำอธิบายของช่องโหว่ที่ตรวจพบและคำอธิบายของโอกาสที่เป็นนวัตกรรมและการพัฒนาศักยภาพ
- การรวมวรรณกรรม:ผู้อ่านไม่ควรพึ่งพาผลการทบทวนเพียงเรื่องเดียว แต่ยังตัดสินตามวงจรของระบบการจัดการ (เช่น PDCA ดูด้านบน) เพื่อให้แน่ใจว่าทีมพัฒนาหรือผู้ตรวจสอบได้รับการจัดเตรียมและเตรียมพร้อม เพื่อดำเนินการวิเคราะห์เพิ่มเติมและในกระบวนการพัฒนาและทบทวนนั้นเปิดให้เรียนรู้และพิจารณาบันทึกของผู้อื่น รายการอ้างอิงควรแนบมากับการตรวจสอบในแต่ละกรณี
- การรวมคู่มือผู้ใช้และเอกสารประกอบ:ควรมีการตรวจสอบเพิ่มเติมว่ามีคู่มือและเอกสารทางเทคนิคหรือไม่ และหากมีการขยายเพิ่มเติม
- ระบุการอ้างอิงถึงนวัตกรรม:แอปพลิเคชันที่อนุญาตทั้งการส่งข้อความไปยังผู้ติดต่อออฟไลน์และออนไลน์ ดังนั้นการพิจารณาการแชทและอีเมลในแอปพลิเคชันเดียว - เช่นเดียวกับกรณีของ GoldBug - ควรได้รับการทดสอบด้วยลำดับความสำคัญสูง (เกณฑ์การแชทสถานะเพิ่มเติม ไปยังฟังก์ชันอีเมล) ผู้ตรวจสอบบัญชีควรเน้นที่การอ้างอิงถึงนวัตกรรมและสนับสนุนความต้องการด้านการวิจัยและพัฒนาเพิ่มเติม
นี้รายชื่อของหลักการการตรวจสอบสำหรับการใช้งานการเข้ารหัสลับอธิบาย - เกินกว่าวิธีการของการวิเคราะห์ทางเทคนิค - ค่านิยมหลักโดยเฉพาะอย่างยิ่งที่ควรจะนำมาพิจารณา
เครื่องมือ
การตรวจสอบซอฟต์แวร์บางส่วนสามารถทำได้โดยใช้เครื่องมือวิเคราะห์แบบคงที่ที่วิเคราะห์โค้ดของแอปพลิเคชันและให้คะแนนความสอดคล้องกับมาตรฐาน แนวทางปฏิบัติ แนวทางปฏิบัติที่ดีที่สุด จากรายการเครื่องมือสำหรับการวิเคราะห์โค้ดแบบคงที่บางส่วนครอบคลุมสเปกตรัมขนาดใหญ่มากตั้งแต่โค้ดไปจนถึงการตรวจสอบสถาปัตยกรรม และสามารถใช้สำหรับการเปรียบเทียบได้
อ้างอิง
- ^ IEEEมาตรฐาน 1028-1997มาตรฐาน IEEE สำหรับรีวิวซอฟต์แวร์ข้อ 3.2
- ^ "IEEE 1028-2008 - มาตรฐาน IEEE สำหรับความคิดเห็นเกี่ยวกับซอฟแวร์และการตรวจสอบ" standard.ieee.org . สืบค้นเมื่อ2019-03-12 .
- ^ IEEE มาตรฐาน 10281997 ข้อ 8.1
- ^ การอ้างอิงถึงหลักการตรวจสอบหลักเพิ่มเติม ใน: Adams, David / Maier, Ann-Kathrin (2016): BIG SEVEN Study, open source crypto-messengers to be comparison - หรือ: Comprehensive Confidentiality Review & Audit of GoldBug, Encrypting E-Mail -Client & Secure Instant Messenger, คำอธิบาย, การทดสอบและการวิเคราะห์ความคิดเห็นของ 20 ฟังก์ชันของแอปพลิเคชัน GoldBug โดยอิงจากฟิลด์ที่จำเป็นและวิธีการประเมินของคู่มือการตรวจสอบระหว่างประเทศที่สำคัญ 8 ฉบับสำหรับการตรวจสอบความปลอดภัยด้านไอที รวมถึง 38 ตัวเลขและ 87 ตาราง URL: https://sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf - ภาษาอังกฤษ / เยอรมัน เวอร์ชัน 1.1, 305 หน้า มิถุนายน 2016 (ISBN: DNB 110368003X - 2016B14779)