Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

В บทความก่อนหน้านี้ เราได้กล่าวถึงวิธีเรียกใช้ Suricata เวอร์ชันเสถียรบน Ubuntu 18.04 LTS การตั้งค่า IDS บนโหนดเดียวและเปิดใช้งานชุดกฎฟรีนั้นค่อนข้างตรงไปตรงมา วันนี้เราจะมาดูวิธีป้องกันเครือข่ายขององค์กรโดยใช้ประเภทการโจมตีที่พบบ่อยที่สุดโดยใช้ Suricata ที่ติดตั้งบนเซิร์ฟเวอร์เสมือน ในการทำเช่นนี้ เราจำเป็นต้องมี VDS บน Linux ที่มีคอร์ประมวลผลสองคอร์ จำนวน RAM ขึ้นอยู่กับโหลด: 2 GB ก็เพียงพอสำหรับบางคนและอาจต้องใช้ 4 หรือ 6 สำหรับงานที่จริงจังมากขึ้น ข้อดีของ Virtual Machine คือความสามารถในการทดสอบ: คุณสามารถเริ่มต้นด้วยการกำหนดค่าขั้นต่ำและเพิ่ม ทรัพยากรที่จำเป็น

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงานภาพ: รอยเตอร์

การเชื่อมต่อเครือข่าย

การลบ IDS ไปยังเครื่องเสมือนในครั้งแรกอาจจำเป็นสำหรับการทดสอบ หากคุณไม่เคยจัดการกับโซลูชันดังกล่าว คุณไม่ควรรีบสั่งซื้อฮาร์ดแวร์จริงและเปลี่ยนสถาปัตยกรรมเครือข่าย เป็นการดีที่สุดที่จะรันระบบอย่างปลอดภัยและประหยัดค่าใช้จ่ายเพื่อกำหนดความต้องการในการประมวลผลของคุณ สิ่งสำคัญคือต้องเข้าใจว่าการรับส่งข้อมูลขององค์กรทั้งหมดจะต้องผ่านโหนดภายนอกเพียงโหนดเดียว: หากต้องการเชื่อมต่อเครือข่ายท้องถิ่น (หรือหลายเครือข่าย) กับ VDS ที่ติดตั้ง IDS Suricata คุณสามารถใช้ ซอฟท์อีเธอร์ - เซิร์ฟเวอร์ VPN ข้ามแพลตฟอร์มที่กำหนดค่าได้ง่ายซึ่งมีการเข้ารหัสที่แข็งแกร่ง การเชื่อมต่ออินเทอร์เน็ตในสำนักงานอาจไม่มี IP จริง ดังนั้นจึงควรตั้งค่าบน VPS ไม่มีแพ็คเกจสำเร็จรูปในที่เก็บ Ubuntu คุณจะต้องดาวน์โหลดซอฟต์แวร์จาก เว็บไซต์โครงการหรือจากที่เก็บภายนอกบนบริการ Launchpad (ถ้าคุณเชื่อใจเขา):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

คุณสามารถดูรายการแพ็คเกจที่มีได้ด้วยคำสั่งต่อไปนี้:

apt-cache search softether

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

เราจะต้อง softether-vpnserver (เซิร์ฟเวอร์ในการกำหนดค่าการทดสอบกำลังทำงานบน VDS) รวมถึงยูทิลิตี้บรรทัดคำสั่ง softether-vpncmd สำหรับการกำหนดค่า

sudo apt-get install softether-vpnserver softether-vpncmd

ยูทิลิตีบรรทัดคำสั่งพิเศษใช้เพื่อกำหนดค่าเซิร์ฟเวอร์:

sudo vpncmd

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

เราจะไม่พูดถึงรายละเอียดเกี่ยวกับการตั้งค่า: ขั้นตอนค่อนข้างง่าย มีการอธิบายไว้อย่างดีในสิ่งพิมพ์จำนวนมาก และไม่เกี่ยวข้องโดยตรงกับหัวข้อของบทความ พูดสั้นๆ หลังจากเริ่ม vpncmd คุณต้องเลือกข้อ 1 เพื่อไปที่คอนโซลการจัดการเซิร์ฟเวอร์ ในการดำเนินการนี้ คุณต้องป้อนชื่อ localhost แล้วกด Enter แทนการป้อนชื่อฮับ รหัสผ่านของผู้ดูแลระบบถูกตั้งค่าในคอนโซลด้วยคำสั่ง serverpasswordset ฮับเสมือน DEFAULT จะถูกลบ (คำสั่ง hubdelete) และสร้างอันใหม่ด้วยชื่อ Suricata_VPN และรหัสผ่านก็ถูกตั้งค่าด้วย (คำสั่ง hubcreate) ถัดไป คุณต้องไปที่คอนโซลการจัดการของฮับใหม่โดยใช้คำสั่งฮับ Suricata_VPN เพื่อสร้างกลุ่มและผู้ใช้โดยใช้คำสั่ง groupcreate และ usercreate รหัสผ่านผู้ใช้ตั้งโดยใช้ userpasswordset

SoftEther รองรับโหมดการถ่ายโอนทราฟฟิกสองโหมด: SecureNAT และ Local Bridge ประการแรกคือเทคโนโลยีที่เป็นกรรมสิทธิ์สำหรับการสร้างเครือข่ายส่วนตัวเสมือนด้วย NAT และ DHCP ของตนเอง SecureNAT ไม่ต้องการ TUN/TAP หรือ Netfilter หรือการตั้งค่าไฟร์วอลล์อื่นๆ การกำหนดเส้นทางไม่ส่งผลกระทบต่อแกนหลักของระบบ และกระบวนการทั้งหมดจะถูกจำลองเสมือนและทำงานบน VPS / VDS ใด ๆ โดยไม่คำนึงถึงไฮเปอร์ไวเซอร์ที่ใช้ ส่งผลให้โหลด CPU เพิ่มขึ้นและความเร็วช้าลงเมื่อเทียบกับโหมด Local Bridge ซึ่งเชื่อมต่อฮับเสมือน SoftEther กับอะแดปเตอร์เครือข่ายจริงหรืออุปกรณ์ TAP

การกำหนดค่าในกรณีนี้จะซับซ้อนมากขึ้น เนื่องจากการกำหนดเส้นทางเกิดขึ้นที่ระดับเคอร์เนลโดยใช้ Netfilter VDS ของเราสร้างขึ้นบน Hyper-V ดังนั้นในขั้นตอนสุดท้ายเราสร้างบริดจ์ภายในเครื่องและเปิดใช้งานอุปกรณ์ TAP ด้วยคำสั่ง bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes หลังจากออกจากคอนโซลการจัดการฮับ เราจะเห็นอินเทอร์เฟซเครือข่ายใหม่ในระบบที่ยังไม่ได้กำหนด IP:

ifconfig

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

ถัดไป คุณจะต้องเปิดใช้งานการกำหนดเส้นทางแพ็กเก็ตระหว่างอินเทอร์เฟซ (การส่งต่อ ip) หากไม่ได้ใช้งาน:

sudo nano /etc/sysctl.conf

ยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้:

net.ipv4.ip_forward = 1

บันทึกการเปลี่ยนแปลงลงในไฟล์ ออกจากเอดิเตอร์และใช้คำสั่งต่อไปนี้:

sudo sysctl -p

ต่อไป เราต้องกำหนดเครือข่ายย่อยสำหรับเครือข่ายเสมือนด้วย IP ที่สมมติขึ้น (เช่น 10.0.10.0/24) และกำหนดที่อยู่ให้กับอินเทอร์เฟซ:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

จากนั้นคุณต้องเขียนกฎ Netfilter

1. หากจำเป็น ให้อนุญาตแพ็กเก็ตขาเข้าบนพอร์ตการฟัง (โปรโตคอลที่เป็นกรรมสิทธิ์ของ SoftEther ใช้ HTTPS และพอร์ต 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. ตั้งค่า NAT จากซับเน็ต 10.0.10.0/24 ไปยัง IP เซิร์ฟเวอร์หลัก

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. อนุญาตให้ส่งแพ็กเก็ตจากซับเน็ต 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. อนุญาตให้ส่งแพ็กเก็ตสำหรับการเชื่อมต่อที่สร้างไว้แล้ว

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

เราจะปล่อยให้การทำงานอัตโนมัติของกระบวนการเมื่อระบบเริ่มต้นใหม่โดยใช้สคริปต์การเริ่มต้นให้กับผู้อ่านเป็นการบ้าน

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

netstat -ap |grep vpnserver

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

เนื่องจากเราเตอร์ทดสอบของเราทำงานภายใต้ Ubuntu เช่นกัน มาติดตั้งแพ็คเกจ softether-vpnclient และ softether-vpncmd จากที่เก็บภายนอกเพื่อใช้โปรโตคอลที่เป็นกรรมสิทธิ์ คุณจะต้องเรียกใช้ไคลเอนต์:

sudo vpnclient start

ในการกำหนดค่า ให้ใช้ยูทิลิตี้ vpncmd โดยเลือก localhost เป็นเครื่องที่ vpnclient กำลังทำงานอยู่ คำสั่งทั้งหมดถูกสร้างขึ้นในคอนโซล: คุณจะต้องสร้างอินเทอร์เฟซเสมือน (NicCreate) และบัญชี (AccountCreate)

ในบางกรณี คุณต้องระบุวิธีการรับรองความถูกต้องโดยใช้คำสั่ง AccountAnonymousSet, AccountPasswordSet, AccountCertSet และ AccountSecureCertSet เนื่องจากเราไม่ได้ใช้ DHCP ที่อยู่สำหรับอะแดปเตอร์เสมือนจึงถูกตั้งค่าด้วยตนเอง

นอกจากนี้ เราจำเป็นต้องเปิดใช้งาน ip forward (ตัวเลือก net.ipv4.ip_forward=1 ในไฟล์ /etc/sysctl.conf) และกำหนดค่าเส้นทางแบบคงที่ หากจำเป็น บน VDS ที่มี Suricata คุณสามารถกำหนดค่าการส่งต่อพอร์ตเพื่อใช้บริการที่ติดตั้งบนเครือข่ายท้องถิ่นได้ ในการนี้ถือว่าการรวมเครือข่ายเสร็จสมบูรณ์

การกำหนดค่าที่เราเสนอจะมีลักษณะดังนี้:

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

การตั้งค่า Suricata

В บทความก่อนหน้านี้ เราได้พูดคุยเกี่ยวกับสองโหมดการทำงานของ IDS: ผ่านคิว NFQUEUE (โหมด NFQ) และผ่านการคัดลอกเป็นศูนย์ (โหมด AF_PACKET) อย่างที่สองต้องการสองอินเทอร์เฟซ แต่เร็วกว่า - เราจะใช้มัน พารามิเตอร์ถูกกำหนดโดยค่าเริ่มต้นใน /etc/default/suricata เราจำเป็นต้องแก้ไขส่วน vars ใน /etc/suricata/suricata.yaml โดยตั้งค่า subnet เสมือนเป็นบ้าน

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

ในการรีสตาร์ท IDS ให้ใช้คำสั่ง:

systemctl restart suricata

โซลูชันพร้อมแล้ว ตอนนี้คุณอาจต้องทดสอบการต่อต้านการกระทำที่เป็นอันตราย

จำลองการโจมตี

อาจมีหลายสถานการณ์สำหรับการต่อสู้กับการใช้บริการ IDS ภายนอก:

การป้องกันการโจมตี DDoS (วัตถุประสงค์หลัก)

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

ป้องกันการโจมตีจากภายนอกประเภทอื่นๆ

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

การป้องกันจากภายใน

แม้ว่าผู้ดูแลระบบจะพยายามอย่างเต็มที่แล้ว แต่คอมพิวเตอร์ในเครือข่ายองค์กรก็อาจติดมัลแวร์ได้ นอกจากนี้บางครั้งอันธพาลยังปรากฏตัวในพื้นที่ซึ่งพยายามดำเนินการที่ผิดกฎหมาย Suricata สามารถช่วยป้องกันความพยายามดังกล่าวได้ แม้ว่าเพื่อป้องกันเครือข่ายภายใน จะเป็นการดีกว่าที่จะติดตั้งภายในขอบเขตและใช้งานควบคู่กับสวิตช์ที่มีการจัดการซึ่งสามารถมิเรอร์การรับส่งข้อมูลไปยังพอร์ตเดียว IDS ภายนอกก็ไม่ได้ไร้ประโยชน์ในกรณีนี้ - อย่างน้อยก็สามารถตรวจจับความพยายามของมัลแวร์ที่อาศัยอยู่ใน LAN เพื่อติดต่อกับเซิร์ฟเวอร์ภายนอกได้

ในการเริ่มต้น เราจะสร้างการทดสอบอื่นเพื่อโจมตี VPS และบนเราเตอร์เครือข่ายท้องถิ่น เราจะเพิ่ม Apache ด้วยการกำหนดค่าเริ่มต้น หลังจากนั้นเราจะส่งต่อพอร์ตที่ 80 จากเซิร์ฟเวอร์ IDS ไปยังพอร์ตนั้น ต่อไป เราจะจำลองการโจมตี DDoS จากโฮสต์ที่ถูกโจมตี ในการดำเนินการนี้ ให้ดาวน์โหลดจาก GitHub คอมไพล์และรันโปรแกรม xerxes ขนาดเล็กบนโหนดโจมตี (คุณอาจต้องติดตั้งแพ็คเกจ gcc):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

ผลงานของเธอมีดังนี้

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

Suricata ตัดผู้ร้ายออก และหน้า Apache จะเปิดขึ้นตามค่าเริ่มต้น แม้ว่าเราจะโจมตีอย่างกะทันหันและเครือข่าย "สำนักงาน" (จริงๆ แล้วคือบ้าน) ค่อนข้างตัน สำหรับงานหนักๆ คุณควรใช้ กรอบ Metasploit. ได้รับการออกแบบมาสำหรับการทดสอบการเจาะระบบและช่วยให้คุณสามารถจำลองการโจมตีได้หลายรูปแบบ คำแนะนำในการติดตั้ง доступна บนเว็บไซต์โครงการ หลังการติดตั้ง จำเป็นต้องมีการอัปเดต:

sudo msfupdate

สำหรับการทดสอบ ให้เรียกใช้ msfconsole

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

น่าเสียดายที่เฟรมเวิร์กเวอร์ชันล่าสุดไม่มีความสามารถในการถอดรหัสโดยอัตโนมัติ ดังนั้นช่องโหว่จะต้องจัดเรียงด้วยตนเองและเรียกใช้โดยใช้คำสั่ง use ในการเริ่มต้น มันคุ้มค่าที่จะกำหนดพอร์ตที่เปิดบนเครื่องที่ถูกโจมตี เช่น การใช้ nmap (ในกรณีของเรา มันจะถูกแทนที่ด้วย netstat บนโฮสต์ที่ถูกโจมตีโดยสมบูรณ์) จากนั้นเลือกและใช้ที่เหมาะสม โมดูล Metasploit

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

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

Snort หรือ Suricata ตอนที่ 3: การปกป้องเครือข่ายสำนักงาน

ที่มา: will.com

เพิ่มความคิดเห็น