Schlagwort-Archiv: Coden

Schlechter Code für Opensource

Das Prinzip von Opensource ist altbekannt. Der Code einer Software ist offen verfügbar, und jeder der will, kann Änderungen daran hinzufügen und wieder einchecken.

Und hier liegt das grösste Problem: Wenn nun jemand böse Absichten hat, so kann er seinen Schadcode gut getarnt dem Projektteam vorlegen und darauf hoffen, das dieser aufgenommen wird.
Kommt der Schadcode durch, so hätte ein Angreifer jederzeit Zugriff auf Daten oder andere Informationen. In einem kleinen, unbekannten Projekt ist das zwar schrecklich, die Konsequenten sind aber nicht weiter verheerend.
Doch was nun, wenn es anstelle von einer unbedeutenden Software ein verbreitetes Projekt wie WordPress, Ubuntu, Typo3 oder Nagios betroffen ist… Somit hätte ein Angreifer Zugriff zu tausenden und abertausenden Systeme, Server oder Webseiten und Webappliaktionen! Nicht auszumalen, wie verheerend die Konsequenten wären…

Und, man glaub es kaum, ganz so abwegig ist das ganze nicht! Heute wurde in der OpenBSD-Nachrichtenliste ein erschreckendes eMail veröffentlicht:

Long time no talk. If you will recall, a while back I was the CTO at
NETSEC and arranged funding and donations for the OpenBSD Crypto
Framework. At that same time I also did some consulting for the FBI,
for their GSA Technical Support Center, which was a cryptologic
reverse engineering project aimed at backdooring and implementing key
escrow mechanisms for smart card and other hardware-based computing
technologies.

My NDA with the FBI has recently expired, and I wanted to make you
aware of the fact that the FBI implemented a number of backdoors and
side channel key leaking mechanisms into the OCF, for the express
purpose of monitoring the site to site VPN encryption system
implemented by EOUSA, the parent organization to the FBI. Jason
Wright and several other developers were responsible for those
backdoors, and you would be well advised to review any and all code
commits by Wright as well as the other developers he worked with
originating from NETSEC.

This is also probably the reason why you lost your DARPA funding, they
more than likely caught wind of the fact that those backdoors were
present and didn’t want to create any derivative products based upon
the same.

This is also why several inside FBI folks have been recently
advocating the use of OpenBSD for VPN and firewalling implementations
in virtualized environments, for example Scott Lowe is a well
respected author in virtualization circles who also happens top be on
the FBI payroll, and who has also recently published several tutorials
for the use of OpenBSD VMs in enterprise VMware vSphere deployments.

Das eMail von Gregory Perry beschreibt sein Geständnis, wie er vor 10 Jahren Geld von der US-Regierung, genauer dem FBI angenommen hatte und dafür mehrere Backdoor in OpenBSD mit einprogrammiert hatte…

Glücklicherweise sind die Auswirkungen laut Gregory Perry nach 10 Jahren nicht mehr ganz so verheerend:

Since we had the first IPSEC stack available for free, large parts of
the code are now found in many other projects/products. Over 10
years, the IPSEC code has gone through many changes and fixes, so it
is unclear what the true impact of these allegations are.

Wenn die US-Regierung für OpenBSD Geld springen liess, in wie vielen anderen Opensource-Projekten haben die denn sonst noch mitgemischt?!

Android App – Virtual Device & erste App

Artikelserie: Android App – Entwicklungsumgebung

So nachdem das SDK, Eclipse und alles weiter eingerichtet ist, muss noch ein Virtueller Device eingerichtet werden, da dieses einfach weitaus schneller geht, als die komplette Applikation jedes mal auf ein physisches Gerät zu übertragen.

Ein virtueller Device kann über den AVD (Android Virtual Devices) erstellt und konfiguriert werden. Dazu wird über Eclipse selbst unter “Windows” über den Punkt “Android SDK und AVD Manager” der Manager geöffnet

Danach wird ein neues Device mit den passenden Spezifikationen angelegt und nach ein bisschen Wartezeit auch gestartet:

Der gestartete Emulator hat beim ersten mal sehr lange zum laden, also nur Geduld.
Ist alles durch, so sieht das so aus:

Nun kann in Eclipse selbst eine Applikation erstellt werden.
Dazu habe ich hier ein sehr gutes Tutorial gefunden, welcher die Grundlagen der Android-Programmierung einfach und gut mittels eines Beispieles erklärt. Nur zu empfehlen!

Die fertige Applikation kann danach ganz normal über Eclipse gestartet werden und wird automatisch auf den Emulator übertragen.
Die soeben geschriebene Applikation muss nur noch im Menü selbst gestartet werden und kann dann ausführlich getestet werden.

Wie exakt der Emulator einem realen Gerät entspricht, konnte ich bisher noch nicht feststellen, jedoch für die ersten Tests reicht es durchaus.

Ist die App schlussendlich in einem finalen Zustand, so kann diese exportiert werden.
Dazu macht man rechtsklick auf den Projektordner und wählt “Export…” und folgt dem Assistenten.

android

Android App – Entwicklungsumgebung

Artikelserie: Android App – Entwicklungsumgebung

Vor kurzem habe ich mir das neue Samsung Galaxy Tab mit Android 2.2 zugelegt und wollte mich nun mal ein bisschen schlau machen betreffend App-Programmierung für Android.
Ich habe mir vorgenommen in einer Artikelserie über meine Fortschritte und ersten Apps zu berichten.

Somit fange ich hier mal an über die Installation der Entwicklungsumgebung und erste Informationsquellen zu berichten.

Die Installation ist auf der Google-Seite sehr gut beschrieben, jedoch ausschliesslich in englischer Sprache.
Jedoch ist alles sehr einfach gehalten, weshalb ich mir nicht mehr die Mühe mache, alles noch zu übersetzen.

Im Gegensatz zur Apple-App-Entwicklung (Achtung flame ;) ) gefällt mir hier sehr gut, dass auf Windows, Mac und Linux entwickelt werden kann und man sich nicht zuerst noch einkaufen muss…

Nachdem nun die Entwicklungsumgebung eingerichtet ist, müssen mehr Informationen her!
Zum Einstieg halte ich mich an das Buch Android von Arno Becker und Marcus Pant, welches als eBook hier gratis heruntergeladen werden kann.
Zwar behandelt dieses Buch noch die alte 1.5er Version von Android, jedoch für den Einstieg wird es seinen Zweck erfüllen. Und da ich kein besseres Buch kenne zur Zeit, muss das reichen…

Somit wäre der erste Meilenstein zur eigenen Android App gelegt, was mir nun noch fehlt, ist eine gute Idee… Vorschläge? :)

alea iacta est – Teil 4

Vor noch nicht ganz einem Monat war Einsendeschluss für den Wettbewerb vom Linux-Magazin, über welchen ich ja schon in den vorigen 3 Teilen zu genügen berichtet habe.

So ist es nun an der Zeit, meinen kompletten Bot einzusenden. Er wird zwar niemandem mehr beim Wettbewerb helfen, aber vielleicht will ihn ja sonst jemand missbrauchen ;)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/bash
#------------------------------------------------------------------------------
# Author:	Patrick Schmid
# Web:		http://blog.encodingit.ch
# Version:	1.1
# Changes:	- Grundversion (13.8.10)
#		- Script umgestellt auf NC-Version (16.8.10)
#------------------------------------------------------------------------------
 
# Umgebung festlegen
name="encodingit" # mein Name
active=0 # Nicht mein Zug
zaehler=0
 
function play { # Spielfunktion
 
	meins=$1 # Meine Punktzahl umspeichern
	seins=$2 # Gegnerische Punktzahl umspeichern
 
	zaehler=$(( $zaehler+1 ))
	if [ $zaehler -gt 4 ] 
	then # Minimal 3 Würfe vor erstem Speichern, dann
		if [ 10 -gt $(( 50-$meins )) ] # fehlt noch viel bis zum Sieg?
		then
			active=1
			echo "ROLL Das reicht noch..." # würfeln
		else
			if [ $(( $meins-$seins )) -gt 5 ]
			then # Ich habe 4 Punkte mehr als Gegner, dann
				zaehler=0 # Zähler zurücksetzen
				active=0 # Zug beendet
				echo "SAVE Sicher ist sicher!" # Speichern
			else # sonst
				active=1
				echo "ROLL Ich muss..." # würfeln
			fi
		fi
	else # sonst
		active=1
		echo "ROLL Und los..." # würfeln
	fi
}
 
while read command a1 a2 a3
do
	case $command in
		HELO)
			echo "AUTH $name Ich bin bereit!"
			;;
		TURN)
			play $a1 $a2
			;;
		THRW)
			if [ "$active" = "1" ] 
			then
				if [ "$a1" = "6" ]
				then
					active=0
				fi
			else
				if [ "$a1" = "6" ]
				then
					active=1
				fi
			fi
			;;
		WIN|DEF)
			exit 0
			;;
		*)
			echo "AUTH $name Ich bin bereit!"
			;;
	esac
done

Ich weiss, die künstliche Intelligenz ist nicht überragend; wie es jedoch im Vergleich mit den anderen Mitstreitern aussieht, kann ich leider nicht sagen, vom Veranstalter habe ich bisher noch keine Rückmeldung, aber da wurde Magnus vom Linux Magazin wohl ein bisschen von den zahlreichen Einsendungen überrascht…

Trotzdem war es ein interessanter Wettbewerb, obwohl ich anmerken möchte, bei den prophezeiten Spielen, welche jeder Bot gegen einen Gegner spielt, entscheidet mehr der Zufall als eine ausgefeilte Programmierung. Ich weiss, ich suche nur eine Ausrede, falls ich nicht immer gewinne ;)
Naja, es zählt ja der Spass dabei und meine Bash-Kenntnisse auffrischen war auch nicht das dümmste ;)