วันศุกร์ที่ 20 กุมภาพันธ์ พ.ศ. 2558

Apache: การป้องกัน Shell Shock ด้วย Apache แบบไม่ต้อง Patch

ด้วยเหตุผลบางอย่าง หรือหลายอย่างเราอาจไม่สามารถ Patch ระบบเพื่อป้องกันการโจมตีแบบ ShellShock ได้ ดังนั้นจึงต้องหาวิธีป้องกันผ่าน Apache เพื่อที่อย่างน้อยก็พอลดความเสี่ยงลงได้

ระบบที่ใช้ในการทดสอบ
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Apache/2.2.15

เริ่มจากทดสอบโจมตี ShellShock ด้วยคำสั่ง wget

# wget -U "() { test;};echo \"\"; echo; echo; /bin/cat /etc/passwd" http://www.komkit.net/test.cgi

--2015-02-20 18:54:01--  http://www.komkit.net/test.cgi
Connecting to www.komkit.net:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: “test.cgi”

    [ <=>              ] 1,717       --.-K/s   in 0.001s

2015-02-20 18:54:01 (1.31 MB/s) - “test.cgi” saved [1717]
 


ผลที่ได้คือ ได้ Content ของไฟล์ passwd มา ดังตัวอย่าง

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin


เมื่อไปตรวจสอบที่ access.log จะพบ

xxx.xxx.xxx.29 - - [20/Feb/2015:18:54:01 +0700] "GET /test.cgi HTTP/1.0" 200 1717 "-" "() { test;};echo \"\"; echo; echo; /bin/cat /etc/passwd"

ซึ่งจาก Log จะเห็นว่า Code ในการโจมตีนั้นอยู่ในส่วนของ User-Agent ซึ่งนั่นคือส่วนที่นเราจะเอามา Filter นั่นเอง

เริ่มจากทำการสร้างไฟล์ .htaccess ไว้ที่ WWW Root directory (การ Configure อาจไม่ใช่ตำแหน่งนี้ ทั้งนี้อยู่ที่ความเหมาะสม)

# vi /var/www/html/.htaccess

SetEnvIfNoCase User-Agent "() { " Blocked 
<Limit GET POST HEAD>
        order allow,deny
        allow from all

        deny from env=Blocked
</Limit>



ทำการ Save ไฟล์ แล้วทดสอบอีกครั้ง

# wget -U "() { test;};echo \"\"; echo; echo; /bin/cat /etc/passwd" http://www.komkit.net/test.cgi

--2015-02-20 19:03:56--  http://www.komkit.net/test.cgi
Connecting to www.komkit.net:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2015-02-20 19:03:56 ERROR 403: Forbidden.

ได้ผล! 
แต่ก็อย่าลืมหาทาง Patch ระบบกันนะครับ

หมายเหตุ การ Configure ทุกอย่างมีความเสี่ยง อาจทำให้ระบบท่านหยุดทำงานได้ หากไม่ระวัง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น