<?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 kontra XLSM on File Format Blog</title>
    <link>https://blog.fileformat.com/pl/tag/xlsx-kontra-xlsm/</link>
    <description>Recent content in XLSX kontra XLSM on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/pl/tag/xlsx-kontra-xlsm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bezpieczeństwo plików Excel wyjaśnione: XLSX, XLSM i ryzyko makr</title>
      <link>https://blog.fileformat.com/pl/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/pl/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</guid>
      <description>Zrozum rzeczywiste różnice w bezpieczeństwie między plikami XLSX i XLSM, jak działają ataki oparte na makrach oraz jak bronić swojej organizacji przed złośliwymi arkuszami kalkulacyjnymi.</description>
      <content:encoded><![CDATA[<p><strong>Ostatnia aktualizacja</strong>: 28 wrz 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="bezpieczeństwo-plików-excel-wyjaśnione-xlsx-xlsm-i-ryzyko-makr">Bezpieczeństwo plików Excel wyjaśnione: XLSX, XLSM i ryzyko makr</h2>
<p>Od dziesięcioleci Microsoft Excel jest uniwersalnym silnikiem operacji biznesowych. Równoważy budżety korporacyjne, wizualizuje złożone zestawy danych, śledzi zapasy i napędza analityczne pipeline&rsquo;y w praktycznie każdej branży.</p>
<p>Jednak ta sama elastyczność obliczeniowa sprawia, że arkusze kalkulacyjne są trwałym ulubieńcem cyberprzeciwników. Atakujący wykorzystują arkusze kalkulacyjne od wczesnych dni wirusów makr pod koniec lat 90. Microsoft i administratorzy systemów wprowadzili wiele warstw obrony — takich jak segregacja formatów plików i domyślne blokowanie makr — jednak inżynieria społeczna oraz subtelne ryzyka architektoniczne nadal sprawiają, że ataki ukierunkowane na Excel pozostają istotne.</p>
<p>Aby zbudować odporną postawę bezpieczeństwa, programiści, administratorzy i zaawansowani użytkownicy muszą spojrzeć pod powierzchnię interfejsu skoroszytu. Zrozumienie, jak działa podstawowy format OpenXML, jak <code>.xlsx</code> i <code>.xlsm</code> różnią się na poziomie architektonicznym oraz jak działają mechanizmy wykonywania makr, jest kluczowe dla ochrony współczesnych punktów końcowych.</p>
<h2 id="1-budowa-współczesnych-plików-excel-openxml-rozłożone-na-części">1. Budowa współczesnych plików Excel: OpenXML rozłożone na części</h2>
<p>Przed wydaniem Microsoft Office 2007 Excel zapisywał pliki głównie w własnych formatach binarnych, najważniejszym z nich był format <code>.xls</code> (oparty na Binary Interchange File Format, czyli BIFF8). W plikach <code>.xls</code> rekordy danych, definicje formatowania, formuły oraz strumienie makr Visual Basic for Applications (VBA) były pakowane w pojedynczy kontener strukturalny. Utrudniało to programową inspekcję i pozwalało atakującym ukrywać złośliwe skrypty ładunków w nieprzejrzystych sektorach binarnych.</p>
<p>Od wersji Excel 2007 Microsoft wprowadził standard <strong>Office Open XML (OOXML)</strong> (zstandaryzowany jako ECMA-376 i ISO/IEC 29500). W ramach OOXML skoroszyty Excela nie są już monolitycznymi blokami binarnymi. Zamiast tego są to archiwa zip zawierające hierarchiczną strukturę dokumentów XML, tabele relacji oraz osadzone zasoby multimedialne.</p>
<h3 id="wewnątrz-kontenera-zip">Wewnątrz kontenera ZIP</h3>
<p>Jeśli weźmiesz dowolny standardowy nowoczesny skoroszyt Excel i zmienisz jego rozszerzenie na <code>.zip</code>, możesz wyodrębnić jego zawartość przy użyciu dowolnego standardowego narzędzia do dekompresji:</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>Ta zmiana strukturalna przyniosła natychmiastowe korzyści bezpieczeństwa:</p>
<ol>
<li><strong>DPI (Deep Packet Inspection) &amp; Widoczność Bramy:</strong> Urządzenia zabezpieczające, proxy i agenty końcowe mogą rozpakowywać archiwum w locie i analizować drzewa XML w formie czystego tekstu, aby wykrywać podejrzane ciągi, zewnętrzne adresy URL lub osadzone obiekty.</li>
<li><strong>Deterministyczna Walidacja Plików:</strong> Jeśli plik twierdzi, że jest dokumentem OpenXML, ale narusza ograniczenia schematu, Excel odmawia jego otwarcia lub uruchamia go w trybie odzyskiwania w piaskownicy.</li>
<li><strong>Separacja Formatu:</strong> Microsoft oddzielił zwykłe arkusze kalkulacyjne od plików zdolnych do wykonywania osadzonych skryptów proceduralnych.</li>
</ol>
<h2 id="2-xlsx1-vs-xlsm7-granica-architektoniczna">2. <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> vs. <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a>: Granica architektoniczna</h2>
<p>Główna różnica między <code>.xlsx</code> a <code>.xlsm</code> polega na tym, czy struktura pliku pozwala na dołączenie wykonywalnych projektów makr.</p>
<table>
<thead>
<tr>
<th style="text-align:left">Funkcja / Wymiar</th>
<th style="text-align:left"><code>.xlsx</code> (Arkusz kalkulacyjny Excel OpenXML)</th>
<th style="text-align:left"><code>.xlsm</code> (Arkusz kalkulacyjny Excel z obsługą makr)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>Typ treści 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>Kontener przechowywania VBA</strong></td>
<td style="text-align:left"><strong>Ściśle zabronione.</strong> Nie można przechowywać <code>vbaProject.bin</code></td>
<td style="text-align:left"><strong>Dozwolone.</strong> Zawiera <code>xl/vbaProject.bin</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>Ryzyko natywnego wykonywania</strong></td>
<td style="text-align:left">Znikomy wpływ na wykonywanie makr; ograniczony do wstrzykiwania formuł/DDE</td>
<td style="text-align:left">Wysoki; może uruchamiać zautomatyzowany kod VBA przy interakcji z skoroszytem</td>
</tr>
<tr>
<td style="text-align:left"><strong>Ścisły schemat OpenXML</strong></td>
<td style="text-align:left">Zgodny ze ścisłymi, wolnymi od makr definicjami XML</td>
<td style="text-align:left">Zawiera definicje dla starszych i nowoczesnych rozszerzeń automatyzacji</td>
</tr>
<tr>
<td style="text-align:left"><strong>Wskaźnik wizualny użytkownika</strong></td>
<td style="text-align:left">Standardowa zielona ikona arkusza kalkulacyjnego</td>
<td style="text-align:left">Ikona arkusza kalkulacyjnego oznaczona wykrzyknikiem</td>
</tr>
</tbody>
</table>
<h3 id="mechanizm-egzekwowania-dlaczego-xlsx-nie-może-uruchamiać-makr">Mechanizm egzekwowania: Dlaczego XLSX nie może uruchamiać makr</h3>
<p>Częste pytanie wśród młodszych administratorów i programistów brzmi: <em>Co się stanie, jeśli atakujący weźmie złośliwy plik <code>.xlsm</code>, wstrzyknie kod wykonywalny i zmieni rozszerzenie pliku na <code>.xlsx</code>?</em></p>
<p>Krótka odpowiedź: <strong>Plik nie wykona makra.</strong></p>
<p>Excel nie opiera się wyłącznie na rozszerzeniu pliku, aby określić zasady wykonywania. Przy otwieraniu pliku o nazwie <code>.xlsx</code>:</p>
<ol>
<li>Excel analizuje zawartość zip i odwołuje się do <code>[Content_Types].xml</code>.</li>
<li>W prawdziwym pliku <code>.xlsx</code> wszystkie zdefiniowane typy zawartości reprezentują standardowe elementy danych (takie jak <code>worksheet</code>, <code>sharedStrings</code> lub <code>styles</code>).</li>
<li>Jeśli atakujący ręcznie wstrzyknie skompilowany strumień VBA (<code>xl/vbaProject.bin</code>) do pakietu <code>.xlsx</code> i zaktualizuje relacje, Excel napotyka wyraźny konflikt schematu:
<ul>
<li>Widzi rozszerzenie <code>.xlsx</code> powiązane z typami zawartości wskazującymi na możliwość makr.</li>
<li>Excel zgłasza krytyczny błąd integralności: <em>&ldquo;Excel nie może otworzyć pliku &lsquo;filename.xlsx&rsquo;, ponieważ format pliku lub jego rozszerzenie jest nieprawidłowe. Sprawdź, czy plik nie został uszkodzony&hellip;&rdquo;</em></li>
</ul>
</li>
<li>Jeśli atakujący pozostawi wewnętrzne typy nienaruszone, nie rejestrując pliku binarnego, Excel traktuje <code>vbaProject.bin</code> jako nieodwołany, osierocony załącznik w archiwum zip i całkowicie odrzuca go podczas cyklu ładowania.</li>
</ol>
<p>W konsekwencji, <strong>plik działający wyłącznie jako prawdziwy kontener <code>.xlsx</code> nie może uruchamiać natywnego kodu VBA.</strong> Jednak nie oznacza to, że pliki <code>.xlsx</code> są wolne od wszystkich wektorów ataku, co zostanie omówione później w tym przewodniku.</p>
<h2 id="3-ryzyka-makr-i-cykl-życia-ataku">3. Ryzyka makr i cykl życia ataku</h2>
<p>Makra zostały zaprojektowane w celu automatyzacji powtarzalnych zadań księgowych, modelowania finansowego i manipulacji danymi przy użyciu Visual Basic for Applications (VBA). Ponieważ VBA został stworzony do automatyzacji w miejscu pracy, zapewniono mu rozległy dostęp do podstawowego systemu operacyjnego Windows poprzez Component Object Model (COM), Windows Script Host (WSH) oraz bezpośrednie wywołania API Win32.</p>
<p>Gdy nieufne makro zostaje uruchomione, działa z <strong>dokładnie takimi samymi uprawnieniami jak zalogowany użytkownik</strong>. Nie jest ono zamknięte w wirtualnym piaskownicy przeglądarki w stylu 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="typowe-techniki-wprowadzania-makr">Typowe techniki wprowadzania makr</h3>
<ol>
<li>
<p><strong>Haki automatycznego uruchamiania:</strong>
Atakujący umieszczają punkt wejścia w wbudowanych obsługach zdarzeń, takich jak <code>Sub Auto_Open()</code> lub <code>Private Sub Workbook_Open()</code>. Gdy tylko użytkownik przyzna uprawnienia do wykonania, te procedury uruchamiają się bez konieczności klikania w arkuszu kalkulacyjnym.</p>
</li>
<li>
<p><strong>Maskowanie i Stomping:</strong></p>
<ul>
<li><strong>Maskowanie ciągów:</strong> Ładunki ukrywają adresy URL i wywołania systemowe przy użyciu tablic znaków, kodowania XOR, dekodowania Base64 lub konkatenacji zmiennych środowiskowych (np. <code>Chr(112) &amp; Chr(111) &amp; Chr(119)...</code>).</li>
<li><strong>VBA Stomping:</strong> VBA istnieje w dwóch formach w pliku <code>vbaProject.bin</code>: interpretowany kod źródłowy i skompilowany p-code (pseudo-kod skierowany do konkretnej wersji Office, która go skompilowała). Atakujący mogą całkowicie usunąć czytelny kod źródłowy, pozostawiając jedynie skompilowany p-code. Wiele podstawowych rozwiązań antywirusowych i analizatorów statycznych sprawdza tylko strumień źródłowy, pozostawiając p-code niewykrytym aż do uruchomienia przez odpowiednią wersję Office.</li>
</ul>
</li>
<li>
<p><strong>Wykorzystywanie wbudowanych narzędzi (LotL):</strong>
Nowoczesne złośliwe makra rzadko zapisują plik <code>.exe</code> bezpośrednio na dysku, co natychmiast powiadomiłoby agenty Endpoint Detection and Response (EDR). Zamiast tego współdziałają z wbudowanymi narzędziami systemowymi:</p>
<ul>
<li>Tworzenie instancji <code>WScript.Shell</code> w celu wykonania argumentów wiersza poleceń.</li>
<li>Wywoływanie <code>PowerShell.exe</code> z pominięciem polityki wykonywania (<code>-ExecutionPolicy Bypass -WindowStyle Hidden</code>).</li>
<li>Wywoływanie natywnych interfejsów Win32 API za pomocą <code>Declare PtrSafe Function CreateProcess</code> lub <code>VirtualAlloc</code>, aby wstrzyknąć shellcode bezpośrednio do pamięci systemowej.</li>
</ul>
</li>
</ol>
<h2 id="4-inne-wektory-zagrożeń-w-arkuszach-kalkulacyjnych-poza-standardowym-vba">4. Inne wektory zagrożeń w arkuszach kalkulacyjnych (poza standardowym VBA)</h2>
<p>Zabezpieczenie środowiska przed plikami <code>.xlsm</code> to dopiero połowa walki. Przeciwnicy korzystają również z mechanizmów działających niezależnie od tradycyjnego VBA.</p>
<h3 id="dynamiczna-wymiana-danych-dde-i-wstrzykiwanie-csv11">Dynamiczna wymiana danych (DDE) i wstrzykiwanie <a href="https://docs.fileformat.com/spreadsheet/csv/">CSV</a></h3>
<p>Excel posiada starszy protokół o nazwie Dynamic Data Exchange (DDE), zaprojektowany do udostępniania danych pomiędzy uruchomionymi aplikacjami (na przykład strumieniowanie danych z żywego notowania giełdowego z osobnego programu do komórki w Excelu).</p>
<ul>
<li><strong>Jak działa wstrzykiwanie formuł:</strong>
Gdy komórka arkusza zaczyna się od znaków takich jak <code>=</code>, <code>@</code>, <code>+</code> lub <code>-</code>, Excel interpretuje zawartość jako formułę. Jeśli atakujący kontroluje dane eksportowane do arkusza (na przykład nieoczyszczone pole &ldquo;Comments&rdquo; w aplikacji internetowej eksportowane do CSV lub XLSX), może wstrzyknąć:
<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>Po otwarciu Excel ocenia formułę, wyświetla użytkownikowi komunikat o uruchomieniu zewnętrznej aplikacji i, po zatwierdzeniu, uruchamia powłokę systemową.</li>
</ul>
<h3 id="makra-dziedziczone-excel-40-xlm">Makra dziedziczone Excel 4.0 (XLM)</h3>
<p>Zanim w 1993 roku wprowadzono VBA, Excel używał systemu makr opartego na formułach, znanego jako <strong>Excel 4.0 (XLM) macros</strong>. Te makra znajdują się w dedykowanych arkuszach makr, a nie w osobnym projekcie VBA.</p>
<p>Ponieważ makra XLM są zapisywane jako formuły komórek (np. <code>=EXEC(&quot;calc.exe&quot;)</code>), omijają wiele standardowych silników statycznej inspekcji VBA. Atakujący preferowali makra XLM pod koniec 2010‑tych i na początku 2020‑tych, aby uniknąć automatycznego wykrywania, zanim Microsoft wyłączył je domyślnie w nowoczesnych wersjach korporacyjnych.</p>
<h3 id="złośliwe-połączenia-zewnętrzne-i-obiekty-ole">Złośliwe połączenia zewnętrzne i obiekty OLE</h3>
<p>Zwykły skoroszyt <code>.xlsx</code> nadal może wprowadzać ryzyko poprzez zasoby zewnętrzne:</p>
<ul>
<li><strong>Embedded OLE Packages:</strong> Atakujący może wstawić plik wykonywalny ukryty jako wbudowaną ikonę PDF bezpośrednio w arkusz.</li>
<li><strong>External Workbook Links &amp; Web Queries:</strong> Plik XLSX może zawierać odwołania zewnętrzne, które automatycznie inicjują żądania HTTP GET do serwerów command-and-control (C2) kontrolowanych przez atakującego po otwarciu pliku, głównie wykorzystywane do rozpoznania lub ataków zbierających hashe netNTLM.</li>
</ul>
<h2 id="5-wzmacnianie-przedsiębiorstwa-i-strategie-obrony-warstwowej">5. Wzmacnianie przedsiębiorstwa i strategie obrony warstwowej</h2>
<p>Obrona przed zagrożeniami pochodzącymi z Excela wymaga warstwowego podejścia obejmującego inspekcję sieci, konfigurację systemu, kontrolę dostępu oraz procesy operacyjne.</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-wymuś-znacznik-sieci-motw-i-blokowanie-makr">1. Wymuś znacznik sieci (MotW) i blokowanie makr</h3>
<p>W 2022 roku Microsoft zaktualizował domyślne zachowanie aplikacji Office: makra w plikach pochodzących z internetu są <strong>domyślnie blokowane</strong>.</p>
<p>Gdy użytkownik pobiera plik za pośrednictwem przeglądarki lub zewnętrznego klienta, Windows oznacza plik alternatywnym strumieniem danych (ADS) o nazwie <code>Zone.Identifier</code> (Strefa 3 wskazuje na Internet). Dla plików z tym oznaczeniem Excel całkowicie wyłącza makra i wyświetla czerwony pasek bezpieczeństwa: &gt; <em>&ldquo;RYZYKO BEZPIECZEŃSTWA: Microsoft zablokował uruchamianie makr, ponieważ źródło tego pliku jest niepewne.&rdquo;</em></p>
<p><strong>Działanie administracyjne:</strong> Upewnij się, że to zachowanie jest egzekwowane za pomocą Group Policy i nie może być nadpisane przez użytkowników końcowych:</p>
<ul>
<li><strong>Ścieżka GPO:</strong> <code>User Configuration &gt; Administrative Templates &gt; Microsoft Excel 2016 &gt; Excel Options &gt; Security &gt; Trust Center</code></li>
<li><strong>Ustawienie:</strong> Włącz <em>&ldquo;Blokuj uruchamianie makr w plikach Office pochodzących z Internetu&rdquo;</em>.</li>
</ul>
<h3 id="2-skonfiguruj-reguły-redukcji-powierzchni-ataku-asr">2. Skonfiguruj reguły redukcji powierzchni ataku (ASR)</h3>
<p>Organizacje korzystające z Microsoft Defender for Endpoint powinny aktywować podstawowe reguły redukcji powierzchni ataku zaprojektowane specjalnie dla aplikacji Office:</p>
<ul>
<li><code>Blokuj aplikacje Office przed tworzeniem procesów potomnych</code> (GUID: <code>D4F940AB-401B-4EFC-AADC-AD5F3C50688A</code>)
<ul>
<li><em>Zapobiega uruchamianiu przez Excel PowerShell, CMD lub silników skryptowych.</em></li>
</ul>
</li>
<li><code>Zablokuj aplikacje Office przed wstrzykiwaniem kodu do innych procesów</code> (GUID: <code>75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84</code>)</li>
<li><code>Zablokuj wywołania Win32 API z makr Office</code> (GUID: <code>92E6390C-CF9E-43CE-BD8C-0E6F0FE66680</code>)</li>
</ul>
<h3 id="3-wykorzystaj-interfejs-skanowania-antymalware-amsi">3. Wykorzystaj interfejs skanowania antymalware (AMSI)</h3>
<p>Nowoczesne wersje Microsoft 365 integrują wykonywanie VBA bezpośrednio z AMSI. Nawet jeśli atakujący zastosuje złożone zaciemnianie ciągów lub VBA stomping, silnik uruchomieniowy VBA przekazuje odtworzone, niezaszyfrowane polecenia do zainstalowanego silnika antywirusa/EDR w dokładnie tę milisekundę przed wykonaniem. Upewnij się, że ochrona punktu końcowego aktywnie monitoruje zdarzenia uruchomieniowe AMSI.</p>
<h3 id="4-przejście-do-zaufanych-lokalizacji-i-certyfikatów-cyfrowych">4. Przejście do zaufanych lokalizacji i certyfikatów cyfrowych</h3>
<p>Dla organizacji, które polegają na zautomatyzowanych arkuszach kalkulacyjnych w codziennej działalności:</p>
<ul>
<li><strong>Usuń luźne pliki XLSM w folderach Pobieranie użytkownika lub na pulpicie.</strong></li>
<li><strong>Użyj Zaufanych Lokalizacji:</strong> Ogranicz wykonywanie makr wyłącznie do udziałów sieciowych tylko do odczytu zarządzanych przez administratorów IT.</li>
<li><strong>Podpisywanie kodu:</strong> Nakaz, aby wszystkie wewnętrznie opracowane makra były kryptograficznie podpisane przy użyciu certyfikatu wydanego przez przedsiębiorstwą Infrastrukturę Klucza Publicznego (PKI). Skonfiguruj Excel tak, aby wykonywał <strong>tylko</strong> cyfrowo podpisane makra i cicho blokował te niepodpisane.</li>
</ul>
<h2 id="6-perspektywa-dewelopera-budowanie-bezpiecznej-automatyzacji">6. Perspektywa dewelopera: budowanie bezpiecznej automatyzacji</h2>
<p>Jeśli tworzysz oprogramowanie, które parsuje, generuje lub konsumuje pliki Excel (np. potoki Pythona używające <code>pandas</code>/<code>openpyxl</code>, mikroserwisy Node.js lub aplikacje C#/.NET), zastosuj następujące zabezpieczenia programistyczne:</p>
<ol>
<li>
<p><strong>Odrzuć nieoczekiwane formaty plików na granicy przesyłania:</strong>
Jeśli Twoja aplikacja oczekuje raportów finansowych, ściśle weryfikuj, czy przychodzące pliki są w formacie <code>.xlsx</code>. Sprawdź wewnętrzne bajty magiczne (standardowy nagłówek zip <code>50 4B 03 04</code>) i upewnij się, że w indeksie archiwum nie ma wpisów <code>vbaProject.bin</code> przed zapisaniem ich do chmurowych koszyków lub baz danych.</p>
</li>
<li>
<p><strong>Sanitizuj dane przed wstrzykiwaniem formuł:</strong>
Podczas eksportowania danych wprowadzonych przez użytkownika do plików CSV lub XLSX, poprzedź apostrofem (<code>'</code>) lub spacją każdą komórkę zaczynającą się od niebezpiecznych znaków (<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>Przejdź z VBA na Office Scripts lub dodatki internetowe:</strong>
W nowoczesnej automatyzacji przedsiębiorstw całkowicie wycofaj przestarzały VBA:</p>
<ul>
<li><strong>Office Scripts:</strong> Napisane w TypeScript, Office Scripts działają w odizolowanym środowisku chmurowym i działają płynnie zarówno w wersjach webowych, jak i desktopowych, nie udostępniając natywnych wywołań systemu operacyjnego.</li>
<li><strong>Office Web Add-ins:</strong> Zbudowane przy użyciu standardowego HTML, CSS i nowoczesnego JavaScript, dodatki internetowe komunikują się za pośrednictwem zarządzanych interfejsów API JavaScript i są odizolowane od lokalnego systemu operacyjnego.</li>
</ul>
</li>
</ol>
<h2 id="7-podsumowująca-lista-kontrolna-bezpieczeństwa-arkuszy-kalkulacyjnych">7. Podsumowująca lista kontrolna bezpieczeństwa arkuszy kalkulacyjnych</h2>
<ul>
<li><input disabled="" type="checkbox"> <strong>Wymuś <code>.xlsx</code> domyślnie:</strong> Wymagaj, aby wszystkie standardowe przepływy pracy użytkowników zapisywały pliki jako <code>.xlsx</code> bez makr.</li>
<li><input disabled="" type="checkbox"> <strong>Blokuj makra pochodzące z Internetu:</strong> Potwierdź, że egzekwowanie polityki MotW jest wdrożone w całej organizacji za pomocą GPO lub Intune.</li>
<li><input disabled="" type="checkbox"> <strong>Włącz reguły ASR:</strong> Zabroń produktom Office uruchamiania interpreterów poleceń lub procesów potomnych.</li>
<li><input disabled="" type="checkbox"> <strong>Wycofaj Excel 4.0 (XLM):</strong> Upewnij się, że starsze silniki makr XLM są trwale wyłączone na wszystkich stacjach roboczych.</li>
<li><input disabled="" type="checkbox"> <strong>Sanityzuj eksporty aplikacji:</strong> Chroń procedury generowania CSV i Excel przed wstrzykiwaniem CSV/formuł.</li>
<li><input disabled="" type="checkbox"> <strong>Przejdź na Office Scripts:</strong> Przenieś starsze makra administracyjne do Office Scripts opartych na TypeScript i zarządzanych interfejsów API.</li>
</ul>
<p>Traktując arkusze kalkulacyjne nie tylko jako pliki dokumentów, ale jako ustrukturyzowane kontenery oprogramowania posiadające możliwości wykonywania, zespoły ds. bezpieczeństwa i programiści mogą skutecznie neutralizować jeden z najstarszych wektorów ataku w korporacyjnym przetwarzaniu danych.</p>
<h1 id="najczęściej-zadawane-pytania-faq">Najczęściej zadawane pytania (FAQ)</h1>
<h3 id="q1-czy-plik-kończący-się-na-xlsx-może-uruchomić-złośliwe-makro">Q1: Czy plik kończący się na <code>.xlsx</code> może uruchomić złośliwe makro?</h3>
<p>Nie, standard OpenXML surowo zabrania kodu makr w plikach <code>.xlsx</code>, a Excel odrzuci lub usunie każdy projekt VBA wstrzyknięty do prawdziwego kontenera <code>.xlsx</code>.</p>
<h3 id="q2-co-powinienem-zrobić-jeśli-plik-excel-prosi-mnie-o-włączenie-edycji-lub-włączenie-zawartości">Q2: Co powinienem zrobić, jeśli plik Excel prosi mnie o &ldquo;Włączenie edycji&rdquo; lub &ldquo;Włączenie zawartości&rdquo;?</h3>
<p>Udzielaj uprawnień tylko wtedy, gdy znasz nadawcę i oczekujesz pliku; to okno dialogowe jest głównym punktem kontrolnym, który pozwala niezweryfikowanym makrom wykonywać kod.</p>
<h3 id="q3-jak-microsoft-excel-określa-czy-plik-pochodzi-z-internetu">Q3: Jak Microsoft Excel określa, czy plik pochodzi z internetu?</h3>
<p>Windows dołącza ukryty strumień &ldquo;Mark of the Web&rdquo; (Zone.Identifier) do pobranych plików, co powoduje, że Excel otwiera je w Widoku chronionym i domyślnie blokuje makra.</p>
<h3 id="q4--czy-pliki-csv-są-bezpieczniejsze-niż-pliki-xlsx1-i-xlsm7">Q4:  Czy pliki CSV są bezpieczniejsze niż pliki <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> i <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a>?</h3>
<p>Pliki CSV nie mogą zawierać natywnych makr VBA, ale pozostają podatne na ataki wstrzykiwania formuł, jeśli zawierają złośliwe polecenia wykonywane przez Excel po otwarciu.</p>
<h3 id="q5-czym-nowoczesne-office-scripts-różnią-się-od-tradycyjnych-makr-vba">Q5: Czym nowoczesne Office Scripts różnią się od tradycyjnych makr VBA?</h3>
<p>Office Scripts działają w TypeScript w środowisku uruchomieniowym w piaskownicy, co uniemożliwia im dostęp do lokalnego systemu plików, wiersza poleceń lub interfejsów API systemu operacyjnego.</p>
<h2 id="zobacz-także">Zobacz także</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 w 2026: Najlepszy format arkusza kalkulacyjnego dla programistów</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 – Wybór odpowiedniego formatu arkusza kalkulacyjnego</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/what-is-excel/">Czym jest Excel? Kluczowe informacje, które musisz znać</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/excel-file-extensions-xlsx-xlsm-xls-xltx-xltm/">Formaty plików Excel: XLSX, XLSM, XLS, XLTX, XLTM</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/xls-vs-xlsx/">Różnica między XLS a XLSX</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
