The Gosling Tarpit

I think Panagiotis is going to love this:

“because the Java programming language and Java Virtual Machine are (surprise!) so tightlyCoupled, new language designers are compelled to make their languages such that they use only those features they can implement efficiently on the JVM. For example, implementations of Scheme for the JVM either lack call/cc or have a very slow and slightly buggy implementation of it. We call this the Gosling Tarpit.”

From Phosphorous, The Popular Lisp.

[via]

Warren’s Abstract Machine: A Tutorial Reconstruction

Hassan Aït-Kaci has written the excellent tutorial on the WAM entitled Warren’s Abstract Machine: A Tutorial Reconstruction. This book is out of print (I consider myself one of the lucky ones to have purchased a copy). For years it was available at vanx.org, but now the domain seems parked.

I had downloaded a copy of the files, and now the electronic version of the book has a new home at: http://wambook.sourceforge.net

Update 2013/04/13: Also available on https://github.com/a-yiorgos/wambook

Exceptions

Usually a system manager proposes a policy, gets approval from higher management (a written one if lucky enough, or if compliance with standards is needed) and proceeds to implement it.

Then it begins:

The manager must enforce the policy, with one exception. Then another and another. And later an exception of the form: Deny access to this resource, except from these people, with the exception of these circumstances and provided that the stars are in the right angles. Or in order to give a real life (pseudo)example:

You use a DNSBL. A certain host is included and there are valid reasons for this. But you need to unblock this host because someone with authority asks you to. However, the hard reality forces you not only to implement the exception, but also an exception to the exception (unblock this host for certain recipients, who do not want certain senders from this host, etc).

In this process nobody tries to understand the very root cause of the problem: Are we correct in using the particular DNSBL? And if we are, is there a valid reason for the sending host to be (black)listed? And if there is, is it wise to implement a series of exceptions, or is it better to wait for the host’s administrators solve the problem?

A great number of people seem to misunderstand the robustness principle: “Be liberal in what you accept; be conservative in what you send” (they stick to the “accept” part) and I think we need to rephrase it:

If you want me to be liberal in what I accept, be conservative in what you send

A policy ruled by exceptions is not an exceptional policy.

Asking the security team for a firewall exception.

reboot before dist-upgrade

[ Παρόλο το debianism του τίτλου, αυτό είναι ένα γενικότερο post ]

Πριν από δραστικές αλλαγές στο λειτουργικό σύστημα ενός server, καλό είναι να γίνεται ένα reboot. Ειδικά εάν έχουν περάσει αρκετές ημέρες (μήνες, χρόνια) από το προηγούμενο reboot. Οι εξαρτήσεις στο πολύπλοκο περιβάλλον που ζουν οι servers φτάνουν σε σημεία που δεν μπορούμε να ελένξουμε ή δεν θυμόμαστε πάντα από μνήμης (Documentation; Τι είναι αυτό;).

Για αυτό ένα reboot πριν μια θεμελιώδη αλλαγή επιβάλλεται. Downtime is an option, αρκεί να μπορούμε να έχουμε μια ιδέα τι το προκάλεσε. Μετά π.χ. από ένα dist-upgrade από Etch σε Lenny, δεν είναι σίγουρο πως θα μπορεί να εντοπιστεί το πιθανό πρόβλημα στην αναβάθμιση του software ή σε μια άλλη εξάρτηση που έχει προστεθεί στην πορεία και δεν μας περνάει από το μυαλό.

Αλλάζουμε μία μεταβλητή (από όσες ελέγχουμε) τη φορά και θυμόμαστε πως συνήθως εάν ένα ext3 filesystem δεν έχει γίνει fsck για περισσότερες από 30 μέρες, θα κάνει fsck στο επόμενο reboot. Είσαι σίγουρος πως αυτό θέλεις να είναι το reboot του dist-upgrade;

Fear of rebooting.

tee.gr & teemail.gr downtime

Υπάρχει ανακοίνωση στην πρώτη σελίδα εδώ και μέρες, στείλαμε και email σε όλο τον κόσμο, αλλά για το φόβο του Murphy το βαζω και εδώ:

Σας ενημερώνουμε ότι την Τετάρτη 10 Ιουνίου 2009 από τις 09:00 μέχρι τις 16:00 θα διακόπτονται σταδιακά οι υπηρεσίες της ΤΠ/ΤΕΕ, λόγω απαραίτητων ηλεκτρολογικών εργασιών.

Στις υπηρεσίες που θα επηρεαστούν περιλαμβάνονται:

– πρόσβαση στο Διαδίκτυο (Internet) με οποιαδήποτε από τις μεθόδους που προσφέρει η ΤΠ/ΤΕΕ στους συνδρομητές της (dialup και ADSL).
– υπηρεσίες ηλεκτρονικού ταχυδρομείου (@tee.gr, @teemail.gr)
– υπηρεσίες αμοιβών μηχανικών
– το portal του ΤΕΕ, http://www.tee.gr
– λοιπές συνδρομητικές υπηρεσίες της ΤΠ/ΤΕΕ.

Το προσωπικό της ΤΠ/ΤΕΕ θα καταβάλει κάθε δυνατή προσπάθεια προκειμένου ο χρόνος διακοπής να είναι ο ελάχιστος δυνατός.

on AMKA

Συνήθως αποφεύγω να κάνω κρίσεις από μακριά για την δουλειά των άλλων, αλλά η περίπτωση του ΑΜΚΑ είναι μία εξαίρεση. Μου γεννιόνται απορίες και ελπίζω να τις διαβάσει κάποιος και να μας διαφωτίσει. Αρχικά υπήρχε η παρατήρηση του Stazybo Horn πως τα πρώτα ψηφία του ΑΜΚΑ αποτελούνται από την ημερομηνία γέννησης του ασφαλισμένου. Μου φάνηκε περίεργο, αλλά δεν έδωσα ιδιαίτερη σημασία. Μέχρι που σήμερα η γυναίκα μου κάνοντας ένα paper mining, βρήκε τη δικιά της κάρτα με τον ΑΜΚΑ της, καθώς και το χαρτί που συνόδευε την κάρτα. Διαβάζει λοιπόν κανείς στο πίσω μέρος του χαρτιού:

Ελέγξετε την ημερομηνία γέννησης και το φύλο, που περιέχονται στον Α.Μ.Κ.Α., σύμφωνα με το παρακάτω παράδειγμα.

Έστω ότι ο Α.Μ.Κ.Α. είναι ο 270163 0012 5

  • Οι πρώτοι έξι (6) αριθμοί είναι η ημερομηνία γέννησης (27 Ιανουαρίου 1963).
  • Από τους επόμενους τέσσερις αριθμούς (0012) ο τελευταίος (δηλ. το 2) δηλώνει το φύλο και στη συγκεκριμένη περίπτωση πρόκειται για γυναίκα. Γιατί οι ζυγοί αριθμοί 0,2,4,6,8 δίδονται στις γυναίκες ενώ οι μονοί 1,3,5,7,9 δίδονται στους άνδρες.
  • Ο τελευταίος αριθμός (5) αφορά τη μηχανογράφηση και επομένως δεν ελέγχεται από εσάς.

 

Ερωτήματα:

  1. Η ασφαλισμένη γεννήθηκε στις 26/01/63. Y2K anyone; Η δικιά μου κάρτα έφτασε ~5 χρόνια πριν. Ξεχάστηκε τόσο γρήγορα; Τι θα γίνει εάν κάποιο νεογέννητο βρεθεί με το ΑΜΚΑ κάποιου υπεραιωνόβιου;
  2. 80 bits (ναι 80, όχι 88, θα το δούμε μετά) για να περιγραφεί ο ασφαλισμένος με μοναδικό τρόπο; Τη στιγμή που αρκούν 33 bits για να χαρακτηρίσουν μοναδικά όποιον ζει αυτή τη στιγμή στον πλανήτη;
  3. Δεν ξέρω πως είναι οργανωμένη η βάση του ΑΜΚΑ, καταλαβαίνω όμως πως ο ΑΜΚΑ είναι πρωτεύον κλειδί (ή χρησιμοποιείται ως τέτοιο). Είναι δυνατό να κάνει κανείς πράξεις στο πρωτεύον κλειδί για να εξάγει συμπεράσματα για τον ασφαλισμένο; Και εάν δεν κάνει τον υπολογισμό επί του κλειδιού αυτού, ξανασώζει την ίδια πληροφορία σε χωριστό πεδίο; Και όχι μόνο αυτό, αλλά η πληροφορία αυτή να είναι substring μήκους 6 bytes μέσα σε άλλο string, ενώ θα μπορούσε να είναι 4 bytes (ένας integer); Update: Χρόνια μετά υποψιάζομαι πως ο λόγος που ο ΑΜΚΑ έχει αυτή τη μορφή είναι για να τον θυμάται εύκολα ο ασφαλισμένος. Και τον δικό του και των παιδιών του.
  4. Το αυτό και για το φύλο του ασφαλισμένου. Γιατί πρέπει να είναι κομάτι του ΑΜΚΑ αυτό;
  5. Τι εξυπηρετούν τα 3 bytes για τα οποία δεν υπάρχει εξήγηση;
  6. Το 11ο byte (αυτό που αφορά τη μηχανογράφηση) είναι μάλλον κάποιο check digit.

This smells a lot like COBOL.

– Που πάνε οι ΑΜΚΑ όταν πεθαίνουν μπαμπά;

wash your hands

Bear with me, this is actually a computer security post. In parentonomics Joshua Gans cites an Australian study according to which doctors believed they washed their hands after going to the toilet 73% of the time. Close monitoring however revealed that this happened only 9% of the time. This in a pediatric intensive care unit!

This is a simple requirement: Wash your hands when leaving the toilet! One would expect that medical professionals, of all people, would follow it and not believe that they follow it.

So if the most simple measure, and one instructed to them from a very young age, cannot be followed through, how on earth are we supposed to make people read, understand and actually follow any security policy? How much simpler than wash your hands does it have to be?

Recently I heard the argument that “I do not mind using cracks and pirated software*, since I trust the source”. Oh really? I am sure they [the source] wash their hands every time too…

In the case of hospitals the problem was solved using a kind of public embarrassment (screen savers with the names of doctors with no clean hands). Or as Gans puts it “Data plus shame equals trust”. However, I am sure that no legal framework can allow for the public embarrassment of any computer user. Nor any administrator wishes to make more enemies among their users than they already have.


[*] – Using cracked versions of software when the price is not right is not the way to go. If you want to punish the vendor quit using their product and stop advertising it by using it.

cameroom (ξανά!)

Διαβάζω στο OWASP blog:

σύμφωνα με τις δηλώσεις του αναπληρωτή υπουργού Εσωτερικών κ. Μαρκογιαννάκη ότι “για την αντιμετώπιση του σύγχρονου εγκλήματος είναι αναγκαία η χρήση καμερών βάσει της ευρωπαϊκής εμπειρίας όπως συμβαίνει και σε άλλες χώρες”.

Οι κάμερες στην καλύτερη περίπτωση θα βοηθήσουν να βρεθεί αυτός που διέπραξε κάτι. Οι πολίτες οφείλουμε να αποφασίσουμε τι μας ενδιαφέρει περισσότερο:

– Να βρεθεί ο κλέφτης ή να μην μας κλέψουν;

Εγώ προτιμάω να γίνονται επενδύσεις ώστε να μην εγκληματούν εις βάρος μου (παιδεία και ανεργία κανείς;). Η κάμερα δεν είναι αποτρεπτική επένδυση, επικουρικός μηχανισμός στη διαπίστωση της πράξης είναι. Η εμπειρία από τα γήπεδα θα έπρεπε να μας έχει διδάξει σχετικά.

(previous)