สมัยก่อนเราเก็บเงินไว้ในบ้าน ดังนั้นถ้าโจรปล้นบ้านเรา มันก็จะแย่งชิงเอาเงินของเราไปได้ … แย่หน่อยที่ไม่มีใครมาช่วยปกป้องเงินทองของเราเอาไว้
สำหรับสมัยนี้ เราคงเลือกที่จะฝากเงินทองเอาไว้ที่สถาบันการเงินแทน ถึงแม้จะมีกฎหมายไม่คุ้มครองเงินฝากออกมาเราก็ไม่สน เพราะฝากเงินทองเอาไว้กับสถาบันการเงินมันปลอดภัยกว่า
สถาบันการเงินเองก็เอาเงินของลูกค้ามาวางกองสุมรวมกัน แล้วบันทึกลงคอมพิวเตอร์ว่าลูกค้าแต่ล่ะรายฝากเงินเอาไว้เป็นจำนวนเท่าไหร่ และที่สำคัญต้องบันทึกเป็นรายการรับจ่าย ไม่ใช่ใช้วิธีบวกลบเลขจากยอดเดิม เพราะถ้าบวกลบจากยอดเดิมมันตรวจรายการย้อนกลับไม่ได้ ว่าเงินมันมีที่มาที่ไปยังไง?
พอโม้มาถึงตรงนี้ก็จะเห็นว่า โจรมันต้องเปลี่ยนเป้าหมายไปปล้นเงินที่สถาบันการเงินแทน ซึ่งถ้ามันปล้นแบบดิบ ๆ โดยการสวมหมวกไหมพรม ถือปืนสงคราม ยกพวกกันเข้าไปค้นเงินจากเคาเตอร์ก็ว่าไปอย่าง …
แต่ถ้ามันเป็นโจรที่รู้จักวิธีเข้าไปในคอมพิวเตอร์ของสถาบันการเงินแบบนิ่ม ๆ แถมยังรู้ด้วยว่าจะสร้างรายการรับจ่ายของจริง (แต่ไม่จริง) ได้ยังไง … อันนี้น่ากลัวกว่า
และจะน่ากลัวที่สุด หากคนที่เป็นโจรดันเป็นคนในซะเอง!!!
โจรซึ่งเป็นคนนอกยังไม่ร้ายกาจเท่าโจรซึ่งเป็นคนใน เพราะคนในย่อมรู้เช่นเห็นชาติในเรื่องภายในได้ดีกว่าใคร ๆ
สมมติว่าภาพข้างล่างนี้คือบัญชีเงินฝาก ซึ่งสถาบันการเงินเก็บเอาไว้ในระบบคอมพิวเตอร์อันทรงประสิทธิภาพของสถาบันฯ
การที่เราจะเสกเงินให้นายยาจกได้ เราก็ต้องเพิ่มรายการให้นายยาจกตามภาพข้างล่าง ถูกมั้ย?
ดูแล้วง่ายดีเน้อะ? ตรงไปตรงมาดี แต่สิ่งที่ยากกลับไม่ได้อยู่ที่การเพิ่มรายการลำดับที่ 4 เข้าไปอ่ะดิ หากแต่อยู่ที่การยืนยันให้ได้ว่ารายการอันดับที่ 4 นั้นมัน..เป็นของจริง ดูแล้วไม่มีตำหนิ ไม่มีพิรุธใด ๆ ทั้งสิ้นต่างหาก
ปรกติแล้วยุทธวิธีหลักในการยืนยันรายการทางการเงินในคอมพิวเตอร์ก็คือ การใช้รายการอื่นเพื่ออ้างอิงไขว้ ยิ่งไขว้กันไปไขว้กันมาหลายรายการได้ยิ่งดี ยกตัวอย่างแบบภาพข้างล่าง
แบบที่ 1 แปลได้ใจความว่า ถ้ารายการ A ซึ่งถูกรายการลำดับที่ 4 อ้างถึงนั้น มันไม่มีตัวตนอยู่จริง หรือถ้ามันมีตัวตนอยู่จริง แต่มันไม่ได้อ้างอิงถึงรายการลำดับที่ 4 แล้วล่ะก็ ให้คิดได้เลยว่ารายการลำดับที่ 4 เป็นของเก๊แหง ๆ
แบบที่ 2 นี่ซับซ้อนขึ้นอีกนิด เพราะนอกจาก #4 กับ #A จะอ้างอิงไขว้กันแล้ว ไอ้เจ้า #A ยังไปอ้างอิงไขว้กับ #B ซะอีก
แบบที่ 3 ถือว่าคนออกแบบนี่อย่างบ้าเลย เพราะเล่นอ้างถึงกันไปหมดเลย ถ้าหลุดไม่ได้อ้างถึงแม้แต่คู่เดียว ก็ถือว่ารายการที่ 4 เป็นของเก๊ทันที
โดยสรุปแล้ว โจรคอมพิวเตอร์ (ซึ่งเป็นคนใน) ที่ถูกจับได้ว่าแก้ไขข้อมูลการเงินให้กับตัวเอง ก็เพราะว่าประมาทไม่รู้เท่าทันการอ้างอิงไขว้นั่นเอง
ป.ล. 1. สำหรับผู้ออกแบบระบบซอฟต์แวร์ จงพยายามอ้างอิงไขว้ให้เยอะ ๆ จนแม้กระทั่งตัวท่านเองก็ไม่สามารถสร้างการอ้างอิงไขว้เองได้
ป.ล. 2. สำหรับผู้บริหาร จงพยายามสั่งการให้ผู้ออกแบบระบบซอฟต์แวร์ บรรจุระบบอ้างอิงไขว้เอาไว้เยอะ ๆ จนไม่มีรูโหว่
ป.ล. 3. สำหรับโจรคอมพิวเตอร์ จงพยายามหาการอ้างอิงไขว้ในทุก ๆ คู่ของทุก ๆ รายการที่ต้องการหา .. ให้พบ .. ให้จงได้ 😛
[tags]อาชญากรรม, คอมพิวเตอร์, ความผิด, โจร, ปล้น, ระบบ, คอมพิวเตอร์[/tags]
ถ้าเป็น โจรคอมพิวเตอร์ + ผู้ออกแบบระบบซอฟต์แวร์ หล่ะ
ก็บอกว่าเป็นคนในนิ
“ป.ล. 1. สำหรับผู้ออกแบบระบบซอฟต์แวร์ จงพยายามอ้างอิงไขว้ให้เยอะ ๆ จนแม้กระทั่งตัวท่านเองก็ไม่สามารถสร้างการอ้างอิงไขว้เองได้”
คนซวยคือ tester ครับทั่น
make ข้อมูลเอามาทำ test case ไม่ได้ – -”
+1 คนทดสอบระบบ ตายหยังเข็ด
ทุกท่าน – ต้องตั้งทีมทดสอบขึ้นมาทีมนึง ประกอบด้วยคนเป็นสิบ ๆ คน แล้วแยกกันทดสอบอย่างละเอียดจ้า
ขอบคุณมากครับพี่ไท้ ที่ช่วยชี้ทางสว่างให้
ป.ล. สงสัยผมต้องไปดูแนวคิดเรื่องการทดสอบระบบใหม่ละ (ทุกวันนี้ SA=GB)
คือว่า ลำดับที่ 2 ที่ฝากเงินเพิ่ม 100 แล้ว เงินทั้งหมดที่มีจะกลายเป็น 600 บาท
แต่พอลำดับที่ 3 ที่มีการถอนเงิน 100 บาทปุ๊บ เงินจะโดนตัด เหลือ 500 บาท
ไม่ใช่เหรอคะพี่ไท้?? พี่ไท้เขียนไว้ 400 อ่า
พี่ไท้ตกเลขอ๊ะป่าวคะ…
T-T ตกเลขจริง ๆ ด้วย ขี้เกียจไปแก้แล้ว ช่างมัน