Office 2016, Office 2019, Office365 – MailSecurity, OneDrive, SharePoint

Domainweite Sicherheitseinstellungen

Sicherheitspolice für Office (ADM, Registryeinträge für User hart setzen)
Hierbei verlasse ich mich nicht nur auf ADM (Domainweite Police, sondern importiere bei jeder Useranmeldung zusätzlich ein paar relevanter Regeinträge für Office)
z.B. Makroausführung, Autostart, ausblenden Entwicklertools-Menü, Mails als TXT, keine Vorschau von Anlagen innerhalb Outlook etc.

Wer eine Domain betreibt kann mit Hilfe von Gruppenrichtlinien Office in einigen Einstellungen steuern und verhindern, dass Benutzer diese Einstellungen übergehen.

Hierfür lädt man sich die aktuellste Fassung der Office-ADMX von Microsoft (Stand zum Zeitpunkt des Blog Schreibens war 4966.1000 vom 22.01.2020) In der neusten Version ist ein Template von Teams mit dabei.

Link -> https://www.microsoft.com/en-us/download/details.aspx?id=49030

Entpackt die Dateien des Archives und kopiert die Dateien aus dem Ordner ADMX (*.admx + de-de + en-us) nach C:\Windows\PolicyDefinitions.
Danach kann man in den GPO’s die Einstellungen für die importierten Office-Versionen vornehmen.

Als Grundlage für eine sichere Einstellung kann man sich die Empfehlungen des BSI’s anschauen. Ich fand diese recht gut und habe die Einstellung an meine Bedürfnisse angepasst.

Link -> https://www.allianz-fuer-cybersicherheit.de/ACS/DE/_/downloads/BSI-CS/BSI-CS_135.pdf?__blob=publicationFile&v=8

BSI-CS 135 -> Office allgemein
BSI-CS 138 -> Word
BSI-CS 136 -> Excel
BSI-CS  045 -> PowerPoint
BSI-CS 140 -> Access
BSI-CS 141 -> Visio
BSI-CS 139 -> Outlook

Lokale Sicherheitseinstellung

Nachdem ich domainweit alles eingestellt hatte und der erste Test-PC sich die GPO-Policy zog, habe ich die Einstellungen aus der Registry exportiert und für die spätere Anwendung unter „Local Users“ leicht umgeschrieben.

Dies ist erforderlich, da ich mal gelesen haben will, dass Office-GPO’s nur unter Windows Enterprise durchgereicht werden. Tatsache ist in jedem Fall, dass nicht jede eingestellte GPO-Regel auch tatsächlich am Client zu sehen ist.

Damit es doch klappt lade ich die modifizierte Reg-Datei bei jedem Start/Anmelden eines Benutzers/ PC’s. So stelle ich sicher, dass bestimmte Useränderungen wie z.B. Makrosicherheitseinstellung auf den von mir gewünschten Stufe steht. Denn hin- und wieder habe ich gesehen, dass der User an diesen Einstellungen rumschauben darf obwohl ich dies gerne verboten hätte.

In der exportieren Reg-Datei ersetzte ich „Software\Policies\Microsoft\office“ durch „Software\Microsoft\office“ und so die Einstellungen auf Userebene ohne Domainangehörigkeit festgelegt.

Damit sorge ich zudem, dass auch nicht Domain-PC’s an sichere Office-Einstellungen kommen. Über Autoscripts werden diese Einstellungen letztlich bei jedem PC Start/ User-Anmeldung importiert und via OneDrive/ firmen SharePoint auch auf die mobilen Geräte nahezu in Echtzeit angewendet.

Office 365 – Admin Center

In meiner Office365-Umgebung habe ich die eine oder andere Sicherheitseinstellung vorgenommen, wo ich denke, dass dies ein effektiver Schutz mit gleichzeitiger Balance zum Arbeiten mit dem Produkt ist. Gerade bei der Mail-Filterung muss man abwägen, welche Mails werden mit Benachrichtigung abgewiesen und welche lieber nicht oder ist es besser bestimmte Mails erst in Quarantäne zu setzen, weil man hier noch an die Mail rankommt.

Admin Center

    • Benutzer -> erlaubte E-Mail-Apps definieren
    • Sicherheits- und Datenschutz -> Passwortänderung nach xx Tagen

Azure Active Directory

    • Zwei-Faktor-Authentifizierung
    • Self-Service-Kennwortzurücksetzung mit mindestens 3 Pflichtangaben

Security & Compliance

Richtlinien
      • ATP-sicher Anlagen (zubuchbarer AddOn)
      • ATP-sichere Links (zubuchbarer AddOn)
      • Antispam-Schutz
      • Antischadsoftware
      • DKIM
      • erweiterte Filterung

Exchange

Schutz -> DKIM
 Nachrichtenfluss-Rules
      • sperren alter Office-Files (z.B. xls, doc,ppt)
      • sperren möglicher schadhafter Files (z.B. docm, mdb, thmx, html, htm, vbs, exe, rar etc)
      • besondere Behandlung von Mails und Anlagen, welche nicht geprüft werden können
      • filtern von Mails und Anlagen wo bestimmte Inhalte in Anlagen gefunden werden (‚certutil‘ oder ‚UEsDBBQAAAA‘ oder ‚filesystem‘ oder ‚reg add‘)
        Manchmal tarnt sich eine Datei als z.B. txt, welche dann durch Umwege doch zu einer bösen Datei umgewandelt werden kann
      • sperren von Mails, welche bestimmte Wörter in der Mail aufweisen
Nachrichtenfluss-Connectoren
      • erlaubte Mailserver aus dem lokalen-Umfeld (z.B. Mail-Gateway für Meldungen aus Geräten wie Sonic, Router, Switche, Drucker etc.)
      • gilt auch für DNS-Einträge für „akzeptierte Domänen“

OneNote vs Evernote

OneNote und Evernote sind auf dem ersten Blick beides digitale Notizbücher. Beide Versionen gibt es als Free-Version mit unterschiedlichen Einschränkungen zur entsprechenden Zahl-Version. Wobei OneNote als Zahl-Version nicht einzeln erhältlich ist und mit zum Office-Paket gehört.

Ich persönlich sympathisiere für OneNote von Microsoft, aber ich versuche dennoch aus einem neutralen Blickwinkel beide zu vergleichen. In meinem Vergleich nutze ich Microsoft OneNote in einem Office 365 Business Premium Abo und Evernote Business.

Aufbau

OneNote

Ein Buch besteht in OneNote aus Abschnitten/Reiter und Seiten ähnlich wie in einem Aktenordner. Die Abschnitte sind Deckseiten/Register und die Seiten sind die Notizen. Es können unzählige Notizen/ Seiten erstellt werden. Diese Seiten kann man bis zu 3 Ebenen einrücken, so dass man innerhalb einer Notiz/Seite eine ordnerähnliche Struktur aufbauen kann.

Evernote

 

Teamarbeit

Ein Unterschied der beiden ist, dass in einer Notiz mit mehreren Bearbeitern kein Hinweis in Evernote enthalten ist, wer bestimmte Passagen in der Notiz geschrieben bzw. zu letzt geändert hat. Im OneNote hingegen sieht man die Initialen, Name und Datum einer Änderung. Aber in beiden erkennt man nicht genau was konkret geändert wurde.

 

Office 365 – Administration

Wer sich für Office 365 und deren vielen Funktionen entschieden hat, der hat sicher festgestellt, dass es bis vor einer bestimmten Zeit man zwischen drei verschiedenen Cloud-Speicher/ Cloud-Regeln entscheiden konnte (DE, EU, COM). Ich habe das Pech oder auch Glück ;-), dass man sich bei mir auf Arbeit für die DE-Cloud entschieden hat. Nebenher habe ich aber auch das Privileg als Developer eine COM-Cloud als Entwickler zu testen. Maßgeblich sollte nur der Speicherort der Cloud-Daten hier den unterschied machen, aber später kam dann doch noch mehr zum Tragen.

Es stellten sich nach und nach schnell mehr Nachteile als Vorteile aus meiner Sicht heraus. In der DE-Cloud greift auch die neue DSGVO und macht das Arbeiten und Verwalten mit Office 365 unnötig schwierig. Entweder bestimmte Apps wie Teams oder Outlook-Handy-App funktionieren einfach nicht und geben wilde Fehler aus oder aber bestimmte Sicherheitseinstellungen die man einstellt greifen schlicht weg nicht ohne das man einen Hinweis auf die Einschränkung durch DE-Cloud erhält.

Ebenso schwierig ist das zusammen Spiel von Benutzern/ Unternehmen die unterschiedlichen Clouds angehören bzw. verwenden. Ein Unternehmen mit DE-Cloud kann nicht uneingeschränkt mit einem Unternehmen aus der COM-Cloud arbeiten. Auch hier sind Fehlermeldungen entweder nicht vorhanden oder führen einen in die Irre.

Es gibt eine Liste mit DE-Einschränkungen, aber ich meine, dass diese nicht voll umfänglich ist und man weiter nur experimentieren kann. https://docs.microsoft.com/de-de/office365/servicedescriptions/office-365-platform-service-description/office-365-germany

In diesem Beitrag möchte ich über persönlich festgestellte Einschränkungen und Feststellungen schreiben, so dass andere sich eventuelle Suchzeiten und Problemlösungen ersparen.

Admin Center

Exchange Admin

Nachrichtenfluss / Regeln

Generell sollte man Mails mit bestimmten Anhängen in irgend einer Form behandeln. Hier wäre das Blockieren bestimmt die Beste Lösung, aber das funktioniert bei einer DE-Cloud nicht, sicher weil es dem Admin nicht erlaubt sein sein über das Recht des eigentlichen Empfängers zu entscheiden. So kann man z.B. Mails mit bestimmten anhängen wie „hta, exe, vbs“ nicht blockieren, nicht umleiten, nicht auf Genehmigung durch anderen Mitarbeiter umstellen und auch nicht TLS anfordern. All diese Sachen funktionieren Problemlos in der COM-Cloud, aber in der DE-Cloud wird bei Verwendung einer durch DSGVO eingeschränkten Regel alles außer Karft gesetzt und die Mail geht ohne weitere Behandlung zum eigentlichen Empfänger. Selbst wenn in der Regel erlaubte Regeln mit enthalten sind, werden diese keine Anwendung mehr finden.

Was funktioniert und was ich wenigstens anwende ist, dass ich der Betreffzeile einen kleinen Achtung-Text voranstelle [Achtung, Anhang prüfen] oder zu der eigentlichen Mail eine separate Mail mit hinterher sende, in der man deutlich mehr Text für Anweisungen unterbringen kann.

Datei-Endungen mit Makros von Office, aber auch PDF’s sollte man wenigstens mit Hinweis wie [Makro-Datei im Anhang] versehen.
https://support.office.com/de-de/article/dateiformate-die-mit-visual-basic-funktionieren-69afddfd-4479-4466-9f37-3f4046b5e107

Exchange Admin PowerShell

Verbindung zum Exchange via PowerShell aufbauen, wobei hierzu die Installation des Modules „Microsoft Exchange Online PowerShell Module“ Voraussetzung ist.

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office.de/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

(COM -> 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
)

Import-PSSession $Session -DisableNameChecking
… arbeiten und am Ende wird empfohlen die Session zu schleißen …
Remove-PSSession $Session

OME einrichten und nutzen

Einrichten neuer Office 365-Nachrichtenverschlüsselungsfunktionen

Der entsprechende Schutzdienst ist bereits aktiviert, wenn Ihr Abonnement Azure Rights Management oder Azure Information Protection einschließt und Ende Februar 2018 oder danach erworben wurde und AutomaticServiceUpdateEnabled auf true steht. Ist das nicht der Fall, so muss man den Schutzdienst manuell aktivieren!

Prüfen kann man dies mit PowerShell (siehe Verbinden mit Exchange per PowerShell). Mit Get holt man sich die Info und mit Set stellt man die entsprechende Funktion ein oder aus.

Get-IRMConfiguration
Set-IRMConfiguration -AutomaticServiceUpdateEnabled $true

 

Azure Active Directory

Users

In der DE-Cloud ist es nicht möglich Gäste ohne deren Einwilligung hinzuzufügen. Die Einladung hierzu geht auch nicht hier bei „Users“ und muss bzw. über SharePoint erfolgen! Hat man einen Gast (externen User) z.B. zu einer SharePoint-Gruppe / SharePoint-Webseite hinzugefügt bzw. eingeladen, so erhält dieser eine Einladung an dessen Mail-Adresse. Im besten Fall sollte der Eingeladenen auf dieser Mail-Adresse einen Microsoft-Account registriert haben und in der Mail die Einladung annehmen. Erst wenn dies erledigt ist, sieht ein Admin unter „Users“ den Gast und kann diesen auch weiteren neuen SharePoint-Webseiten zu ordnen. In der COM-Cloud kann man direkt unter „Users“ einen Gast hinzufügen und diesem eine Einladung zukommen lassen. In jedem Fall sieht aber ein Admin den Status zu seinen Gästen, ob diese noch als eingeladen zählen oder ob Sie die Einladung angenommen haben.

Das schöne daran, wenn ein eingeladener bereits über ein Microsoft-Account verfügt ist, dass man als Admin sich keine Gedanken um dessen Passwörter machen muss. Soll ein Gast keinen Zugriff mehr haben, dann entzieht man Ihm der SharePoint-Webseite oder löscht diesen komplett.

 

installiertes Office erkennen

Dieses Script sollte ursprünglich als Startup-Script vor Benutzeranmeldung ausgeführt werden. Leider deinstalliert sich nicht jede Office-Version im Silent-Modus und erwartet eine Benutzereingabe, die ja von Benutzeranmeldung nie kommt.

Dennoch läuft das Script, wenn man es nach Benutzeranmeldung startet, meinet halben über Taskplaner/ LogonScript.
Meiner Erfahrung nach macht sowas aber wenig Sinn, da der Benutzer trotz Vorankündigung und Anleitung nicht das macht was man erwartet und so die automatische Deinstallation/ Installation schief geht. Also lieber sich selber an den PC setzen.

Vorbereitung

Bereitstellungstool von Office herunterladen und ODT-Offline-Version erstellen.
https://docs.microsoft.com/de-de/deployoffice/overview-of-the-office-2016-deployment-tool

Tipp:

Erstmal keinen PC auf TRUE setzen. Über set log= kann über einen Pfad zu einem beschreibbaren Verzeichnis eine Log-Datei erstellt werden. So kann das Script als Startup/Logon-Script ausgeführt werden und man erfährt auf welchem PC welche Office-Version installiert ist.

Ablauf

  • erkennen der installierte Office-Version [o365|2013|2010]
  • innerhalb der erkannten Office-Versions-Routine → iF defined [o365|2013|2010] PC-Name prüfen ob dieser zur Deinstallaition/Installation berechtigt ist
    Call-Befehl zur Deinstallation aufrufen → call %[o365|2013|2010]%
  • neues Office 365 aus Offline-ODT installieren, wahlweise als 32bit und 64bit möglich.
    call \\spc\…..\setup.exe /configure \\spc\….\configuration32bit.xml|configuration64bit.xml]
  • Wird kein Office erkannt, so soll nach PC-Namensprüfung Office 365 aus Offline-ODT installiert werden → :error

    Code

@echo off

set regKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
set regKey64=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
set regString=/v UninstallString
set "log="
set "o365="
set "o2013="
set "o2010="
set "o2007="

rem Office 365 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\O365BusinessRetail - de-de" %regString%') DO SET o365=%%B &::globale Erkennung Microsoft Office 365
IF not defined o365 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\{90150000-007E-0000-1000-0000000FF1CE}" %regString%') DO SET o365=%%B &:: Microsoft Office 365 Business - Version 2013
IF not defined o365 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\{90160000-007E-0000-1000-0000000FF1CE}" %regString%') DO SET o365=%%B &:: Microsoft Office 365 Business - Version 2016

rem Office 2013 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\HomeBusinessRetail - de-de" %regString%') DO SET o2013=%%B &::globale Erkennung Microsoft Office 2013
IF not defined o2013 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey64%\HomeBusinessRetail - de-de" %regString%') DO SET o2013=%%B &::globale Erkennung Microsoft Office 2013 (64bit)

rem Office 2010 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\Office14.SingleImage" %regString%') DO SET o2010=%%B &::Microsoft Office Home & Business SingleImage
IF not defined o2010 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey64%\Office14.SingleImage" %regString%') DO SET o2010=%%B &::Microsoft Office Home & Business SingleImage (64bit)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office365_%computername%.log
IF defined o365 (
    Echo "Office 365 erkannt"
    Echo "Office 365 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString365=%o365%>> %log%
    Echo Client "%computername%" wird für Deinstallation überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o365%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office2013_%computername%.log
IF defined o2013 (
    Echo "Office 2013 erkannt"
    Echo "Office 2013 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString2013=%o2013%>> %log%
    Echo Client "%computername%" für Deinstallation wird überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o2013%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office2010_%computername%.log
IF defined o2010 (
    Echo "Office 2010 erkannt"
    Echo "Office 2010 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString2010=%o2010%>> %log%
    Echo Client "%computername%" wird für Deinstallation überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1
    IF "%computername%"=="VERTR03-1211.." set TRUE=1
    IF "%computername%"=="VERTR02-1706" set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o2010%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

:error
echo fehler %errorlevel%
echo Kein gültiges Office erkannt
set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\OfficeXX_%computername%.log
Echo Kein gültiges Office erkannt> %log%

Echo Berechtigung zur Neuinstallation wird für "%computername% geprüft>> %log%
    set "TRUE="
    IF "%computername%"=="VWIN10-TEST01" set TRUE=1
    IF "%computername%"=="VERTR03-1211.." set TRUE=1
    IF "%computername%"=="VERTR02-1706" set TRUE=1

    IF defined TRUE (
        echo Office365-Installation wird in die Wege geleitet>> %log%
        Echo Start %date% %time%>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Neuinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%

:ende
echo ende