<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>ความปลอดภัยของไฟล์ Excel on File Format Blog</title>
    <link>https://blog.fileformat.com/th/tag/%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%9B%E0%B8%A5%E0%B8%AD%E0%B8%94%E0%B8%A0%E0%B8%B1%E0%B8%A2%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C-excel/</link>
    <description>Recent content in ความปลอดภัยของไฟล์ Excel on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>th</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/th/tag/%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%9B%E0%B8%A5%E0%B8%AD%E0%B8%94%E0%B8%A0%E0%B8%B1%E0%B8%A2%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C-excel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>อธิบายความปลอดภัยของไฟล์ Excel: XLSX, XLSM, และความเสี่ยงของแมโคร</title>
      <link>https://blog.fileformat.com/th/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</link>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/th/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</guid>
      <description>ทำความเข้าใจความแตกต่างด้านความปลอดภัยที่แท้จริงระหว่างไฟล์ XLSX และ XLSM, วิธีการทำงานของการโจมตีด้วยแมโคร, และวิธีปกป้ององค์กรของคุณจากสเปรดชีตที่เป็นอันตราย.</description>
      <content:encoded><![CDATA[<p><strong>อัปเดตล่าสุด</strong>: 28 Sept, 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/excel-file-security-explained-xlsx-xlsm-and-macro-risks.png#center"
         alt="XLSX vs. XLSM Security: How Spreadsheet Macros Expose Your Network"/> 
</figure>

<h2 id="อธบายความปลอดภยของไฟล-excel-xlsx-xlsm-และความเสยงของแมโคร">อธิบายความปลอดภัยของไฟล์ Excel: XLSX, XLSM, และความเสี่ยงของแมโคร</h2>
<p>หลายทศวรรษที่ผ่านมา Microsoft Excel ได้เป็นเครื่องมือสากลสำหรับการดำเนินธุรกิจ มันช่วยจัดสมดุลงบประมาณของบริษัท, แสดงภาพชุดข้อมูลที่ซับซ้อน, ติดตามสินค้าคงคลัง, และขับเคลื่อนกระบวนการวิเคราะห์ข้อมูลในอุตสาหกรรมเกือบทุกประเภท.</p>
<p>อย่างไรก็ตาม ความยืดหยุ่นในการคำนวณเดียวกันทำให้สเปรดชีตเป็นที่ชื่นชอบอย่างต่อเนื่องของผู้โจมตีทางไซเบอร์ ผู้โจมตีได้ใช้สเปรดชีตเป็นอาวุธตั้งแต่ช่วงต้นของไวรัสมาโครในปลายทศวรรษ 1990 ในขณะที่ Microsoft และผู้ดูแลระบบได้แนะนำชั้นการป้องกันหลายชั้น—เช่น การแยกประเภทไฟล์และการบล็อกมาโครโดยค่าเริ่มต้น—การชักจูงทางสังคมและความเสี่ยงเชิงสถาปัตยกรรมที่ละเอียดอ่อนยังคงทำให้การโจมตีที่มุ่งเน้น Excel มีความเกี่ยวข้องต่อไป</p>
<p>เพื่อสร้างท่าทีด้านความปลอดภัยที่ทนทาน นักพัฒนา ผู้ดูแลระบบ และผู้ใช้ระดับสูงต้องมองลึกลงไปเหนืออินเทอร์เฟซของเวิร์กบุ๊ก การเข้าใจว่าโครงสร้าง OpenXML ทำงานอย่างไร, <code>.xlsx</code> และ <code>.xlsm</code> แตกต่างกันในระดับสถาปัตยกรรมอย่างไร, และกลไกการทำงานของมาโครเป็นสิ่งสำคัญสำหรับการปกป้องปลายทางสมัยใหม่.</p>
<h2 id="1-โครงสรางของไฟล-excel-สมยใหม-openxml-แยกสวน">1. โครงสร้างของไฟล์ Excel สมัยใหม่: OpenXML แยกส่วน</h2>
<p>ก่อนการเปิดตัว Microsoft Office 2007, Excel บันทึกไฟล์โดยส่วนใหญ่ใช้รูปแบบไบนารีที่เป็นกรรมสิทธิ์, โดยเฉพาะรูปแบบ <code>.xls</code> (ซึ่งกำหนดโดย Binary Interchange File Format หรือ BIFF8). ในไฟล์ <code>.xls</code>, บันทึกข้อมูล, คำจำกัดความการจัดรูปแบบ, สูตร, และสตรีมมาโคร Visual Basic for Applications (VBA) ถูกบรรจุไว้ในคอนเทนเนอร์การจัดเก็บโครงสร้างเดียว. นี้ทำให้การตรวจสอบเชิงโปรแกรมทำได้ยากและทำให้ผู้โจมตีสามารถซ่อนสคริปต์โค้ดอันเป็นอันตรายภายในเซกเตอร์ไบนารีที่มืดมิด.</p>
<p>ตั้งแต่ Excel 2007 เป็นต้นไป, Microsoft ได้นำมาตรฐาน <strong>Office Open XML (OOXML)</strong> (มาตรฐานเป็น ECMA-376 และ ISO/IEC 29500) มาใช้ ภายใต้ OOXML, เวิร์กบุ๊กของ Excel จะไม่เป็นบล็อบไบนารีแบบโมโนลิธิกอีกต่อไป แต่จะเป็นไฟล์บีบอัดแบบ zip ที่ประกอบด้วยโครงสร้างลำดับชั้นของเอกสาร XML, ตารางความสัมพันธ์, และสื่อที่ฝังอยู่.</p>
<h3 id="ภายในคอนเทนเนอร-zip">ภายในคอนเทนเนอร์ ZIP</h3>
<p>หากคุณนำเวิร์กบุ๊ก Excel สมัยใหม่มาตรฐานใด ๆ แล้วเปลี่ยนส่วนต่อท้ายเป็น <code>.zip</code> คุณสามารถแตกไฟล์เนื้อหาได้ด้วยยูทิลิตี้บีบอัดมาตรฐานใดก็ได้:</p>
<pre tabindex="0"><code>my_workbook.xlsx (extracted)
│
├── [Content_Types].xml        &lt;-- Registry of MIME types and structural parts
├── _rels/                     &lt;-- Package-level relationship mappings
│   └── .rels
├── docProps/                  &lt;-- Metadata (author, creation date, revision)
│   ├── app.xml
│   └── core.xml
└── xl/                        &lt;-- Core spreadsheet contents
    ├── workbook.xml           &lt;-- Workbook-level parameters and sheet list
    ├── styles.xml             &lt;-- Cell styles, fonts, and borders
    ├── sharedStrings.xml      &lt;-- Unique string index for performance optimization
    ├── _rels/
    │   └── workbook.xml.rels  &lt;-- Sheet and component dependencies
    └── worksheets/
        ├── sheet1.xml         &lt;-- Raw cell values, formulas, and grid geometry
        └── sheet2.xml
</code></pre><p>การเปลี่ยนแปลงโครงสร้างนี้ให้ประโยชน์ด้านความปลอดภัยทันที:</p>
<ol>
<li><strong>DPI (Deep Packet Inspection) &amp; Gateway Visibility:</strong> อุปกรณ์รักษาความปลอดภัย, พร็อกซี, และเอเจนต์ปลายทางสามารถแตกไฟล์เก็บข้อมูลได้ทันทีและวิเคราะห์โครงสร้าง XML แบบข้อความธรรมดาเพื่อระบุสตริงที่น่าสงสัย, URL ภายนอก, หรืออ็อบเจกต์ที่ฝังอยู่.</li>
<li><strong>Deterministic File Validation:</strong> หากไฟล์อ้างว่าเป็นเอกสาร OpenXML แต่ละเมิดข้อจำกัดของสกีม่า Excel จะปฏิเสธการเปิดไฟล์หรือทำงานในโหมดกู้คืนแบบแซนด์บ็อกซ์.</li>
<li><strong>Format Separation:</strong> Microsoft แยกสเปรดชีตคำนวณทั่วไปออกจากไฟล์ที่สามารถรันสคริปต์เชิงกระบวนการที่ฝังอยู่.</li>
</ol>
<h2 id="2-xlsx1-vs-xlsm7-ขอบเขตสถาปตยกรรม">2. <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> vs. <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a>: ขอบเขตสถาปัตยกรรม</h2>
<p>ความแตกต่างหลักระหว่าง <code>.xlsx</code> และ <code>.xlsm</code> อยู่ที่ว่าโครงสร้างไฟล์อนุญาตให้รวมโครงการแมโครที่สามารถทำงานได้หรือไม่.</p>
<table>
<thead>
<tr>
<th style="text-align:left">คุณลักษณะ / มิติ</th>
<th style="text-align:left"><code>.xlsx</code> (สเปรดชีต Excel OpenXML)</th>
<th style="text-align:left"><code>.xlsm</code> (สเปรดชีตที่เปิดใช้งานแมโครใน Excel)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>ประเภทเนื้อหา MIME</strong></td>
<td style="text-align:left"><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></td>
<td style="text-align:left"><code>application/vnd.ms-excel.sheet.macroEnabled.12</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>คอนเทนเนอร์การจัดเก็บ VBA</strong></td>
<td style="text-align:left"><strong>ห้ามอย่างเคร่งครัด.</strong> ไม่สามารถจัดเก็บ <code>vbaProject.bin</code></td>
<td style="text-align:left"><strong>อนุญาต.</strong> มี <code>xl/vbaProject.bin</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>ความเสี่ยงการดำเนินการแบบเนทีฟ</strong></td>
<td style="text-align:left">ไม่มีนัยสำคัญต่อการทำงานของมาโคร; จำกัดเฉพาะการฉีดสูตร/DDE</td>
<td style="text-align:left">สูง; สามารถรันโค้ด VBA อัตโนมัติเมื่อมีการโต้ตอบกับเวิร์กบุ๊ก</td>
</tr>
<tr>
<td style="text-align:left"><strong>สคีม่า OpenXML แบบเข้มงวด</strong></td>
<td style="text-align:left">สอดคล้องกับคำนิยาม XML ที่เข้มงวดและไม่มีมาโคร</td>
<td style="text-align:left">รวมคำนิยามสำหรับส่วนขยายการทำงานอัตโนมัติแบบเก่าและสมัยใหม่</td>
</tr>
<tr>
<td style="text-align:left"><strong>ตัวบ่งชี้ภาพผู้ใช้</strong></td>
<td style="text-align:left">ไอคอนสเปรดชีตสีเขียวมาตรฐาน</td>
<td style="text-align:left">ไอคอนสเปรดชีตที่มีเครื่องหมายอัศเจรีย์</td>
</tr>
</tbody>
</table>
<h3 id="กลไกการบงคบใช-ทำไม-xlsx-ไมสามารถรนมาโครได">กลไกการบังคับใช้: ทำไม XLSX ไม่สามารถรันมาโครได้</h3>
<p>คำถามทั่วไปในหมู่ผู้ดูแลระดับต้นและนักพัฒนาคือ: <em>ถ้าโจมตีเอาไฟล์ <code>.xlsm</code> ที่เป็นอันตรายเข้ามา, แทรกโค้ดที่ทำงานได้, แล้วเปลี่ยนชื่อส่วนขยายไฟล์เป็น <code>.xlsx</code> จะเกิดอะไรขึ้น?</em></p>
<p>คำตอบสั้น ๆ: <strong>ไฟล์จะไม่ทำงานแมโคร.</strong></p>
<p>Excel ไม่ได้พึ่งพาเพียงส่วนขยายไฟล์เพื่อกำหนดกฎการทำงาน เมื่อเปิดไฟล์ที่ชื่อว่า <code>.xlsx</code>:</p>
<ol>
<li>Excel ตรวจสอบ payload แบบ zip และอ้างอิงไฟล์ <code>[Content_Types].xml</code>.</li>
<li>ในไฟล์ <code>.xlsx</code> ที่แท้จริง ประเภทเนื้อหาที่กำหนดทั้งหมดจะเป็นตัวแทนขององค์ประกอบข้อมูลมาตรฐาน (เช่น <code>worksheet</code>, <code>sharedStrings</code> หรือ <code>styles</code>).</li>
<li>หากผู้โจมตีทำการแทรกสตรีม VBA ที่คอมไพล์แล้ว (<code>xl/vbaProject.bin</code>) ลงในแพคเกจ <code>.xlsx</code> ด้วยตนเองและอัปเดตความสัมพันธ์, Excel จะพบความขัดแย้งของสคีมาที่ชัดเจน:
<ul>
<li>มันเห็นส่วนขยาย <code>.xlsx</code> ที่ผูกกับประเภทเนื้อหาที่บ่งบอกถึงความสามารถของแมโคร.</li>
<li>Excel แสดงข้อผิดพลาดความสมบูรณ์แบบร้ายแรง: <em>&ldquo;Excel ไม่สามารถเปิดไฟล์ &lsquo;filename.xlsx&rsquo; ได้เนื่องจากรูปแบบไฟล์หรือส่วนขยายไฟล์ไม่ถูกต้อง. ตรวจสอบว่าไฟล์ไม่ได้เสียหาย&hellip;&rdquo;</em></li>
</ul>
</li>
<li>หากผู้โจมตีปล่อยให้ประเภทภายในคงอยู่โดยไม่ได้ลงทะเบียนไบนารี Excel จะถือว่า <code>vbaProject.bin</code> เป็นไฟล์แนบที่ไม่ได้อ้างอิงและเป็นไฟล์ที่หลงเหลืออยู่ในไฟล์ zip และจะละทิ้งมันโดยสมบูรณ์ในระหว่างรอบการโหลด.</li>
</ol>
<p>ผลที่ตามมาคือ <strong>ไฟล์ที่ทำงานอย่างเคร่งครัดเป็นคอนเทนเนอร์ <code>.xlsx</code> แท้จริงไม่สามารถรันโค้ด VBA แบบดั้งเดิมได้</strong> อย่างไรก็ตาม นั่นไม่ได้หมายความว่าไฟล์ <code>.xlsx</code> ปลอดจากเวกเตอร์การโจมตีทั้งหมด ตามที่ได้สำรวจต่อไปในคู่มือนี้.</p>
<h2 id="3-ความเสยงของมาโคร--วฏจกรการโจมต">3. ความเสี่ยงของมาโคร &amp; วัฏจักรการโจมตี</h2>
<p>มาโครถูกออกแบบมาเพื่ออัตโนมัติงานที่ทำซ้ำ ๆ เช่น การบัญชี การสร้างโมเดลทางการเงิน และการจัดการข้อมูลผ่าน Visual Basic for Applications (VBA) เนื่องจาก VBA ถูกสร้างขึ้นเพื่อการอัตโนมัติในที่ทำงาน จึงได้รับการเข้าถึงระบบปฏิบัติการ Windows อย่างกว้างขวางผ่าน Component Object Model (COM) Windows Script Host (WSH) และการเรียกใช้ Win32 API โดยตรง.</p>
<p>เมื่อมาโครที่ไม่ได้รับความเชื่อถือทำงาน มันจะทำงานด้วย <strong>สิทธิ์ที่เหมือนกับผู้ใช้ที่เข้าสู่ระบบอย่างตรงกัน</strong> มันไม่ได้ถูกขังอยู่ใน sandbox แบบเบราว์เซอร์สไตล์ JavaScript ที่เสมือน.</p>
<pre tabindex="0"><code>+--------------------------------------------------------------------------------+
|                             ATTACK LIFECYCLE                                   |
+--------------------------------------------------------------------------------+
                                       │
                                       ▼
  [ Delivery &amp; Evasion ]  ──────► Spear-phishing email with .xlsm, .xlam, or .zip.
                                       │
                                       ▼
  [ Social Engineering ]  ──────► Lures victim to bypass Protected View (&#34;Enable Content&#34;).
                                       │
                                       ▼
  [ Auto-Execution ]      ──────► Auto_Open() or Workbook_Open() triggers automatically.
                                       │
                                       ▼
  [ System Invocation ]   ──────► VBA creates COM objects (WScript.Shell, WinHttp.WinHttpRequest).
                                       │
                                       ▼
  [ Payload Retrieval ]   ──────► Spawns hidden PowerShell/cURL to fetch staging binary.
                                       │
                                       ▼
  [ Post-Exploitation ]   ──────► In-memory execution, credential theft, lateral movement.
</code></pre><h3 id="เทคนคการเขาถงมาโครทวไป">เทคนิคการเข้าถึงมาโครทั่วไป</h3>
<ol>
<li>
<p><strong>จุดเชื่อมต่อการทำงานอัตโนมัติ:</strong>
ผู้โจมตีวางจุดเข้าของพวกเขาไว้ในตัวจัดการเหตุการณ์ภายในเช่น <code>Sub Auto_Open()</code> หรือ <code>Private Sub Workbook_Open()</code> ทันทีที่ผู้ใช้ให้สิทธิ์การดำเนินการ รูทีนเหล่านี้จะทำงานโดยไม่ต้องคลิกใด ๆ ภายในสเปรดชีต</p>
</li>
<li>
<p><strong>การทำให้ซับซ้อนและการเขียนทับ:</strong></p>
<ul>
<li><strong>การทำให้สตริงซับซ้อน:</strong> Payloads ซ่อน URL และการเรียกระบบโดยใช้แอเรย์อักขระ, การเข้ารหัส XOR, การถอดรหัส Base64, หรือการต่อสตริงตัวแปรสภาพแวดล้อม (เช่น <code>Chr(112) &amp; Chr(111) &amp; Chr(119)...</code>).</li>
<li><strong>VBA Stomping:</strong> VBA มีอยู่ในสองรูปแบบภายใน <code>vbaProject.bin</code>: โค้ดต้นฉบับที่ตีความและ p-code ที่คอมไพล์ (pseudo-code ที่มุ่งเป้าไปที่เวอร์ชัน Office เฉพาะที่คอมไพล์มัน) ผู้โจมตีสามารถลบโค้ดต้นฉบับที่เป็นข้อความธรรมดาได้อย่างสมบูรณ์, เหลือเพียง p-code ที่คอมไพล์ไว้เท่านั้น. แอนตี้ไวรัสพื้นฐานหลายตัวและตัววิเคราะห์แบบสแตติกตรวจสอบเฉพาะสตรีมต้นฉบับ, ทำให้ p-code ไม่ถูกตรวจพบจนกว่าจะถูกเรียกใช้โดยเวอร์ชัน Office ที่ตรงกัน</li>
</ul>
</li>
<li>
<p><strong>การใช้ทรัพยากรระบบ (LotL):</strong>
แมโครอันตรายสมัยใหม่มักไม่ทิ้งไฟล์ <code>.exe</code> ลงดิสก์โดยตรง, ซึ่งจะทำให้ตัวตรวจจับ Endpoint Detection and Response (EDR) แจ้งเตือนทันที. แทนที่จะทำเช่นนั้น, พวกมันจะโต้ตอบกับเครื่องมือระบบที่มีอยู่ในตัว:</p>
<ul>
<li>สร้างอินสแตนซ์ของ <code>WScript.Shell</code> เพื่อดำเนินการอาร์กิวเมนต์บรรทัดคำสั่ง.</li>
<li>การเรียกใช้ <code>PowerShell.exe</code> พร้อมนโยบายการทำงานที่ข้าม (<code>-ExecutionPolicy Bypass -WindowStyle Hidden</code>).</li>
<li>การเรียกใช้ API ของ Win32 แบบดั้งเดิมผ่าน <code>Declare PtrSafe Function CreateProcess</code> หรือ <code>VirtualAlloc</code> เพื่อฉีด shellcode ลงในหน่วยความจำของระบบโดยตรง.</li>
</ul>
</li>
</ol>
<h2 id="4-เวกเตอรภยคกคามสเปรดชตอน-ๆ-นอกเหนอจาก-vba-มาตรฐาน">4. เวกเตอร์ภัยคุกคามสเปรดชีตอื่น ๆ (นอกเหนือจาก VBA มาตรฐาน)</h2>
<p>การปกป้องสภาพแวดล้อมจากไฟล์ <code>.xlsm</code> เป็นเพียงครึ่งหนึ่งของการต่อสู้ ผู้โจมตียังใช้กลไกที่ทำงานแยกจาก VBA แบบดั้งเดิมอีกด้วย.</p>
<h3 id="การแลกเปลยนขอมลแบบไดนามก-dde-และการฉด-csv11">การแลกเปลี่ยนข้อมูลแบบไดนามิก (DDE) และการฉีด <a href="https://docs.fileformat.com/spreadsheet/csv/">CSV</a></h3>
<p>Excel มีโปรโตคอลเก่าที่เรียกว่า Dynamic Data Exchange (DDE) ซึ่งออกแบบมาเพื่อให้การแชร์ข้อมูลระหว่างแอปพลิเคชันที่กำลังทำงานได้ (เช่น การสตรีมข้อมูลหุ้นแบบเรียลไทม์จากโปรแกรมแยกไปยังเซลล์ใน Excel).</p>
<ul>
<li><strong>วิธีการทำงานของการฉีดสูตร:</strong>
เมื่อเซลล์ในสเปรดชีตเริ่มต้นด้วยอักขระเช่น <code>=</code>, <code>@</code>, <code>+</code> หรือ <code>-</code> Excel จะตีความเนื้อหาเป็นสูตร หากผู้โจมตีควบคุมข้อมูลที่ส่งออกไปยังสเปรดชีต (เช่นฟิลด์ &ldquo;Comments&rdquo; ที่ไม่ได้ทำความสะอาดในเว็บแอปพลิเคชันที่ส่งออกเป็น CSV หรือ XLSX) พวกเขาสามารถฉีด:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>=cmd|&#39;/C powershell.exe -w hidden -enc &lt;base64_payload&gt;&#39;!A0
</span></span></code></pre></div></li>
<li>เมื่อเปิดไฟล์ Excel จะประเมินสูตร แจ้งเตือนผู้ใช้ด้วยข้อความเกี่ยวกับการเริ่มแอปพลิเคชันภายนอก และหากผู้ใช้ยอมรับ จะเรียกใช้เชลล์ของระบบ.</li>
</ul>
<h3 id="มาโครรนเกา-excel-40-xlm">มาโครรุ่นเก่า Excel 4.0 (XLM)</h3>
<p>ก่อนที่ VBA จะถูกแนะนำในปี 1993, Excel ใช้ระบบแมโครแบบสูตรที่เรียกว่า <strong>Excel 4.0 (XLM) macros</strong>. แมโครเหล่านี้อยู่ในแผ่นแมโครเฉพาะแทนที่จะเป็นโครงการ VBA แยกต่างหาก.</p>
<p>เนื่องจากแมโคร XLM ถูกเขียนเป็นสูตรในเซลล์ (เช่น <code>=EXEC(&quot;calc.exe&quot;)</code>), พวกมันจึงข้ามการตรวจสอบแบบสแตติกของ VBA หลายตัว. ผู้โจมตีนิยมใช้แมโคร XLM ในช่วงปลายทศวรรษ 2010 และต้นทศวรรษ 2020 เพื่อหลบหลีกการตรวจจับอัตโนมัติก่อนที่ Microsoft จะปิดการใช้งานโดยค่าเริ่มต้นในรุ่นองค์กรสมัยใหม่.</p>
<h3 id="การเชอมตอภายนอกทเปนอนตรายและวตถ-ole">การเชื่อมต่อภายนอกที่เป็นอันตรายและวัตถุ OLE</h3>
<p>ไฟล์งาน <code>.xlsx</code> ปกติยังสามารถสร้างความเสี่ยงผ่านทรัพยากรภายนอกได้:</p>
<ul>
<li><strong>Embedded OLE Packages:</strong> ผู้โจมตีสามารถแทรกไฟล์ปฏิบัติการที่ปลอมเป็นไอคอน PDF ฝังไว้โดยตรงในแผ่นงาน.</li>
<li><strong>External Workbook Links &amp; Web Queries:</strong> ไฟล์ XLSX สามารถมีการอ้างอิงภายนอกที่ทำการส่งคำขอ HTTP GET ไปยังเซิร์ฟเวอร์ command-and-control (C2) ที่ควบคุมโดยผู้โจมตีโดยอัตโนมัติเมื่อเปิดไฟล์, ซึ่งส่วนใหญ่ใช้สำหรับการสำรวจหรือการโจมตีเก็บแฮช netNTLM.</li>
</ul>
<h2 id="5-กลยทธการเสรมความแขงแกรงขององคกรและการปองกนหลายชน">5. กลยุทธ์การเสริมความแข็งแกร่งขององค์กรและการป้องกันหลายชั้น</h2>
<p>การป้องกันภัยคุกคามที่มาจาก Excel ต้องใช้แนวทางหลายชั้นที่ครอบคลุมการตรวจสอบเครือข่าย, การกำหนดค่าระบบ, การควบคุมการเข้าถึง, และกระบวนการปฏิบัติการ.</p>
<pre tabindex="0"><code>+─────────────────────────────────────────────────────────+
|                  ENTERPRISE DEFENSE LAYERS               |
+─────────────────────────────────────────────────────────+
|  PERIMETER: Drop inbound .xlsm, .xla, and .xltm at mail |
|  gateway unless cryptographically signed or exempted.   |
+---------------------------------------------------------+
|  IDENTITY &amp; POLICY: Enforce ASR rules and apply         |
|  Mark of the Web (MotW) macro execution blocks.         |
+---------------------------------------------------------+
|  RUNTIME: Hook AMSI into Office to evaluate dynamic     |
|  VBA buffers directly before execution.                 |
+---------------------------------------------------------+
|  STORAGE: Restrict macro execution exclusively to       |
|  managed, centralized Trusted Locations.                |
+─────────────────────────────────────────────────────────+
</code></pre><h3 id="1-บงคบใช-mark-of-the-web-motw-เพอบลอกแมโคร">1. บังคับใช้ Mark of the Web (MotW) เพื่อบล็อกแมโคร</h3>
<p>ในปี 2022, Microsoft ได้อัปเดตพฤติกรรมเริ่มต้นของแอปพลิเคชัน Office: แมโครในไฟล์ที่มาจากอินเทอร์เน็ตจะ <strong>ถูกบล็อกโดยค่าเริ่มต้น</strong>.</p>
<p>เมื่อผู้ใช้ดาวน์โหลดไฟล์ผ่านเบราว์เซอร์หรือไคลเอนต์ภายนอก, Windows จะใส่แท็กให้ไฟล์ด้วยสตรีมข้อมูลสำรอง (ADS) ชื่อ <code>Zone.Identifier</code> (โซน 3 หมายถึงอินเทอร์เน็ต). สำหรับไฟล์ที่มีเครื่องหมายนี้, Excel จะปิดการทำงานของแมโครทั้งหมดและแสดงแบนเนอร์ความปลอดภัยสีแดง: &gt; <em>&ldquo;ความเสี่ยงด้านความปลอดภัย: Microsoft ได้บล็อกแมโครไม่ให้ทำงานเนื่องจากแหล่งที่มาของไฟล์นี้ไม่เชื่อถือได้.&rdquo;</em></p>
<p><strong>การดำเนินการของผู้ดูแลระบบ:</strong> ตรวจสอบให้แน่ใจว่าพฤติกรรมนี้ถูกบังคับใช้ผ่าน Group Policy และไม่สามารถถูกผู้ใช้ปลายทางแก้ไขได้:</p>
<ul>
<li><strong>เส้นทาง GPO:</strong> <code>User Configuration &gt; Administrative Templates &gt; Microsoft Excel 2016 &gt; Excel Options &gt; Security &gt; Trust Center</code></li>
<li><strong>การตั้งค่า:</strong> เปิดใช้งาน <em>&ldquo;บล็อกแมโครจากการทำงานในไฟล์ Office ที่มาจากอินเทอร์เน็ต&rdquo;</em>.</li>
</ul>
<h3 id="2-กำหนดกฎการลดพนผวการโจมต-asr">2. กำหนดกฎการลดพื้นผิวการโจมตี (ASR)</h3>
<p>องค์กรที่ใช้ Microsoft Defender for Endpoint ควรเปิดใช้งานกฎการลดพื้นผิวโจมตีหลักที่ออกแบบมาโดยเฉพาะสำหรับแอปพลิเคชัน Office:</p>
<ul>
<li><code>บล็อกแอปพลิเคชัน Office ไม่ให้สร้างกระบวนการลูก</code> (GUID: <code>D4F940AB-401B-4EFC-AADC-AD5F3C50688A</code>)
<ul>
<li><em>ป้องกันไม่ให้ Excel เรียกใช้ PowerShell, CMD หรือเอนจินสคริปต์.</em></li>
</ul>
</li>
<li><code>บล็อกแอปพลิเคชัน Office จากการแทรกโค้ดเข้าสู่กระบวนการอื่น</code> (GUID: <code>75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84</code>)</li>
<li><code>บล็อกการเรียกใช้ Win32 API จากมาโครของ Office</code> (GUID: <code>92E6390C-CF9E-43CE-BD8C-0E6F0FE66680</code>)</li>
</ul>
<h3 id="3-ใชประโยชนจาก-antimalware-scan-interface-amsi">3. ใช้ประโยชน์จาก Antimalware Scan Interface (AMSI)</h3>
<p>เวอร์ชันล่าสุดของ Microsoft 365 ผสานการทำงานของ VBA เข้ากับ AMSI โดยตรง แม้ว่าผู้โจมตีจะใช้การทำให้สตริงซับซ้อนหรือการสตอมป์ VBA, เอนจินรันไทม์ของ VBA จะส่งคำสั่งที่ถูกสร้างใหม่และไม่ได้เข้ารหัสไปยังเครื่องมือป้องกันไวรัส/EDR ที่ติดตั้งไว้ของคุณในช่วงมิลลิวินาทีที่แน่นอนก่อนการดำเนินการ ตรวจสอบให้แน่ใจว่าการป้องกันปลายทางของคุณเฝ้าติดตามเหตุการณ์รันไทม์ของ AMSI อย่างต่อเนื่อง</p>
<h3 id="4-ยายไปยงตำแหนงทเชอถอไดและใบรบรองดจทล">4. ย้ายไปยังตำแหน่งที่เชื่อถือได้และใบรับรองดิจิทัล</h3>
<p>สำหรับองค์กรที่พึ่งพาแผ่นงานอัตโนมัติในงานประจำวัน:</p>
<ul>
<li><strong>กำจัดไฟล์ XLSM ที่หลุดรอบในโฟลเดอร์ดาวน์โหลดหรือเดสก์ท็อปของผู้ใช้.</strong></li>
<li><strong>ใช้ตำแหน่งที่เชื่อถือได้:</strong> จำกัดการทำงานของมาโครให้เฉพาะแชร์เครือข่ายแบบอ่านอย่างเดียวที่จัดการโดยผู้ดูแลระบบ IT.</li>
<li><strong>การลงนามโค้ด:</strong> กำหนดให้มาโครทั้งหมดที่พัฒนาภายในต้องถูกลงนามด้วยการเข้ารหัสโดยใช้ใบรับรองที่ออกโดยโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) ขององค์กร ตั้งค่า Excel ให้ทำงานกับมาโครที่ลงนามดิจิทัล <strong>เท่านั้น</strong> และบล็อกมาโครที่ไม่ได้ลงนามโดยเงียบ</li>
</ul>
<h2 id="6-มมมองของนกพฒนา-การสรางระบบอตโนมตทปลอดภย">6. มุมมองของนักพัฒนา: การสร้างระบบอัตโนมัติที่ปลอดภัย</h2>
<p>หากคุณกำลังพัฒนาซอฟต์แวร์ที่ทำการแยกวิเคราะห์, สร้าง, หรือใช้ไฟล์ Excel (เช่น pipeline ของ Python ที่ใช้ <code>pandas</code>/<code>openpyxl</code>, microservice ของ Node.js, หรือแอปพลิเคชัน C#/.NET) ให้ใช้มาตรการป้องกันการพัฒนาต่อไปนี้:</p>
<ol>
<li>
<p><strong>ปฏิเสธรูปแบบไฟล์ที่ไม่คาดคิดที่จุดอัปโหลด:</strong>
หากแอปพลิเคชันของคุณคาดหวังรายงานการเงิน ให้ตรวจสอบอย่างเคร่งครัดว่าไฟล์ที่เข้ามาตรงตามรูปแบบ <code>.xlsx</code>. ตรวจสอบไบต์พิเศษภายใน (ส่วนหัว zip มาตรฐาน <code>50 4B 03 04</code>) และยืนยันว่าไม่มีรายการ <code>vbaProject.bin</code> อยู่ในดัชนีของไฟล์อาร์ไคฟ์ก่อนบันทึกลงใน bucket ของคลาวด์หรือฐานข้อมูล</p>
</li>
<li>
<p><strong>ทำความสะอาดข้อมูลเพื่อป้องกันการฉีดสูตร:</strong>
เมื่อส่งออกข้อมูลที่ผู้ใช้สร้างเป็นไฟล์ CSV หรือ XLSX ให้ใส่เครื่องหมายอัญประกาศเดี่ยว (<code>'</code>) หรือช่องว่างไว้หน้าตารางใด ๆ ที่เริ่มต้นด้วยอักขระอันตราย (<code>=</code>, <code>+</code>, <code>-</code>, <code>@</code>, <code>\t</code>, <code>\r</code>):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">sanitize_for_spreadsheet</span>(value: str) <span style="color:#f92672">-&gt;</span> str:
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> value <span style="color:#f92672">and</span> value[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">in</span> (<span style="color:#e6db74">&#39;=&#39;</span>, <span style="color:#e6db74">&#39;+&#39;</span>, <span style="color:#e6db74">&#39;-&#39;</span>, <span style="color:#e6db74">&#39;@&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\t</span><span style="color:#e6db74">&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\r</span><span style="color:#e6db74">&#39;</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;&#39;</span><span style="color:#e6db74">{</span>value<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> value
</span></span></code></pre></div></li>
<li>
<p><strong>ย้ายจาก VBA ไปยัง Office Scripts หรือ Web Add-ins:</strong>
สำหรับการอัตโนมัติขององค์กรสมัยใหม่ ให้ยกเลิกการใช้ VBA เก่าอย่างสมบูรณ์:</p>
<ul>
<li><strong>Office Scripts:</strong> เขียนด้วย TypeScript, Office Scripts ทำงานภายในสภาพแวดล้อมคลาวด์แบบ sandboxed และทำงานได้อย่างราบรื่นบนเวอร์ชันเว็บและเดสก์ท็อปโดยไม่เปิดเผยการเรียกระบบปฏิบัติการพื้นฐาน</li>
<li><strong>Office Web Add-ins:</strong> สร้างโดยใช้ HTML, CSS มาตรฐานและ JavaScript สมัยใหม่, web add-ins สื่อสารผ่าน JavaScript APIs ที่จัดการและแยกจากระบบปฏิบัติการท้องถิ่น.</li>
</ul>
</li>
</ol>
<h2 id="7-รายการตรวจสอบสรปสำหรบความปลอดภยของสเปรดชต">7. รายการตรวจสอบสรุปสำหรับความปลอดภัยของสเปรดชีต</h2>
<ul>
<li><input disabled="" type="checkbox"> <strong>บังคับใช้ <code>.xlsx</code> เป็นค่าเริ่มต้น:</strong> ต้องการให้กระบวนการทำงานของผู้ใช้มาตรฐานทั้งหมดบันทึกเป็น <code>.xlsx</code> ที่ไม่มีแมโคร.</li>
<li><input disabled="" type="checkbox"> <strong>บล็อกแมโครที่มาจากอินเทอร์เน็ต:</strong> ยืนยันว่าการบังคับใช้นโยบาย MotW ถูกปรับใช้ทั่วทั้งองค์กรของคุณผ่าน GPO หรือ Intune.</li>
<li><input disabled="" type="checkbox"> <strong>เปิดใช้งานกฎ ASR:</strong> ห้ามผลิตภัณฑ์ Office จากการสร้างตัวแปลคำสั่งหรือกระบวนการลูก.</li>
<li><input disabled="" type="checkbox"> <strong>ยกเลิกการใช้ Excel 4.0 (XLM):</strong> ตรวจสอบให้แน่ใจว่าเอนจินแมโคร XLM รุ่นเก่าถูกปิดใช้งานอย่างถาวรบนทุกเครื่องทำงาน.</li>
<li><input disabled="" type="checkbox"> <strong>ทำความสะอาดการส่งออกของแอปพลิเคชัน:</strong> ปกป้องขั้นตอนการสร้าง CSV และ Excel จากการฉีด CSV/สูตร.</li>
<li><input disabled="" type="checkbox"> <strong>เปลี่ยนไปใช้ Office Scripts:</strong> ย้ายแมโครการจัดการแบบเก่าไปยัง Office Scripts ที่ขับเคลื่อนด้วย TypeScript และ API ที่จัดการ.</li>
</ul>
<p>โดยการมองสเปรดชีตไม่เพียงเป็นไฟล์เอกสารเท่านั้น แต่เป็นคอนเทนเนอร์ซอฟต์แวร์ที่มีโครงสร้างซึ่งมีความสามารถในการดำเนินการ ทีมความปลอดภัยและนักพัฒนาสามารถทำให้หนึ่งในเวกเตอร์การโจมตีที่เก่าแก่ที่สุดในคอมพิวเตอร์องค์กรเป็นกลางได้อย่างมีประสิทธิภาพ.</p>
<h1 id="คำถามทพบบอย-faq">คำถามที่พบบ่อย (FAQ)</h1>
<h3 id="q1-ไฟลทลงทายดวย-xlsx-สามารถรนมาโครทเปนอนตรายไดหรอไม">Q1: ไฟล์ที่ลงท้ายด้วย <code>.xlsx</code> สามารถรันมาโครที่เป็นอันตรายได้หรือไม่?</h3>
<p>ไม่, มาตรฐาน OpenXML ห้ามอย่างเคร่งครัดโค้ดแมโครในไฟล์ <code>.xlsx</code> และ Excel จะปฏิเสธหรือเอาโครงการ VBA ที่ถูกแทรกเข้าไปในคอนเทนเนอร์ <code>.xlsx</code> ที่แท้จริงออก</p>
<h3 id="q2-ควรทำอยางไรหากไฟล-excel-ขอใหฉน-enable-editing-หรอ-enable-content">Q2: ควรทำอย่างไรหากไฟล์ Excel ขอให้ฉัน &ldquo;Enable Editing&rdquo; หรือ &ldquo;Enable Content&rdquo;?</h3>
<p>ให้สิทธิ์เฉพาะเมื่อคุณรู้จักผู้ส่งและคาดหวังไฟล์นั้น; คำเตือนนี้เป็นจุดตรวจสอบหลักที่ทำให้แมโครที่ไม่ได้รับความเชื่อถือสามารถรันโค้ดได้</p>
<h3 id="q3-microsoft-excel-กำหนดวาไฟลมาจากอนเทอรเนตอยางไร">Q3: Microsoft Excel กำหนดว่าไฟล์มาจากอินเทอร์เน็ตอย่างไร?</h3>
<p>Windows จะแนบสตรีม &ldquo;Mark of the Web&rdquo; (Zone.Identifier) ที่ซ่อนอยู่ไปกับไฟล์ที่ดาวน์โหลด, ซึ่งบ่งบอกให้ Excel เปิดไฟล์เหล่านั้นในมุมมอง Protected View และบล็อกแมโครโดยค่าเริ่มต้น</p>
<h3 id="q4--ไฟล-csv-ปลอดภยกวาไฟล-xlsx1-และ-xlsm7-หรอไม">Q4:  ไฟล์ CSV ปลอดภัยกว่าไฟล์ <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> และ <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a> หรือไม่?</h3>
<p>ไฟล์ CSV ไม่สามารถมีแมโคร VBA แบบเนทีฟได้, แต่ยังคงเสี่ยงต่อการโจมตีแบบสูตรฉีดถ้าภายในมีคำสั่งอันเป็นอันตรายที่ Excel รันเมื่อเปิดไฟล์</p>
<h3 id="q5-office-scripts-สมยใหมแตกตางจากมาโคร-vba-แบบดงเดมอยางไร">Q5: Office Scripts สมัยใหม่แตกต่างจากมาโคร VBA แบบดั้งเดิมอย่างไร?</h3>
<p>Office Scripts ทำงานบน TypeScript ภายในสภาพแวดล้อมการรันแบบ sandbox, ป้องกันไม่ให้เข้าถึงระบบไฟล์ในเครื่องของคุณ, คำสั่ง command line, หรือ API ของระบบปฏิบัติการ</p>
<h2 id="ดเพมเตม">ดูเพิ่มเติม</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/spreadsheet/csv-vs-xlsx-vs-ods-in-2026-best-spreadsheet-format-for-developers/">CSV vs XLSX vs ODS ในปี 2026: รูปแบบสเปรดชีตที่ดีที่สุดสำหรับนักพัฒนา</a></li>
<li><a href="https://blog.fileformat.com/en/spreadsheet/xls-vs-xlsx-vs-xlsm-vs-xlsb-choosing-the-right-spreadsheet-format/">XLS vs XLSX vs XLSM vs XLSB - การเลือกรูปแบบสเปรดชีตที่เหมาะสม</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/what-is-excel/">Excel คืออะไร? ข้อมูลสำคัญที่คุณต้องรู้</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/excel-file-extensions-xlsx-xlsm-xls-xltx-xltm/">รูปแบบไฟล์ Excel: XLSX, XLSM, XLS, XLTX, XLTM</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/xls-vs-xlsx/">ความแตกต่างระหว่าง XLS และ XLSX</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
