Die Zeit der Naivität ist vorbei

12. November 2013 Posted by Bernd Garrels

Mobile Device Management
Schöne Zeiten als es noch hip war seine Mitmenschen mit dem neuesten Smartphone zu beeindrucken und die ganze Welt der mobilen Kommunikation überall und an jedem Ort nutzen zu können. NSA und anderer gierige Dienste haben einen die Illusionen einer heilen mobilen eCommunication-World gründlich verdorben. Es nützt nichts diese neue Welt zu verdammen oder in die Lethargie zu verfallen, es wäre sowieso alles egal. Es ist also Zeit unser Verhalten zu der neuen mobilen Kommunikationswelt zu verändern - ganz nüchtern und ganz klar. Klar ist, absolute Sicherheit gibt es nicht; genauso, wie es auch kein absolut sicheres Auto gibt.
Wo liegen denn also die sicherheitskritischen Herausforderungen:

Sicherheitsphilosophie:

  • Warum werden Smartphones und Co. eigentlich schwächer verwaltet als jeder beliebige Laptop oder Desktop-PC  im Unternehmen? Der Ansatz dem User die Sicherheit seiner Kommunikation zu überlassen, hat letztendlich dazu geführt, dass es so einfach möglich war das Handy von Angela Merkel auszuspähen. Warum werden nicht die gleichen Sicherheitsmaßstäbe an den Umgang mit mobilen Endgeräten angelegt, wie an die sonstige IT im Unternehmen? Kein Unternehmen überlässt es irgendeinen Mitarbeiter für die Sicherheit auf seinem PC zu sorgen. Wenn man tatsächlich ein größtmögliches Maß an Sicherheit haben will, kann die IT-Sicherheit nicht mehr dem Benutzer allein überlassen werden. Letztendlich lautet die Frage: welches Maß an Verantwortung für die Sicherheit der mobilen Geräte ist das Unternehmen bereit zu übernehmen und welchen Anteil hat der Benutzer daran zu tragen?

Management:

  • Es ist nicht erstaunlich und es ist wahr, dass Führungskräfte für die Mehrzahl der sicherheitsrelevanten Zwischenfälle verantwortlich sind. Erstaunlich aber ist, dass kein leitender Angestellter in sein Auto ohne Sicherheitsgurt, Airbag, ABS & Co. einsteigt, aber sich über minimale sicherheitskritische Anforderungen hinwegsetzt und trotzdem noch ein Maximum an Verfügbarkeit von Informationen verlangt. Hier muss sich etwas ändern und zwar im Kopf. Die veränderte Sicherheitssituation ist zu akzeptieren. Das Management muss sein Denken und Verhalten und das Verhalten seines Unternehmens gegenüber der mobilen Kommunikation ändern.

IT-Governance:

  • Es ist mit Sicherheit hip und es hebt den Status, das neueste und schönste Smartphone zu besitzen. Klar ist, dass bei meinem eigenen Smartphone, die private Nutzung im Vordergrund steht, also auch die Nutzung von mir installierter Apps und Dienste. Die Frage ist dann nur, ordnet sich mein Gerät dann noch der Unternehmensstrategie unter? Es liegt hier in der Verantwortung des Managements sicherzustellen, dass alle mobilen Endgeräte, die für das Unternehmen genutzt werden, sich in die Unternehmensstrategie einfügen. Dazu gehört beispielsweise auch, dass der Einsatz von privaten Smartphones im Unternehmen eindeutig geregelt sein sollte. Umgekehrt sollte auch die private Nutzung von dienstlichen Smartphones geregelt sein. Also, Aufgabe des Management ist es auf Basis gesetzlichen Vorschriften Grundsätze, Verfahren und Maßnahmen festzulegen, die sicherstellen, dass die eingesetzten mobilen Geräte im Sinne des Unternehmens verantwortungsvoll eingesetzt und Risiken der Nutzung angemessen überwacht werden. Dazu ist es notwendig, dass diese Erwartungen der IT bekannt sind und dass die IT in der Lage versetzt wird, diese Erwartungen auch zu erfüllen.

IT-Compliance:

  • ]Es grenzt doch schon an Absurdistan, wenn IT-Infrastrukturen aufgebaut wurden, die mit Firewalls wie Fort Knox gesichert werden und wenn dann gedankenlose User Smartphone mit ungesicherten Schnittstellen, minimalen Zugriffsschutz nutzen und den Datenschutz auf diese Art und Weise konterkarieren. Grundsätzlich gilt, das gesetzlichen Standards, Vertragspflichten sowie selbstgesetzten Standards (eigenen Policies, Nutzungsrichtlinien, Organisationshandbücher, Arbeitsanweisungen etc.) einzuhalten sind. Wenn diese nicht eingehalten werden, sind auch entsprechende Sanktionen durchzusetzen.
Zusammenfassend lässt sich sagen, dass die Zeit der Naivität vorbei ist. Wir müssen zur Kenntnis nehmen, dass wir in einer Welt leben, wo wir alle mobil vernetzt sind, wo jeder an jedem Ort der Welt mit jedem kommunizieren kann, wo aber auch jeder angreifbar ist. Das erfordert ein neues Sicherheitsdenken. Sicherlich ist der Gestzgeber mit der Schaffung neuer Rahmenbedingungen für die mobile eWorld gefragt. Darauf zu warten, wäre allerdings ein Fehler. Veränderungen gibt es nur, wenn Individuen und Unternehmen ihre Sicherheitsinteressen selber in die Hand nehmen. Welche das sind, muss individuell und auch für jedes Unternehmen identifiziert werden. Zu diesem Zweck sind die Arbeitsweise und die Bedürfnisse der Mitarbeiter zu identifizieren und zu bewerten. Daraus lassen sich Risiken für den einzelnen und für das Unternehmen ableiten, die pragmatisch adressiert werden können. Kann dem Risiko mit angemessenem Aufwand begegnet werden? Oder sind die Bedürfnisse der Nutzer das Risiko wert? (Beispiel: Muss der Nutzer wirklich WhatsApp nutzen, um mit seinen Kollegen zu kommunizieren oder gibt vielleicht andere Kommunikationswege?) Viele Risiken können bereits adressiert werden. Prozesse und Werkzeuge existieren oftmals bereits und müssen „nur noch“ Anwendung finden.

Ausblick:

In weiteren Artikeln wollen wir Problemfelder im einzelnen identifizieren und auf potentielle Lösungen zu sprechen kommen. Bleiben Sie dran.

Quick-Tipp: Umbenennung der Standardgruppen LocalDomainAdmins und LocalDomainServers

9. Oktober 2013 Posted by Bernd Garrels

Quick-Tipp
Vor einigen Tagen bin ich bei einer Migration eines Domino-Servers darauf gestoßen, dass der Kunde seine Gruppen LocalDomainAdmins und LocalDomainServers umbenannt hatte. Die Umbenennung dieser Gruppen hatte er vor einiger Zeit aufgrund einer Empfehlung vorgenommen. Mir erschließen sich die Gründe für diese Vorgehensweise nicht. Aber ich sehe eine ganze Reihe von Problemen und Gründen, warum man mit einer Umbenennung dieser Gruppen sehr vorsichtig sein sollte:

Da die Gruppen LocalDomainAdmins und LocalDomainServers standardgemäß in jeder (mitgelieferten) Datenbank verwendet werden oder verwendet werden sollten, zieht eine Umbenennung dieser Gruppen einen Rattenschwanz von Umbenennungen auf dem Domino-Server nach sich. Siehe dazu: Rename Group

Auch die meisten Dienstleister liefern ihre Notes-Produkte standardgemäß mit den Gruppen LocalDomainAdmins und LocalDomainServers aus. Wenn dann diese Schablonen so auf den Server gelegt werden, wie sie ausgeliefert werden, oder aus den nicht angepassten Schablonen Datenbanken erzeugt werden, sind die Standard-Gruppen quasi wirkungslos und Zugriffprobleme vorprogrammiert.

Bei einer Domino-Migration sollten System-Datenbanken, wie die mail.box, die log.nsf vor dem ersten Hochfahren des Servers gelöscht bzw. umbenannt werden. Diese Datenbanken werden beim Hochfahren des Servers automatisch erstellt. Hierbei erzeugt der  Domino-Server aus den in eckigen Klammern gesetzten Gruppen der Schablone die entsprechenden Gruppen, beispielsweise aus [LocalDomainAdmins] und [LocalDomainServers] die Gruppen LocalDomainAdmins und LocalDomainServers mit den entsprechend voreingestellten Rechten.

Findet der Server beim Anlegen einer Datenbank keine Person oder Personengruppe mit Manager-Zugriff, so trägt er automatisch den unter der Konfigurationseinstellung Admin in der notes.ini registrierten Administrator in die ACL ein. Findet er keinen Server oder Servergruppe mit Manager-Zugriff, so trägt er auch automatisch den unter den Konfigurationseinstellung ServerName in der notes.ini registrierten Server mit Managerrechten in die ACL ein.

Da die Schablonen während des Setup-Prozesses, also bei jeder Installation und wesentlichen Aktualisierung, im Data-Verzeichnis neu installiert werden, enthalten diese natürlich die Standardgruppen. Demzufolge müssen sie und die daraus neu erstellten Datenbanken ebenfalls entsprechend angepasst werden.


Spätestens an dieser Stelle sollte klar sein, dass eine Umbenennung der Standardgruppen LocalDomainAdmins und LocalDomainServers eine Reihe von fehlerträchtigen Nacharbeiten nach sich zieht, die ein hohes Maß an Aufmerksamkeit und Aufwand erfordern. Bleibt die Frage, durch welchen Vorteil dieser hohe Mehraufwand gerechtfertigt werden sollte.

automatische Telefonwahl über das Softphone “Phoner” aus IBM Notes heraus – eine einfache Anleitung

2. September 2013 Posted by Bernd Garrels

Phoner  ist ein Freeware-Programm von Heiko Sommerfeldt, das Gesprächsverbindungen in das Festnetz, zu Mobiltelefonen und zu VoIP-Gegenstellen ermöglicht. Das Programm kann als Softphone für analoge Teilnehmeranschlüsse, digitale ISDN-Teilnehmeranschlussleitungen oder für IP-Telefonie auf stationären und mobilen Computern benutzt werden.
Prinzipielle ist es möglich für den Phoner in einen Lotusscript-Script ein OLE Automation object "Phoner.CPhoner" anzulegen, diesem eine Nummer zu übergeben und eine Telefonruf zu starten. Dieses brachte uns auf die Idee die Widgets- und Live-Text-Funktionalität des Standard-Notes-Clients zu verwenden, um über Livetext erkannte Telefonnummern direkt für einen Telefon-Call zu nutzen.


Beschreibung der Lösung

Die Erstellung eines Notes-Widget aus einer Maske ist in der Notes-Hilfe beschrieben. Über ein solches Widget lässt sich ein Feld einer sich öffnende Notes-Maske mit der über Livetext identifizierte Telefonnummer befüllen. Prinzipiell muss abgewartet werden, bis das Widget das Feld befüllt hat. Dieses haben wir dann wie folgt gelöst:

Dim uidoc As NotesUIDocument
Dim callTimer As NotesTimer

Sub Postopen(Source As Notesuidocument)
        Set uidoc = source
        ' erstelle und initialisiere Timer
        Set callTimer = New NotesTimer(1, "rufe Telefonnummer an")
        On Event Alarm From callTimer Call CallTimerHandler
End Sub

Sub CallTimerHandler(Source As NotesTimer)
        Dim telefonnummer As String
        ' nur einmal ausführen, deshalb Timer gleich deaktivieren
        source.Enabled = False
        ' Telefonnummer normalisieren
        telefonnummer = NormalisiereTelefonnummer(uidoc.FieldGetText("Telefonnummer"))
        Call uidoc.FieldSetText("Telefonnummer", telefonnummer)
        If telefonnummer <> "" Then
                Call RufeTelefonnummerAn(telefonnummer)
                ' und Dokument wieder schließen
                Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")
                Call uidoc.Close
        End If
End Sub

Function NormalisiereTelefonnummer(Byval telefonnummer As String) As String
        ' entferne Leerzeichen, /, -, ( und )
        telefonnummer = Replace(telefonnummer, Split(" , /, -, (, )", ", "), "")
        ' entferne die 0 nach der Landesvorwahl (zumindest erst einmal für die deutsche Landesvorwahl)
        If Left$(telefonnummer, 3) = "+49" And Left$(telefonnummer, 4) = "+490" Then
                telefonnummer = "+49" & Mid$(telefonnummer, 5, 100)
        End If
        NormalisiereTelefonnummer = telefonnummer
End Function

Sub RufeTelefonnummerAn(telefonnummer As String)
        Dim Phoner As Variant
        If telefonnummer <> "" Then
                Set Phoner = CreateObject("Phoner.CPhoner")
                Phoner.MakeCall(telefonnummer)
        End If
End Sub

Und siehe da, der Phoner wählt die Nummer aus dem Livetext an:

A picture named M2

Hinweis: Der Phoner sollte schon geöffnet sein.

Quick-Tipp: Automatische Telefonwahl über das Softphone “Phoner” aus IBM Notes heraus – eine einfache Anleitung

2. September 2013 Posted by Bernd Garrels

Quick-Tipp
Phoner  ist ein Freeware-Programm von Heiko Sommerfeldt, das Gesprächsverbindungen in das Festnetz, zu Mobiltelefonen und zu VoIP-Gegenstellen ermöglicht. Das Programm kann als Softphone für analoge Teilnehmeranschlüsse, digitale ISDN-Teilnehmeranschlussleitungen oder für IP-Telefonie auf stationären und mobilen Computern benutzt werden.

Prinzipiell ist es möglich für den Phoner in einen Lotusscript-Script ein OLE Automation object "Phoner.CPhoner" anzulegen, diesem eine Nummer zu übergeben und eine Telefonruf zu starten. Dieses brachte uns auf die Idee die Widgets- und Live-Text-Funktionalität des Standard-Notes-Clients zu verwenden, um über Livetext erkannte Telefonnummern direkt für einen Telefon-Call zu nutzen.
 
Beschreibung der Lösung

Die Erstellung eines Notes-Widget aus einer Maske ist in der Notes-Hilfe beschrieben. Über ein solches Widget lässt sich ein Feld einer sich öffnende Notes-Maske mit der über Livetext identifizierte Telefonnummer befüllen. Prinzipiell muss abgewartet werden, bis das Widget das Feld befüllt hat. Dieses haben wir dann wie folgt gelöst:

Dim uidoc As NotesUIDocument
Dim callTimer As NotesTimer

Sub Postopen(Source As Notesuidocument)
        Set uidoc = source
        ' erstelle und initialisiere Timer
        Set callTimer = New NotesTimer(1, "rufe Telefonnummer an")
        On Event Alarm From callTimer Call CallTimerHandler
End Sub

Sub CallTimerHandler(Source As NotesTimer)
        Dim telefonnummer As String
        ' nur einmal ausführen, deshalb Timer gleich deaktivieren
        source.Enabled = False
        ' Telefonnummer normalisieren
        telefonnummer = NormalisiereTelefonnummer(uidoc.FieldGetText("Telefonnummer"))
        Call uidoc.FieldSetText("Telefonnummer", telefonnummer)
        If telefonnummer <> "" Then
                Call RufeTelefonnummerAn(telefonnummer)
                ' und Dokument wieder schließen
                Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")
                Call uidoc.Close
        End If
End Sub

Function NormalisiereTelefonnummer(Byval telefonnummer As String) As String
        ' entferne Leerzeichen, /, -, ( und )
        telefonnummer = Replace(telefonnummer, Split(" , /, -, (, )", ", "), "")
        ' entferne die 0 nach der Landesvorwahl (zumindest erst einmal für die deutsche Landesvorwahl)
        If Left$(telefonnummer, 3) = "+49" And Left$(telefonnummer, 4) = "+490" Then
                telefonnummer = "+49" & Mid$(telefonnummer, 5, 100)
        End If
        NormalisiereTelefonnummer = telefonnummer
End Function

Sub RufeTelefonnummerAn(telefonnummer As String)
        Dim Phoner As Variant
        If telefonnummer <> "" Then
                Set Phoner = CreateObject("Phoner.CPhoner")
                Phoner.MakeCall(telefonnummer)
        End If
End Sub

Und siehe da, der Phoner wählt die Nummer aus dem Livetext an:

A picture named M2

Hinweis: Der Phoner muss dazu schon vorher gestartet worden sein.

undokumentierter Lotus-Formula-Befehl “@ExpandNameList”

2. Juli 2013 Posted by Bernd Garrels

Der Lotus-Formula-Befehl @ExpandNameList ist ein nicht dokumentierter Befehl und wird beispielsweise an kritischer Stelle in der Ressourcen-Datenbank verwendet. Leider gibt es einige Einschränkungen bei der Verwendung dieses Befehls. Diese habe ich versucht zu dokumentieren:

@ExpandNameList
Gibt die Liste der Mitglieder einer Gruppe aus dem Domino-Directory zurück. .

Hinweis: Die Mitglieder einer Gruppe vom Typ "Nur Zugriffskontrollliste" oder "Negativliste" werden nicht zurückgegeben. Hier wird nur der Gruppenname zurückgegeben.

Syntax
@ExpandNameList(Servername [: Directory-Name]; Gruppenname[, Parameter ] )

Servername
Name des Servers, in dessen Domino-Directory sich die aufzulösende Gruppe befindet.

Hinweis: Es muss unbedingt der Servername eines existierenden Servers angegeben werden. Wenn der Server nicht festgestellt werden kann, wird nur der Gruppenname zurückgegeben.

Directory-Name
Name des Domino-Directory

Gruppenname
Name der Gruppe, die aufgelöst werden soll.

Parameter
[IGNORE_FWD_ADDRESS]
Ab Version 377 (8.5.2). Verwendet in der Reservierungs-Datenbank, Funktion unbekannt

Beispiel:
@ExpandNameList( @Subset(@DbName;1) ; Gruppenname)

Lotus Notes Entwicklung: Einen Agenten vor Eingang einer neuer Mail auslösen

16. Mai 2012 Posted by Bernd Garrels

Zur Verarbeitung von Mail, bevor diese in der Mail-Datenbank abgelegt wird, kann man nur einen einen Agenten je Datenbank anlegen, der diese Trigger-Einstellung hat. Wenn zwei Agenten mit dieser Einstellung in der Datenbank angelegt sind, wird keiner dieser Agenten bei einem Mail-Eingang ausgelöst.

Soweit ist der Sachverhalt wie in der Hilfe beschrieben. Aber dieses gilt auch, wenn wenn zwei Agenten dieses Typs vorliegen und nur ein Agent aktiviert ist.