PDA

View Full Version : คัมภีร์สยบแฮกเกอร์ #9



asylu3
20-10-2002, 10:40 PM
บทที่ 3 เล็ดลอดเข้าระบบ
บทนี้จะกล่าวถึงวิธีที่แฮคเกอร์ใช้ในการเข้าสู่ระบบคอมพิวเตอร์โดยไม่ได้รับอนุญาต ซึ่งหากแฮคเกอร์ทำได้สำเร็จ ก็ถือได้ว่าเขาได้ชัยชนะไปกว่าครึ่งค่อนตัวแล้ว แต่ถ้าหากแฮคเกอร์ยังคงอยู่ในขั้นตอนของการคลำหาทางเข้าสู่ระบบอยู่ ซึ่งไม่ใช่เรื่องง่ายกว่าจะหาพบ ก็นับว่ายังไม่สายที่คุณจะหยุดยั้งแฮคเกอร์เสียตั้งแต่บัดนี้ ก่อนที่พวกเขาจะกล้ำกรายเข้าไปสร้างความเสียหายในระบบของคุณ

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

---เจาะเข้าทางสายตรง (Serial Line Access)---
ย้อนกลับไปในสมัยก่อน เมื่อระบบคอมพิวเตอร์เริ่มพัฒนาให้ผู้ใช้สามารถสั่งงานและดูผลการทำงานได้อย่างทันทีทันใดมากยิ่งขึ้น ขณะนั้น ผู้ใช้จะติดต่อกับระบบคอมพิวเตอร์ผ่านทางสายตรง (serial line) ทางเดียวเท่านั้น โดยการใช้แป้นพิมพ์และหน้าจอ หรือไม่ก็โมเดม และเมื่อต่อโมเดมเข้ากับระบบโทรศัพท์ ระบบคอมพิวเตอร์กับโลกภายนอกก็สามารถติดต่อถึงกันได้ นี่เป็นจุดเริ่มต้นของระบบเครือข่ายสายตรงที่ระบบคอมพิวเตอร์ต่างๆ สื่อสารแลกเปลี่ยนข้อมูลกัน
กระทั่งทุกวันนี้ ระบบคอมพิวเตอร์แบบหลายผู้ใช้ก็ยังคงให้ผู้ใช้ใช้ระบบผ่านทางสายตรงอยู่ อย่างน้อยที่สุด หน้าจอควบคุมการทำงานของระบบก็ต่ออยู่ด้วยสายตรง หรืออย่างระบบคอมพิวเตอร์ที่รอรับการป้อนข้อมูลเพื่อนำไปประมวลผล ต่างก็รับข้อมูลจากบรรดาผู้ป้อนข้อมูลเข้ามาทางสายตรงเช่นเดียวกัน และยังมีโมเดมอีกซึ่งไม่พ้นที่จะต่อกับระบบผ่านทางสายตรงด้วย

asylu3
20-10-2002, 10:42 PM
เมื่อแฮคเกอร์มาเคาะประตู
สำหรับแฮคเกอร์แล้ว ความพยายามที่จะสุ่มเดาแล้วใส่ชื่อและรหัสผ่านเพื่อเข้าสู่ระบบเป็นวิธีการที่เสี่ยงต่อการถูกจับได้มากที่สุด การเคาะประตูระบบอยู่เรื่อยๆ เช่นนี้ ไม่ช้าผู้ดูแลระบบก็จะสังเกตเห็นและดำเนินการป้องกัน ดังนั้น นอกจากว่าแฮคเกอร์จะได้ชื่อและรหัสผ่านมาอยู่ในมือ หรือแอบไปล่วงรู้หลักการตั้งชื่อและรหัสผ่านของระบบมาก่อน การเดาสุ่มมักไม่ได้ผล ส่วนระบบของคุณก็ต้องมีการบันทึกการขอเข้าใช้ระบบทุกครั้ง ทั้งที่ได้รับอนุญาตให้ผ่านเข้าสู่ระบบได้ และที่ไม่ได้รับอนุญาต
ในระบบยูนิกซ์ มีไฟล์ชื่อ wtmp ที่ใช้บันทึกการผ่านเข้าสู่ระบบของผู้ใช้ทุกๆ คน และมีไฟล์ btmp ที่ใช้บันทึกการขอเข้าใช้ระบบที่ถูกปฏิเสธ สิทธิในการใช้ไฟล์ btmp ควรจะเป็น read-write สำหรับ root เท่านั้น ผู้ใช้คนอื่นๆ นอกนั้นไม่มีสิทธิแตะต้องไฟล์นี้ ส่วนไฟล์ wtmp ควรมีสิทธิในการใช้เป็น read-only สำหรับทุกๆ คน และเพิ่มเติมสิทธิ write สำหรับ root เพียงคนเดียว
คุณสามารถกำหนดให้ระบบของคุณตัดการติดต่อทางโมเดมทันที หากการติดต่อขอใช้ระบบผ่านทางโมเดมนั้น ใส่ชื่อหรือรหัสผ่านผิดพลาด 3 ครั้ง หรือเมื่อผู้ใช้ออกจากระบบไป
การที่คุณจะให้โปรแกรม login ตัดการติดต่อกับโมเดมโดยอัตโนมัตินั้น โมเดมจะต้องต่ออยู่กับระบบด้วยสายสัญญาณที่สามารถส่งผ่านคำสั่งโมเดมอย่างครบถ้วน (full modem control) ส่วนทางด้านระบบคอมพิวเตอร์ก็ต้องมีจุดเชื่อมต่อสายสัญญาณ (port) ที่รองรับคำสั่งโมเดมอย่างครบถ้วนเช่นเดียวกัน นอกจากนี้ คุณยังต้องกำหนดการทำงานของโมเดมใน /etc/gettydefs ให้ถูกต้องด้วย คือต้องมีคำว่า HUPCL (Hang-Up and Clear) อยู่ 2 จุดสำหรับโมเดมแต่ละตัว ดังนี้
2400 # B2400 HUPCL IGNPAR ICRLN IXON OPOST ONLCR CS8 CREAD ISIG ICANON ECHO ECHOK ISTRIP IXANY TAB3
# B2400 HUPCL SANE CS8 ISTRIP IXANY TAB3
# login: #2400
เทคโนโลยีของทุกวันนี้ ทำให้การสืบสาวไปยังผู้ที่ติดต่อมาที่ระบบผ่านทางโทรศัพท์ง่ายดายยิ่งขึ้น ด้วยอุปกรณ์ที่ชื่อว่า Caller ID ทำให้ไม่จำเป็นต้องใช้อำนาจศาลหรือทำเรื่องร้องขอให้วุ่นวายในการให้ได้มาซึ่งหมายเลขโทรศัพท์ของเครื่องโทรศัพท์ที่โทรเข้ามาที่ระบบของคุณอีกต่อไป
Caller ID จะบันทึกเวลาและหมายเลขโทรศัพท์เมื่อมีการโทรเข้าทุกครั้ง และเมื่อผสมผสานการทำงานของ Caller ID เข้ากับโมเดม โมเดมก็จะสามารถแจ้งหมายเลขโทรศัพท์ที่โทรเข้าให้กับระบบคอมพิวเตอร์ ก่อนที่ระบบจะตัดสินใจว่าจะอนุญาตให้ผู้ใช้รายนั้นเข้าสู่ระบบได้หรือไม่ คุณยังสามารถประยุกต์ใช้คุณสมบัติข้อนี้ในการกำหนดระบบโทรกลับ (dial-back system) หรือระบบเตือนภัยเมื่อมีการโทรเข้ามาจากหมายเลขโทรศัพท์ที่ไม่ได้รับอนุญาตอีกด้วย

asylu3
20-10-2002, 10:42 PM
ยังมีอีกวิธีหนึ่งที่ช่วยเสริมความแข็งแกร่งของการป้องกันการบุกรุกจากแฮคเกอร์ โดยอาศัยการรักษาความปลอดภัยในการโทรเข้า (dial-up security) ของยูนิกซ์บางเวอร์ชั่น ซึ่งผู้ใช้จะต้องใส่รหัสผ่านถึง 2 รหัส ถึงแม้ดูชื่อแล้วจะเป็นการป้องกันในการโทรเข้า แต่คุณก็สามารถประยุกต์ใช้คุณสมบัติข้อนี้กับการขอเข้าใช้ระบบที่ผ่านเข้ามาทางอื่นๆ ด้วย ไม่ว่าจะเป็นทางหน้าจอ ทางโมเดม หรือทางการเชื่อมต่อโดยตรง (port-by-port) สำหรับรหัสผ่านทั้งสองรหัสนั้น รหัสผ่านหนึ่งเป็นรหัสผ่านประจำผู้ใช้ตามปกติ ส่วนอีกรหัสผ่านนั้นขึ้นอยู่กับการกำหนดเชลล์ของผู้ใช้ ซึ่งคุณต้องกำหนดในไฟล์ 2 ไฟล์ ได้แก่ /etc/dialups และ /etc/d_passwd ในไฟล์ dialups จะมีการกำหนดหน้าจอที่ต้องใส่รหัสผ่าน ยกตัวอย่างเช่น
/dev/tty0p0
/dev/tty0p1
ส่วนในไฟล์ d_passwd จะมีชื่อของเชลล์ต่างๆ และรหัสผ่าน (ที่ถูกแปลงแล้ว) ของแต่ละเชลล์ ถ้าไม่มีชื่อของเชลล์ใดถูกกำหนดไว้ในไฟล์นี้ ผู้ใช้ที่ใช้เชลล์นั้นก็ไม่ต้องใส่รหัสผ่าน ตัวอย่างของการกำหนดในไฟล์ d_passwd มีดังนี้
/bin/sh:dpscen80aKWa2:
/bin/ksh:dpJm/BwWmbsJg:
ในการกำหนดรหัสผ่านให้กับเชลล์ในไฟล์ d_passwd คุณต้องใส่รหัสผ่านที่แปลงแล้วแทนที่จะเป็นรหัสผ่านตรงๆ คุณจึงควรมีโปรแกรมช่วยดังต่อไปนี้ ซึ่งจะรอให้คุณพิมพ์รหัสผ่านเข้าไป จากนั้น โปรแกรมจะทำการแปลงรหัสผ่านแล้วแสดงผลออกมาทางหน้าจอ
main(argc,argv)
int argc;
char **argv;
{
char *salt="dp" ; /* use your favorite salt */
printf ("%s", crypt(argv[1], salt);
}