ThaiCERT: Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย 
 
 
 


Polymorphic and Metamorphic Viruses : The formidable adversaries
เรียบเรียงโดย : สัญญา คล่องในวัย และ ธนาวิทย์ ชีวะประภานันท์

กล่าวนำ

ในด้านการเขียนไวรัสคอมพิวเตอร์ ความคิดใหม่ๆ ได้ถูกคิดค้นประดิษฐ์ และทดลองขึ้น เนื่องจากไวรัสคอมพิวเตอร์ชนิด Polymorphic ที่มีความซับซ้อนและยากต่อการตรวจจับ ทำให้บ่อยครั้งที่บริษัทกำจัดไวรัสต้องใช้เวลาหลายวันหรือบางทีเป็นเดือนเพื่อที่จะสร้าง detection routines เพื่อจัดการกับ Polymorphic เพียงตัวเดียว

วิวัฒนาการของไวรัสคอมพิวเตอร์ชนิด Polymorphic

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

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

ไวรัสชนิดหลายรูป(Polymorphics or Encrypted Viruses)
โดยความคิดเพื่อที่จะซ่อนลักษณะสำคัญ(signature)ที่จำเพาะ โดยการคน(scramble) virus body เพื่อไม่ให้คงรูปเดิม

ไวรัสชนิดเข้ารหัสจะประกอบด้วยสองส่วนคือ decryption routine และ encrypted virus body หากผู้ใช้ปล่อยโปรแกรมที่ติดเชื้อ decryption routineของไวรัส จะเข้าควบคุมคอมพิวเตอร์ก่อน แล้วจึงถอดรหัสตัวไวรัส จากนั้น decryption routine จะถ่ายโอนการควบคุมให้ตัวไวรัสที่ถอดรหัสแล้ว เข้าควบคุมเครื่องคอมพิวเตอร์ต่ออีกที

ทุกครั้งที่ไวรัสแพร่ไปยังโปรแกรมใหม่ มันจะทำสำเนาตัวมันเองที่ถอดรหัสแล้ว พร้อมกับ decryption routine ที่จะใช้ จากนั้นก็จะเข้ารหัสใหม่อีกครั้ง และแนบทั้งสองส่วนกับแฟ้มข้อมูลที่เป็นเป้าหมาย

การที่จะเข้ารหัสกับสำเนาของตัวไวรัส ไวรัสที่ถูกเข้ารหัสจะใช้ encryption key เพื่อให้ตัวไวรัสโปรแกรมเปลี่ยนทุกครั้งที่แพร่เชื้อ เมื่อ key นี้เปลี่ยนจะทำให้ผลจากการคนหรือกวน(scramble) virus body เปลี่ยนตาม

จะเห็นได้ว่า decryption routine จะยังคงเดิมอยู่ตลอดรุ่นต่อรุ่น โปรแกรมตรวจจับไวรัส(virus scanner)จึงถูกปรับปรุงเพื่อที่จะค้นหาลำดับของbyte ที่บ่งชี้ decryption routine จำเฉพาะ

ไวรัสชนิดเปลี่ยนรูป(Metamorphic Viruses)
ไวรัสชนิดpolymorphic จะเพิ่มเติมส่วนประกอบส่วนที่สาม คือ mutation engine จากสองส่วนประกอบที่กล่าวถึงแล้ว ซึ่งเป็นตัวทำหน้าที่สร้าง decryption routines อย่างสุ่ม เป็นผลให้ decryption routines เปลี่ยนทุกครั้งที่ไวรัสแพร่ไปยังโปรแกรมใหม่

mutation engine และ virus body ใน metamorphic virus จะถูกเข้ารหัสทั้งคู่ เมื่อผู้ใช้ run โปรแกรมที่ติดเชื้อโดยไวรัสชนิดนี้ decryption routine จะเข้าควบคุมการทำงานของเครื่องคอมพิวเตอร์ก่อน และทำการถอดรหัสทั้ง virus body และ mutation engine จากนั้น decryption routine จะถ่ายโอนการควบคุมคอมพิวเตอร์ให้กับไวรัสที่ทำการ locate โปรแกรมใหม่ที่จะแพร่เชื้อไว้แล้ว

ณ ตำแหน่งนี้ ไวรัสจะทำการสำเนาทั้งตัวมันเองและ mutation engine ลงในหน่วยความจำหลัก(Random Access Memory-RAM) จากนั้นไวรัสจะทำการเรียก mutation engine ซึ่งทำหน้าที่สร้าง decryption routine ใหม่อย่างสุ่มที่ถอดรหัสไวรัสได้ ซ้ำยังแทบจะไม่คล้ายคลึงกับ decryption routine ใดๆก่อนหน้าเลย ต่อไปไวรัสจะเข้ารหัส mutation engine และสำเนาตัวไวรัสใหม่นี้ สุดท้ายไวรัสจะผนวก decryption routineใหม่ เข้ากับ ตัวไวรัสและ mutation engine ที่เพิ่งเข้ารหัสลงในโปรแกรมใหม่

ผลลัพธ์ที่ได้คือ ไม่เพียงแต่ virus body เท่านั้นที่ถูกเข้ารหัส virus decryption routine ยังแปรเปลี่ยนในการติดเชื้อแต่ละครั้งอีกด้วย ทำให้ virus scanner ค้นหาลำดับสืบมาของ byte ที่บ่งบอก decryption routine ได้ยากขึ้น

หากปราศจาก signatureจำเพาะ และไม่มี decryption routine ซ้ำแล้ว ทำให้การแพร่เชื้อแต่ละครั้ง แทบจะไม่เหมือนกันเลย จัดได้ว่าเป็นไวรัสที่น่ากลัวเลยทีเดียว

จุดมุ่งหมายของไวรัสคือการคงขนาดให้เล็กที่สุดเท่าที่จะเป็นไปได้ ดังนั้น การเข้ารหัสเพื่อซ่อน main virus body แล้วสร้าง polymorphic decryptor คงง่ายกว่า การทำ main virus body ให้เป็น polymorphic

อันดับของปัญหา(The Scale of the Problem)

ไวรัส Tequila และ Maltese Amoeba เป็นเหตุให้ การแพร่เชื้อชนิด polymorphic เกิดอย่างกว้างขวางเป็นครั้งแรกในปีค.ศ.1991

ปีค.ศ.1992 Dark Avenger ผู้เขียน Maltese Amoeba ได้แจกจ่าย Mutation Engine ที่รู้จักดีในชื่อ MtE ไปยังผู้เขียนไวรัสอื่น พร้อมกับคำสั่งที่เกี่ยวกับสร้าง polymorphics เพิ่ม

ในฤดูใบไม้ผลิปี 1992, VDS Advanced Research Group ได้แจกโปรแกรมฟรีที่เรียกว่า CatchMtE ปลายปี 1992 ได้เกิด polymorphic engine ตัวใหม่เรียกว่า Trident Polymorphic Engine หรือ TPE มันแพร่กระจายในยุโรปโดยบุคคลที่เรียกตัวเองว่า Masud Khafir ทั้ง MtE และ TPE ได้ถูกแจกจ่ายในรูป object modules ซึ่งสามารถเชื่อมเข้ากับหลายโปรแกรมที่อนุญาตให้มันสร้าง decryptors ที่ดูต่างกัน

MtE มีขนาดประมาณ 2.4 กิโลไบต์ มันสามารถสร้าง decryptors ที่ใช้ based หรือ indexed addressing modes “ด้วย displacement” ชนิด word-size ขั้นตอนของตัวถอดรหัส(decryptor)จะผ่าน code ครั้งละหนึ่ง word มันจะใช้ ตัวแปรผันเชิง based หรือ indexed addressing modes 4 ตัว โครงสร้างของ decryptors จะคงที่

TPE มีขนาดประมาณ 1.5 กิโลไบต์ มันสามารถสร้าง decryptors ที่ใช้ based หรือ indexed addressing modes “โดยมี displacement หรือไม่ก็ได้” นอกจาก TPE จะสร้าง word-at-time decryptors เช่นเดียวกับ MtE แล้ว TPE ยังสามารถสร้าง byte-at-a-time decryptors ได้อีกด้วย

ไวรัสเชิงถอดรหัสหลายตัวสามารถจัดได้ว่าเป็น subset ของ TPE-based decryptors การที่จะเอาชนะปัญหานี้ได้จึงควรจะทำการตรวจสอบไวรัสตัวอื่นก่อนการตรวจสอบ TPE decryptor ตัวปัจจุบัน

การตรวจจับไวรัสชนิด Polymorphic

Generic Decryption
Generic decryption ทำงานโดยความคิดที่ว่า:

scanner ที่ใช้Generic decryption ยึดถือพฤติกรรมนี้ในการตรวจจับ polymorphics ทุกครั้งที่ scan แฟ้มโปรแกรมใหม่ มันจะโหลดแฟ้มนี้ลงใน virtual computer ที่สร้างโดย RAM พร้อมตัวมันเอง แฟ้มโปรแกรมจะ execute ใน virtual computer เหมือนทำงานบนคอมพิวเตอร์จริง

scanner จะจับตาดูการเปลี่ยนแปลงและควบคุมแฟ้มโปรแกรมในขณะที่มัน execute ภายใน virtual computer polymorphic virus ที่ทำงานภายใน virtual computer จะไม่สามารถทำความเสียหายได้เพราะว่ามันถูกแยกออกจากคอมพิวเตอร์จริง

เมื่อ scanner โหลดแฟ้มข้อมูลที่ติดเชื้อโดย polymorphic virus ลงใน virtual computer แล้ว virus decryption routine จะ execute และ ถอดรหัส virus body ที่ถูกเข้ารหัสไว้ เป็นการแสดงให้ scanner เห็นถึง virus body และสามารถค้นหา signatures ใน virus body ที่เจาะจงอุปนิสัยของไวรัสอย่างถูกต้อง

หาก scanner โหลดแฟ้มข้อมูลที่ไม่ได้ติดเชื้อก็จะไม่มีไวรัสให้แสดงตัวและจับตาดู เมื่อ scanner ไม่พบพฤติกรรมไวรัส มันจะหยุดการทำงานของแฟ้มข้อมูลทันทีภายใน virtual computer ทันทีและเอาแฟ้มข้อมูลนั้นออกจาก virtual computer จึงค่อยดำเนินการ scan แฟ้มข้อมูลถัดไป

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

ปัญหาสำคัญใน Generic decryption คือความเร็ว การใช้ Generic decryption คงจะไม่ดีนัก หากต้องใช้เวลาห้าชั่วโมงกับการรอ polymorphic virus ที่ถอดรหัสใน virtual computer ในทำนองเดียวกัน หาก Generic decryption หยุดเร็วเกินไป ก็อาจทำให้พลาด polymorphic ก่อนที่จะสามารถแสดงตัวได้เพียงพอที่ scanner จะตรวจจับ signature ได้

Heuristic-Based Generic Decryption
การที่จะแก้ปัญหานี้ จะต้องใช้ Generic decryption ร่วมกับ “heuristics” ซึ่งเป็นชุดกฏทั่วไป ที่จะช่วยแยกพฤติกรรม non-virus และ virus ออกจากกัน

ดังตัวอย่างเช่น โปรแกรม nonvirus ตามแบบอย่างจะใช้ผลลัพธ์คล้ายๆกันจากการคำนวณทางคณิตศาสตร์ที่มันสร้างขึ้นขณะที่มันทำงานภายใน virtual computer ในทางกลับกัน polymorphic virus อาจแสดงการคำนวณที่คล้ายคลึงกัน ซ้ำยังโยนผลลัพธ์ทิ้งเพราะผลลัพธ์เหล่านั้นไม่ได้มีความเกี่ยวข้องกับ virus ที่จริงแล้ว polymorphics อาจทำแค่การคำนวณเท่านั้น เพื่อที่จะได้ดูเหมือน clean program ด้วยความพยายามที่จะหลบหนี virus scanner

Heuristic-based generic decryption จะมองหาแต่ละพฤติกรรมที่ขัดกันเองหรือค้านกับหลักเดิม พฤติกรรมแต่ละแบบเหล่านี้เพิ่มความเป็นไปได้ของการแพร่เชื้อ และกระตุ้น scanner ที่ยึดกฏ heuristic-based ทำการขยายความยาวช่วงเวลาที่จะ execute แฟ้มข้อมูลที่สงสัยภายใน virtual computer ทำให้แฟ้มข้อมูลที่อาจติดเชื้ออยู่ภายในมีเวลาเพียงพอที่จะถอดรหัสตัวเองและแสดงไวรัสที่ซ่อนอยู่

โชคไม่ดีที่ heuristics ยังคงต้องการการวิจัยและupdate อยู่ตลอดเวลา ตัวอย่างเช่น เมื่อกฏheuristics ถูกปรับเพื่อตรวจจับไวรัส 500 ชนิด อาจพลาด 10 ตัวได้ เมื่อเราเปลี่ยนมาตรวจจับไวรัส 5 ตัวใหม่

ดังนั้น ขณะที่ผู้เขียนไวรัสยังคงพยายามที่จะสร้างไวรัสที่ดูเหมือน clean program heuristics สามารถครอบคลุมลักษณะที่บางโปรแกรมอาจใช้ร่วมกันเป็นผลให้กระตุ้น scanner เพื่อยืดเวลาทดสอบแฟ้มข้อมูลได้โดยง่าย

นอกจากนี้แล้ว generic decryption ต้องยึดอยู่บนกลุ่มงานนักวิจัย anti-virus เพื่อที่จะสามารถทำการวิเคราะห์ความแตกต่างไวรัสที่ซ่อนอยู่หลายล้านตัว, คัดเลือก signature, แล้วปรับเปลี่ยนชุดของ heuristics โดยต้องทดสอบ heuristics ชุดก่อนๆทุกแบบที่เป็นไปได้ให้มากขึ้น จึงจะยังคงความสามารถไว้เมื่อกฏ heuristic ถูกเปลี่ยน ไม่เช่นนั้น heuristics จะล้าหลังอย่างรวดเร็ว, ไม่ถูกต้อง และ ไม่มีประสิทธิภาพ

The Striker System

เป็นเทคนิคตรวจจับไวรัสของบริษัท Symantec คล้ายกับ Generic decryption ทุกครั้งที่มัน scan แฟ้มโปรแกรมใหม่ Striker จะโหลดแฟ้มข้อมูลนี้ลงใน virtual computer พร้อมกับตัวมันเองลงใน RAM โปรแกรมจะ execute ใน virtual computer เสมือนกำลังทำงานอยู่ในคอมพิวเตอร์จริงๆ

อย่างไรก็ตาม แทนที่จะใช้การเดาแบบ heuristic ที่ใช้นำการถอดรหัส Striker ใช้ virus profiles หรือ กฎ(rules) ซึ่งจำเพาะกับไวรัสแต่ละตัว profiles หรือกฏนี้ไม่ใช่ชุดกฏทั่วไปที่ใช้แยกแยะ nonvirus จากพฤติกรรมที่เป็น virus

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

ผู้เชี่ยวชาญทำนายอนาคตไวรัสกลายพันธุ์

(IDG) จากการศึกษาไม่นานนี้พบว่าการทำลายล้างโดยไวรัสคอมพิวเตอร์ทาง internet ยังคงรุนแรงมากขึ้น และข่าวที่ร้ายกว่าก็คือผู้ผลิตซอฟท์แวร์คาดว่าในอนาคตที่มืดมนนี้ จะไม่สามารถตรวจจับไวรัสที่สามารถกลายพันธุ์เองได้ง่ายนัก และแทบจะหยุดพวกมันไม่ได้ด้วย

ตัวคุกคามที่กลายพันธุ์ได้เหล่านี้ หรือที่รู้จักกันดีในชื่อ polymorphic viruses หรือ metamorphic viruses ยังคงไม่ธรรมดา ผู้ล่าไวรัสจึงเตือนถึงการเติบโตของไวรัสสองสามชนิดของปีนี้โดยเฉพาะ NewLove worm ว่าเป็นสัญญาณของไวรัสกลายพันธุ์ที่ยากที่จะหยุดยั้งเพราะว่าพวกมันเปลี่ยนรูปร่างเพื่อที่จะหลบหลีกการตรวจจับอยู่เสมอ

ไวรัสที่เคยเลวร้ายที่สุดดูเหมือนจะเป็น LoveLetter ซึ่งได้แพร่กระจายไปทั่วโลกเมื่อปลายฤดูใบไม้ผลิที่แล้ว ประมาณ 41 เปอร์เซนต์ขององค์กรณ์ที่ได้สำรวจกล่าวว่า LoveLetter ได้นำความหายนะให้กับเนตเวิร์คของพวกเขา ทำให้ต้อง shut down server และยังส่งผลให้บริษัทสูญเสียเงินประมาณ $120,000 ไปกับการขาดความสามารถในการผลิตและมาตรการอื่นๆ

หนึ่งในจำนวนองค์กรณ์ที่กล่าวถึง ได้ยอมรับว่าปีนี้เคยถูกโจมตีโดยไวรัสที่ใหญ่กว่า ถึงแม้ว่า 70 เปอร์เซนต์ของ desktops, 91 เปอร์เซนต์ของ servers, 45 เปอร์เซนต์ของ firewallsและproxies, และ 80 เปอร์เซนต์ของ e-mail gateways ได้ติดตั้งผลิตภัณฑ์ป้องกันไวรัสแล้วก็ตาม

ปัญหาที่เกิดจาก Internet-based viruses ตามที่ ICSA ได้กล่าวไว้ เช่น LoveLetter และ Melissa คือพวกมันแพร่พันธุ์ได้รวดเร็วกว่าไวรัสแบบเก่าชนิด boot-and-file-type

ผลิตภัณฑ์ซอฟท์แวร์กำจัดไวรัส ขึ้นกับการระบุ signatures(หรือลายนิ้วมือ) ของไวรัส ในการกำจัดพวกมันออกไป

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


การตรวจจับที่ยากขึ้น

สิ่งที่น่ากลัวที่สุดเกี่ยวกับไวรัสชนิดใหม่ คือการตรวจจับพวกมันทำได้ยากขึ้น คนเขียนไวรัสได้เพิ่ม encryption routines เพื่อซ่อน, ถอดรหัส, แล้วใส่ไบต์เพิ่มสองสามไบต์, แล้วเข้ารหัสอีกทีเพื่อให้ดูต่างไปจากเดิมมากขึ้น ทำให้มันกลายเป็น polymorphic

ในอีกด้านหนึ่ง metamorphic virus จะเพิ่ม mutation engine ขึ้นมา ทำให้มันสามารถใช้สร้างไวรัสพื้นฐานและสำเนาตัวเองเพื่อให้ดูและประพฤติต่างออกไปเพียงพอที่จะหลบหลีกการตรวจจับที่อยู่บนพื้นฐานของ signature ดั้งเดิมของมันได้

Carey Nachtenberg หัวหน้านักวิจัยของศุนย์วิจัยป้องกันไวรัสแห่ง Symantec ได้ให้ความเห็นว่า การจัดการกับ NewLove ที่ระบาดหลัง LoveLetter worm ต้องใช้เวลาเป็นวัน เนื่องจากมันไม่เชิงเป็น polymorphic เพราะว่ามันไม่ได้เข้ารหัสตัวเอง แต่มันฝัง logic ไว้แทน

ผู้ผลิตซอฟท์แวร์รายอื่น รวมทั้งบริษัท Trend Micro ได้จัด NewLove ให้เป็น polymorphic โดยได้อธิบายว่าเป็นไวรัสทำลายล้างรุนแรงชนิดที่ทำให้ Windows ไม่สามารถทำงานได้ หรืออาจทำให้แฟ้มข้อมูลใช้ไม่ได้โดยมีขนาดเป็นศูนย์ Trend Micro กล่าว่วาไวรัสชนิดนี้ได้รับแรงบันดาลใจจากความสำเร็จของ LoveLetter แต่มันเป็น polymorphic ที่เปลี่ยน code ทุกครั้งที่แพร่พันธุ์

NewLove มีวิธีการระบาดคล้าย ๆ กับ LoveLetter โดยการกระจายพันธุ์ผ่าน e-mail attachments, ขัดขวาง mail servers และลบแฟ้มข้อมูล LoveLetter ไม่ได้เป็น polymorphic แม้ว่าจะมีลูกหลานที่กลายพันธุ์หมุนเวียนอยู่ รวมทั้งตัวที่เพิ่งเกิดมาเมื่อหลายสัปดาห์ก่อนที่เรียกว่า VBS/LoveLetter.bj

April Goostree ผู้จัดการฝ่ายวิจัยแห่ง McAfee.com ได้กล่าวว่า NewLove ที่แรกๆถูกคิดว่ากลายพันธุ์มาจาก LoveLetter ไม่ได้โจมตีระบบมากนัก มันได้ดึงความสนใจของผู้เชี่ยวชาญด้านป้องกันไวรัส พวกเขาใช้เวลาอย่างมากในการถอดรหัสและแก้ไขปัญหาให้กับคนที่เผชิญกับมัน

Roger Thompson แห่งICSA ได้กล่าวไว้ว่า มีไวรัสคอมพิวเตอร์หลายพันชนิด แต่โชคดีที่จำนวนของ polymorphic viruses นั้น “น้อยมาก”

ความคิดนี้ล้าหลังเสียแล้ว เมื่อประมาณปี ค.ศ.1991 จากไวรัส Tequila และ Maltese Amoeba Thompson ยอมรับว่า polymorphic viruses เป็นภัยคุกคามหลักในตอนนี้

แต่ Rob Clyde รองประธานบริษัท Axent Technologies ไม่มั่นใจมากนัก

Clyde กล่าวว่า “หลังจาก LoveLetter ,polymorphic virus ที่ถูกเรียกว่า Life Stages ระบาดในเดือนมิถุนายน, และปัจจุบันมีอย่างน้อย 20 mutation engines ย่อย ที่ถูก post ไว้บน Web ที่เราสามารถใช้ได้

engines ที่สามารถใช้สร้าง polymorphic viruses เหล่านี้ มีชื่อที่คล้ายกับ the Trident Polymorphic Engine, Nuke, และ Dark Angels


บรรณานุกรม



Home || เอกสารเผยแพร่ || Virus

ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.