ในกลุ่ม techie หลายคนอ่าน advisory ช่วงล่าสุดเกี่ยวกับ critical vulnerability ใหม่ใน Internet Explorer legacy scripting engine (jscript.dll) และว่ามันถูก exploited อยู่จริง อย่างเดียวมันอาจเกิดได้ แต่สิ่งที่รำคาญคือ portent of gloom and doom รอบเว็บ ส่วนใหญ่ panic ไม่ได้ focus วิเคราะห์ปัญหา และดูว่า mitigate ได้อย่างขlegant ไหม
Microsoft list workaround ไว้ — คุณ deny access ไปยัง affected library แต่ก็ทำให้ side effects อาจเห็นปัญหา printing, access group policy editor และอีกปัญหานิดหน่อย ผมนั่งคิด ว่ามีวิธีลด impact ของ vulnerability โดยไม่ทำให้ระบบ wonky ไหม
ขอบเขตของปัญหา
Vulnerability อยู่ใน (Internet Explorer) scripting engine หมายถึงโปรแกรมไหนเรียก engine นี้ ก็อาจ trigger memory corruption และนำไปสู่ arbitrary code execution รווחนั่นคือ Internet Explorer อาจ Microsoft Office และบาง legacy applications แปลกๆ ที่ไม่น่าจะเจอใน typical home environment
Solution คือ อย่ารัน Internet Explorer — และหลีกเลี่ยงการเปิดไฟล์หรือลิงก์แปลกๆ ในโปรแกรมอื่น นี่เป็นจริงเสมอ ปัญหาคือ ถ้าคุณ "accidentally" เปิด Internet Explorer ตรงหน้าที่ trigger vulnerability ล่ะ?
อย่ารัน Internet Explorer
Windows มี option disallow certain applications มานานแล้ว implement ผ่าน registry หรือ group policy editor (pro users) จะ prevent listed programs จากการรัน โดยเฉพาะ launch gpedit.msc ไปที่ User Configuration > System แล้วเปิด policy: Don't run specified Windows applications

Enable policy แล้วที่ Options: click Show และเพิ่ม iexplore.exe ใน disallowed applications list


นี่ทำงานได้ — แต่ only ถ้าใช้ Windows Explorer หรือ Start menu launch program ไม่ block access โดยวิธีอื่น และไม่หยุด applications จากการใช้ jscript.dll library อย่าเครียด เราจะไปถึง שם ผมก้าวช้าๆ linearly

Registry path เหมือนกัน:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
Image File Execution Options (IFEO)
เราพูดถึง feature super-useful และ powerful นี้ใน GWX context คุณใช้เปลี่ยน behavior ของโปรแกรมไหนก็ได้ในระบบ โดยเราจะใช้ Debugger functionality เปลี่ยน execution ของ iexplore.exe จาก default behavior ไปรัน empty cmd shell โดยสรุป dummy run ที่ไม่ทำอะไร และไม่ invoke Javascript libraries

สิ่งนี้จะให้คุณ "run" Internet Explorer ได้ แต่ entire run จะเป็นแค่ spawning command prompt shell ที่ exit ทันที หมายถึงไม่ว่าจะ invoke Internet Explorer ยังไง มันจะไม่รันจริง ลดความเสี่ยงของ jscript.dll ถูก load เข้า memory
โปรดทราบ นี้ affect only Internet Explorer ไม่ prevent โปรแกรมอื่นจากใช้ library เช่น Microsoft Word แสดง document ที่มี malformed embedded object เรียก jscript.dll functions แต่มันลดความเสี่ยง library ถูกใช้ โดยเฉพาะโดย network-capable program เช่น Internet Explorer เครื่องมืออื่นบนระบบอาจยังต้องการ library นี้ แต่ถ้าพวกมันไม่จำเป็นต้อง connect external network resources ความเสี่ยงลดลง
ส่วน cool ของ IFEO คือไม่ต้องการอะไรมากกว่า setting registry key ถ้าอยาก revert กลับ แค่ delete Debugger string จะมี functionality เดิมกลับมา
สุดท้าย ถ้าใช้ anti-malware software บางตัวอาจเห็นนี้เป็น potential IFEO Hijack รู้จักข้อเท็จจริงนี้ แล้วเดินต่อ และอาจ embrace smarter way ของ computer security แต่เป็น topic อีกครั้ง
มาพูดถึง jscript.dll
งานข้างบนไม่ fix ปัญหา มัน work around โดยลดโอกาส Internet Explorer รัน Proper fix คือ update library ทางเทคนิคคุณ "แค่" copy patched version ใหม่ทับเก่า จบ แต่ Windows Update mechanism ซับซ้อนกว่า
Mitigation คือ remove executable permission จาก library ทำได้ผ่าน command line ตาม advisory หรือ Windows Explorer เหตุผล command line คือ take ownership ของ (system) library เพื่อเปลี่ยน security settings หรือ manipulate permissions โดยเปิด cmd (หรือ explorer) ผ่าน ExecTI utility ที่รัน programs ด้วย highest privileges ตามที่ผม show ใน must-have Windows admin utilities list

สิ่งที่ต้องทำคือ uncheck Read & execute checkbox สำหรับ groups/users ทั้งหมดที่ listed แต่ side effects! เช่น Group Policy editor จะไม่ launch correctly ถ้า deny execute สำหรับ Administrators นี้เน้น importance ของ running as standard user เพราะคุณอาจ no execute Jscript สำหรับ Users และยังใช้ Internet Explorer ได้ โดยไม่มี effect ต่อ system functionality

Group Policy Editor ด้วย JScript.dll ไม่ได้ execute Layout แตก
แต่นี่คือทั้งหมด คุณ disable Read & execute และ toggle เวลาต้องการ จนกว่าจะ apply official patch — ถ้าคุณอยาก apply บาง scenario อาจไม่อยาก หรือไม่ได้ และอาจต้องใช้ Internet Explorer แต่ไม่น่าจะเกิดใน home setup ไม่ได้พูด enterprise securityLower pitchforks สุดท้าย คุณทำอย่างเดียวกับ Internet Explorer — remove execute permission
สิ่งอื่น — local scripting
ถ้าคุณต้องใช้ Internet Explorer คุณ disable Active Scripting ภายใต้ Internet Options นี่ old news จะไม่ focus มากที่นี่ Practical มากกว่าคือ หลีกเลี่ยง accidental execution ของ Javascript files บน local disk ผ่าน Microsoft Based Script Host นี่คือ default แม้บน Windows 10 จริงๆ มีเหตุผลน้อยมากที่ต้อง run Javascript files locally นอก context ของ browser

สิ่งที่ต้องทำคือสร้าง dummy Javascript file เช่น file.js Right click > Open with เลือก text editor (under More apps) หมายถึงแม้ double-click locally stored Javascript file มันจะเปิดเป็น text file
สรุป
อย่าให้ panic เป็น compass ปัญหา security บางอย่าง serious ต้อง scrutinize แต่อื่นๆ ไม่一定 dreadful ตาม Internet chatter ในกรณีนี้ ใช่ ไม่ดี อีกด้านหนึ่ง ไม่อยู่ Internet Explorer แทบแก้หมดแล้ว อีกอย่าง อย่าเป็น n00b รันไฟล์สุ่มซ้ายขวา คุณจะ fine
ในบทความนี้ ผมพยายามให้ overview calmer เกี่ยวกับ מה קורה และ options ที่คุณมี สำคัญที่สุด คุณใช้ fabulous magic ของ IFEO ป้องกัน Internet Explorer รัน ไม่ถามถาม ลดความเสี่ยง nonsense ไม่ว่าจะเป็น old game launcher ที่ hard-code ไป iexplore.exe สำหรับ messages/announcements หรือนิ้วของคุณที่ twitchy คุณยัง disable execute permissions สำหรับ library ได้ และถ้าระบบ setup ด้วย standard user คุณอาจไม่ต้อง compromise reduced functionality จาก disabled library ไปละ Enjoy your Webz
Cheers.