modyfikacja chronionych komórek w excellu

Excel – ochrona komórek hasłem to parodia bezpieczeństwa

Ta krótka instrukcja tłumaczy dlaczego nie powinno się polegać na ochronie komórek za pomocą hasła w Excelu. Lub też jak zmodyfikować komórki chronione hasłem, co kto woli 🙂

Do instrukcji użyjemy prostego pliku o nazwie „chroniony.xlsx”, w którym komórka B2 zawiera treść: „chroniona zawartość komórki” i jest ona zabezpieczona hasłem. Próba jej modyfikacji skutkuje komunikatem:

ochrona komórek hasłem w excelu
ochrona komórek hasłem w Excelu

Format xlsx

Czym tak na prawdę jest format xlsx? To skompresowany za pomocą algorytmu zip folder, którego zawartość stanowią pliki tekstowe w formacie XML reprezentujące poszczególne arkusze. Zobaczmy co się stanie, gdy zmienimy rozszerzenie pliku „chroniony.xlsx” na „chroniony.zip”:

zmiana rozszerzenia .xlsx na .zip
zmiana rozszerzenia .xlsx na .zip

W efekcie otrzymujemy standardowy plik .zip, który możemy otworzyć przy użyciu dowolnego narzędzia do archiwizacji plików obsługującego ten format. Zróbmy to zatem, i przejdźmy do podkatalogu /xl/worksheets:

zawartość podkatalogu /xl/worksheets
zawartość podkatalogu /xl/worksheets

Jak widać powyżej w katalogu tym znajduje się plik „sheet1.xml”, który jest niczym innym jak pierwszym arkuszem naszego pliku „chroniony.xlsx”

Zdejmujemy ochronę komórek

Wspomniany powyżej „sheet1.xml” otwieramy przy użyciu dowolnego edytora tekstu:

arkusz 1 w XML-u
arkusz 1 w XML-u

Następnie w kodzie XML wyszukujemy znacznik rozpoczynający się ciągiem znaków „<sheetProtection” i kasujemy go w całości, aż do znaku „/>” – tak jak to zaznaczono na obrazku powyżej. Teraz wystarczy zapisać plik „sheet1.xml” i odwrócić cały proces, czyli skompresować folder „chroniony.zip” i zmienić rozszerzenie pliku na „chroniony.xlsx”. Co się stanie gdy otworzymy plik i ponownie spróbujemy zmodyfikować zawartość chronionej komórki B2?

modyfikacja chronionych komórek w Excelu
modyfikacja chronionych komórek w Excelu

Voila!. Dziękujemy za uwagę 🙂

Czy to problem?

Na pierwszy rzut oka wydawać się może, że to nic strasznego bo przecież funkcji blokowania komórek używa się raczej do ochrony layoutu arkusza przed przypadkowymi zmianami. W praktyce jednak funkcja ta służy często do ochrony formuł, które są odpowiedzialne np. za naliczanie premii, naliczanie punktów na egzaminie albo ocenę wniosków o dofinansowanie. Czym to może skutkować, nie trudno się domyślić. Jest to dobry przykład na potwierdzenie znanego faktu, iż bezpieczeństwo to nie tylko poufność, ale również integralność i dostępność. To, że coś nie jest poufne (bo przecież formułę wyliczającą każdy widzi), nie oznacza, że każdy powinien móc ją zmodyfikować. Byłoby to właśnie naruszenie integralności, przed którym ochrona komórki hasłem ma chronić. Przynajmniej w teorii.


„Bezpieczna Pigułka” to codzienna, mała dawka wiedzy z zakresu cyberbezpieczeństwa. Wszystkie teksty z tej kategorii znajdziesz TUTAJ. Możesz też zapisać się na nasz newsletter by być informowanym o nowościach.

Chcesz uniknąć innych często spotykanych błędów związanych z bezpieczeństwem? Zapoznaj się z naszym poradnikiem:

 

26 komentarzy

    1. Wersje w formacie Open Office XML, czyli od 2007 wzwyż. System nie ma tutaj raczej znaczenia, chociaż przyznam, że na jabłkach nie próbowałem. Na screenach jest Libre Office i Ubuntu, ale plik w Excelowym formacie Open Office XML.

      1. Nie działa na plikach stworzonych w Excelu 2013, 2016 i 365 zapisanych jako Excel workbook (.xlsx) lub strict open XML Spreadsheet (.xslx)
        Haslo jest w nich zapisywane w formie hasha, ogólnie ten wiersz ma nieco inny format a usunięcie go uszkadza plik.

        1. Mam najnowszą wersję 365 i usunięcie całego tagu działa. Edytuj notatnikiem, nie wordem.

        2. U mnie działa na 2013 ale wycinam z zip’a plik arkusza, edytuję w notatniku i wklejam raz jeszcze. Śmiga aż miło xD

  1. Ale to nie jest ochrona w sensie bezpieczeństwa, tylko ochrona na potrzeby ludzi. Robisz sobie fajny firmowy arkusz z formułami i markami żeby ludzie mogli sobie coś tam policzyć, tylko żeby mniej ogarnięci w excelfu ludzie nie popsuli ci roboty to zabezpieczasz komórki przed edycją.

    1. To jest ochrona integralności dokumentu, zgodzę się, że nie poufności. Ale niestety w niejednej firmie chroni się w ten sposób formuły naliczające premie, jakieś krytyczne raportowanie itp. A ja osobiście dostałem kiedyś arkusz egzaminacyjny, w którym formuła decydująca o tym czy się zdało czy nie była chroniona właśnie w ten sposób. Często więc to nie jest tylko zwykła ochrona przed popsuciem, ale również przed nieuprawnioną modyfikacją.

      1. jeśli ktoś w ten sposób tworzy arkusze wrzucając tam poufne dane i zabezpiecza (ukrywa) informacje to raczej nie jest to problem excela, tylko nieogarnietych ludzi, którzy używają czegoś co nie zostało stworzone do tych celów.
        Zabezpieczanie komórek hasłami służy do blokowania edycji arkuasza lub komórek przed integralnością całego arkusza.

  2. Nawet nie trzeba odwracać procesu bo Text edytor ładnie podał hasło do edycji „c71f”.

    Od siebie dodam, że większość płatnych programów jest tak zabezpieczona. Wystarczy zwykły Hex edytor i rozprucie pliku .exe

    Hasło najczęściej jest w środku. Wystarczy poszukać.

    Bezpieczeństwo softu daje jedynie weryfikacja online. Choć to też jest do ominięcia, ale wymaga więcej wysiłku.

    1. W nowym excelu nie widzisz hasła, tylko jego hash, ale usunięcie tagu działa, jak w starym.

  3. No przecież podałeś przykład arkusza egzaminacyjnego i komórki, która liczy czy się zdało czy nie i ten przykład pasuje idealnie do ochrony przed przypadkowym usunięciem. Jedyne co jest problemem to że ustawianie hasła daje fałszywe wrażenie że coś jest zabezpieczane i użytkownicy nadinterpretacją tą funkcję. Bo jest napis ze ustawiasz hasło. A jak hasło to każdy nie z IT myśli ze jakieś szyfrowanie czy coś. Co jest wina MS naturalnie.

    Ale jak user przeczyta podstawowa dokumentacje np. https://support.office.com/en-us/article/protection-and-security-in-excel-be0b34db-8cb6-44dd-a673-0b3e3475ac2d

    To będzie wiedział że jest więcej metod zabezpieczania arkusza a ten który opisujesz służy wyłącznie do , zblokowania przypadkowych zmian i hasło może być nawet ustawione na puste. Co jest w dokumentacji napisane. Na kursach Excel powinno też być poddawane.

    Co do artykułu, przede wszystkim brakuje referencji do dokumentacji.

    1. No się nie zgodzę jednak. Właśnie ten przykład pasuje bardziej do ochrony przed celową modyfikacją, a nie przypadkowym usunięciem. Jeżeli ktoś przypadkowo usunie formułę, która nalicza mu punkty na egzaminie (albo wypłatę), to jest to jego problem. Jeżeli jednak celowo zmodyfikuje taką formułę żeby sobie poprawić wyniki to jest to problem tego, kto przygotował arkusz. I to właśnie on używa tutaj hasła aby tego problemu uniknąć.

      1. Jeśli możesz modyfikować produkcyjny arkusz który jest w całości użyty do liczenia punktów/premii, czegokolwiek wartościowego to pierwsze pytanie czy masz uprawnienia żeby taki arkusz modyfikować. Skoro go dostałeś i masz dostęp nie read-only to możesz równie dobrze go podmienić całego. Tak jak admin ktory ma dostep do bazy danych. W końcu masz prawo edycji. A jak możesz go sobie ściągnąć i lokalnie zmienić to nic to nie daje finalnie i nie ma to znaczenia czy jest protected czy nie, bo masz go u siebie. Do blokowania możliwości edycji są a) uprawnienia na serwerze plikow b) pozostale mechanizmy Microsoftu opisane w linku ktory podalem np. szyfrowanie calego pliku zeby tylko ci co maja hasło mogli to otworzyc i zmienic. i jak przetestujesz tamte opcje i będą tam błędy implementacji/logiczne to artykuł ma sens. Jesli ktoś ma arkusz dostepny dla ludzi ktorzy nie maja prawa go edytować i oni sobie go wyedytuja i potem zdadza egamin czy dostana wiecej kasy to nie jest to bynajmniej problem mechanizmu który według dokumentacji jest opisany jako mechanizm do zabezpieczania przed przypadkowym usunięciem formuly. To ze ktos sam sobie strzela w stopę używając czegoś co według niego służy do zabezpieczenia edycji a według dokumentacji producenta służy do czegoś innego to już nie problem twórcy oprogramowania. Artykul raczej powinien opisywać ze sa jeszcze inne opcje zabezpieczeń w excel i opisać które służą do czego a które widziałeś ze ludzie używają niezgodnie z dokumentacja bo myślą że dają im jakiś konkretny poziom zabezpieczeń

        1. „To ze ktos sam sobie strzela w stopę używając czegoś co według niego służy do zabezpieczenia edycji a według dokumentacji producenta służy do czegoś innego to już nie problem twórcy oprogramowania”

          Zauważ, że pierwsze zdanie artykułu brzmi: „Ta krótka instrukcja tłumaczy dlaczego nie powinno się polegać na ochronie komórek za pomocą hasła w Excelu”. Ja tutaj nie ogłaszam jakiejś sensacyjnej dziury w zabezpieczeniach, bo to jest znane od Excela 2007, tylko pokazuję dlaczego nie powinno się polegać na takiej „ochronie”.

          A odnośnie dokumentacji, to w/w funkcja jest opisana tak:

          „With sheet protection, you can control how a user can work within worksheets. You can specify what exactly a user can do within a sheet, thereby making sure that none of the important data in your worksheet are affected.”

          Nie uważasz, że to jednak trochę mylące? Bo właśnie to jest często stosowane w sytuacji, gdy ktoś ma mieć możliwość tylko częściowej edycji – np. wprowadzania danych wejściowych.

          1. Jak cytujemy to lepiej: „…or even just protecting a worksheet so you don’t inadvertently delete any formulas.” Lub dalej „Worksheet level protection is not intended as a security feature. It simply prevents users from modifying locked cells within the worksheet.”

            No i właśnie tytuł jest mylący bo powinno się polegać na ochronie komórek jak… Nie chcesz żeby ktoś przypadkowo usunął formule. Jak sam pokazałeś nie da się tego zrobić przypadkowo tylko trzeba otworzyć archiwum i wyedytowac. Czemu w takim razie użytkownicy nie maja polegać na ochronie komórek w zakresie jaki ta ochrona daje – przed przypadkowa modyfikacją.

            Tak jak pisałem. Artykuł o tym że user nie czyta dokumentacji, albo nie uczą tego na kursach i ktoś używa czegoś bo ma bledne zalozenia i prezentacja wszystkich mechanizmow, które do czego służą ok. Artykuł 'nie polegaj na ochronie komorek’ i nabijanie się z zakładania hasła które służy tylko do ochrony przed przypadkowym usunięciem to clickbait.

          2. Mam w takim razie propozycję. Jeśli napiszesz tekst o tym jak prawidłowo zabezpieczyć arkusz w taki sposób by ktoś mógł do niego wprowadzać dane w wybranych komórkach, ale już nie miał wpływu na ich przetwarzanie w komórkach „chronionych” to chętnie go opublikuję.

  4. Cześć,
    A jak zdjąć hasło zabezpieczające cały plik *.xlsx przed otwarciem? Zmieniałem rozszerzenie na *.zip, ale tego pliku już nie da się niczym otworzyć ani rozpakować przez komunikat o uszkodzonym archiwum…

    1. W ten sposób się nie da. Jeżeli cały plik jest chroniony hasłem, to jest on szyfrowany i nie da się go modyfikować. Pozostają jedynie słownikowe, siłowe metody łamania hasła.

  5. Dziękuję bardzo, raz po raz muszę pracować na plikach z bez sensu włączoną ochroną.
    Szkoda, że metoda nie działa na starszych plikach .xls – może tutaj jakaś podpowiedź?

    @Adam Niestety, ale chyba nie – w ramach testu wpisałem oryginalne hasło „dupa”, a w .xml-u był zapis „CAC3”.

  6. Witam, posiadam plik w MS Office 365 i po zmianie z xlsx na zip nie mam wewnatrz zipa zadnego pliku „sheet1.xml”. Prosba o pomoc.

  7. Witam, posiadam plik w MS Office 365 i po zmianie z xlsx na zip nie mam wewnatrz zipa zadnego pliku „sheet1.xml”. Prosba o pomoc.

Skomentuj

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.