bloginfo('name');

bloginfo('description');

Archives Posts

Enabling PHP5-support on 1&1 Servers (formerly Schlund)

Juli 2nd, 2007 by Blu:RayNe

Ok, i was bitching around enough about 1&1 and probably I have enough reason to, but it’s time for some positive things, namely… they do support PHP5 on their servers!

Just add following to .htaccess to enable the directory-wise support for single directories.

AddType x-mapp-php5 .php

Remember that this also affects descendants of the directory you have applied this.

Still it is only version 5.2.1, not really up-to-date to guarantee good security, but they have improved on their update cycles. Anyway, i guess i have to ask them for MySQL5 Servers. Or you tell your customers not to go to the „best and biggest hoster in germany“ *LOL*

I really encourage to update and want to remind you that the PHP-community wants to get the jump to Version5 for about one year now. PHP5 already is 3 years old (PHP 5.0.0 final was released on 13-Jul-2004!). PHP4 only is maintained for security but not developed any longer – it’s really late if you don’t yet develop PHP5 applications yet!

So get your lazy asses up and learn to code!

Filed under Allgemein, Netzwelt having 1 Comment »

Archives Posts

Log XSS and suspicious Queries to your site

Juni 30th, 2007 by Blu:RayNe
AddType application/x-httpd-php .bank
AddType application/x-httpd-php .bmp
AddType application/octet-stream .pdf
AddType application/octet-stream .PDF
AddType application/x-xpinstall .xpi

RewriteCond %{QUERY_STRING} (\"|%22).*(\>|%3E|<|%3C).* [NC]
RewriteRule ^(.*)$ log.php [NC]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E|%22) [NC]
RewriteRule ^(.*)$ log.php [NC]
RewriteCond %{QUERY_STRING} (javascript:).*(\;).* [NC]
RewriteRule ^(.*)$ log.php [NC]
RewriteCond %{QUERY_STRING} (\;|\’|\"|\%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if).* [NC]
RewriteRule ^(.*)$ log.php [NC]
RewriteRule (,|;|<|>|’|`) /log.php [NC]
 

…found in .htaccess at 0×000000.com. Also read the ha.ckers.org Cheat Sheet to XSS!

I guess I’ll rewrite my ErrorHandler a bit to support XSS or suhosin-messages. I’m not a big find of going through a houndred megabytes of apache-logs a day ;)

Filed under Security having No Comments »

Archives Posts

Platinum Service at 1&1 – the biggest and best german hoster?

Juni 28th, 2007 by Blu:RayNe

Or the story of a hack and the recovery of a compromised system. Namely server “Detroit” went down today at 4:06am throughout MAC poisoning, which was discovered by an IP Switch and therefore rejected(?). Sad, but, another journey of terror of support terror began…

Day 1

[9:00am] The server cannot be reached!

Are you sure? Damn, but I guess it’s their fault (once again). If you already had used 1&1 or former Schlund you only have two choices to convince them that they have an issue with their network and it’s not your fault.

  1. Their service team is separated from their tech team. So coordination is not as always as it should be. First choice is always to get the service contact overloaded by tech speak so he has to make a query to the tech team. Then they’re suddenly very cooperative.
  2. Second option is to tellthem it’s about a shop that makes a hel-load of orders and is going to be far under expected sales if they don’t fix the error.

Well, i catched up the syslog via hardware console and saw that the system is unable to bring up the network adapter (eth0), but booted normaly. And still i wasn’T able to connect via SSH. I phoned the support several times and about 3h later i was reported that the server poisoned the network with an invalid MAC address since 4:06. I wasn’t sure if they’re right – but probably it was a reason for the network adapter beeing  rejected by their IP Switch.

[12:00] Tracing the intruder

Well, they told me our system is now seen as compromised and i will be only able to boot the rescue system for now. I tried this via their admin section on their website, but the option was not available. Therefore they system bootet the normal system isntead, which could also be seen over hardware console. Another phone call was made. After 1h i had the option and i finally was able to boot the system. It took another 2h until their automated system gave me finally a shell to the a rescue system. But i wasn’t able to login with the given password from the administration site. I tried the original password for the server and it suddenly gave me access. Ok, that’s really  secure when the hacker already has decrypted the passwd from the old system, where i switched off pure passwd-auth (only RSA-keys).

Well, now i was finaly able to mount the drives and search for traces of the intruder. I didn’t find much in the logs, or something that really spoke for MAC poisoning, but i did find some w00tw00t.at log entries, an IP address from an AOL network and some local exploits in “/tmp/ /../”. Probably the addrsses were also spoofed and our little server was going to become a spambot or a proxy.

[17:00] Making a backup of the files

One thing at 1&1  is really nice: not having a good working solution for backup or instant recovery. Other hosters provide you with drive images from the last 3 days or automated backup systems or instant fallback image servers.

1&1 says this is not possible for root servers – hell knows why – and provide you instead with a restrictive FTP server with the same size as your server HD for two-times the money of other offers. Okay, that’s probably ok for diff-tarballs but it’s not a real deal when you want a mirror or you have to backup large amounts or big files. And it’s pain in the ass when you cannot stream to the FTP server, but have to pack a tarball first and then transfer it. That’s fine when the HD is almost full, und you only have the ftp, screen and vim command in the shell. Right, No Midnight Commander or tools to do instant batch processing of the files. I wouldn’t call it rescue system but minimal system instead.

Well, it was an 120GB partition with about 52GB free. I deleted some stuff, made some tarballs for the /var/logs, /etc /home and then transferred it to FTP. I was very happy to have enough free drive space to do that. And i did the backup to two times, one on another FTP Server – only to make sure they don’t reinitialize and kill the data an the FTP that’s in one contract/package with the Backup Server. Well that was about 50GB of data compressed to about 27GB.

[19:00] Go home and wait till tomorrow

The server was still transferring and since it was „only“ our development server which got compromised i could walk home without having to fear a work day till the full moon. The server still transferred some files…

Day 2

[9:00] Backup is made, please reinitialize the server!

The first thing i’ve done in morning – even before i got my coffee – was to call they support hotline again. The server is ready, please re-initailize it!

[11:00] I still can login to the rescue!

And again another phone call was  made since no once actualy did something. Again, the same story had to be told (platinum service witrh different employees!), the tech team had to be queried once again (please hold the line for about 10min!), and finally i was asked which system i wanted – after telling them my contract and customer number for 10 times. I told them „Debian Etch Stable“, or „Debian 4.0“ or the „latest Debian available“.

“Thanks. You’re system will now be reinitialized with your desired system. It will be available in some hours, because they have to do it manually this time…” – *click* – “Manually?!”

[16:00] Manualy means 5h for installing Linux Debian and bringing up network access

I had meanwhile a closer look on the logs which i downloaded yesterday, ,did answer the phone two times and wondered if “hopefully online again tomorrow evening” was the wrong sentence in the mails i sent toyour developers yesterday evening.

Meanwhile the server could be reached for short time, there was a shell to login (but i had no passwords), and then again the server was off the line, and then it showed “ready” with bold text “SUSE Linux 9.3 (PLESK 7.3)” on their recovery admin site.

Still I cannot ping or connect to the system. And i wonder how long it takes to reintialize the server once again with Debian…

[17:15] Compromised system released again

Ok, although it’s against their policy they did release the compromised system(!). And it still runs. Yet it was not blocked from the IP switch and no rootkit was found Still i wonder what data the guy leeched, or if he was even able to download something and how he got into the system. I guess he used the server as proxy (

Anyway, vnstat reports about  tx 3,971 MB,  rx 2,517 MB,  total  6,489 MB, wheras the server only does about 500MB  total per day.  I forgot to check that  and unless vnstat only does 24h i have no way to revert that data.

And some are going crazy here about mailing about 20 new passwords, whereas i have to set about 200 new passwords and copy and unpack about 40GB of data.

Resumé of the hack

Still the biggest problems with 1&1 are bureaucrazy and strict information policy as well as an overloaded network that has really amazing latency.

Anyway, it seems the intruder got into the server over a PHP upload exploit, but could not much do inside /tmp. Still, he could mainipulte the network adapter (probably through a local buffer overflow?).

He began scanning for security holes at 1:36am and was blocked by the intrusion detection system about 4:06am.

I guess all relevant data can be restored and nothing was lost. But what was once compromised stays compromised. I looked for file changes in the application files online but didn’t find anything – hopefully we’re safe again.

But Platinum service at 1&1 only means you get a ticket number which enables you to ask how far your query has progressed. Ah, and well the service employees are not the dumbest in the firm. That’s all mystery behind it! Forget 1&1! They suck. And the decision for 1&1 was not my choice…

Archives Posts

Intelligent Captcha

Juni 25th, 2007 by Blu:RayNe

Ajaxian.com hat wirklich ein sehr „ausgefuchstes“ CAPTCHA – vielleicht schon länger, aber bislang habe ich dort noch nichts zu posten gehabt.

Zu beantworten Fragen gibt es z.B. folgende:

  • What four letter word starting with ‘A’ is the topic of this blog?
  • What does the X in Ajax stand for?
  • What three letter acronym is what we use to style web pages?

Einerseits hält es somit unqualifizierte Beiträge fern, andererseits bringt mich das auf eine ganz neue Idee:

  • What four letter word in the headline of this page does start with A?
  • What id do you read after article in the URL?
  • What color do we use for page background?
Filed under Allgemein, Netzwelt having 1 Comment »

Archives Posts

.htaccess zum Schutz gegen BKA Terror-Bot

Juni 19th, 2007 by Blu:RayNe

Nach des Bespitzelung dieses Blogs habe ich mal ein paar Sicherheitsvorkehrungen getroffen, um mich vor dem Missbrauch von Datenkracken zu schützen:

# Block BKA Terror-Bot
RewriteEngine on
RewriteCond %{HTTP_REFERER} bka [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bka [NC,OR]
RewriteCond %{REMOTE_HOST} bka [NC]
# Hier (in rot) sollte etwas von eurem Host stehen, damit ihr BKA im Seitentitel haben könnte
RewriteCond %{HTTP_REFERER} !<span style="color: #ff0000;">evolution515</span>
RewriteRule ^.*$ http://www.google.de/search?hl=de&amp;q=anti+terror [R=301,L]

Und für alle, die jetzt nicht wissen, was das bedeutet hier nochmal die Apache Dokumentation zu mod_rewrite.

Es wäre schön vielleicht von dem ein oder anderen noch ein paar IPs oder Netmasks für die BKA- und Europol-Server zu bekommen:

Order Allow,Deny
Deny from 208.69.32.130/32
Deny from 62.156.153.38/32
Deny from 217.7.176.24/30 # 217.7.176.24 – 217.7.176.27
Deny from 72.30.0.0/16 # 72.30.0.0 – 72.30.255.255
Deny from 68.142.192.0/18 # 68.142.192.0 – 68.142.255.255
Deny from 68.142.192.0/18 # 68.142.192.0 – 68.142.255.255
Allow from all

Hier die Erweiterung der Rewrite-Rules für die gängigsten E-Mail-Harvester und Spambots:

# Block E-Mail Harvester
RewriteEngine on
ReWriteCond %{HTTP_USER_AGENT} Alexibot                [OR]
ReWriteCond %{HTTP_USER_AGENT} asterias                [OR]
ReWriteCond %{HTTP_USER_AGENT} BackDoorBot             [OR]
ReWriteCond %{HTTP_USER_AGENT} Black.Hole              [OR]
ReWriteCond %{HTTP_USER_AGENT} BlackWidow              [OR]
ReWriteCond %{HTTP_USER_AGENT} BlowFish                [OR]
ReWriteCond %{HTTP_USER_AGENT} BotALot                 [OR]
ReWriteCond %{HTTP_USER_AGENT} BuiltBotTough           [OR]
ReWriteCond %{HTTP_USER_AGENT} Bullseye                [OR]
ReWriteCond %{HTTP_USER_AGENT} BunnySlippers           [OR]
ReWriteCond %{HTTP_USER_AGENT} Cegbfeieh               [OR]
ReWriteCond %{HTTP_USER_AGENT} CheeseBot               [OR]
ReWriteCond %{HTTP_USER_AGENT} CherryPicker            [OR]
ReWriteCond %{HTTP_USER_AGENT} ChinaClaw               [OR]
ReWriteCond %{HTTP_USER_AGENT} CopyRightCheck          [OR]
ReWriteCond %{HTTP_USER_AGENT} cosmos                  [OR]
ReWriteCond %{HTTP_USER_AGENT} Crescent                [OR]
ReWriteCond %{HTTP_USER_AGENT} Custo                   [OR]
ReWriteCond %{HTTP_USER_AGENT} DISCo                   [OR]
ReWriteCond %{HTTP_USER_AGENT} DittoSpyder             [OR]
ReWriteCond %{HTTP_USER_AGENT} Download\ Demon         [OR]
ReWriteCond %{HTTP_USER_AGENT} eCatch                  [OR]
ReWriteCond %{HTTP_USER_AGENT} EirGrabber              [OR]
ReWriteCond %{HTTP_USER_AGENT} EmailCollector          [OR]
ReWriteCond %{HTTP_USER_AGENT} EmailSiphon             [OR]
ReWriteCond %{HTTP_USER_AGENT} EmailWolf               [OR]
ReWriteCond %{HTTP_USER_AGENT} EroCrawler              [OR]
ReWriteCond %{HTTP_USER_AGENT} Express\ WebPictures    [OR]
ReWriteCond %{HTTP_USER_AGENT} ExtractorPro            [OR]
ReWriteCond %{HTTP_USER_AGENT} EyeNetIE                [OR]
ReWriteCond %{HTTP_USER_AGENT} FlashGet                [OR]
ReWriteCond %{HTTP_USER_AGENT} Foobot                  [OR]
ReWriteCond %{HTTP_USER_AGENT} FrontPage               [NC,OR]
ReWriteCond %{HTTP_USER_AGENT} GetRight                [OR]
ReWriteCond %{HTTP_USER_AGENT} GetWeb!                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Go-Ahead-Got-It         [OR]
ReWriteCond %{HTTP_USER_AGENT} Googlebot-Image         [OR]
ReWriteCond %{HTTP_USER_AGENT} Go!Zilla                [OR]
ReWriteCond %{HTTP_USER_AGENT} GrabNet                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Grafula                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Harvest                 [OR]
ReWriteCond %{HTTP_USER_AGENT} hloader                 [OR]
ReWriteCond %{HTTP_USER_AGENT} HMView                  [OR]
ReWriteCond %{HTTP_USER_AGENT} httplib                 [OR]
ReWriteCond %{HTTP_USER_AGENT} HTTrack                 [NC,OR]
ReWriteCond %{HTTP_USER_AGENT} humanlinks              [OR]
ReWriteCond %{HTTP_USER_AGENT} ia_archiver             [OR]
ReWriteCond %{HTTP_USER_AGENT} Image\ Stripper         [OR]
ReWriteCond %{HTTP_USER_AGENT} Image\ Sucker           [OR]
ReWriteCond %{HTTP_USER_AGENT} Indy\ Library           [NC,OR]
ReWriteCond %{HTTP_USER_AGENT} InfoNaviRobot           [OR]
ReWriteCond %{HTTP_USER_AGENT} InterGET                [OR]
ReWriteCond %{HTTP_USER_AGENT} Internet\ Ninja         [OR]
ReWriteCond %{HTTP_USER_AGENT} JennyBot                [OR]
ReWriteCond %{HTTP_USER_AGENT} JetCar                  [OR]
ReWriteCond %{HTTP_USER_AGENT} JOC\ Web\ Spider        [OR]
ReWriteCond %{HTTP_USER_AGENT} Kenjin.Spider           [OR]
ReWriteCond %{HTTP_USER_AGENT} Keyword.Density         [OR]
ReWriteCond %{HTTP_USER_AGENT} larbin                  [OR]
ReWriteCond %{HTTP_USER_AGENT} LeechFTP                [OR]
ReWriteCond %{HTTP_USER_AGENT} LexiBot                 [OR]
ReWriteCond %{HTTP_USER_AGENT} libWeb/clsHTTP          [OR]
ReWriteCond %{HTTP_USER_AGENT} LinkextractorPro        [OR]
ReWriteCond %{HTTP_USER_AGENT} LinkScan/8.1a.Unix      [OR]
ReWriteCond %{HTTP_USER_AGENT} LinkWalker              [OR]
ReWriteCond %{HTTP_USER_AGENT} lwp-trivial             [OR]
ReWriteCond %{HTTP_USER_AGENT} Mass\ Downloader        [OR]
ReWriteCond %{HTTP_USER_AGENT} Mata.Hari               [OR]
ReWriteCond %{HTTP_USER_AGENT} Microsoft.URL           [OR]
ReWriteCond %{HTTP_USER_AGENT} MIDown\ tool            [OR]
ReWriteCond %{HTTP_USER_AGENT} MIIxpc                  [OR]
ReWriteCond %{HTTP_USER_AGENT} Mister.PiX              [OR]
ReWriteCond %{HTTP_USER_AGENT} Mister\ PiX             [OR]
ReWriteCond %{HTTP_USER_AGENT} moget                   [OR]
ReWriteCond %{HTTP_USER_AGENT} Mozilla/2               [OR]
ReWriteCond %{HTTP_USER_AGENT} Mozilla/3.Mozilla/2.01  [OR]
ReWriteCond %{HTTP_USER_AGENT} Mozilla.*NEWT           [OR]
ReWriteCond %{HTTP_USER_AGENT} Navroad                 [OR]
ReWriteCond %{HTTP_USER_AGENT} NearSite                [OR]
ReWriteCond %{HTTP_USER_AGENT} NetAnts                 [OR]
ReWriteCond %{HTTP_USER_AGENT} NetMechanic             [OR]
ReWriteCond %{HTTP_USER_AGENT} NetSpider               [OR]
ReWriteCond %{HTTP_USER_AGENT} Net\ Vampire            [OR]
ReWriteCond %{HTTP_USER_AGENT} NetZIP                  [OR]
ReWriteCond %{HTTP_USER_AGENT} NICErsPRO               [OR]
ReWriteCond %{HTTP_USER_AGENT} NPBot                   [OR]
ReWriteCond %{HTTP_USER_AGENT} Octopus                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Offline.Explorer        [OR]
ReWriteCond %{HTTP_USER_AGENT} Offline\ Explorer       [OR]
ReWriteCond %{HTTP_USER_AGENT} Offline\ Navigator      [OR]
ReWriteCond %{HTTP_USER_AGENT} Openfind                [OR]
ReWriteCond %{HTTP_USER_AGENT} PageGrabber             [OR]
ReWriteCond %{HTTP_USER_AGENT} Papa\ Foto              [OR]
ReWriteCond %{HTTP_USER_AGENT} pavuk                   [OR]
ReWriteCond %{HTTP_USER_AGENT} pcBrowser               [OR]
ReWriteCond %{HTTP_USER_AGENT} ProPowerBot/2.14        [OR]
ReWriteCond %{HTTP_USER_AGENT} ProWebWalker            [OR]
ReWriteCond %{HTTP_USER_AGENT} ProWebWalker            [OR]
ReWriteCond %{HTTP_USER_AGENT} QueryN.Metasearch       [OR]
ReWriteCond %{HTTP_USER_AGENT} ReGet                   [OR]
ReWriteCond %{HTTP_USER_AGENT} RepoMonkey              [OR]
ReWriteCond %{HTTP_USER_AGENT} RMA                     [OR]
ReWriteCond %{HTTP_USER_AGENT} SiteSnagger             [OR]
ReWriteCond %{HTTP_USER_AGENT} SlySearch               [OR]
ReWriteCond %{HTTP_USER_AGENT} SmartDownload           [OR]
ReWriteCond %{HTTP_USER_AGENT} SpankBot                [OR]
ReWriteCond %{HTTP_USER_AGENT} spanner                 [OR]
ReWriteCond %{HTTP_USER_AGENT} SuperBot                [OR]
ReWriteCond %{HTTP_USER_AGENT} SuperHTTP               [OR]
ReWriteCond %{HTTP_USER_AGENT} Surfbot                 [OR]
ReWriteCond %{HTTP_USER_AGENT} suzuran                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Szukacz/1.4             [OR]
ReWriteCond %{HTTP_USER_AGENT} tAkeOut                 [OR]
ReWriteCond %{HTTP_USER_AGENT} Teleport                [OR]
ReWriteCond %{HTTP_USER_AGENT} Teleport\ Pro           [OR]
ReWriteCond %{HTTP_USER_AGENT} Telesoft                [OR]
ReWriteCond %{HTTP_USER_AGENT} The.Intraformant        [OR]
ReWriteCond %{HTTP_USER_AGENT} TheNomad                [OR]
ReWriteCond %{HTTP_USER_AGENT} TightTwatBot            [OR]
ReWriteCond %{HTTP_USER_AGENT} Titan                   [OR]
ReWriteCond %{HTTP_USER_AGENT} toCrawl/UrlDispatcher   [OR]
ReWriteCond %{HTTP_USER_AGENT} toCrawl/UrlDispatcher   [OR]
ReWriteCond %{HTTP_USER_AGENT} True_Robot              [OR]
ReWriteCond %{HTTP_USER_AGENT} turingos                [OR]
ReWriteCond %{HTTP_USER_AGENT} TurnitinBot/1.5         [OR]
ReWriteCond %{HTTP_USER_AGENT} URLy.Warning            [OR]
ReWriteCond %{HTTP_USER_AGENT} VCI                     [OR]
ReWriteCond %{HTTP_USER_AGENT} VoidEYE                 [OR]
ReWriteCond %{HTTP_USER_AGENT} WebAuto                 [OR]
ReWriteCond %{HTTP_USER_AGENT} WebBandit               [OR]
ReWriteCond %{HTTP_USER_AGENT} WebCopier               [OR]
ReWriteCond %{HTTP_USER_AGENT} WebEMailExtrac.*        [OR]
ReWriteCond %{HTTP_USER_AGENT} WebEnhancer             [OR]
ReWriteCond %{HTTP_USER_AGENT} WebFetch                [OR]
ReWriteCond %{HTTP_USER_AGENT} WebGo\ IS               [OR]
ReWriteCond %{HTTP_USER_AGENT} Web.Image.Collector     [OR]
ReWriteCond %{HTTP_USER_AGENT} Web\ Image\ Collector   [OR]
ReWriteCond %{HTTP_USER_AGENT} WebLeacher              [OR]
ReWriteCond %{HTTP_USER_AGENT} WebmasterWorldForumBot  [OR]
ReWriteCond %{HTTP_USER_AGENT} WebReaper               [OR]
ReWriteCond %{HTTP_USER_AGENT} WebSauger               [OR]
ReWriteCond %{HTTP_USER_AGENT} Website\ eXtractor      [OR]
ReWriteCond %{HTTP_USER_AGENT} Website.Quester         [OR]
ReWriteCond %{HTTP_USER_AGENT} Website\ Quester        [OR]
ReWriteCond %{HTTP_USER_AGENT} Webster.Pro             [OR]
ReWriteCond %{HTTP_USER_AGENT} WebStripper             [OR]
ReWriteCond %{HTTP_USER_AGENT} Web\ Sucker             [OR]
ReWriteCond %{HTTP_USER_AGENT} WebWhacker              [OR]
ReWriteCond %{HTTP_USER_AGENT} WebZip                  [OR]
ReWriteCond %{HTTP_USER_AGENT} Wget                    [OR]
ReWriteCond %{HTTP_USER_AGENT} Widow                   [OR]
ReWriteCond %{HTTP_USER_AGENT} [Ww]eb[Bb]andit         [OR]
ReWriteCond %{HTTP_USER_AGENT} WWW-Collector-E         [OR]
ReWriteCond %{HTTP_USER_AGENT} WWWOFFLE                [OR]
ReWriteCond %{HTTP_USER_AGENT} Xaldon\ WebSpider       [OR]
ReWriteCond %{HTTP_USER_AGENT} Spam                    [NC,OR]
ReWriteCond %{HTTP_USER_AGENT} Xenu’s [OR]
ReWriteCond %{HTTP_USER_AGENT} Zeus
RewriteRule ^.*$ http://www.google.de/search?hl=de&amp;q=spam[L]
Filed under Allgemein, Security having 3 Comments »

Archives Posts

Safari 3.0

Juni 13th, 2007 by Blu:RayNe

image

Ich wüßte es würde sich irgendwann lohnen auf ein englischsprachiges Windows zu behaaren. Jedenfalls merkte ich nichts davon, dass die Safari 3.0 Beta für Windows, seinen Dienst versagt hätte oder Überschriften ausblieben. Zwar gibt es hin und wieder kleinere Darstellungsfehler, aber was MSIE 7 abliefert ist teilweise noch sehr viel schlimmer.

Im Gegenteil: bis auf das, dass der Browser bei Klick auf Bookmarks abstürzte, bin ich absolut positiv beeindruckt.  Auch die extjs.org-Demos zeigte er wunderbar an.

Safari 3.0 Beta:

  • Super JavaScript Performance
  • Schnelle Seitendarstellung
  • einfache Bedienugung, trotzdem feature-rich
  • aktuelle Technologie und Web-Standards
    (SVG, XHTML/Strict, RSS, …)
  • sehr weiche Animation
    (auf das hat Apple wohl auch optimiert ;)

imageTrotzdem gibt es noch wenige Probleme:

 Beim Font Smoothing darf Apple auch irgendwann mal das Subpixel-Hintung verbessern. Freetype und Microsoft Cleartype kriegen das mittlerweile besser hin. Und weil wir schon dabei sind, bitte auch „text-weight:bold“ nicht zu fett anzeigen!

Trotzdem ist in der Darstellung auch der große Vorteil von Safari: durch ein homogenes Bild verschwinden die Grenzen zwischen Flash und XHTML/Ajax.

Und was Apple total versaute:

Die Beta auch mal auf nicht englischsprachigen System zu testen, und auch wirklich auf Stabilität zu testen. Die Hacker und internationale Presse freut sich darüber, und die DAU-Trolls auch, den sind Kommentare wie „bei den Darstellungsfehlern, kann ich ja gleich wieder den MSIE nehmen!“ nicht selten.

„Der schnellste Browser“ tituliert Apple, und ich muss sagen, die Performance von WebKit in Adobe Air (vormals Apollo), sowie auch von dem Windows-Webkit Browser Swift 0.2 ist definitv besser. Trotzdem fällt auf, dass der Browser einen sehr schnellen Cache besitzt – bei einer hohen Speicherauslastung von über 100MB bei der Google-Startseite :X

Trotzem, es ist ne Beta. Oder sollte ich lieber sagen Alpha, denn so verhält sich der Browser noch. Sollte Apple die Abstürze und die Sicherheitslücken nicht in den Griff bekommen tun sie sich bestimmt schwer auf Windows gegen Firefox oder Opera zu konkurrieren (wir sprechen hier von Technik, nicht von Browseranteilen!). Für Oktober merke ich mir jedenfalls eine Version vor, die sich wie eine Beta verhält und noch viele Sicherheitslücken beinhalten wird…

Mozilla/5.0 (Windows; U; Windows NT 5.1; de) AppleWebKit/522.11.3
(KHTML, like Gecko) Version/3.0 Safari/522.11.3

Archives Posts

STASI 2.0 – Schäuble tyrannisiert den LinuxTag 2007

Mai 10th, 2007 by Blu:RayNe

Nach dieser News auf heise.de musste einfach gehandelt werden:

Betreff [LinuxTag 2007] Mit Schäuble auf dem Programm gehe ich nicht hin!
To orga@linuxtag.org
CC schwobe@linuxtag.org
CC projects@linuxtag.org



Hallo lieber Organisatoren und sonstige Beteiligte,

eigentlich hätte ich mich schon auf die Veranstaltung sehr gefreut, jedoch musste ich erahren dass Bundesinnenminister Schäuble die Schirmherrschaft an sich gerissen hat. Dieser Mensch verkörpert für mich alles was Linux nicht ist, und er ist ein eindeutiger Grund warum ich eben meine Bahntickets storniert habe.

Linux verkörpert für mich Kooperation, gegenseitige Hilfe und Freiheit. Dieser Mensch – nein ich hätte ich noch andere Worte für Ihn – ist das genaue Gegenteil von allem was Linux bedeutet. Unter Ihm sehe ich jemanden, der von Technik weniger Ahnung hat als mein Hund, jemanden der am liebsten seine eigene Privatarmee hätte und versucht mit seiner Politik das Volk zu kriminalisieren und der Mündigkeit zu berauben. Ich finde diese Aussagen kaum übertrieben, eher aber eine mögliche Zukunftsvision, wenn diese Mensch noch länger an der Macht bleibt.

Es ist eine Schande, dass gerade Ihr ihm ein öffentliches Sprachrohr für seine Politik gebt, und es zulässt dass er viele durch seine falschen Ansichten beeinflußt. Normalerweise haben Vertreter der Konzepte von OSS nicht viele Möglichkeiten über die Miss-Stände oder der Dissinformation über die Sicherheits-Politk entgegenzuwirken – und ihr gebt diesen Menschen gerade am LinuxTag ein Sprachrohr?! Bitte!

Andere sehen es genau so wie ich, und ich werde mit mein bestes tun, die News über seine Herrschaft am LinuxTag weiter zu verbreiten.

Deswegen ladet diesen Menschen bitte einfach aus! Wir brauchen Ihn nicht, und sicherlich wär mir ein oder mehrere Euro nicht zu Schade um die Veranstaltung mitzufinanzieren. Ich bin mir sicher es geht auch ohne diesen Unfried Schäuble!

MfG
.mg

Und es geht weiter – hier ein Interview mit dem Bundesdatenschutzbeauftragten, dem anscheinend auch nur noch Sarkasmus in Anbetracht der Ohnmacht gegenüber der freiwilligen Selbstzensur der Gesellschaft übrig bleibt.

Mein Tipp: einfach mal auf volksverdummende Populärmedien wie Rotations-Radiostationen und Privatfernsehen verzichten. Damit kann man sehr schön sehen, wie sich die Gesellschaft verändert.

Im Moment würde ich jedenfalls lieber in einem sauerstoff-leeren Raum ersticken, statt hier weiter auf Erden zu sein. Nein, Vampire und andere Unsterbliche gab es wirklich – sie haben sich nur wegen Frust an der Gesellschaft selbst umgebracht </Sarkasmus>

Filed under Allgemein, Linux, Security having 2 Comments »

Archives Posts

Hat Ihr Browser einen Undo-Button?

April 26th, 2007 by Blu:RayNe

Ärgern Sie sich ständig, dass Sie versehentlich eine Webpage „schließen“? Tja, dann benutzen Sie wohl immer noch den Microsoft Internet Explorer. Zeit zu wechseln (u.a. auch wenn Sicherheit bei Ihnen ein Thema sein sollte)!

Hier gibt’s Alternativen:

Archives Posts

Mit Paypal steigt der Wert des Euro

April 2nd, 2007 by Blu:RayNe

Paypal zählt auf keinen Fall zu den sichersten Plattformen des Netzes. Es ist definitiv möglich bei den meisten Download-Plattformen mit Paypal-Zahlungsmöglichkeit für einen Bruchteil des eigentlichen Kaufpreis und seine Downloads zu kommen. Bisweilen lassen sich sogar komplette Bezahlungsvorgänge simulieren.

Das Unternehmen gibt sich typisch amerikanisch aufgeblasen: Auf der Website sieht man, dass in vielen Sektoren was gemacht wird: für Händler, für Security, für eBay‘ler, für Privatmann, als Entwickler hat bekommt man massenhaft Downloads und Features geboten – noch nie war Bezahlen so einfach, und vor allem so unsicher.

Unsicher deswegen, da sich der Bezahlungs-Vorgang bei den meisten Online-Shops sehr einfach manipulieren lässt – nämlich indem man einfach den zu zahlenden Betrag ändert, oder den kompletten Bezahlvorgang einfach umgeht!

Die Implementierung der Bezahlung der Ware an sich ist nach Paypal-Dokumentation in wohl über 90% der Shops einfach schlampig implementiert. Das bringt in erster Linie Vorteile für den betrügerischen Kunden, und Nachteile für die Händler – allem voran Download Shops. Hier ist es möglich locker 1.000 Artikel in den Warenkorb zu legen, und dafür 0.01 ¢ zu bezahlen, oder die Bezahlung einfach komplett zu faken.

Implementierungen von Paypal

Professionelle Anwender

Für den professionellen Anwender stellt PayPal eine SOAP-API zur Verfügung. Hier kommuniziert der Shop des Händlers direkt mit PayPal, und ein Besuch der PayPal-Webseite wird nur zu Authentifizierung des PayPal Accounts des Nutzers benutzt.

Trotzdem gibt es hier keine einfachen Beispiele zur Implementierung der API: PayPal bietet zwar verschiedene SDKs an – allen voran Java und PHP – trotzdem findet man hier eher eine komplette Testsuite, aus der man dann seine eigene Implementierung herausziehen darf, statt ein einfach zu nutzendes Beispiel.

Und auch hier wird der Bezahlbetrag trotz sicherster Kommunikation über SOAP 1.2 SSL oder PayPal 3-token Authentification, später dem Shop per URL übergeben, und somit dem Nutzer oder Hacker offengelegt. Eine Prüfung des zu zahlenden Betrages findet im PHP-Beispiel des SDK nicht statt. Kein Wunder dass sowas auch übernommen wird.

Das der Wunsch nach einfachen SDKs oder Beispielen da ist können einigen Webseiten mit Developer und PayPalim Namen der Domain entnommen werden. Im PayPalEntwickler-Forum werden fleißig Sources ausgetauscht, die entweder gar nicht funktionieren, nur halb funktionieren oder spätestens beim nächsten Update der PayPal SOAP-Schnittstelle Gefahr laufen nicht mehr zu funktionieren.

Nachdem ich einige Klassen durchprobiert hatte, führte für mich schließlich kein Weg am PayPal-SDK vorbei, dass seinerseits auf PEAR aufbaut.

Semiprofessionale oder Private Anwender

Hier stellt PayPal Händlern einerseits die Möglichkeit vor, die komplett angebotenen Artikel in PayPal wirklich als Produkte zu integrieren und PayPal selbst als Warenkorb zu benutzen, andererseits gibt es die Möglichkeit PayPal per einfacher Einbindung als Formular in eine HTML-Seite PayPal den Empfänger der Zahlung, sowie den zu zahlenden Betrag zu übergeben (typischer Verkauf oder Spende).

Letztere Methode ist angreifbar, da hier Währungsbeträge über den Browser des Nutzers übergeben werden, während beim Warenkorb nur Produktnummer übergeben werden.

Im großen ganzen funktioniert dies nun so, dass der Webshop PayPal über den Browser des Nutzers seine Variablen (Zu zahlender Betrag, Empfänger, Return-URL bei erfoglreicher und abgebrochener Zahlung) im Klartext übergibt. Hier ist der erste Punkt an dem der Nutzer eingreifen kann.

Nehmen wir an ich manipuliere die Zahlung und will nur 0.01 ¢ zahlen. PayPal bekommt also vom „Shop“ mitgeteilt, dass der Kunde 0.01 ¢ zahlen will. Die Zahlung läuft bei PayPal ohne Probleme, und bei Abschluss der Zahlung leitet PayPalauf eine vorher vom Shop mitgeteilte Seite zurück – wieder per eingebundenem Formular. Dies ist meist eine URL mit einem vom Web-Shop generiertem Schlüssel für den Auftrag, so das der Web-Shop kapiert, dass eine Bezahlung für den Auftrag des Kunden erfolgt ist. Auch dies ist manipulierbar, z.B. kann ich so aus 0.01¢ wieder den vollen Betrag machen.

Bisweilen ließe sich durch die vom Web-Shop selbst übergebenen Variablen auch die komplette Bezahlung simulieren. Der Webshop bekäme hier bei schlampiger Implementierung – was im Übrigen Standard zu sein scheint – nichts mit.

Weiteres

Übernimmt man die Beispiele aus der PayPal-Dokumentation „Standard Integration“ findet sich dort kein Hinweis darauf, dass es vielleicht sinnvoll wäre die Zahlen gegenzuprüfen. Erst nachdem ich die Angreifbarkeit einiger Shops durchtestete fand ich nach etwa einer Stunde Dokumentationen wälzen, fünf Punkte, die dem Anwender einige Vorschläge machen:

  1. Check that the payment_status is Completed.
  2. If the payment_status is Completed, check the txn_id against the previous PayPal transaction you have processed to ensure it is not a duplicate.
    (Anm. id um nicht doppelte Transkationen durchzuführen)
  3. After you have checked the payment_status and txn_id, make sure the receiver_email is an email address registered in your PayPal account.
    (Anm. läßt sich weiterhin faken!)
  4. Check that the price, mc_gross, and currency, mc_currency, are correct for the item, item_name or item_number. (Anm. Tja, das sollte man eigentlich bei einer guten Implementierung prüfen; viele tun es wahrscheinlich nicht!)
  5. Check the the shared secret returned to you is correct.
    (Anm. „ist mir zu kompliziert der Krypto-Kram“, wie der deutsche Max sagen würde)

So, und jetzt dürft ihr mal raten, in welchem dieser Dokumente das drinnen stand!

Kreditkarte, PCI Zertifkat und HMAC

Die Sparkasse nimmt es mit Sicherheit sehr ernst: Da dürfen die Web-Services gar nicht verwendet werden, wenn der Shop nicht über ein PCI Zertifkat verfügt, d.h. die sensiblen Kreditkarten-Daten auf dem Übertragungsweg nicht gesichert sind. Weiterhin ist ein SSL-Zertifikat ist da schon einmal die Voraussetzung für die Webseite, sowie ein intensiver Security-Check, dass auch alle Daten sicher sind und unerlaubte nicht gespeichert werden. VISA und MasterCard bzw. die Sparkasse schicken da für das PCI Zertifkat schon einmal einen Datenschutzbeauftragten in entsprechende Unternehmen.

Kann ein SSL-Zertifikat nicht angeboten werden, so gibt es von der Sparkasse einen Formular-Service, der über eine HTTPS Verbindung läuft, und so dem Kunden entsprechende Sicherheit gewährt. Um sicherzustellen, dass auf der Sparkassen-Seite auch genau die Variablen verwendet werden, die vom Shop kommen – also u.a. der zu zahlende Betrag – werden die Variablen über den HMAC gehashed, d.h. es wird sichergestellt, dass auch über eine unsichere Verbindung wie HTTP, die Variablen sicher übertragen werden.

Beides bietet Paypal natürlich nicht an! Soweit ich es sehe, gibt es bei PayPal anscheinend keine Einschränkungen auch Kreditkartenzahlungen über unsichere Verbindungen anzubieten.

„Verbrennt die Hexe!“

Erst einmal ist die Schuld eindeutig auf Seiten der Unwissenheit der Anwender oder besser gesagt Händler zu sehen. Die meisten Menschen sind einfach noch nicht reif für diese neue Welt. Sorry, aber so ist es!

Andererseits ist sehe ich auch Versagen seitens PayPal, die schlampig gearbeitet haben. Bei den lieben Amerikanern zählt nun einmal leider eher Masse statt Klasse, und die Transparenz und somit Sicherheit bleiben da auf der Strecke: Just keep it simple!

Nun, was macht wohl so ein Unternehmen wie PayPal im Falle des Missbraches? Es löscht wohl einfach den PayPal-Account, und somit wäre das Problem erstmal gelöst. Willkommen im Mittelalter!

Trotzdem hat der Händler noch seine Probleme: Dieser wundert warum Nachforschungen über bestimmte IPs nur Länder wie Thailand oder Korea zu Tage fördern, und warum gerade diese Koreaner mit 100 GB Downloads seine Webseite so toll finden. Andererseits kann er es ja mal mit Klagen gegen Betrug versuchen – unsere Richter kennen ja wunderbar gut mit dem Thema Internet aus…

Filed under Allgemein, Security having No Comments »

Archives Posts

Adobe Apollo Alpha1 veröffentlicht

März 25th, 2007 by Blu:RayNe

Heute stellte Adobe die Alpha 1 von seiner Cross-Plattform Runtime Apollo vor, mit der Web-Entwickler Ihre Skillz in XHTML, JavaScript, Flash, AJAX usw. benutzen können um Desktop-Applikationen zu entwickeln.

Web-Applikationen profitieren nun in der lokalen Laufzeit vor allem von Möglichkeiten wie, Lokale Einstellungen, Lokale Ressourcen, Netzwerk- und Nutzer-Konnektivität und Rich Interactive Experiences – soweit nach Adobe.

Das ist jetzt nicht unbedingt alles komplett neu, weil mit Flash allein und etwa Screenweaver vieles auch schon möglich war. Neu hingegen ist, dass man eine Web-Applikation nun direkt in eine Desktop-Applikation exportieren kann. Neu ist der ECMAScript 4 Core für die Ausführung von JavaScript und ActionScript 3 und WebKit (Grüße an Apple Safari!) als Layout Engine oder Browser für alles was die Web-Darstellung betrifft.

Die Beispiele und Videos können jedenfalls noch nicht von einem gesteigerten Mehrwert sprechen, vor allem ist es für mich fragwürdig die YUI-Ext in einer Offline-Application zu packen, und vor allem, da die Apollo Alpha noch nicht wirklich schnell zu sein scheint. Ich denke aber die Nutzer werden das anders sehen, und für das Marketing bietet Apollo nun auch viele neue schwachsinnige Ideen, den Nutzer mit bunten Desktop-Applikationen vollzumüllen.

Nützlich hingegen ist die Apollo-Application Adobe Scout, da sie sozusagen einen WebKit-Browser zur Verfügung stellt, mit dem sich tatsächlich browsen lässt. Für alle Swift und WebKit-Fans nun endlcih auch auf dem PC!

Adobe mag das wohl anders sehen, nutzen werde ich jedenfalls Apollo auch irgendwann, wenn es sinnvoll erscheinen wird – immerhin sparrt es Arbeit, wenn bereits eine Web-Applikation besteht. Nützlich ja, eine große Revolution nein!

Lassen wir uns überraschen, wie sich der Markt hier weiterentwickelt…

Filed under Allgemein, Coding, Netzwelt having No Comments »

« Previous Entries Next Entries »