<?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>XLSX vs. XLSM on File Format Blog</title>
    <link>https://blog.fileformat.com/fi/tag/xlsx-vs.-xlsm/</link>
    <description>Recent content in XLSX vs. XLSM on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fi</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/fi/tag/xlsx-vs.-xlsm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Excel-tiedostojen turvallisuus selitetty: XLSX, XLSM ja makroriskit</title>
      <link>https://blog.fileformat.com/fi/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/fi/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</guid>
      <description>Ymmärrä todelliset turvallisuuserot XLSX- ja XLSM-tiedostojen välillä, miten makroihin perustuvat hyökkäykset toteutuvat ja miten suojata organisaatiosi haitallisilta taulukkolaskentaohjelmilta.</description>
      <content:encoded><![CDATA[<p><strong>Viimeksi päivitetty</strong>: 28 syyskuuta 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-tiedostojen-turvallisuus-selitetty-xlsx-xlsm-ja-makroriskit">Excel-tiedostojen turvallisuus selitetty: XLSX, XLSM ja makroriskit</h2>
<p>Vuosikymmenten ajan Microsoft Excel on toiminut liiketoiminnan yleisenä moottorina. Se tasapainottaa yritysbudjetteja, visualisoi monimutkaisia tietoaineistoja, seuraa varastoa ja ohjaa analyyttisiä putkia lähes kaikilla toimialoilla.</p>
<p>Kuitenkin sama laskennallinen joustavuus tekee taulukkolaskentaohjelmista pysyvän suosikin kybervastustajien keskuudessa. Hyökkääjät ovat aseistaneet taulukkolaskentaohjelmat jo 1990‑luvun lopun makrovirusten varhaisista ajoista. Vaikka Microsoft ja järjestelmänvalvojat ovat ottaneet käyttöön useita puolustuskerroksia — kuten tiedostomuotojen erottelua ja oletusmakrojen estämistä — sosiaalinen manipulointi ja hienovaraiset arkkitehtoniset riskit pitävät Excel‑keskeiset hyökkäykset edelleen merkityksellisinä.</p>
<p>Rakentaakseen kestävän turvallisuusasenteen kehittäjien, järjestelmänvalvojien ja edistyneiden käyttäjien on tarkasteltava työkirjan käyttöliittymän alla olevaa tasoa. Ymmärtäminen siitä, miten taustalla oleva OpenXML-muoto toimii, miten <code>.xlsx</code> ja <code>.xlsm</code> eroavat arkkitehtonisesti, ja miten makrojen suorituksen mekanismit toimivat, on elintärkeää nykyaikaisten päätepisteiden suojaamiseksi.</p>
<h2 id="1-modernien-excel-tiedostojen-anatomia-openxml-purettu">1. Modernien Excel-tiedostojen anatomia: OpenXML purettu</h2>
<p>Ennen Microsoft Office 2007:n julkaisua Excel tallensi tiedostot pääasiassa omilla binäärimuodoillaan, erityisesti <code>.xls</code>-muodossa (joka noudattaa Binary Interchange File Format -standardia, eli BIFF8). <code>.xls</code>-tiedostoissa tietueet, muotoilumäärittelyt, kaavat ja Visual Basic for Applications (VBA) -makrovirrat pakattiin yhteen strukturoituun tallennuskonttiin. Tämä teki ohjelmallisen tarkastelun vaikeaksi ja antoi hyökkääjille mahdollisuuden piilottaa haitallisia kuormaskriptejä läpinäkymättömien binäärisektoreiden sisään.</p>
<p>Excel 2007:stä alkaen Microsoft esitteli <strong>Office Open XML (OOXML)</strong> -standardin (standardoitu ECMA-376:n ja ISO/IEC 29500:n mukaisesti). OOXML:n alla Excel-työkirjat eivät enää ole monoliittisia binääripaloja. Sen sijaan ne ovat pakattuja arkistoja, jotka sisältävät hierarkkisen rakenteen XML-dokumenteista, suhdetietotauluista ja upotetuista media‑resursseista.</p>
<h3 id="zip-kontainerin-sisällä">ZIP-kontainerin sisällä</h3>
<p>Jos otat minkä tahansa nykyaikaisen Excel-työkirjan ja muutat sen tiedostopäätteen <code>.zip</code>-muotoon, voit purkaa sen sisällön millä tahansa tavallisella purkuohjelmalla:</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>Tämä rakenteellinen muutos tarjosi välittömiä turvallisuusetuja:</p>
<ol>
<li><strong>DPI (Syväpakettien tarkastus) &amp; Yhdyskäytävän näkyvyys:</strong> Turvallisuuslaitteet, välityspalvelimet ja päätepisteiden agentit voivat purkaa arkiston lennossa ja jäsentää tavallista XML-puuta tunnistaakseen epäilyttävät merkkijonot, ulkoiset URL-osoitteet tai upotetut objektit.</li>
<li><strong>Deterministinen tiedoston validointi:</strong> Jos tiedosto väittää olevansa OpenXML-dokumentti, mutta rikkoo skeeman rajoituksia, Excel kieltäytyy avaamasta sitä tai suorittaa sen hiekkalaatikkotilassa tapahtuvassa palautustilassa.</li>
<li><strong>Formaattien erottelu:</strong> Microsoft erotti tavalliset laskentataulukot tiedostoista, jotka pystyvät suorittamaan upotettuja proseduraalisia skriptejä.</li>
</ol>
<h2 id="2-xlsx1-vs-xlsm7-arkkitehtoninen-raja">2. <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> vs. <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a>: Arkkitehtoninen raja</h2>
<p>Ensisijainen ero <code>.xlsx</code>- ja <code>.xlsm</code>-tiedostojen välillä on se, salliiko tiedostorakenne suoritettavien makroprojektien sisällyttämisen.</p>
<table>
<thead>
<tr>
<th style="text-align:left">Ominaisuus / Ulottuvuus</th>
<th style="text-align:left"><code>.xlsx</code> (Excel OpenXML -taulukko)</th>
<th style="text-align:left"><code>.xlsm</code> (Excel-makroilla varustettu taulukko)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>MIME-sisältötyyppi</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-tallennuskontti</strong></td>
<td style="text-align:left"><strong>Tiukasti kielletty.</strong> Ei voida tallentaa <code>vbaProject.bin</code></td>
<td style="text-align:left"><strong>Sallittu.</strong> Sisältää <code>xl/vbaProject.bin</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>Alkuperäisen suorituksen riski</strong></td>
<td style="text-align:left">Merkityksetön makrojen suorittamiselle; rajoittuu kaavainjektiot/DDE</td>
<td style="text-align:left">Korkea; voi suorittaa automatisoitua VBA-koodia työkirjan vuorovaikutuksen yhteydessä</td>
</tr>
<tr>
<td style="text-align:left"><strong>OpenXML tiukka skeema</strong></td>
<td style="text-align:left">Vastaa tiukkoja, makroja sisältämättömiä XML-määritelmiä</td>
<td style="text-align:left">Sisältää määritelmät perinteisille ja nykyaikaisille automaatiolaajennuksille</td>
</tr>
<tr>
<td style="text-align:left"><strong>Käyttäjän visuaalinen indikaattori</strong></td>
<td style="text-align:left">Standardi vihreä taulukkoikoni</td>
<td style="text-align:left">Taulukkoikoni, jossa on huutomerkki</td>
</tr>
</tbody>
</table>
<h3 id="pakottava-mekanismi-miksi-xlsx-ei-voi-suorittaa-makroja">Pakottava mekanismi: Miksi XLSX ei voi suorittaa makroja</h3>
<p>Yleinen kysymys juniori‑järjestelmänvalvojien ja kehittäjien keskuudessa on: <em>Mitä tapahtuu, jos hyökkääjä ottaa haitallisen <code>.xlsm</code>-tiedoston, injektoi suoritettavaa koodia ja nimeää tiedostopäätteen uudelleen <code>.xlsx</code>:ksi?</em></p>
<p>Lyhyt vastaus: <strong>Tiedosto ei suorita makroa.</strong></p>
<p>Excel ei perustu pelkästään tiedostopäätteeseen määrittäessään suoritussääntöjä. Kun avataan tiedostoa, jonka nimi on <code>.xlsx</code>:</p>
<ol>
<li>Excel tarkastelee zip‑pakettia ja viittaa <code>[Content_Types].xml</code>-tiedostoon.</li>
<li>Aidossa <code>.xlsx</code>-tiedostossa kaikki määritetyt sisältötyypit edustavat vakio­datakohteita (kuten <code>worksheet</code>, <code>sharedStrings</code> tai <code>styles</code>).</li>
<li>Jos hyökkääjä injektoi manuaalisesti käännetyn VBA‑virran (<code>xl/vbaProject.bin</code>) <code>.xlsx</code>‑pakettiin ja päivittää suhteet, Excel kohtaa selkeän skeeman ristiriidan:
<ul>
<li>Se näkee <code>.xlsx</code>-päätteen, joka on sidottu sisältötyyppeihin, jotka viittaavat makro‑kykyyn.</li>
<li>Excel heittää kohtalokkaan eheysvirheen: <em>&ldquo;Excel ei voi avata tiedostoa &lsquo;filename.xlsx&rsquo;, koska tiedostomuoto tai tiedostopääte ei ole kelvollinen. Varmista, ettei tiedosto ole vioittunut&hellip;&rdquo;</em></li>
</ul>
</li>
<li>Jos hyökkääjä jättää sisäiset tyypit koskemattomiksi rekisteröimättä binääritiedostoa, Excel käsittelee <code>vbaProject.bin</code>-tiedostoa viitteettömänä, orvona liitteenä zip-arkistossa ja hylkää sen kokonaan latausjakson aikana.</li>
</ol>
<p>Tämän seurauksena <strong>tiedosto, joka toimii tiukasti aitojen <code>.xlsx</code>-konttien tavoin, ei voi suorittaa natiivista VBA-koodia.</strong> Kuitenkin tämä ei tarkoita, että <code>.xlsx</code>-tiedostot olisivat vapaita kaikista hyökkäysvektoreista, kuten myöhemmin tässä oppaassa tarkastellaan.</p>
<h2 id="3-makrojen-riskit--hyökkäyksen-elinkaari">3. Makrojen riskit &amp; hyökkäyksen elinkaari</h2>
<p>Makroja suunniteltiin automatisoimaan toistuvia kirjanpito-, rahoitusmallinnus- ja datankäsittelytehtäviä Visual Basic for Applications (VBA) -kielen avulla. Koska VBA rakennettiin työpaikan automaatioon, sille annettiin laaja pääsy taustalla olevaan Windows-käyttöjärjestelmään Component Object Model (COM) -rajapinnan, Windows Script Host (WSH) -palvelun ja suorien Win32 API -kutsujen kautta.</p>
<p>Kun epäluotettava makro suoritetaan, se toimii <strong>täsmälleen samoilla oikeuksilla kuin kirjautunut käyttäjä</strong>. Se ei ole loukussa virtuaalisessa JavaScript-tyylisessä selaimen hiekkalaatikossa.</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="yleiset-makrojen-sisäänpääsymenetelmät">Yleiset makrojen sisäänpääsymenetelmät</h3>
<ol>
<li>
<p><strong>Automaattisen suorituksen koukut:</strong>
Hyökkääjät sijoittavat sisäänpääsymekanismin sisäisiin tapahtumankäsittelijöihin, kuten <code>Sub Auto_Open()</code> tai <code>Private Sub Workbook_Open()</code>. Heti kun käyttäjä myöntää suoritusoikeudet, nämä rutiinit käynnistyvät ilman, että käyttäjän tarvitsee klikata taulukossa.</p>
</li>
<li>
<p><strong>Obfuskaatio ja Stomppaus:</strong></p>
<ul>
<li><strong>Merkkijonon hämärtäminen:</strong> Payloadit piilottavat URL-osoitteet ja järjestelmäkutsut käyttämällä merkkijono-taulukoita, XOR-koodausta, Base64-purkamista tai ympäristömuuttujien yhdistämistä (esim. <code>Chr(112) &amp; Chr(111) &amp; Chr(119)...</code>).</li>
<li><strong>VBA Stomppaus:</strong> VBA on kahdessa muodossa <code>vbaProject.bin</code>-tiedostossa: tulkattu lähdekoodi ja käännetty p-koodi (pseudokoodi, joka on kohdistettu tietylle Office-versiolle, joka sen käänsi). Hyökkääjät voivat poistaa selväkielisen lähdekoodin kokonaan, jättäen jäljelle vain käännetyn p-koodin. Monet perusvirustorjuntaohjelmat ja staattiset analyysityökalut tarkastelevat vain lähdekoodivirtaa, jolloin p-koodi jää havaitsematta, kunnes se suoritetaan vastaavalla Office-versiolla.</li>
</ul>
</li>
<li>
<p><strong>Eläminen maassa (LotL):</strong>
Nykyaikaiset haitalliset makrot harvoin pudottavat <code>.exe</code>-tiedostoa suoraan levylle, mikä heti hälyttäisi Endpoint Detection and Response (EDR) -agentit. Sen sijaan ne käyttävät sisäänrakennettuja järjestelmätyökaluja:</p>
<ul>
<li><code>WScript.Shell</code>-instanssin luominen komentoriviargumenttien suorittamista varten.</li>
<li>Kutsutaan <code>PowerShell.exe</code> suorituspolitiikalla ohittaen (<code>-ExecutionPolicy Bypass -WindowStyle Hidden</code>).</li>
<li>Kutsutaan natiiveja Win32-API-rajapintoja <code>Declare PtrSafe Function CreateProcess</code>- tai <code>VirtualAlloc</code>-menetelmien kautta injektoimaan shellcode suoraan järjestelmämuistiin.</li>
</ul>
</li>
</ol>
<h2 id="4-muita-taulukkolaskentaohjelmien-uhkavektoreita-ylittäen-tavallisen-vban">4. Muita taulukkolaskentaohjelmien uhkavektoreita (Ylittäen tavallisen VBA:n)</h2>
<p>Ympäristön suojaaminen <code>.xlsm</code>-tiedostoja vastaan on vain puolet taistelusta. Vastustajat käyttävät myös mekanismeja, jotka toimivat itsenäisesti perinteisestä VBA:sta.</p>
<h3 id="dynaaminen-tietojen-vaihto-dde-ja-csv11--injektio">Dynaaminen tietojen vaihto (DDE) ja <a href="https://docs.fileformat.com/spreadsheet/csv/">CSV</a> -injektio</h3>
<p>Excelissä on vanha protokolla nimeltä Dynamic Data Exchange (DDE), jonka tarkoitus on mahdollistaa tietojen jakaminen käynnissä olevien sovellusten välillä (esimerkiksi suoratoistamalla reaaliaikaisia osakekurssitietoja erillisestä ohjelmasta Excel-soluun).</p>
<ul>
<li><strong>Miten kaavainsyöttö toimii:</strong>
Kun taulukkolaskennan solu alkaa merkeillä kuten <code>=</code>, <code>@</code>, <code>+</code> tai <code>-</code>, Excel tulkitsee sisällön kaavaksi. Jos hyökkääjä hallitsee syötettä, joka viedään taulukkoon (esimerkiksi puhdistamatonta &ldquo;Kommentit&rdquo;-kenttää web-sovelluksessa, joka viedään CSV- tai XLSX-muotoon), hän voi injektoida:
<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>Kun avataan, Excel arvioi kaavan, varoittaa käyttäjää kehotteella ulkoisen sovelluksen käynnistämisestä ja, jos käyttäjä hyväksyy, suorittaa järjestelmän kuoren.</li>
</ul>
<h3 id="excel-40-xlm--perintömankrot">Excel 4.0 (XLM) -perintömankrot</h3>
<p>Ennen kuin VBA otettiin käyttöön vuonna 1993, Excel käytti kaavapohjaista makrojärjestelmää, joka tunnettiin nimellä <strong>Excel 4.0 (XLM) makrot</strong>. Nämä makrot sijaitsevat omistetuilla makroarkkeilla sen sijaan, että ne olisivat erillisessä VBA-projektissa.</p>
<p>Koska XLM-makrot on kirjoitettu solukaavoina (esimerkiksi <code>=EXEC(&quot;calc.exe&quot;)</code>), ne kiertävät monia tavallisia VBA:n staattisia tarkastusmoottoreita. Hyökkääjät suosivat XLM-makroja 2010-luvun loppupuolella ja 2020-luvun alussa välttääkseen automatisoidun havaitsemisen, ennen kuin Microsoft poisti ne oletusarvoisesti käytöstä nykyaikaisissa yritysversioissa.</p>
<h3 id="vahingolliset-ulkoiset-yhteydet-ja-ole-objektit">Vahingolliset ulkoiset yhteydet ja OLE-objektit</h3>
<p>Tavallinen <code>.xlsx</code>-työkirja voi edelleen aiheuttaa riskin ulkoisten resurssien kautta:</p>
<ul>
<li><strong>Upotetut OLE-paketit:</strong> Hyökkääjä voi lisätä suoritettavan tiedoston, joka on naamioitu upotetuksi PDF-kuvakkeeksi, suoraan laskentataulukkoon.</li>
<li><strong>Ulkoiset työkirjalinkit ja verkkokyselyt:</strong> XLSX-tiedosto voi sisältää ulkoisia viitteitä, jotka käynnistävät automaattisesti HTTP GET -pyynnöt hyökkääjän hallitseville komentokeskus (C2) -palvelimille tiedoston avautuessa, ja niitä käytetään pääasiassa tiedusteluun tai netNTLM-hashien keräyshyökkäyksiin.</li>
</ul>
<h2 id="5-yrityksen-koventaminen-ja-syväpuolustuksen-strategiat">5. Yrityksen koventaminen ja syväpuolustuksen strategiat</h2>
<p>Exceliin liittyvien uhkien torjuminen vaatii kerroksellisen lähestymistavan, joka kattaa verkon tarkastuksen, järjestelmäasetukset, käyttöoikeudet ja operatiiviset prosessit.</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-pakota-web-merkintä-motw-makrojen-estäminen">1. Pakota Web-merkintä (MotW) makrojen estäminen</h3>
<p>Vuonna 2022 Microsoft päivitti Office-sovellusten oletuskäyttäytymisen: internetistä peräisin olevissa tiedostoissa olevat makrot <strong>estetään oletuksena</strong>.</p>
<p>Kun käyttäjä lataa tiedoston selaimen tai ulkoisen asiakasohjelman kautta, Windows merkitsee tiedoston vaihtoehtoisella tietovirralla (ADS) nimeltä <code>Zone.Identifier</code> (vyöhyke 3 tarkoittaa Internetiä). Tämän merkin omaaville tiedostoille Excel poistaa makrot kokonaan käytöstä ja näyttää punaisen turvallisuusbannerin: &gt; <em>&ldquo;TURVALLISUUSVAAJA: Microsoft on estänyt makrojen suorittamisen, koska tämän tiedoston lähde on epäluotettava.&rdquo;</em></p>
<p><strong>Hallinnollinen toimenpide:</strong> Varmista, että tämä toiminta toteutetaan ryhmäkäytännön kautta, eikä loppukäyttäjät voi ohittaa sitä:</p>
<ul>
<li><strong>GPO-polku:</strong> <code>User Configuration &gt; Administrative Templates &gt; Microsoft Excel 2016 &gt; Excel Options &gt; Security &gt; Trust Center</code></li>
<li><strong>Asetus:</strong> Ota käyttöön <em>&ldquo;Estä makrojen suorittaminen Office-tiedostoissa Internetistä&rdquo;</em>.</li>
</ul>
<h3 id="2-määritä-hyökkäyspinta-alan-vähentämissäännöt-asr">2. Määritä hyökkäyspinta-alan vähentämissäännöt (ASR)</h3>
<p>Organisaatioiden, jotka käyttävät Microsoft Defender for Endpointia, tulisi ottaa käyttöön ydin‑Attack Surface Reduction -säännöt, jotka on suunniteltu erityisesti Office-sovelluksia varten:</p>
<ul>
<li><code>Estä Office-sovelluksia luomasta aliprosesseja</code> (GUID: <code>D4F940AB-401B-4EFC-AADC-AD5F3C50688A</code>)
<ul>
<li><em>Estää Exceliä käynnistämästä PowerShelliä, CMD:tä tai skriptausmoottoreita.</em></li>
</ul>
</li>
<li><code>Estä Office-sovelluksia injektoimasta koodia muihin prosesseihin</code> (GUID: <code>75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84</code>)</li>
<li><code>Estä Win32 API -kutsuja Office-makroista</code> (GUID: <code>92E6390C-CF9E-43CE-BD8C-0E6F0FE66680</code>)</li>
</ul>
<h3 id="3-hyödynnä-haittaohjelmien-skannausrajapintaa-amsi">3. Hyödynnä haittaohjelmien skannausrajapintaa (AMSI)</h3>
<p>Microsoft 365:n nykyaikaiset versiot integroivat VBA-suorituksen suoraan AMSI:in. Vaikka hyökkääjä käyttäisi monimutkaista merkkijonojen peittokoodausta tai VBA-stomppia, VBA-ajonaikainen moottori välittää rekonstruoidut, salaamattomat komennot asennettuun virustorjunta-/EDR-moottoriisi juuri ennen suoritusta, millisekunnin tarkkuudella. Varmista, että päätepisteen suojaus valvoo aktiivisesti AMSI-ajonaikaisia tapahtumia.</p>
<h3 id="4-siirry-luotettuihin-sijainteihin-ja-digitaalisiin-varmenteisiin">4. Siirry luotettuihin sijainteihin ja digitaalisiin varmenteisiin</h3>
<p>Organisaatioille, jotka ovat riippuvaisia automatisoiduista taulukkolaskentaohjelmista päivittäisissä toiminnoissa:</p>
<ul>
<li><strong>Poista löysät XLSM-tiedostot käyttäjän Lataukset- tai työpöytäkansioista.</strong></li>
<li><strong>Käytä luotettuja sijainteja:</strong> Rajoita makrojen suoritus vain IT-järjestelmänvalvojien hallinnoimiin kirjoitussuojattuihin verkkojaettuihin kansioihin.</li>
<li><strong>Koodin allekirjoitus:</strong> Vaadi, että kaikki sisäisesti kehitetyt makrot allekirjoitetaan kryptografisesti yrityksen julkisen avainin infrastruktuurin (PKI) myöntämällä sertifikaatilla. Määritä Excel suorittamaan <strong>vain</strong> digitaalisesti allekirjoitetut makrot ja estämään hiljaisesti allekirjoittamattomat.</li>
</ul>
<h2 id="6-kehittäjän-näkökulma-turvallisen-automaation-rakentaminen">6. Kehittäjän näkökulma: Turvallisen automaation rakentaminen</h2>
<p>Jos rakennat ohjelmistoa, joka jäsentää, luo tai käyttää Excel-tiedostoja (esim. Python-putkistoja käyttäen <code>pandas</code>/<code>openpyxl</code>, Node.js-mikropalveluita tai C#/.NET-sovelluksia), ota käyttöön nämä kehityssuojaustoimenpiteet:</p>
<ol>
<li>
<p><strong>Hylkää odottamattomat tiedostomuodot latausrajapinnassa:</strong>
Jos sovelluksesi odottaa talousraportteja, tarkista tiukasti, että saapuvat tiedostot noudattavat <code>.xlsx</code>-muotoa. Tarkista sisäiset magic-tavut (standardin zip-otsake <code>50 4B 03 04</code>) ja varmista, ettei arkiston indeksissä ole <code>vbaProject.bin</code>-merkintöjä ennen tallentamista pilvipalveluihin tai tietokantaan.</p>
</li>
<li>
<p><strong>Puhdista data kaavainsinjektioita vastaan:</strong>
Kun viet käyttäjän luomaa syötettä CSV- tai XLSX-tiedostoihin, lisää solun alkuun heittomerkki (<code>'</code>) tai välilyönti, jos solu alkaa vaarallisilla merkeillä (<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>Siirry VBA:sta Office Scriptsiin tai Web-lisäosiin:</strong>
Modernissa yritysautomaatiossa vanha VBA tulisi poistaa kokonaan:</p>
<ul>
<li><strong>Office Scripts:</strong> Kirjoitettu TypeScriptillä, Office Scripts toimii eristettyssä pilviympäristössä ja toimii sujuvasti sekä web- että työpöytäversioissa paljastamatta natiivijärjestelmän kutsuja.</li>
<li><strong>Office Web -lisäosat:</strong> Rakennettu käyttäen standardi HTML:ää, CSS:ää ja nykyaikaista JavaScriptiä, web-lisäosat kommunikoivat hallittujen JavaScript-rajapintojen kautta ja ne ovat eristettyjä paikallisesta käyttöjärjestelmästä.</li>
</ul>
</li>
</ol>
<h2 id="7-yhteenvetotarkistuslista-taulukkolaskentaohjelmien-turvallisuudesta">7. Yhteenvetotarkistuslista taulukkolaskentaohjelmien turvallisuudesta</h2>
<ul>
<li><input disabled="" type="checkbox"> <strong>Pakota <code>.xlsx</code> oletuksena:</strong> Vaadi, että kaikki tavalliset käyttäjän työnkulut tallentavat makroittomina <code>.xlsx</code>-tiedostoina.</li>
<li><input disabled="" type="checkbox"> <strong>Estä internetistä peräisin olevat makrot:</strong> Vahvista, että MotW‑käytäntöjen toteutus on otettu käyttöön organisaatiossasi GPO:n tai Intunen kautta.</li>
<li><input disabled="" type="checkbox"> <strong>Ota ASR-säännöt käyttöön:</strong> Kieltää Office-tuotteiden käynnistää komentotulkkeja tai aliprosesseja.</li>
<li><input disabled="" type="checkbox"> <strong>Vanhennetaan Excel 4.0 (XLM):</strong> Varmista, että vanhat XLM-makromoottorit on poistettu pysyvästi käytöstä kaikilla työasemilla.</li>
<li><input disabled="" type="checkbox"> <strong>Puhdista sovelluksen vienti:</strong> Suojaa CSV- ja Excel-luontirutiinit CSV-/kaava-injektiolta.</li>
<li><input disabled="" type="checkbox"> <strong>Siirry kohti Office Scripts -ratkaisuja:</strong> Muuta vanhat hallinnolliset makrot TypeScript-pohjaisiksi Office Scripts -skripteiksi ja hallituiksi API:ksi.</li>
</ul>
<p>Kun taulukkolaskentaohjelmat käsitellään eivät pelkästään asiakirjatiedostoina, vaan rakenteellisina ohjelmistokonttainerina, joilla on suoritettavuusominaisuuksia, turvallisuustiimit ja kehittäjät voivat tehokkaasti neutraloida yhden vanhimmista hyökkäysvektoreista yritystietojenkäsittelyssä.</p>
<h1 id="usein-kysytyt-kysymykset-faq">Usein kysytyt kysymykset (FAQ)</h1>
<h3 id="k1-voiko-xlsx-päätteinen-tiedosto-suorittaa-haitallisen-makron">K1: Voiko <code>.xlsx</code>-päätteinen tiedosto suorittaa haitallisen makron?</h3>
<p>Ei, OpenXML-standardi kieltää tiukasti makrokoodin <code>.xlsx</code>-tiedostoissa, ja Excel hylkää tai poistaa kaikki VBA-projektit, jotka on injektoitu aitoon <code>.xlsx</code>-konttiin.</p>
<h3 id="k2-mitä-minun-pitäisi-tehdä-jos-exceltiedosto-pyytää-minua-enable-editing-tai-enable-content">K2: Mitä minun pitäisi tehdä, jos Excel‑tiedosto pyytää minua &ldquo;Enable Editing&rdquo; tai &ldquo;Enable Content&rdquo;?</h3>
<p>Myönnä oikeudet vain, jos tunnet lähettäjän ja odotit tiedostoa; tämä kehotus on ensisijainen tarkistuspiste, jonka kautta epäluotettavat makrot voivat suorittaa koodia.</p>
<h3 id="k3-miten-microsoft-excel-määrittää-onko-tiedosto-tullut-internetistä">K3: Miten Microsoft Excel määrittää, onko tiedosto tullut internetistä?</h3>
<p>Windows liittää ladattuihin tiedostoihin piilotetun &quot;Mark of the Web&quot; (Zone.Identifier) -virran, mikä kertoo Excelille avata ne suojatussa näkymässä ja estää makrot oletuksena.</p>
<h3 id="k4--ovatko-csvtiedostot-turvallisempia-kuin-xlsx1-ja-xlsm7--tiedostot">K4:  Ovatko CSV‑tiedostot turvallisempia kuin <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> ja <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a> -tiedostot?</h3>
<p>CSV-tiedostot eivät voi sisältää natiivimakroja, mutta ne ovat edelleen alttiita kaava-injektiohyökkäyksille, jos ne sisältävät haitallisia komentoja, jotka Excel suorittaa avattaessa.</p>
<h3 id="k5-miten-nykyaikaiset-officeskriptit-eroavat-perinteisistä-vbamakroista">K5: Miten nykyaikaiset Office‑skriptit eroavat perinteisistä VBA‑makroista?</h3>
<p>Office Scripts -skriptit suoritetaan TypeScriptillä eristetyn ajonaikaisen ympäristön sisällä, mikä estää niitä pääsemästä paikalliseen tiedostojärjestelmääsi, komentoriville tai käyttöjärjestelmän API:hin.</p>
<h2 id="katso-myös">Katso myös</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 vuonna 2026: Paras taulukkolomake kehittäjille</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 – Oikean taulukkolomakkeen valinta</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/what-is-excel/">Mikä on Excel? Keskeistä tietoa, jonka sinun tulee tietää</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/excel-file-extensions-xlsx-xlsm-xls-xltx-xltm/">Excel-tiedostomuodot: XLSX, XLSM, XLS, XLTX, XLTM</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/xls-vs-xlsx/">XLS:n ja XLSX:n välinen ero</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
