
MS Teams to skomplikowany zwierz
czemu tak trudno jest zrobić kopię zapasową Teams? czemu w zasadzie nie ma aplikacji do migracji Teams (Teams merge, Teams copy etc)? czemu tak długo zajmuje przygotowanie możliwości łatwego przełączania między tenantami?
to tylko niektóre pytania… a dziś chciałem się sqpić na spotkaniach i bezpieczeństwie dostępu oraz pokazać jeden z powodów, będący (częściową) odpowiedzią na powyższe pytania.
Kawałek historii
[można spokojnie pominąć tą część, nudy. część właściwa jest dużo niżej. ]
Teams, jak zresztą cały O365 (a obecnie M365), był tworzony przez developerów dla developerów – aby zaspokoić dziki pęd w kierunq ‘edżajla’. Teamsy w pierwszych dniach swojego istnienia przypominały Internet lat 9o, albo wręcz ten 8otych, kiedy dopiero wpadł w ręce uniwersytetów – cudowna idea nieograniczonego współdzielenia, wszyscy mamy prawo do informacji, dzielmy się wiedzą. jak każda idea – szybko jest weryfikowana przez życie i zaraz zaczęły powstawać firewalle i inne kontrole dostępu. także samo wyglądał wczesny Teams, co w wielu miejscach widać do tej pory – wszystko dla wszystkich, brak kontroli uprawnień, każdy może założyć nowy zespół i każdy może udostępnić każdemu cokolwiek…
…i od razu ‘likwidujemy skype i drogie firmy, macie chwilkę na przesiadkę’. pominę ten fragment historii, bo choć z produktami Microsoft znam się dłużej niż większością znajomych [a na pewno znam je lepiej (; ], to uważam, że Teamsy dopiero teraz zaczynają się nadawać dla rynq Enterprise… <skip>
Teamsy w ciągu ostatniego roq-dwóch zostały mocno uzbrojone, dodana została kontrola kto może je zakładać i trochę narzędzi do governance’u, ale nadal pozostają dziury – jak np. brak kontroli uprawnień na poziomie katalogów/kanałów. tutaj podam link podesłany przez Ewangelista.it i jeszcze filmik jak te uprawnienia przypisać. no więc jest czy nie ma? moje testy zmiany uprawnień na poziomie katalogów SP skończyły się problemami z dostępem – zwłaszcza Web Office, który nie potrafił tych pliqw otworzyć i potrafił się wysypać – ale to było dawno. więc testujcie i zapraszam do podzielenia się doświadczeniami. ja nadal klientom będę póki co odradzał grzebanie na poziomie SP – przynajmniej póty, póki w końcu nie zostanie on zupełni przykryty Teamsami [tak, żeby w ogóle zniknęły odnośniki do SP, a wszystkie operacje będą wykonywane z Teams]. to będzie dla mnie oznaka, że Teams rozumie już uprawnienia na poziomie katalogu, a na tą chwilę, uważam że to jest playground dla szkół.
przykład z niejasnością działania uprawnień w jakiś sposób nawiązuje do najważniejszego przekazu – Teamsy są makabrycznie złożone. Frankenstein by się zawstydził, z jak wielu kawałqw, jak dziwnie połączonych, można zbudować taki organizm. zapewne wszyscy wiedzą, że Teams to de facto GUI, które pod spodem łączy się z Exchange, SharePoint i [dawnym] Skype for Business – częścią telekonferencyjną. każda jest oddzielną aplikacją, z własnym RBAC [kontrolą dostępu/modelem administracyjnym – o którym kiedyś jak będę miał siłę, też opiszę, bo jest niemniej pojechany niż Teamsy], z wieloma portalami administracyjnymi. wszystkie wymienione mają własny sposób zarządzania, nadal nieuporządkowany i w wielu miejscach niespójny – AAD, Exchange, SP, do tego Teams, i całe Security, Compliance i jeszcze kilka innych… tak tak, M365 jest dużo bardziej złożone niż większości osób się to wydaje… a więc Teamsy muszą założyć sesje do [niemal] każdego serwisu, każdy serwis może być inaczej zabezpieczony i w dawnych modelach administracyjnych – zarządzany przez oddzielne działy. rysuje się wam jakiś obrazek?
mówiąc w skrócie – nieźle zamieszane. ale to nie koniec. czas przejść do meritum i zobaczyć że to jest jak cebula – kiedy odkryjemy jedną warstwę złożoności, naszym oczom ukazują się dwie kolejne…
Gdzie są moje dane?
i nie chodzi o pytanie geograficzne, związane ze zgodnością z normami (Compliance) – to można zleźć tutaj. chodzi natomiast o taki scenariusz:
- CTO zakłada spotkanie Teams Meeting. zaprasza CIO i Head of all Heads.
- podczas tworzenia spotkania dołączony został plik z prezentacją dot. strategii firmy na najbliższy rok.
- podczas spotkania panie i panowie wrzucili dodatkowe pliki w okienq rozmowy (chat), zawierające krytyczne dla firmy dane finansowe i plany zaqpowe na nowy rok.
- przy okazji chwilę porozmawiali na chat i zrobili notatkę ze spotkania, gdzie zapisane zostały propozycje firm, które wezmą udział w przetargu wartym $1.ooo.ooo
- mógłbym jeszcze dodać whiteboard, który jest ciekawym przypadkiem sam-w-sobie, choćby z tego względu, że nadal znajduje się tylko na serwerach w USA i do tego ostatnio nie działa. ale uznajmy, że właśnie nie działał…
no więc mamy paczkę bardzo wrażliwych danych. gdzie leży problem? zadam zatem kilka pytań – jeśli znasz odpowiedzi – możesz się uważać za osobę znającą Teams *rewelacyjnie* i masz dużą świadomość bezpieczeństwa danych:
- kto może do takiego spotkania dołączyć? tylko osoby, który były zaproszone, czy każdy kto ma link, czy każdy kto ma link nawet z poza organizacji?
- jak ktoś dołączy do spotkania – czy będzie widział zapis rozmowy i wszystkie pliki?
- po zakończeniu spotkania – jak osoby dołączą ponownie, czy będą tam te wszystkie pliki i zapiski i notatki?
- biorąc pod uwagę pyt. 1 – czy osoby które nie były zaproszone będą miały dostęp do informacji wrażliwych?
dodałbym jeszcze pytanie o ogólne eDiscovery i DLP dla Teams – ale o tym nie będę dalej pisał, bo chciałem się sqpić na rzeczach dużo bardziej podstawowych – gdzie są te wszystkie pliki i informacje ze spotkań przechowywane? jak są zabezpieczone?? czy tymi zabezpieczeniami da się sterować po spotkaniu?
cebula – cz. I
o tym jak się zachowują regularne Zespoły jest niezła intuicja – w końcu tym zajmują się administratorzy. ale spotkania.. uciekają uwadze. a przecież tam również często są przechowywane wrażliwe dane a znów mamy ‘security by obscurity’ – jakiś totalnie zamieszany system.
zacznę od linka, który wskazuje gdzie te lokalizacje są. nie odpowiada jednak na wiele pytań związanych z zachowaniem. zacznę od kopii tabeli z artqłu, jako dowód na to, jak można zamieszać:
[table id=3 /]
w tej tabeli zabrakło jeszcze informacji ‘gdzie są pliki, dołączone podczas zakładania spotkania w Outlook, jako załącznik’. te są w skrzynce pocztowej użytkownika. no i oczywiście regionalizacja – nazwa katalogu na OneDrive będzie zależna od ustawień regionalnych, więc może się okazać, że macie kilka katalogów, w różnych językach.
aby coś zabezpieczyć dobrze spełnione powinny być warunki:
- musimy wiedzieć GDZIE są dane. dobrze żeby były w pojedynczym miejscu, łatwiej je kontrolować i nakładać takie same zasady
- powinny być w systemach o ujednoliconych uprawnieniach – bo co oznacza ‘read only’ dla pliq w Outlook a co dla pliq w bibliotece SP?
- muszą być zarządzane centralnie, z jednego interfejsu, dając pojedynczy widok na wszystko co zabezpieczamy – tak aby niczego nie przeoczyć
Tu mówimy o self-service – to użytkownik jest administratorem spotkania, i to na użytkownika spada odpowiedzialność zadbania o bezpieczeństwo danych na spotkaniu. oceńcie sami, czy użytkownik ma taką szansę?
a administrator – czy ma jakiekolwiek narzędzia aby tym bałaganem zarządzać? stwierdzić gdzie są jakie pliki i jakie mają uprawnienia? jak na to działają polityki współdzielenia nałożone na OD?
kolejna warstwa cebulki – linia czasu.
czas na odpowiedzi do pytań, z kolejną warstwą zamieszania. a to dla tego, że zachowanie jest inne jeśli spotkanie jeszcze trwa, a inne gdy już się zakończyło:
[table id=1 /]
a pod spodem – kolejne warstwy
jeśli nadal nadążasz, gratulacje. w takim razie dodam jeszcze kilka elementów, które powodują, że powyższa tabela jest kłamstwem, bo wykonywane zadania były w konkretnej sekwencji i przy uproszczonych założeniach. kolejna porcja wariacji, wpływającej na zachowanie:
- jest różnica pomiędzy Guest a External. przykładowy link – jednak polecam poszukać innych. już samej nomenklaturze jest problem, która uległa zmianie i nie do końca przemawia, różnice będą inne zależnie od systemu – ale co najważniejsze – użytkownicy zapraszający kogoś np. Pan.Zewnetrzny@innafirma.com – nie ma jasności jaki to rodzaj użytkownika. Guest czy External? a jeśli nawet jakimś cudem wie – pójdźcie i wyjaśnijcie użytkownikowi różnice….
- jest różnica między osobą dołączającą ‘anonimowo’ [czyli nie posiadającą licencji na Teams], a dołączającą z innej organizacji [posiada normalnie Teams/EXO/OD]. wystarczy spojrzeć gdzie przechowywane są informacje [na OD i EXO] żeby zorientować się, że jeśli osoba, która dołącza nie ma konta licencjonowanego nie ma ani skrzynki ani OD. gdzie zatem będą przechowywane pliki jaki wrzuci lub historia chatu?
- kto wrzucał pliki – jeśli osoba z poza organizacji czy ktoś z niej? w pewien sposób rozwinięcie poprzedniego punktu – to samo pytanie z innej perspektywy. choć nie sprawdzałem czy jak osoba z poza organizacji załączy plik – czy będzie przechowywany jako cross-reference między OD w innych tenantach, czy zostanie skopiowany?
- różnica między osobą dołączającą z aplikacji a wersji web i mobilnej – tak, tak, i tu są pewne różnice. na tyle niewielkie [z moich obserwacji], że z punktu widzenia bezpieczeństwa można pominąć.
- można zamienić typ spotkania – zakładać je jako spotkanie Zespołu, poprzez odpalenie bezpośrednio z kanału Teams. to znów zmienia logikę…
- jak już ktoś wszedł na to spotkanie – jest dopisywany do listy – i to jest mega ciekawy hack! aż opiszę go w oddzielnym akapicie
taki scenariusz: spotkanie między C* odbyło się, ale przechwyciłem linka. dołączam do spotkania – niewiele widzę, bo nie mam historii. wychodzę ze spotkania. ale C*s dołączają do spotkanie ponownie… tyle, że informacja o mnie, referencja do mojej skrzynki jest już zapisana w spotkaniu! czyli teraz jak zaczną pisać i udostępniać pliki na chat – będą docierać i do mnie!
czy ja to rozumiem?
pomimo spędzenia jakiejś ilości czasu nad testami – w pewnym momencie nie byłem w stanie stwierdzić czy zachowanie wynika z jakiejś sekwencji, sposobu dostępu, typu użytkownika czy może złej pogody na zewnątrz. mówiąc w skrócie – całość podsumowałbym tak: *to jest nieprzewidywalne*. ponieważ nawet jeśli rozpiszemy te wszystkie permutacje, nic nam to nie da – ani nie przekażemy takiej informacji użytkownikom, ani nie jesteśmy w stanie sensownie tej informacji wykorzystać.
odpowiedź: mniej-więcej rozumiem. i dla tego radzę
co zatem zrobić?
w pierwszej kolejności: poinstruować użytkowników, aby nie dzielili się plikami poprzez chat czy na spotkaniach. pliki powinny być trzymane w bibliotekach a nie w ‘notatkach’ czy chacie. to spowoduje, że będa centralnie przechowywane ze zdeterminowanymi uprawnieniami dostępu.
kolejnym krokiem jest oczywiście zabezpieczenie poprzez Unified Labeling + DLP + Conditional Access ew. IRM a dla bogatych i mocno doświadczonych – MCAS. to wszystko ‘duże systemy’ choć o ostatnich zmianach [przejście z Office na Microsoft w licencjach] część funkcjonalności jest dostępnych dla mniejszych, to są to wdrożenia niełatwe i wymagają bardzo dojrzałego podejścia do całej platformy.
przestraszyłem trochę? dobrze – strach to naturalny sposób na to, aby działać proaktywnie. nie należy jednak panikować – wystarczy że zastosuje się kilka prostych zasad na początek, a potem zacznie się wdrażać wspomniane mechanizmy bezpieczeństwa.
znaleźliście inne ciekawe scenariusze? przetestowaliście wykryliście inne zachowanie lub ciekawostkę? podzielcie się w komentarzach. chętnie zaktualizuję wpis uzupełniając o kolejne niuanse – a tych jak widać nie braqje….
eN.
M365 jako platforma – inna perspektywa
dzień dobry, my po Teamsy….
niedawno, po wybuchu pandemii, duża firma postanowiła zwiększyć możliwości pracy z domu [#WFH]. więc firma chce wdrożyć Microsoft Teams. *tylko* Teams…
[parafrazując] “no bo przecież takie Teamsy, to zainstaluje się i już – ludzie mogą sobie korzystać. mamy jakieś licencje i to w ramach EA nawet O365 E3 i to całkiem sporo. nie chcemy od razu dla wszystkich tylko małymi kroczkami – odpalimy dla np. 5o osób jako PoC a potem dla reszty organizacji. a jakieś dodatki typu skrzynki czy OneDrive to może potem. na razie chcemy szybko [i tanio], żeby skorzystać z możliwości tej wspaniałej pracy grupowej, jaką daje Teams”…
khmmm… no i to takie “onpremowe myślenie”. zupełnie wszystko do góry nogami. jeśli nie wiecie o czym mówię – to znaczy, że jeszcze musicie się w M365 wgryźć… jakie błędy zostały popełnione w tym rozumowaniu? zadajmy klientowi kilka pytań i co się okaże:
w dużym skrócie – nie ma pojęcia ‘tylko Teamsy’… no ok, da się ‘tylko Teamsy’. można wdrożyć na szybko tenant M365, zostać przy domenie *.onmicrosoft.com i sobie z Teamsów korzystać od razu. ale nie ma mowy o integracji, nie ma mowy o tym, żeby to post factum łączyć ze środowiskiem on-premise [technicznie się da, ale czas i koszty…], funkcjonalność będzie ograniczona, no i tak czy inaczej – trzeba to przecież zabezpieczyć… ma być zgodność z normami i bezpieczeństwo – a gdzie licencje EMS? a to będzie kosztowało …. w sumie to bez różnicy bo kwota już i tak przekroczyła jakiekolwiek wyobrażenia wstępne – coś co miało być szybkim wdrożeniem dla 5o osób okazuje się olbrzymim projektem – być może na długie miesiące. o kwotach nawet nie wspominam.
to tylko skrzynki Exchange
o bezpieczeństwie myślą niby wszyscy, niektórzy próbują, ale niewiele osób ma pojęcie co to w ogóle znaczy ‘bezpieczeństwo M365’. może inna anegdota, tym razem mniejsza firma, ale schemat [czy raczej końcowy efekt], który obserwuję bez względu na wielkość firmy:
“mamy pocztę w takim to serwisie, i kupiliśmy licencje o365 i będziemy migrować”
“a bezpieczeństwo? macie jakiś projekt/pomysł jak to zabezpieczyć?”
“ale to tylko skrzyneczki”
czy aby na pewno? najbardziej oczywistym elementem, który pewnie każdy wskaże – jest tożsamość. w rozwiązaniach Chmury publicznej bezpieczeństwo sqpia się głównie na tożsamości [i danych]. w nazwie ‘Chmura Publiczna’ dość kluczowe jest słowo ‘Publiczna’. każdy – skądkolwiek na świecie, może próbować się logować, atakować konta itd. ale to dopiero początek… o czym [z przerażeniem zauważam] się zapomina. przecież wystarczy pojedyncza licencja, choćby trial, choćby wygasła dawno temu – ale jeśli była, to uruchamiane zostały w ramach M365 usługi, które objęte są/były licencją! to że licencje wygasły – nie wyłącza usług w ramach tenanta – co najwyżej z usługi nie da się w pełni korzystać, ale ona działa. to, że firma chce ‘tylko skrzyneczki’, nie oznacza, że cała reszta nie istnieje. to nie jest onprem – w którym stawiamy sobie Exchange, a reszty nie ma, bo jeszcze nie zdecydowaliśmy czy instalować serwer SharePoint – te usługi są, działają, mają jakieś ustawienia wyjściowe, są dostępne – czyt. można próbować się do nich dostać. i nie mówię tylko o próbach włamania. zauważyłem, że powszechną praktyką jest przypisywanie użytkownikom pełnych licencji, bez wyłączania planów serwisowych – nawet jeśli firma jeszcze nie planowała z nich korzystać. a to oznacza, że użytkownicy mogą korzystać z pozostałych usług i zrobić sobie krzywdę. czy też firmie. np. przypadkiem udostępniając plik z danymi wrażliwymi, lub w ramach zabawy i nauki ustawić jakiś konektor, który automatycznie gdzieś tam wysyła maile czy kopiuje pliki…
a tych usług jest dużo: OneDrive, SharePoint, Teams, same grupy M365, co za tym idzie wieloraka możliwość współdzielenie plików na zewnątrz, możliwość dodawania dowolnych konektorów – i w Outlook i w Teams i w … można by tak wymieniać a szczegółów jest dużo.
a całe środowisko M365 projektowane jest przez DevOpsów tak, aby zaspakajać ich potrzeby. czyli wszycy-wszytko-wszytkim-zawsze-wszędzie-proszęBardzo. zupełnie jak na tych teaserach reklamowych Microsoft Teams – gdzie wszyscy są kreatywni, wszyscy piękni, młodzi i ambitni i świetnie adaptują te nowe super technologie. taaa… i rozgrzeszenie i życie wieczne za darmo, przy wyqpieniu Software Assurance.
życie zazwyczaj wygląda nieco odmiennie. dla tego…
ZABEZPIECZ SWOJE M365 KOMPLEKSOWO i AUDYTUJ
nie ma że ‘tylko skrzyneczki’ czy ‘tylko Teams’. trzeba wdrożyć minimum bezpieczeństwa dla *całego tenanta* – czyli wszystkich usług, bez względu no to czy dziś chcemy z nich korzystać. tym bardziej, że jest bardzo wiele elementów, związanych bezpośrednio z AAD i o365, które są dla wszystkich – a [prawie] nikt i tak tego nie konfiguruje zostawiając ustawienia wyjściowe, które są [za]bardzo liberalne. do tego trzeba pamiętać, że Chmura to nie jest ‘produkt w wersji X’ – to jest dynamicznie rozwijające się środowisko. dla tego nie wystarczy ‘zabezpieczyć’ – trzeba robić przeglądy, sprawdzać jakie nowe aplikacje się pojawiły, jakie dodatki – bo za chwilę pojawi się kolejna nowa aplikacja, która wymaga znów przyjrzenia się jej możliwościom i bezpieczeństwu, ocenić czy użytkownicy będą z niej korzystać i w jaki sposób i zaplanować co z nią zrobić i jak skonfigurować – bo wbrew dość powszechnej opinii – SaaS wcale nie oznacza, że tam się nic nie konfiguruje, czy że wszystko jest od razu bezpieczne.
jeśli myślisz poważnie o bezpieczeństwie a twoja firma musi być zgodna z normami – pomyśl od razu o licencjach EMS, M365sec, albo przynajmniej Business Premium dla mniejszych.
a po wiedzę – cóż, trzeba zgłosić się do odpowiednich konsultantów (:
eN.