RTLO是Right to Left Override的縮寫,主要的攻擊方式是利用檔案名稱編排呈現方式來誘騙使用者執行偽裝後的惡意檔案,一般英文語系國家書寫方式是由左至右編排,但是在中東的國家其書寫方式是由右至左編排,於是攻擊者即可透過Unicode萬國碼的支援特性來製作攻擊範本
上面這是抄寫其他網站的解釋說明,做這種格式的檔案很簡單,還蠻有趣的,但記住不要拿這個來做壞事。而MIS人員可以通過群組原則來限制訪問這樣類型的檔案。規則是限制執行路徑中包含這個特殊字符。
先說怎麼建立:
我們先複製一個圖片,名字就叫demoabc.png
作業系統中執行字元對應表,或者直接執行charmap.exe
點擊“進階檢視”
在Unicode的位置輸入202E,確認左下的位置內容是U+202E:Right-To-Left-Override後,點擊“選取”,此時後面的“複製”就變亮了,然後點擊“複製”。
回到剛才建立的圖片檔,對文件重命名,在demo後面按Ctrl+V,也就是把剛才複製的特殊字符貼上去,馬上可以看到神奇的一刻。
可以看到從你貼上特殊字符的位置後面所有的字符的順序瞬間完全顛倒,我們是從demo後面插入,後面原來的順序是abc.png,顛倒就變為gnp.cba,加上前面不變的部分,文件名顯示就變成demognp.cba了,表面看這個檔案是cba格式,但其真實的格式是png,執行後還是會用看圖片的程式來開啟。
所以呢,也不能完全信任你看到的副檔名,有時不是真的,此時對這個檔案再重新命名,可以看到檔案名稱是前後各一部分。
至於防範的方式呢,網路也有提供,從https://www.informationsecurity.com.tw/answers/answer_detail.aspx?tid=50可以參考
另外在Windows系統亦可於「群組原則」內的「軟體限制原則」新增一筆針對路徑做檢查的規則,將所有具Unicode反轉字元的檔名限制執行,系統即會在使用者執行具反轉字元的檔案時予以阻擋,但由於RTLO的反轉字元需透過Hexadecimal 16進位之較為特殊的方式來輸入,需遵循下列方式來執行:
1) 先開啟Registry並於HKEY_Current_User/Control Panel/Input Method下新增字串值EnableHexNumpad=1
2) 於「其他原則」內新增一條「路徑規則」
3) 在路徑之處依序輸入 * (alt與+鍵一起按住) 202e (放開alt與+鍵) 再輸入 * (應該也可以直接按照前面的方式複製貼上)
4) 之後會看到路徑內僅出現**,此時將滑鼠游標移至該處點選,再用←→鍵確認即可發現*與*的中間已插入反轉字元。
設定完成之後使用者只要嘗試執行具反轉字元的檔案,系統即會優先阻止並跳出告知警示。