มีวิธีใดบ้างในการป้องกันไฟล์ที่มีอักขระ Unicode Over-to-Left Override ในชื่อ (วิธีการปลอมแปลงมัลแวร์) จากการเขียนหรืออ่าน?


20

มีวิธีใดบ้างในการหลีกเลี่ยงหรือป้องกันไฟล์ที่มีอักขระ Unicode RLO (ขวาไปซ้าย) ในชื่อของพวกเขา (วิธีมัลแวร์ในการปลอมแปลงชื่อไฟล์) จากการเขียนหรืออ่านในพีซี Windows

ข้อมูลเพิ่มเติมเกี่ยวกับอักขระ Unicorn RLO ที่นี่:

ข้อมูลเกี่ยวกับตัวอักษร RLO unicode เนื่องจากมีการใช้งานโดยมัลแวร์:

สรุปรายงานเหตุการณ์การเข้าถึงคอมพิวเตอร์โดยไม่ได้รับอนุญาตในเดือนตุลาคม 2554 รวบรวมโดยหน่วยงานส่งเสริมเทคโนโลยีสารสนเทศญี่ปุ่น (IPA) [ กระจก (Google Cache) ]

คุณสามารถลองหน้าเว็บทดสอบอักขระ RLOนี้เพื่อดูว่าอักขระ RLO ทำงานอย่างไร

อักขระ RLO ถูกวางในฟิลด์ 'การทดสอบการป้อนข้อมูล' ในหน้าเว็บนั้นแล้ว ลองพิมพ์ที่นั่นและสังเกตว่าอักขระที่คุณกำลังพิมพ์นั้นออกมาในลำดับที่กลับกัน (จากขวาไปซ้ายแทนที่จะเป็นจากซ้ายไปขวา)

ในชื่อไฟล์ตัวละคร RLO สามารถจัดตำแหน่งโดยเฉพาะในชื่อไฟล์เพื่อสวมรอยหรือปลอมตัวว่ามีชื่อไฟล์หรือนามสกุลไฟล์ที่แตกต่างจากที่มีอยู่จริง (จะยังคงซ่อนอยู่แม้ว่าจะไม่ได้ทำเครื่องหมาย' ซ่อนนามสกุลสำหรับไฟล์ที่รู้จัก ')

ข้อมูลเดียวที่ฉันจะพบว่ามีข้อมูลเกี่ยวกับวิธีการป้องกันไฟล์ที่มีตัวอักษร RLO จากการวิ่งอยู่ห่างจากสำนักงานส่งเสริมเทคโนโลยีสารสนเทศเว็บไซต์ญี่ปุ่น

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

ระบบปฏิบัติการของฉันคือ Windows 7 แต่ฉันจะค้นหาโซลูชันสำหรับ Windows XP, Vista และ 7 หรือโซลูชันที่จะทำงานกับระบบปฏิบัติการเหล่านั้นทั้งหมดเพื่อช่วยผู้ใช้ระบบปฏิบัติการเหล่านั้นด้วย


1
คำถามที่ดีมาก! ฉันก็อยากจะรู้เรื่องนี้เช่นกัน ดูเหมือนว่าลิงก์ของคุณจะใช้งานไม่ได้
Cerberus

@Cerberus เพิ่งพบว่าลิงค์ไม่ทำงาน ฉันหวังว่ามันจะหยุดทำงานชั่วคราว ฉันจะอัปเดตคำตอบถ้าฉันพบกระจก
galacticninja


@Cerberus ขอบคุณ ฉันได้เพิ่มลิงก์มิเรอร์ในคำถาม
galacticninja

4
They adviced to use the Local Security Policy settings manager to block files with the RLO character in its name from being run.คุณช่วยบอกเราหน่อยได้ไหมว่าทำไมมันถึงไม่แก้ปัญหา
Tamara Wijsman

คำตอบ:


3

คุณสามารถใช้ทุกอย่างร่วมกับAutoHotkeyเพื่อสร้างการแจ้งเตือนเมื่อใดก็ตามที่อักขระควบคุมข้อความสองทิศทางเป็นส่วนหนึ่งของชื่อไฟล์

บท

AlertText = A bidirectional text control character was detected in a filename.
AlertText = %AlertText%`n`nClick OK to re-hide the window.

SetTitleMatchMode RegEx
DetectHiddenWindows, On
EnvGet, ProgramFiles32, ProgramFiles

Start:
Run, %ProgramFiles32%\Everything\Everything.exe
WinWaitActive, Everything, , 5
if Errorlevel
    Goto Start
WinGet, Id, ID, A
StatusBarWait, objects, , 1, ahk_id %Id%
StatusBarGetText, Status, 1, ahk_id %Id%
Backup := ClipboardAll
Transform, Clipboard, Unicode, ‎|â€|‪|‫|‬|‭|‮
Send, ^v
WinHide, ahk_id %Id%
Sleep, 100
Clipboard := Backup
Backup =
StatusBarWait, ^(?!^\Q%Status%\E$)
Loop
{
    StatusBarWait, [1-9], , 1, ahk_id %Id%
    IfWinNotExist, ahk_id %Id%
        Goto Start
    WinShow, ahk_id %Id%
    WinRestore, ahk_id %Id%
    MsgBox, %AlertText%
    WinHide, ahk_id %Id%
}

มันทำอะไร

สคริปต์เปิดตัวทุกอย่างและค้นหา‎|â€|‪|‫|‬|‭|‮(UTF8) คือทั้งเจ็ดตัวควบคุมข้อความแบบสองทิศทาง ( แหล่งที่มา ) |คั่นด้วย

จากนั้นสคริปต์จะซ่อนหน้าต่างทุกอย่างและตรวจสอบแถบสถานะ เมื่อมีตัวเลขที่แตกต่างจาก0การจับคู่พบหน้าต่างทุกอย่างจะปรากฏขึ้นและกล่องข้อความต่อไปนี้จะปรากฏขึ้น:

ตรวจพบอักขระควบคุมข้อความสองทิศทางในชื่อไฟล์

คลิกตกลงเพื่อซ่อนหน้าต่างอีกครั้ง

สคริปต์ยังเปิดใช้งานอีกครั้งทุกอย่างในกรณีที่ปิด

วิธีใช้

  1. ดาวน์โหลดติดตั้งและเปิดใช้ทุกอย่าง

  2. กดCtrl+ Pและเปลี่ยนเป็นแท็บปริมาณ

    สำหรับปริมาณทั้งหมดที่ควรจะตรวจสอบให้เปิดใช้งานการเปลี่ยนแปลงการตรวจสอบ

  3. ดาวน์โหลดและติดตั้ง AutoHotkey

  4. find-bidirectional-text-control-characters.ahkบันทึกสคริปต์ข้างต้น

  5. คลิกสองครั้งที่สคริปต์เพื่อเปิดใช้งาน

  6. สร้างทางลัดไปยังสคริปต์ในโฟลเดอร์เริ่มต้นของคุณ


2

เทคโนโลยีสารสนเทศสำนักงานส่งเสริมเว็บไซต์ญี่ปุ่น ( ลิงค์กระจก ) ได้ให้คำปรึกษาการใช้การจัดการนโยบายการรักษาความปลอดภัยในพื้นที่การตั้งค่าเพื่อป้องกันไฟล์ที่มีตัวอักษร RLO ในชื่อจากการวิ่ง

(ฉันไม่ได้คัดลอกคำแนะนำแบบเต็มเนื่องจากฉันไม่แน่ใจว่าลิขสิทธิ์ลิขสิทธิ์ของเว็บไซต์นั้นในเนื้อหาของพวกเขาคืออะไร)


0

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

เราสามารถจินตนาการวิธีการอื่นในการบรรลุผลลัพธ์ที่คล้ายกันเช่นการใช้ hooking SSDT แต่วิธีเดียวที่เชื่อถือได้จะเป็นข้างต้น

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

จากข้อมูลนี้ฉันขอแนะนำให้คุณใช้ประโยชน์จากวิธีแก้ปัญหาที่ galacticninja และ Tom Wijsman ชี้ให้เห็น


2
" ฉันขอแนะนำอย่างยิ่งให้คุณใช้ประโยชน์จากวิธีแก้ปัญหาที่ทอม Wijsman ชี้ให้เห็น " จริงๆแล้วนั่นเป็นวิธีแก้ปัญหาที่ฉันชี้ให้เห็น ฉันตั้งให้ Windows ทำเช่นนั้นแล้ว เช่นเดียวกับสิ่งที่ฉันตอบ Tom Tomjsman ฉันกำลังมองหาโซลูชันอื่น ๆที่จะป้องกันไม่ให้ตัวละคร RLO ถูกเขียนและอ่านหรือวิธีการแก้ปัญหาที่จะแจ้งเตือนหรือเตือนผู้ใช้โดยอัตโนมัติหากตรวจพบอักขระ RLO ฉันกลัวว่าฉันไม่มีความรู้ด้านเทคนิคในการเขียนตัวกรองที่คุณอธิบาย
galacticninja

@galacticninja: ฉันขอโทษฉันจะแก้ไขให้ถูกต้องในคำตอบของฉัน
0xC0000022L

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