สมัยก่อนเราเก็บเงินไว้ในบ้าน ดังนั้นถ้าโจรปล้นบ้านเรา มันก็จะแย่งชิงเอาเงินของเราไปได้ … แย่หน่อยที่ไม่มีใครมาช่วยปกป้องเงินทองของเราเอาไว้

สำหรับสมัยนี้ เราคงเลือกที่จะฝากเงินทองเอาไว้ที่สถาบันการเงินแทน ถึงแม้จะมีกฎหมายไม่คุ้มครองเงินฝากออกมาเราก็ไม่สน เพราะฝากเงินทองเอาไว้กับสถาบันการเงินมันปลอดภัยกว่า

สถาบันการเงินเองก็เอาเงินของลูกค้ามาวางกองสุมรวมกัน แล้วบันทึกลงคอมพิวเตอร์ว่าลูกค้าแต่ล่ะรายฝากเงินเอาไว้เป็นจำนวนเท่าไหร่ และที่สำคัญต้องบันทึกเป็นรายการรับจ่าย ไม่ใช่ใช้วิธีบวกลบเลขจากยอดเดิม เพราะถ้าบวกลบจากยอดเดิมมันตรวจรายการย้อนกลับไม่ได้ ว่าเงินมันมีที่มาที่ไปยังไง?

พอโม้มาถึงตรงนี้ก็จะเห็นว่า โจรมันต้องเปลี่ยนเป้าหมายไปปล้นเงินที่สถาบันการเงินแทน ซึ่งถ้ามันปล้นแบบดิบ ๆ โดยการสวมหมวกไหมพรม ถือปืนสงคราม ยกพวกกันเข้าไปค้นเงินจากเคาเตอร์ก็ว่าไปอย่าง …

แต่ถ้ามันเป็นโจรที่รู้จักวิธีเข้าไปในคอมพิวเตอร์ของสถาบันการเงินแบบนิ่ม ๆ แถมยังรู้ด้วยว่าจะสร้างรายการรับจ่ายของจริง (แต่ไม่จริง) ได้ยังไง … อันนี้น่ากลัวกว่า

และจะน่ากลัวที่สุด หากคนที่เป็นโจรดันเป็นคนในซะเอง!!!

โจรซึ่งเป็นคนนอกยังไม่ร้ายกาจเท่าโจรซึ่งเป็นคนใน เพราะคนในย่อมรู้เช่นเห็นชาติในเรื่องภายในได้ดีกว่าใคร ๆ

สมมติว่าภาพข้างล่างนี้คือบัญชีเงินฝาก ซึ่งสถาบันการเงินเก็บเอาไว้ในระบบคอมพิวเตอร์อันทรงประสิทธิภาพของสถาบันฯ

บัญชีนายยาจก

การที่เราจะเสกเงินให้นายยาจกได้ เราก็ต้องเพิ่มรายการให้นายยาจกตามภาพข้างล่าง ถูกมั้ย?

บัญชีนายยาจกอีกอัน

ดูแล้วง่ายดีเน้อะ? ตรงไปตรงมาดี แต่สิ่งที่ยากกลับไม่ได้อยู่ที่การเพิ่มรายการลำดับที่ 4 เข้าไปอ่ะดิ หากแต่อยู่ที่การยืนยันให้ได้ว่ารายการอันดับที่ 4 นั้นมัน..เป็นของจริง ดูแล้วไม่มีตำหนิ ไม่มีพิรุธใด ๆ ทั้งสิ้นต่างหาก

ปรกติแล้วยุทธวิธีหลักในการยืนยันรายการทางการเงินในคอมพิวเตอร์ก็คือ การใช้รายการอื่นเพื่ออ้างอิงไขว้ ยิ่งไขว้กันไปไขว้กันมาหลายรายการได้ยิ่งดี ยกตัวอย่างแบบภาพข้างล่าง

การอ้างอิงไขว้

แบบที่ 1 แปลได้ใจความว่า ถ้ารายการ A ซึ่งถูกรายการลำดับที่ 4 อ้างถึงนั้น มันไม่มีตัวตนอยู่จริง หรือถ้ามันมีตัวตนอยู่จริง แต่มันไม่ได้อ้างอิงถึงรายการลำดับที่ 4 แล้วล่ะก็ ให้คิดได้เลยว่ารายการลำดับที่ 4 เป็นของเก๊แหง ๆ

แบบที่ 2 นี่ซับซ้อนขึ้นอีกนิด เพราะนอกจาก #4 กับ #A จะอ้างอิงไขว้กันแล้ว ไอ้เจ้า #A ยังไปอ้างอิงไขว้กับ #B ซะอีก

แบบที่ 3 ถือว่าคนออกแบบนี่อย่างบ้าเลย เพราะเล่นอ้างถึงกันไปหมดเลย ถ้าหลุดไม่ได้อ้างถึงแม้แต่คู่เดียว ก็ถือว่ารายการที่ 4 เป็นของเก๊ทันที

โดยสรุปแล้ว โจรคอมพิวเตอร์ (ซึ่งเป็นคนใน) ที่ถูกจับได้ว่าแก้ไขข้อมูลการเงินให้กับตัวเอง ก็เพราะว่าประมาทไม่รู้เท่าทันการอ้างอิงไขว้นั่นเอง

ป.ล. 1. สำหรับผู้ออกแบบระบบซอฟต์แวร์ จงพยายามอ้างอิงไขว้ให้เยอะ ๆ จนแม้กระทั่งตัวท่านเองก็ไม่สามารถสร้างการอ้างอิงไขว้เองได้
ป.ล. 2. สำหรับผู้บริหาร จงพยายามสั่งการให้ผู้ออกแบบระบบซอฟต์แวร์ บรรจุระบบอ้างอิงไขว้เอาไว้เยอะ ๆ จนไม่มีรูโหว่
ป.ล. 3. สำหรับโจรคอมพิวเตอร์ จงพยายามหาการอ้างอิงไขว้ในทุก ๆ คู่ของทุก ๆ รายการที่ต้องการหา .. ให้พบ .. ให้จงได้ 😛

[tags]อาชญากรรม, คอมพิวเตอร์, ความผิด, โจร, ปล้น, ระบบ, คอมพิวเตอร์[/tags]

Related Posts

7 thoughts on “Broken Arrow

  1. “ป.ล. 1. สำหรับผู้ออกแบบระบบซอฟต์แวร์ จงพยายามอ้างอิงไขว้ให้เยอะ ๆ จนแม้กระทั่งตัวท่านเองก็ไม่สามารถสร้างการอ้างอิงไขว้เองได้”

    คนซวยคือ tester ครับทั่น
    make ข้อมูลเอามาทำ test case ไม่ได้ – -”

  2. ทุกท่าน – ต้องตั้งทีมทดสอบขึ้นมาทีมนึง ประกอบด้วยคนเป็นสิบ ๆ คน แล้วแยกกันทดสอบอย่างละเอียดจ้า

  3. ขอบคุณมากครับพี่ไท้ ที่ช่วยชี้ทางสว่างให้

    ป.ล. สงสัยผมต้องไปดูแนวคิดเรื่องการทดสอบระบบใหม่ละ (ทุกวันนี้ SA=GB)

  4. คือว่า ลำดับที่ 2 ที่ฝากเงินเพิ่ม 100 แล้ว เงินทั้งหมดที่มีจะกลายเป็น 600 บาท
    แต่พอลำดับที่ 3 ที่มีการถอนเงิน 100 บาทปุ๊บ เงินจะโดนตัด เหลือ 500 บาท

    ไม่ใช่เหรอคะพี่ไท้?? พี่ไท้เขียนไว้ 400 อ่า

    พี่ไท้ตกเลขอ๊ะป่าวคะ…

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *