จาก: http://seclists.org/fulldisclosure/2009/Jul/0388.html
ถ้าฉันเข้าใจดีที่สุดจากโพสต์จาก: http://news.ycombinator.com/item?id=723798พวก Matasano ออกจากการเข้าถึงอินเทอร์เน็ต sshd - วิธีแก้ไขปัญหาใด ๆ ที่นำเสนอ (จากมุมมองการเขียนโปรแกรม)?
จาก: http://seclists.org/fulldisclosure/2009/Jul/0388.html
ถ้าฉันเข้าใจดีที่สุดจากโพสต์จาก: http://news.ycombinator.com/item?id=723798พวก Matasano ออกจากการเข้าถึงอินเทอร์เน็ต sshd - วิธีแก้ไขปัญหาใด ๆ ที่นำเสนอ (จากมุมมองการเขียนโปรแกรม)?
คำตอบ:
Matasano ถูกแฮ็กอย่างไร?
นั่นเป็นไปไม่ได้ที่จะตอบจากข้อมูลในโพสต์ถึงการเปิดเผยแบบเต็ม อย่างไรก็ตามมันน่าสนใจเสมอที่จะคาดเดาเพราะพวกเขาให้ข้อมูลเล็ก ๆ น้อย ๆ -
# ./th3_f1n4l_s0lut10n www.matasano.com [-] เชื่อมต่อกับ 69.61.87.163:22 .. [/] ค้นหาผู้ใช้ที่ไม่ใช่ผู้ใช้ที่ถูกต้อง .. adam ******** R3D4CT3D h4h4h4h4 ********
พวกเขาเรียกเลขฐานสองของพวกเขาth3_f1n41_s01ut10n
กับเซิร์ฟเวอร์ของ Matasano ซึ่งเชื่อมต่อกับพอร์ต ssh ค้นหาผู้ใช้ที่ไม่ใช่รูทที่ถูกต้องผ่านวิธีการที่ไม่ทราบวิธีและเอาต์พุตที่เหลือจะถูกทำซ้ำ
# ./th3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com [*] ผู้ฟัง Connectback วันที่ 209.112.118.10:3338 .. [!] SSH2_MSG_SERVICE_ACCEPT [OpenSSH_4.5p1, OpenSSL 0.9.8g 19 ต.ค. 2550]
ไบนารีจะทำงานอีกครั้งโดยใช้ชื่อผู้ใช้ที่พบซึ่งเข้าสู่ระบบและเชื่อมต่อกลับไปยังเซิร์ฟเวอร์ของพวกเขาในพอร์ต 3338 (หวังว่าจะไม่ได้ลงทะเบียนในชื่อของพวกเขา ... )
adam_at_www: ~ $ uname -a Linux www 2.6.20.1-1-686 # 1 SMP Sun Mar 4 12:44:55 UTC 2007 i686 GNU / Linux **** h4h4h4hh4h4h4 l3tz us3 m0r3! 0D4Y! H4H4H4H4H4H4H4 ****
พวกเขาอาจหมายถึงพวกเขามี 0 วันกับเคอร์เนลนี้ซึ่งค่อนข้างเก่าเมื่อคุณพิจารณาการซื้อขายหุ้นของ บริษัท นี้
adam_at_www: ~ $ cd / tmp *********** B0R1NG *********** root_at_www: ~ # cat / etc / shadow
อ๊ะ ๆ ทันใดนั้นผู้ใช้ทั้งหมดก็หยั่งราก พวกเขามีการใช้ประโยชน์จากการเพิ่มระดับสิทธิประโยชน์แบบท้องถิ่นใน / tmp ซึ่งอาจเป็น 0 วันที่พวกเขาอ้างถึง
ดังนั้นจึงมีการโจมตีอย่างน้อยสองครั้งที่เกิดขึ้นที่นี่ - การหาประโยชน์จาก OpenSSH เพื่อให้ได้ผู้ใช้ที่ไม่ใช่รูทที่ถูกต้องบนระบบและเข้าสู่ระบบในฐานะผู้ใช้นั้นและจากนั้นการเพิ่มสิทธิ์ระดับท้องถิ่น
พิจารณาว่า OpenSSH มีปัญหาด้านความปลอดภัยที่รู้จักตั้งแต่รุ่น 4.5:
จากหน้าความปลอดภัยของ OpenSSH :
~/.ssh/rc
สำหรับเซสชันที่คำสั่งถูกเขียนทับด้วยคำสั่ง sshd_config (5) ForceCommand นี่เป็นเอกสาร แต่มีพฤติกรรมที่ไม่ปลอดภัย (อธิบายไว้ในบันทึกย่อประจำรุ่นของ OpenSSH 4.9)ฉันเดาว่าการมีเคอร์เนล Linux รุ่นเก่าและ SSH daemon ที่เก่ากว่าทำเพื่อพวกเขา นอกจากนี้มันยังทำงานบนเซิร์ฟเวอร์ www ของพวกเขาซึ่งมีให้บริการบนอินเทอร์เน็ตซึ่งค่อนข้างมั่นใจในสิ่งที่ทำในความคิดของฉัน คนที่บุกเข้ามาอย่างชัดเจนต้องการทำให้พวกเขาอับอาย
จะป้องกันการโจมตีเหล่านี้ได้อย่างไร?
สิ่งนี้สามารถป้องกันได้ด้วยการจัดการเชิงรุก - ตรวจสอบให้แน่ใจว่าบริการที่เชื่อมต่อกับอินเทอร์เน็ตนั้นได้รับการติดตั้งและ จำกัด จำนวนผู้ที่สามารถเชื่อมต่อได้แทนที่จะปล่อยให้ผู้คนสามารถเชื่อมต่อได้จากทุกที่ ตอนนี้รวบรวมบทเรียนที่การจัดการระบบที่ปลอดภัยเป็นเรื่องยากและต้องใช้ความทุ่มเทจากธุรกิจเพื่อให้เวลาสำหรับไอทีในการรักษาสิ่งต่าง ๆ - ในความเป็นจริงไม่ใช่สิ่งที่เกิดขึ้นได้ง่ายอย่างน้อยที่สุดก็ใน บริษัท ขนาดเล็ก
การใช้วิธี Belt-and-Braces นั้นดีที่สุด - การใช้การพิสูจน์ตัวตนแบบพับลิกคีย์, รายการที่อนุญาตบน ssh daemon, การพิสูจน์ตัวตนแบบสองปัจจัย, การ จำกัด IP และ / หรือการวางทุกอย่างไว้เบื้องหลัง VPN เป็นเส้นทางที่เป็นไปได้
ฉันคิดว่าฉันรู้ว่าวันพรุ่งนี้ฉันจะทำอะไร :)
คนชอบที่จะสร้าง FUD มากกว่านั้น แต่ดูเหมือนว่าพวกเขารู้ว่าผู้ใช้งานอยู่ที่นั่นแล้วและรู้รหัสผ่านของเขาเช่นกัน (อาจผ่านการใช้กำลังดุร้ายหรือวิธีอื่น ๆ ) อย่างไรก็ตามพวกเขาต้องการดูเท่ห์และสร้างเอะอะทั้งหมดขึ้น
สิ่งที่น่าสนใจอีกอย่างที่ควรทราบคือผู้ใช้ adam ไม่ได้เข้าสู่กล่องดังกล่าวนานกว่าหนึ่งปี:
(ผลลัพธ์ของ Lastlog)
adam pts/1 ool-4350ab48.dyn Sat Jul 26 20:45:18 -0400 2008
ดังนั้นเขาอาจเก็บรหัสผ่านนั้นไว้ (อาจเป็นรหัสที่ไม่ดี) สักพัก
* หากพวกเขามีเครื่องมือในการค้นหาชื่อผู้ใช้ผ่าน SSH พวกเขาอาจใช้ผู้ใช้รายอื่นทั้งหมดเพื่อรับการเข้าถึงระยะไกล แต่พวกเขาใช้ชื่อผู้ใช้ที่พบบ่อยที่สุดในกล่องนั้น (เดาได้ง่าย)
ทำไมคุณจะลองและแก้ไขจากมุมมองการเขียนโปรแกรม?
คุณควรแก้ไขจากมุมมองของผู้ดูแลระบบเซิร์ฟเวอร์ มีคำแนะนำที่ดีบางประการในความคิดเห็นของลิงก์ที่คุณโพสต์เช่นการใช้รายการที่อนุญาต
ฉันต้องการที่จะเพิ่มเพราะคุณถามที่นี่คุณมีแนวโน้มที่จะไม่ผู้เชี่ยวชาญด้านความปลอดภัยและสิ่งที่คุณคิดว่าการเขียนจะเพิ่มเพียงหลุมมากขึ้น นี่ไม่ใช่คำถามโปรแกรมเลย
ป้องกันซอฟต์แวร์ของคุณจากการโจมตี 0 วัน ... ซึ่งเป็นไปไม่ได้
บางทีวิธีการที่ดีวิธีหนึ่งคืออ้างว่าซอฟต์แวร์ของคุณไม่สามารถแฮ็กได้ซึ่งจะทำให้ Whitehats ทดลองใช้งานและเปิดเผยทุกอย่างอย่างเต็มที่ Oracle 10 มีการอ้างสิทธิ์นี้จากนั้นในวันต่อมาก็พบว่ามี 9 หลุมใหม่ มันค่อนข้างปลอดภัยในขณะนี้
ส่วนใหญ่แล้วแฮกเกอร์จะใช้ซอฟต์แวร์ที่ดีอย่างสมบูรณ์ในทางที่ผิด
มันทำให้ฉันคิดว่าพวกเขามีผู้ใช้จำนวนมากที่มีเปลือกหอยบนเครื่องนั้น นั่นคือวิธีที่พวกเขาได้เป็นเจ้าของอย่างแน่นอนทุกอย่างอื่นคือปลาเฮอริ่งแดงตั้งใจจะหันเหความสนใจ หนึ่งในนั้นมีลูกค้า ssh ของพวกเขาแบ็คดอร์บนเครื่องเชลล์อื่น ๆ น่าจะเป็นไปได้แล้วมันก็จบลง การให้บัญชีเชลล์แก่ทุกคนและทำให้โลกเข้าถึง sshd นั้นขี้เกียจและโง่