Apa cara untuk mencegah file dengan karakter Unicode Right-to-Left Override dalam nama mereka (metode spoofing malware) agar tidak ditulis atau dibaca?

20

Apa cara untuk menghindari atau mencegah file dengan karakter Unicode RLO (Right-to-Left Override) dalam namanya (metode malware untuk menipu nama file) agar tidak ditulis atau dibaca pada PC Windows?

Info lebih lanjut tentang karakter unicode RLO di sini:

Info tentang karakter unicode RLO, seperti yang digunakan oleh malware:

Ringkasan virus komputer / laporan insiden akses komputer yang tidak sah untuk Oktober 2011, disusun oleh Badan Promosi Teknologi Informasi, Jepang (IPA) [ Mirror (Google Cache) ]

Anda dapat mencoba halaman uji karakter RLO ini untuk melihat cara kerja karakter RLO.

Karakter RLO juga sudah ditempel di bidang 'Tes Input' di halaman web itu. Coba ketikkan di sana dan perhatikan bahwa karakter yang Anda ketikkan keluar dengan urutan terbalik (kanan-ke-kiri, bukan kiri-ke-kanan).

Dalam nama file, karakter RLO dapat secara khusus diposisikan dalam nama file untuk spoof atau menyamar sebagai memiliki nama file atau ekstensi file yang berbeda dari yang sebenarnya. (Akan tetap disembunyikan bahkan jika ' Sembunyikan ekstensi untuk tipe file yang dikenal ' tidak dicentang.)

Satu-satunya info yang saya dapat menemukan yang memiliki info tentang cara untuk mencegah file dengan karakter RLO dari yang dijalankan adalah dari situs Teknologi Informasi Badan Promosi, Jepang .

Adakah yang bisa merekomendasikan solusi bagus lainnya untuk mencegah file dengan karakter RLO di namanya tidak ditulis atau dibaca di komputer, atau cara untuk mengingatkan pengguna jika file dengan karakter RLO terdeteksi?

OS saya adalah Windows 7, tetapi saya akan mencari solusi untuk Windows XP, Vista dan 7, atau solusi yang akan bekerja untuk semua OS tersebut, untuk membantu orang menggunakan OS tersebut juga.

galacticninja
sumber
1
Pertanyaan yang sangat bagus Saya juga ingin tahu ini. Tautan Anda sepertinya tidak berfungsi.
Cerberus
@ Cerberus Baru tahu bahwa tautannya tidak berfungsi. Saya harap itu hanya untuk sementara waktu. Saya akan memperbarui jawabannya jika saya menemukan cermin.
galacticninja
@ Cerberus Terima kasih. Saya telah menambahkan tautan mirror ke pertanyaan.
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.Bisakah Anda memberi tahu kami mengapa ini bukan solusi?
Tamara Wijsman

Jawaban:

3

Anda bisa menggunakan Semuanya dalam kombinasi dengan AutoHotkey untuk membuat peringatan kapan saja karakter kontrol teks dua arah membentuk bagian dari nama file.

Naskah

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%
}

Apa yang dilakukannya

Script meluncurkan Semuanya dan mencari ‎|â€|‪|‫|‬|‭|‮(UTF8), yaitu, ketujuh karakter teks kontrol dua arah ( sumber ), dipisahkan oleh |.

Kemudian, skrip menyembunyikan jendela Semuanya dan memonitor bilah statusnya. Ketika itu berisi angka yang berbeda dari 0, kecocokan telah ditemukan, jendela Semuanya ditampilkan dan kotak pesan berikut muncul:

Karakter kontrol teks dua arah terdeteksi dalam nama file.

Klik OK untuk menyembunyikan kembali jendela.

Script juga meluncurkan kembali Segalanya jika itu ditutup.

Bagaimana cara menggunakan

  1. Unduh , instal, dan luncurkan Semuanya.

  2. Tekan Ctrl+ Pdan beralih ke tab Volume .

    Untuk semua volume yang harus diperiksa, aktifkan perubahan Monitor .

  3. Unduh dan instal AutoHotkey.

  4. Simpan ke skrip di atas sebagai find-bidirectional-text-control-characters.ahk.

  5. Klik dua kali skrip untuk meluncurkannya.

  6. Buat pintasan ke skrip di folder Startup Anda .

Dennis
sumber
2

The Teknologi Informasi Badan Promosi, situs Jepang ( mirror link yang ), telah menyarankan menggunakan manajer Local Security Policy pengaturan untuk memblokir file dengan karakter RLO dalam namanya dari yang dijalankan.

(Saya tidak meniru instruksi lengkap karena saya tidak yakin apa lisensi hak cipta situs web itu pada konten mereka.)

galacticninja
sumber
0

Mungkin ada cara lain, tetapi cara termudah - namun tidak sepele - adalah menerapkan filter sistem file (atau filter-sistem file mini) yang menyaring permintaan ini. Dalam hal membaca dari file seperti itu, Anda dapat kembali STATUS_ACCESS_DENIEDdan ketika menulis Anda tidak harus melakukan apa pun selain mencegah file tersebut dibuat (kemungkinan juga dengan kode kesalahan di atas) di tempat pertama. Penciptaan adalah jenis permintaan lain.

Orang dapat membayangkan metode lain untuk mencapai hasil yang serupa, seperti pengait SSDT. Tetapi satu-satunya cara yang dapat diandalkan adalah cara di atas.

Untuk melakukan itu, Anda harus meminta seseorang untuk menulis filter semacam ini untuk Anda (relatif sepele untuk filter mini untuk pengembang kernel) dan kemudian menandatanganinya untuk mendapatkannya melalui kebijakan penandatanganan mode kernel sejak Vista. Jika Anda tidak ingin melakukan yang terakhir, Anda masih dapat menguji-menandatangani biner driver dan memodifikasi opsi-opsi boot Anda untuk memungkinkan konten yang ditandatangani uji - sehingga membahayakan keamanan sistem masing-masing.

Mengingat informasi ini, saya akan sangat menyarankan Anda untuk menggunakan solusi yang galacticninja dan Tom Wijsman tunjukkan.

0xC0000022L
sumber
2
" Saya akan sangat menyarankan Anda untuk menggunakan solusi yang Tom Wijsman tunjukkan. " Sebenarnya, itu adalah solusi yang saya tunjukkan. Saya sudah mengatur Windows untuk melakukan itu. Seperti apa yang saya balas kepada Tom Wijsman, saya mencari solusi lain yang akan mencegah karakter RLO dari ditulis dan dibaca, atau solusi yang secara otomatis akan memberi tahu atau mengingatkan pengguna jika karakter RLO terdeteksi. Saya khawatir saya tidak memiliki pengetahuan teknis untuk menulis filter yang Anda jelaskan.
galacticninja
@galacticninja: Maaf, saya akan memperbaikinya dalam jawaban saya.
0xC0000022L