วิธีป้องกัน SQL Server จากแฮกเกอร์


9

ฉันมีปัญหาและไม่สามารถหาวิธีจัดการกับมันได้ ฉันมี SQL Server บนเซิร์ฟเวอร์ Windows 2008 R2 SQL Server 2005 นี้กำลังถูกใช้เพื่อรับการสมัครสมาชิก DB จาก SQL Server อื่นที่อยู่ที่อื่นบนอินเทอร์เน็ต ฉันมีพอร์ตเซิร์ฟเวอร์ sql เปิดผ่านไฟร์วอลล์ แต่ในขอบเขตฉันได้ป้อน IP ของ SQL Server อื่น การทำเช่นนั้นฉันหวังว่าการร้องขอการเชื่อมต่อผ่านพอร์ตนั้นจะไม่เข้าถึง SQL Server เว้นแต่ว่าคำขอจะมาจาก SQL Server ตัวอื่น (ซึ่งมี IP แสดงอยู่ในขอบเขตในกฎไฟร์วอลล์) แต่เมื่อฉันเห็นบันทึกมีรายการ "เข้าสู่ระบบล้มเหลวของผู้ใช้ sa" หลายร้อยรายการ (และพวกเขาจะมาทุกวินาทีที่ผ่าน) ดูเหมือนว่าแฮ็กเกอร์บางคนกำลังพยายามเดารหัสผ่านของผู้ใช้ แต่คำถามก็คือ เหตุใด Windows จึงปล่อยให้คำขอเหล่านี้ไปถึง SQL Server แม้ว่าจะไม่ได้มาจากที่อยู่ IP ที่ระบุไว้ในขอบเขตไฟร์วอลล์ วิธีที่ถูกต้องในการปกป้อง SQL Server นี้คืออะไร ไม่มี IP อื่นใดนอกจาก IP ของ SQL Server อื่นที่ต้องเชื่อมต่อกับเซิร์ฟเวอร์ sql นี้

แก้ไข - ข้อมูลเพิ่มเติม:

ฉันรัน telnet บนพอร์ตเซิร์ฟเวอร์ sql จากเครื่องที่แตกต่างกัน Telnet ล้มเหลวยกเว้นเมื่อเรียกใช้จากเครื่องที่ระบุไว้ในขอบเขตไฟร์วอลล์ ดังนั้นจึงปรากฏว่าไฟร์วอลล์กำลังปิดกั้นพอร์ตเซิร์ฟเวอร์ sql อยู่ แต่ทำไมฉันถึงเห็นคำขอล็อกอินที่ล้มเหลวแก่ผู้ใช้ "sa" จากที่อยู่ IP ที่แตกต่างกันในบันทึกของ SQL Server เป็นไปได้ว่าแฮกเกอร์กำลังเข้าสู่เครื่องผ่านพอร์ต 80 แล้วพยายามเชื่อมต่อกับเซิร์ฟเวอร์ sql หรือไม่? พอร์ต 80 และ 443 เปิดให้ทุกคน พอร์ตอื่น ๆ ทั้งหมดถูกปิดด้วยข้อยกเว้นของพอร์ตเซิร์ฟเวอร์ sql (และนั่นเปิดเฉพาะ IP เดียวเท่านั้น) ไม่มีสิ่งใดทำงานบนเว็บเซิร์ฟเวอร์ที่พอร์ต 80 ซึ่งอาจนำผู้เยี่ยมชมไปยังเซิร์ฟเวอร์ SQL อันที่จริงมีไฟล์ index.html (บริสุทธิ์ HTML เดียวที่ไม่มีการเชื่อมต่อกับ SQL) เพียงไฟล์เดียวในเว็บเซิร์ฟเวอร์ นี่เป็นเพียงเซิร์ฟเวอร์ทดสอบที่กำลังตั้งค่าสำหรับใช้ในอนาคต ทดสอบข้อมูลใน SQL Server เท่านั้น

แก้ไข:

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


วิธีการเกี่ยวกับการใช้Logon Trigger ? นอกจากนี้ SQL Server ไม่ควรถูกเปิดเผยต่ออินเทอร์เน็ต นอกจากนี้คุณสามารถใช้กฎโปรแกรมในไฟร์วอลล์ Windows เพื่อ จำกัด ช่วงของที่อยู่ IP
Kin Shah

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

1
ดูเหมือนว่า Windows Firewall ของคุณจะถูกกำหนดค่าผิดพลาด บางทีคุณอาจมีกฎทั่วไปอีกข้อที่อนุญาตพอร์ต 1433 (หรืออนุญาตให้ทุกอย่าง) หรือไฟร์วอลล์ Windows อาจถูกปิดใช้งานบน NIC ที่เชื่อมต่อกับอินเทอร์เน็ต เป็นการยากที่จะพูดโดยไม่เห็นการกำหนดค่า แต่นี่เป็นคำถามเพิ่มเติมสำหรับ ServerFault อย่าง Max กล่าว คุณหมายถึง Windows 2008 R2 หรือไม่ 'RC' คือ Release Candidate ซึ่งเป็นซอฟต์แวร์รุ่นก่อนวางจำหน่ายสำหรับการทดสอบ
James L


1
คุณใช้ระบบปฏิบัติการรุ่นเก่าหรือไม่? แก้ไขก่อน
Michael Hampton

คำตอบ:


12

ดูเหมือนว่าไฟร์วอลล์ของคุณจะไม่ได้รับการกำหนดค่าอย่างถูกต้อง นี่เป็นขั้นตอนแรก

โดยปกติฉันจะไม่แมงดาหนังสือที่ฉันเขียน แต่ในกรณีนี้ฉันจะยกเว้น มันเรียกว่าการรักษาความปลอดภัย SQL Serverและมันจะช่วยให้คุณเริ่มต้นได้ดี


ดีหนังสือของคุณเหมาะสำหรับคำถามนี้ :-)
mfinni

เย็น! มันมีคำแนะนำที่กำหนดเกี่ยวกับการใช้ใบรับรองแทน Local / Windows auth สำหรับเซิร์ฟเวอร์ที่เชื่อมต่ออินเทอร์เน็ตหรือไม่ ;-)
Greg Askew

ดูการแก้ไขของฉัน ดูเหมือนว่าไฟร์วอลล์จะทำงานได้ดี มันเป็นเคล็ดลับอื่น ๆ ที่แฮ็กเกอร์ชาวจีนเหล่านี้กำลังเล่นอยู่เพื่อไปยัง SQL Server
อัลเลนคิง

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

กลับไปที่รูปวาดแน่นอนสำหรับไฟร์วอลล์ ฉันจะดึงเซิร์ฟเวอร์ SQL ออกจากอินเทอร์เน็ตจนกว่าคุณจะได้รับการแก้ไขสถานการณ์ไฟร์วอลล์ของคุณ ด้วยวิธีนี้คุณจะสามารถที่จะห้าม IP ทุกช่วงของที่อยู่ IP ได้อย่างง่ายดาย
Techie Joe

4

พูดง่ายๆ - คุณทำไม่ได้ ฉันจะไม่ใช้ afirewall เป็นต้น - เซิร์ฟเวอร์ SQL ไม่มีสิทธิ์ที่จะอยู่บนอินเทอร์เน็ต ข้อยกเว้นน้อยมาก

สำหรับการจำลองให้ตั้งค่า VPN ที่เหมาะสม


ฉันสับสนเล็กน้อย หากเซิร์ฟเวอร์ฐานข้อมูลไม่ได้อยู่บนอินเทอร์เน็ตเซิร์ฟเวอร์แบ็กเอนด์ Web App จะไปถึงเซิร์ฟเวอร์ฐานข้อมูลอย่างไร
อัลเลนคิง

ผ่านเครือข่ายภายใน การตั้งค่าพื้นฐาน แอปพลิเคชันเว็บตั้งอยู่ในทั้งสองเครือข่าย
TomTom

3

นอกเหนือจากการกำหนดค่าไฟร์วอลล์อย่างถูกต้องแล้วต่อไปนี้เป็นคำแนะนำทั่วไปเพื่อให้ SQL Server ปลอดภัยจากการโจมตีที่ดุร้าย:

  • ปิดการใช้งานบัญชี 'sa' การรู้ชื่อล็อกอินที่ถูกต้องจะทำให้การโจมตีง่ายขึ้น

    ALTER LOGIN sa DISABLE
    

ตัวเลือกอื่นคือเปลี่ยนชื่อบัญชี 'sa' เป็นชื่อที่ชัดเจนน้อยกว่า

ALTER LOGIN sa WITH NAME = SimonXZY
  • ใช้การรับรองความถูกต้องของ Windows แทนการรับรองความถูกต้องของโหมดผสม การรับรองความถูกต้องของ Windows บังคับใช้นโยบายรหัสผ่านของ Windows และจะล็อคการเข้าสู่ระบบในกรณีที่พยายามเข้าสู่ระบบล้มเหลวอย่างต่อเนื่อง
  • การตรวจสอบล้มเหลวในการเข้าสู่ระบบ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการตั้งค่าตัวเลือกการตรวจสอบการเข้าสู่ระบบในคุณสมบัติเซิร์ฟเวอร์แท็บความปลอดภัยเป็นการเข้าสู่ระบบที่ล้มเหลวเท่านั้นหรือการเข้าสู่ระบบทั้งล้มเหลวและสำเร็จ สิ่งนี้จะไม่ช่วยคุณในการป้องกันการโจมตีแบบดุร้าย แต่จะช่วยให้คุณระวังการโจมตี

คำแนะนำที่เป็นประโยชน์เพิ่มเติมได้ที่นี่: การป้องกันการโจมตีด้วย Brute Force หรือการโจมตีพจนานุกรม

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