Brainfact.de All about IT

10Jan/150

Angetestet: Jabber/XMPP Server Dienste

In letzter Zeit habe ich mich recht viel mit der Installation und Konfiguration verschiedener Jabber Server auseinander gesetzt. Ausgangslage war mein Test vServer welcher unter OpenSuse13.1 läuft. Angesehen habe ich mir Jabberd2, eJabberd und prosody. Meine Erfahrungen und Eindrücke über die einzelnen Programme würde ich euch gerne schildern:

Jabberd2

Jabberd2 ist der "Nachfolger" des in die Jahre gekommenen Jabberd14, dieser war bereits auch schon in C und C++ geschrieben und kam sehr oft zum Einsatz. Bei Jabberd2 wurde der Quelltext komplett neugeschrieben.

Die Installation von Jabberd2 hat sich relativ einfach gestaltet nachdem alle Abhängigkeiten erfüllt waren lies sich die Software problemlos Kompilieren, schon bei diesem Vorgang muss festgelegt sein in welcher Art man seine Benutzer verwalten möchte. Dabei stehen mehrere Datenbank Formate zur Auswahl (MySQL; PSQL, SQLite,..), ich habe mich zum Test aus die im Tutorial empfohlene BerkeleyDB entschieden. Da ich das Paket selbst Kompiliert habe musste ich nach der Installation in den Konfigurationsdateien mehrere Pfade und Datei Berechtigungen anpassen damit der Dienst starten konnte. Die Config ist hier über mehrere Dateien verteilt, aber dennoch gut strukturiert und dokumentiert. Allgemein sind in der Dokumentation einige Szenarien und Konfigurationsbeispiele abgebildet die eine Einrichtung erleichtern. Nach der Ersteinrichtung kam der Dienst problemlos hoch und eine Registrierung war möglich. In der Gesamtsicht ist zusagen das Jaberd2 einen gewachsenen und modularen Eindruck verschafft. Es gibt diverse Module die sich Nachinstallieren lassen und das System ist in mehrere unter Module verschachtelt. Leider scheint die Entwicklung nicht all zu aktiv zu sein, ein Blick in die letzten commits auf Github verrät das es schleppend voran geht und nur vereinzelt Entwickler daran arbeiten.

 

eJabberd

Der in Erlang geschriebene Deamon ejabberd wird scheinbar oft in größeren und gewachsenen Strukturen eingesetzt. Es wird Ihm nachgesagt einer der stabilsten Jabber Server zu sein, jedoch strukturell etwas veraltet zu sein. Bei Installation und durchsicht der Konfiguration spiegelte sich die gewachsene Struktur ebenfalls wieder. Auch hier gibt es die möglichkeiten verschiedenste Datenbanken anzubinden und Module einzubinden. Ein Blick ins Commitlog auf github verrät auch das an der Software aktiv entwickelt wird und das regelmäßig Updates erscheinen.

Ich muss jedoch gestehen das ich das ganze nicht ans laufen bekommen habe da ich unter OpenSUSE ein paar Probleme mit Erlang hatte und nach mehreren Stunden bastellei aufgegeben hatte. Wer jedoch eine größere Infrastruktur für XMPP betreiben möchte sollte sich jedoch ejabberd genauer anschauen und es mit in Betracht ziehen ;-)

 

Prosody

Prosody war von den 3 genannten Servern am leichtesten einzurichten. Nach kurzer Installation mussten nur SSL Zertifikat, admin Nutzer und Domain Name in der Konfiguration hinterlegt werden und es konnte los gechattet werden.Prosody unterstützt die in Verbidung mit XMPP genutzten Protokolle wie zum Beispiel die Remote Administration etc. . Auch wird ein breites Spektrum an Konfigurationsmöglichkeiten geboten. Auch die Entwicklung von Prosody wird aktiv weiter betrieben. Leider kann ich zur Performance hier wenig Aussage geben da ich kaum Erfahrungen mit LUA habe und das ganze bis jetzt nur mit einem User testen konnte. Aus meinem Bekanntenkreis habe ich jedoch Erfahrungsberichte gehört das der Server seit langer Zeit stabil und ohne Abbrüche läuft und auch wenig Systemressourcen benötigt werden. Sollte mir auf Dauer da was auffallen würde ich das in einem entsprechenden Artikel nachreichen.

 

Abschließend ist zu sagen das jemand der gerne einen XMPP/Jabber Service für eine kleine User Struktur mit geringem Administration Aufwand betreiben möchte, auf jeden Fall mit Prosody bestens bedient ist. Da dieser sehr viele Funktionen mit sich bringt und dennoch einfach zu warten ist. Bei größeren Strukturen sollte man dann eventuell abwägen eJabberd in Betracht zu ziehen oder dort auch Prosody zu nutzen.

Falls Ihr auch bereits Erfahrungen mit XMPP Servern gemacht habt würde ich mich über einen Kommentar darüber freuen ;)

3Jan/150

Wiederauferstehung des Blogs und 31c3

Ein Frohes Neues Jahr euch allen!

Bei einem Blick auf das Datum des letzten Beitrags war es an der Zeit den Blog mal zu entmotten. Was vielleicht nach einem Neujahrsvorsatz aussehen mag "mal wieder öfter zu bloggen", ist allerdings nicht der Fall, wir waren seit einiger Zeit schon am planen wie es mit dem Blog weiter gehen soll. Dabei gibt es unter anderem 2 neue Autoren von denen Ihr in kürze auch was lesen werdet ;) Auch das Themen Spektrum hat sich im Zuge dessen etwas erweitert.

Nun kommen wir zum eigentlichen Content. Vor kurzem bin ich in Hamburg auf dem Chaos Communication Congress des CCC (kurz 31c3) gewesen. Wie auch im letzten Jahr muss ich sagen das es sich mal wieder sehr gelohnt hat.

Auf dem Congress geht es um verschiedenste Themen, dabei stehen Vorträge im Mittelpunkt die von Speakern aus der ganze Welt in Deutsch und Englisch gehalten werden. Das Themenspektrum reicht von technischen Themen wie zum Beispiel Verschlüsselung, über politische Themen wie Netzneutralität, hin zu humorvollen Beiträgen. Aber auch das "praktische" kommt nicht zu kurz, in vielen self organized sessions oder workshops konnten selber mal ausprobiert werden. Diese Sessions werden meist von Gruppen wie Chaostreffs, Hackspaces etc. Angeboten. Bei den Sessions sowohl auch bei Besuchen in Assemblys lernt man viele Leute kennen, mit denen man sich über das ein oder andere Thema sehr gut austauschen kann.

In den Medien war der Congress auch sehr gut vertreten. Sowohl in den Mainstream Medien als auch in der Fachpresse. Dabei hat der Hack von Merkels Iris und von der Leyens Fingerabdruck für sehr große Furore gesorgt. Dabei konnte gezeigt werden wie unsicher Iris Scanner und Fingerabdruck Scanner sind. Ohne all zu großen aufwand lassen sich diese Mechanismen mit Hilfe von Fotos der entsprechenden Personen knacken. Da fast alle Talks aufgezeichnet wurden, würde ich euch gerne den Talk von Starbug nahe legen, in dem dieser Hack vorgestellt wurde. Für Reverse Engineering interessierte kann ich euch Thunderstruck empfehlen, dabei wurde der ROM von MacBooks mithilfe eines Thunderbolt Ethernet Adapter kompromittiert.

Im laufe der nächsten Wochen werde ich euch noch eine Liste mit Empfehlungen von Aufgezeichneten Talks zusammen stellen, da ich selber noch einiges nachzuschauen habe und auf dem Congress oft in unserer Assembly des Chaostreff Osnabrück Zeit mit Programmieren verbracht habe :D

12Sep/130

Phonebloks

Moin zusammen,

 

bin vor kurzem auf ein sehr interessantes Projekt gestoßen, dort geht es um ein "Smartphone Konzept" welches das Hauptaugenmerk auf unsere heutige Wegwerfgesellschaft legt. Es ist zum Beispiel nicht mehr ohne weiteres möglich das Akku von einem Smartphone zu tauschen (zumindest bei einigen). Oder wenn die Kamera zB Defekt ist kann diese nicht selber getauscht werden. Meistens muss dann ein neues Smartphone herhalten. Dazu mal ein Video von Dave Hakkens der die Idee zu dem Konzept hat.

 

Dave Hakkes hat eine Kampagne gestartet in der es darum geht Interessenten für ein solches Konzept zu finden, er möchte eine möglichst große Masse an Unterstützern haben um dann damit zu den Herstellern zu gehen und sein Konzept vor zu stellen.

Was ich mich dabei jedoch noch Frage: In dem Video sieht es aus als könnte man jeden Block an jeder X Beliebigen Stelle auf der Platine platzieren, u.a. auch die CPU, ich frage mich wie dann dor die Kommunikation stattfinden soll, wird das Socket für die CPU im Block integriert sein? Wenn ja muss für die Platine wahrscheinlich ein neues BUS System entwickelt werden, welches die flexibilität bietet eine CPU anzusprechen, ein Akku, oder auch eine Kamera oder Speicherkarte.

Ich bin gespannt auf einen detailierteren Entwurf, solange heißt es abwarten und auf "Support" klicken. Denn die Idee hat potenzial wenn Sie auf passende Leute trifft. 

Weitere Informationen:

http://phonebloks.com
Dave Hakkens Twitter Account

veröffentlicht unter: Allgemein, IT, Smartphones keine Kommentare
28Aug/130

Spam erkennen und analysieren

Hallo zusammen,

nach langer Zeit hat mich nun doch wieder die Lust des bloggens gepackt und da ich mit beendigunger meiner Ausbildung zum Fachinformatiker nun mehr Zeit dazu habe den Blog zu pflegen, denke ich das es deutlich aktiver zugehen wird als bisher. Es liegen auch schon einige Entwürfe für Artikel vor.

Den Einstieg mache ich Heute mit einem stehts aktuellem Thema, dem erkennen und dem überprüfen von Spam Mails.

Inhalt:

  • Spam erkennen
  • Was tun wenn das Kind in den Brunnen gefallen ist und ich versehentlich was geöffnet habe?
  • Anhänge überprüfen (nicht nachmachen, wenn unzureichende Kenntnisse vorhanden sind!)
  • Wie schütze ich mich gegen Spam und Schadsoftware

 

In letzter Zeit habe ich häufig E-Mails von Anwaltskanzleien bekommen die angeblich noch offene Forderungen von diversen online Einkäufen haben und eine Mahnung übermitteln. Hier mal ein Screenshot der entsprechenden Mail, in dieser Mail wurde mein voller Name verwendet, welchen ich entfernt habe.

Screenshot einer Spam Mail die ich vor kurzem erhalten habe

 

Diese Mail sieht beim ersten hinschauen ja ziemlich Vertrauenswürdig aus vor allem da dort mein voller Name verwendet wurde. Beim zweiten lesen fallen jedoch einige Indikatoren auf die euch hellhörig machen sollten:

  1. Der Absender: Wie man schon sieht ist im Absendernamen ein Rechtschreibfehler, Anwaltskanalei. Sowas sieht man eigentlich selten bei seriösen Anwälten. Wenn man sich die Email Adresse hinter dem Absender Namen anschaut findet man meistens eine Mail Adresse die bei einem freiem Mail Provider liegt, wie z.B. gmail, Yahoo, online, web,.... Seriöse Unternehmen versenden meistens von eigenen Domains, d.H.  die Mailadressen lauten z.B. {mitarbeitername}@kanzlei-mustermann.de . Unternehmen haben also meistens eigene Top Level Domains die den Namen des Unternehmens enthalten.
  2. Der Dateianhang: Wie man rechts im Bild sieht ist eine .zip Datei an die Mail angehangen. Dort sollten ebenfalls jegliche Alarmglocken gehen. Man sollte Niemals .zip Dateien oder andere Anhänge öffnen die von unklaren Absendern kommen, .zip ist ein komprimierungsformat, und dient normalerweise dazu mehrere Dateien zu komprimieren und in einem .zip Archiv zu verpacken um das ganze mit einer kleineren Dateigröße zu erhalten (Wikipedia Artikel zu .ZIP). Leider wird zip nicht nur verwendet um z.B. seine Urlaubsbilder in ein komprimiertes Archiv zu verpacken, sondern oft auch um Viren und andere Schädlinge darin zu verpacken. Desweiteren sollte man bedenken das Rechnungen oder Dokumente meistens als .pdf Dateien versandt werden und nicht als ZIP Archive. Oft werden auch .html Dateien an Spam angehangen die beim öffnen Sicherheitslücken von Browsern ausnutzen
  3. Logiktest: Bei Spam Mails dieser Art sollte man sich stehts die Frage stellen: "Habe ich in letzter Zeit was bestellt?". Wenn Ihr sicher seit das dies nicht der Fall ist sollte eine solche Mail direkt gelöscht werden. Ansonsten sollte man beim lesen der Mail auf Sinnhaftigkeit achten, denn normalerweise sollte in einem solchen Fall doch der Name des Unternehmens wo ich bestellt habe und ein Bestelldatum angegeben sein, dies ist wie oben zu sehen nicht der Fall.
  4. Rechtschreibung: Die meisten Spam Mails sind von Gramatik und Rechtschreibfehlern übersät, da diese oft von Ausländischen Programmautoren kommen oder maschinell übersetzt wurden.
  5. Links in Emails: auch beliebt sind Links in Emails die Sie auf andere Webseiten leiten. Sollten Ihr den Absender nicht kennen oder nicht vertrauen sollten auch keine Links geöffnet werden. Denn diese Links leiten euch auf Websites die evtl. Sicherheitslücken von Browsern ausnutzen oder versuchen an Daten zu kommen (Phishing), dies tritt zum Beispiel oft bei Spam auf der angeblich von Ihrer Bank kommt wo es darum geht das die Sicherheitsregeln angepasst wurden und Sie ein neues online Banking Passwort festlegen müssen oder ähnliches. Ein Link leitet Sie dann auf eine gefälschte Website die meistens ein ähnliches Design wie die Website der Bank hat, dort werden sie aufgefordert Kontodaten oder persönliche Daten ein zu geben. Dies sollte man tunlichst unterlassen, denn eine Bank wird euch bei solchen angelegenheiten stehts auf postalischen Weg kontaktieren, sollte man sich nicht sicher sein sollte man seine Bank in solchen Fällen anrufen bevor man irgendwelche Daten eingibt. Einen Aufschluss gibt aber meist auch die URL die in vielen Programmen erscheint wenn man die Maus längere Zeit über den Link hält. Sollte dort nicht eine bekannte URL oder die übliche URL der Bank wie z.B. Sparkasse.de stehen, sollte man den Link keinesfalls aufrufen. Oft werden dort auch Domainnamen verwendet die sich ähnlich anhören, zB. wird ein einzelner Buchstabe weg gelassen, deswegen: Immer doppelt hinschauen!
  6. Spam Datenbank überprüfen: erfahrene Benutzer können auch die IP Adressen der Absender Domain auflösen z.B. durch einen Ping und diese in Spamdatenbanken überprüfen. Ein Anbieter dafür ist zB. DNSBL dort gibt man die IP ein und sämtliche Spamdatenbanken und blacklists werden überprüft.

 

Mit den oben genanten Tips zur überprüfung lässt sich der meisten Spam ziemlich schnell erkennen und wenn die Hinweise befolgt werden ist man recht sicher vor Viren und Schadsoftware. Natürlich gibts den ein oder anderen "Bösewicht" der das ganze glaubwürdiger verpackt so das man mal darauf reinfallen kann. Sollte dies passiert sein kontaktiert man am besten ein IT Unternehmen oder bekannten der sich gut auskennt um zu überprüfen welche Folgen z.B. das öffnen einen Schadsoftwarehaltigen Anhangs hatte.

Eine Frage die sich mir bei der obigen Mail gestellt hat war: "Welcher Typ von Schadsoftware ist denn diesmal dabei?". Also machte ich mich ans Werk.

  1. Habe ich mir eine Virtuelle Maschine in vmware Player erstellt um den Anhang in einer isolierten Umgebung öffnen zu können. Wichtig dabei ist das man die Kommunikations Einstellungen mit dem Hostsystem übeprüft, damit nichts rauskommen kann.
  2. Nachdem die VM Betriebsbereit war habe ich den Anhang in der VM herunter geladen (zip Datei weiterhin verpackt gelassen).
  3. Die Netzwerkverbindung vom PC entfernt / getrennt und Netzwerkadapter aus der VM entfernt (sicher ist sicher :D).
  4. Dann habe ich das .zip Archiv entpackt, dort war eine .exe Datei drinn, die natürlich keine Rechnung ist, spätestens da sollte einem klar sein das es Schadsoftware ist.
  5. Um das ganze weiter hinaus zu provozieren habe ich die .exe Datei mal ausgeführt, daraufhin ging kurz eine Konsole offen, dann geschah 2min lang nichts bis eine Fehlermeldung kam das der installierte Adobe Reader defekt ist. Trick an der Sache ist da nichtmal einer installiert ist.
  6. Nun ging es darum heraus zu finden was da abgelaufen ist, ich habe mal die gängigen standards geprüft und musste feststellen das es einer der 0815 Dinger ist. Ein blick in msconfig zeigte das eine Datei mit kryptischen Namen nun beim starten von Windows ausgeführt wird. Außerdem haben sich ein Paar Ordner mit ähnlichen namen (hidden) im Userprofil eingeschlichen. Das ganze wäre nun auch recht leicht von Hand zu entfernen.
  7. Als nächsten habe das .iso der Kaspersky Rescue Disk in die VM eingebunden um mal zu prüfen ob die Kaspersky Pattern mir zu erzählen was das Tolle Schadprogramm wohl macht. Nach kurzer Suche hat sich herausgestellt das es ein Keylogger ist der dazu konzipiert wurde um Kennwörter und Nutzerdaten ab zu greifen.

Wie oben beschrieben wurde das ganze ohne Netzwerkverbindung durchgeführt, es kann gut sein das bei bestehender Internetverbindung noch einige Rootkits und Backdoors mit rein gekommen werden.

Wie schütze ich mich dagegegen?

Einen 100%tigen Schutz gibt es nicht, aber durch einige Maßnahmen wird es schon deutlich sicherer.

  • Up to Date bleiben, Software wie den Internet Browser, Java, Flash, Windows an sich, Mail Client usw. stehts aktuell halten, da meist kurz nach dem entdecken von Sicherheitslücken Updates kommen.
  • Antiviren Software, auch hier gilt es aktuell zu bleiben, normalerweise ist es meistens besser ein kostenpflichtiges Antivirus zu nutzen da diese meistens eine größere Funktionsvielfalt bieten wie zB. einen Spamfilter.
  • Erst denken dann klicken, nicht einfach x beliebige Links und Emails öffnen.

Das wars dann für Heute auch von meiner seite, hoffentlich konnte der ein oder andere seine Kenntnisse mit dem Beitrag erweitern. Falls es Fragen zum Thema gibt könnt Ihr diese einfach in den Kommentaren posten ;-)

3Nov/110

Android – GPS Verwenden

Heute möchte ich kurz vorstellen wie leicht man GPS in einer Android-APP verwenden kann. Zunächst ist wichtig, dass bei der APP die entsprechenden Permissions gesetzt sind, sodass sie auf das GPS zugreifen können. Dann habe ich mir folgende Klasse gebastelt:

/**
 * Simple Android GPS Usage Example
 */
public class AndroidGPS {
	// location manager
	private LocationManager lManager;
 
	// listener
	private LocationListener lListener;
 
	// saves last location
	private Location lastLocation;
 
	// update at least every x seconds
	private static int UPDATE_INTERVAL = 20;
 
	// update at least every x meters
	private static int UPDATE_DIST = 1000;
 
	/**
	 * Startup GPS Tracking
	 */
	public void init() {
		// init location Updater
		lManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		lListener = new GPSLocListener();
 
		lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, UPDATE_INTERVAL * 1000, UPDATE_DIST, lListener);
		saveLocation(lManager.getLastKnownLocation(LocationManager.GPS_PROVIDER));
	}
 
	/**
	 * Location manager class
	 */
	private final class GPSLocListener implements LocationListener {
 
		public void onLocationChanged(Location location) {
			saveLocation(location);
		}
 
		public void onProviderDisabled(String provider) {
			// 
		}
 
		public void onProviderEnabled(String provider) {
			//		
		}
 
		public void onStatusChanged(String provider, int status, Bundle extras) {
			//
		}
 
	}
 
	/**
	 * Save a location
	 */
	private void saveLocation(Location l) {
		lastLocation = l;
	}
 
	/**
	 * Returns last known location
	 */
	public Location getLocation() {
		return lastLocation;
	}
 
}

Ist eigentlich ziemlich selbsterklärend. Diese Klasse zu verwenden ist nicht schwer:

// Klasse initialisieren
AndroidGPS g = new AndroidGPS();
g.init();
 
// in einem timer zB
Location = g.getLocation();
// .. irgendwas damit machen

Ich hoffe ihr könnt damit was anfangen ;-)