Showing posts with label Philosophy. Show all posts
Showing posts with label Philosophy. Show all posts

12 February, 2018

DevOps + Development

DevOps is not easy.

As software transitions from a monolithic to a microservice architecture, organizations are adopting DevOps practices to accelerate delivery of features to customers and improve their experience.

Jumping into continuous testing without the right infrastructure, tools, and processes can be a disaster.

Continuous testing plays an important role to achieve the fastest quality to market. Continuous testing requires several levels of monitoring with automated triggers, collaboration, and actions. Here’s what is required:

  • Automatic Test Triggers to execute tests as software transitions from various stages – development / test / staging / production
  • Service Health Monitoring to automate feedback on failures
  • Test Result Monitoring to automate feedback on failures
  • Identifying Root Cause of Failure and analyzing test results
As one can imagine this takes a hell of a toll on DevOps-personnel.

It is one of the most challenging fields today. Simply because it requires a deep understanding of the right principles, processes and practices that the DevOps philosophy is bringing to the IT world.

Because that is what it is: a philosophy.

24 October, 2010

Tales from a Windows-free life

I completely stopped using Windows around 2002, and I've really enjoyed it, very, very much :)

Since then I've been distro-hopping (swapping different Linux-versions, more commonly known as "distributions", or "distros") through everything from Slackware Linux to Ubuntu. It's been a rocky and unstable ride to be quite honest, but it's been an awesome learning-experience.

I can't even begin to count all the problems concerning re-installation of Windows on both my hands. Yes, that's BOTH hands! I really, REALLY hate re-installing Windows. And if you're a super-user like me, who likes to play around with your computer-systems, you've done a re-install a couple of dozen times (or maybe even more).

Doing a windows-update after a fresh installation can take HOURS... Suffice to say it's a tedious and boooooooring task. Yes, I can hear a comment in the distance saying "why not use an up-to-date installation disc with all the Service Packs included?", well, the problem with that option is this: Windows AIN'T FREE. But that is not the only reason why I've renounced Microsoft-products alltogether. License this and license that, non-disclosure agreements and what-not. I'm sick and tired of it. Not to mention the installation-hell it is to install Windows onto a laptop, or (God forbid) a NETBOOK! After doing tenfolds of re-installations in the 90s and the early 2000s, my conclusion for personal operating system and software-usage came to this: No More Windows For Me!

I'm not giving Windows or Microsoft the finger. I've used their software for quite some time earlier in my computing-life. Even as far back as DOS and Windows 3.11. I'm just saying it's not for me anymore. I need more options and alternatives to doing computing tasks, I don't like being locked-in to one, and ONLY one solution.

Doing a fresh Linux installation, can take MINUTES, at most an hour or two. And if you're nice about it and don't include a shitload of third-party addons, you're likely to only do this ONCE! One time, and only doing updates and release-upgrades every now and then afterwards. Ok, so installing operating systems is not for everyone. But you can always ask a nice geek/nerd-friend to do this for you. Doing updates and upgrades nowadays is rather straightforward. The system asks if you want to update/upgrade, you press "Yes", you type in your password; and HEY PRESTO! It's over and done with.

I admit, being experimental with a Linux-system can do irrepearable damage, but hey, that's how we learn. And it pays off to use a system you can sacrifice for such a project. I did, multiple times. That's why it's called "experimental".

After doing all my experimenting on Linux and figuring out how it works, I decided to use a mainstream-distro to save me from headaches when trying to get things working. That's why the choice fell on Ubuntu.

After switching to Ubuntu in early 2009 (from Slackware Linux, which I still like), I've never looked back. Ubuntu serves my every computing need. It includes almost every public proprietary technology, from Flash to Java. Allthough it has to be added manually, doing so is not hard. It is explained in great detail all over the web, you just have to look for it. And, Ubuntu offers alternative programs to just about every web-service available today. Another great point for pro-linux, is that it runs on just about any hardware available as well. Can you say the same for Vista? Or Windows 7? I think not...

Nuff said ;)

21 July, 2009

"Millennials", perceptions and workforces

From wikipedia.com:


Generation Y in the workforce

The Millennials are sometimes called the "Trophy Generation", or "Trophy Kids,"[25] a term that reflects the trend in competitive sports, as well as many other aspects of life, where "no one loses" and everyone gets a "Thanks for Participating" trophy and symbolizing a perceived sense of entitlement. It has been reported that this is an issue in corporate environments."[25] Some employers are concerned that Millennials have too great expectations from the workplace and desire to shape their jobs to fit their lives rather than adapt their lives to the workplace.[26] To better understand this mindset, many large firms are currently studying this conflict and are trying to devise new programs to help older employees understand Millennials, while at the same time making Millennials more comfortable. For example, Goldman Sachs conducts training programs that use actors to portray Millennials who assertively seek more feedback, responsibility, and involvement in decision making. After the performance, employees discuss and debate the generational differences they have seen played out "[25]

There are three (suggested) core elements that drive the ambitions of Generation Y in the workplace[27] :

Impact--Making a difference is a strong motivational force behind Gen Y's efforts. Though salary and benefits continue to dominate the no. 1 and 2 on the importance list, making an impact ranks no 3.

Communication--The instant communication framework Gen Y developed through extensive computer usage has led to a need for more professional feedback than that of past generations.[28] Communication platforms such as SMS, e-mail, video chat, and blogging have engendered a mindset that necessitates constantcommunication with others. That mindset has carried over into the workplace.

Flexibility--The divide between work and life is continually growing narrower as more people shift from the bricks-and-mortar to a remote workplace. The rate of remote office workers has increased significantly in the past two years.[29]


This explains a lot of the problems discussed widely (on the web, in books, via surveys, etc.) about younger generations not being as useful in a working environment as previous generations.

But, instead of focusing on personal responsibility, and what we-"The Millennials"-can do to work out this problem, a lot of my fellow "Millennials" are focusing on who is to blame for the problem existing in the first place. Which (ironically) also gives an example of what the problem is all about in the first place.

Holding seminars and lectures, for older generations to have them better understand "Millennial" mindsets seems a bit extreme.., but maybe it is the small step needed for future generation-acceptance? Personally I've experienced what is explained in the excerpt above, about elders not understanding "Millennial" thought-processes, and the conflicts that can arise from such misunderstandings, both in the workplace and elsewhere.

We ("Millennials") were brought up with the goals of cultural tolerance, open-mindedness and having a positive outlook on multiculturism. Not being highly regarded as positive traits by everyone in older generations, they falcely portray a lot of "Millennials" as what I would call "social deviants".

I do not have any solutions, but I try my best as an individual to evaluate, and adapt on what I'm "programmed" to do, think and say. Everything does not have to have an ultimate answer/solution. The best way to cope, is to do what man has always done.., re-evaluate knowledge and adapt!

21 April, 2009

Computer illiterates are dangerous!


On Friday, EFF and the law firm of Fish and Richardson filed an emergency motion to quash and for the return of seized property on behalf of a Boston College computer science student whose computers, cell phone, and other property were seized as part of an investigation into who sent an e-mail to a school mailing list identifying another student as gay. The problem? Not only is there no indication that any crime was committed, the investigating officer argued that the computer expertise of the student itself supported a finding of probable cause to seize the student's property.

The whole problem started because the computer science student was using a command-line interface, of which the arresting officer did not understand. Quotes from the arresting officer's report say:
"Mr.Carlixte uses two different operating systems to hide his illegal activities. One is the regular B.C. operating system and the other is a black screen with white font which he uses prompts on"

I mean.., c'mon! Seriously!? Are all computer hobbyists to be considered "crackers" until proven otherwise? FFS!!!

17 April, 2009

Nysatsingen på åpen kildekode



Da ser det ut som det blir Bergensområdet som først får benyttet alle de vidunderlige åpne kildekode-prosjektene som finnes rundt om i verden, i et offentlig samarbeid "for åpne standarder i offentlig sektor" (som ble nevnt tidligere i en-eller-annen artikkel/offentlig dokumentasjon).

Nytt kraftsenter på åpen kildekode - digi.no : Bedriftsteknologi
Bergen kommune, it-ekspertene Avenir, Høgskolen i Bergen (HiB), Universitetet i Bergen (UiB) og lokale it-miljøer går sammen for å gjøre Bergen til et kraftsenter for utnyttelse av åpen kildekode i utviklingen av fremtidens it-løsninger.

Initiativet understøtter både Regjeringens satsing på økt bruk av fri programvare og ønsket om styrket samhandling mellom offentlig og privat sektor.

Gartner spår at innen 2012 vil 80 prosent av alle it-løsninger inneholde elementer av åpen kildekode. De fastslår at virksomheter som velger å ignorere denne utviklingen, automatisk vil stille seg to skritt bak konkurrerende virksomheter.

Bergen Kommune, Avenir, HiB, UiB, og store lokale it-miljøer som DnB Nor, NextGenTel og EDB Business Partner ønsker å ligge i forkant i utnyttelsen av åpen kildekode.

25 March, 2009

Restrictions, copyright, modification

After watching the NUUG's webcast video of RMS's (Richard M. Stallman, FSF) 2009 Oslo copyright speech, I had a lot of ideas and opinions floating around.

What he said about proprietary software vendors implementing backdoors, malicious functions and spy-features did not surprise me, but what he said about Microsoft's latest systems DID.

I knew that they have always put in security-features making them able to update and/or fetch debug information about crashes and bugs.

But having the ability and non-authorized access to modify personal computer systems without the user knowing, pissed me off. You can definitely assume I'M not going to use neither Windows 7 or any of the Vista-flavours.

I use Windows XP Professional @ work, because I have to, not because I prefer to. That's it. My netbook runs Xandros (modified Debian), my server/desktop @ home runs Slackware Linux (-Current). And, as soon as it hits the electronics stores, I'm going for an Android-powered smartphone ;)

16 March, 2009

På tide ordensmakten tar steget...



Vekk med Windows! - digi.no : Kommentarer
Diskusjonen går høyt om Mac OS og Linux er tryggere enn Windows, teknisk sett. Konklusjonen synes å være at ja, begge de to alternative operativsystemene er mer robust konstruert enn Microsofts markedsledende system. Men selv om det kan stilles spørsmålstegn ved dette (og det gjør Microsoft, selvsagt), så er det et faktum at systemer som få bruker ikke er så utsatt for virusmakerne som systemer som brukes av en minoritet.

03 March, 2009

Development & Simplicity

"everything should be made as simple as possible, but no simpler"
--Albert Einstein


"simplicity is the ultimate sophistication"
--Leonardo Da Vinci


"it seems that perfection is reached not when there is nothing left to add,
but when there is nothing left to take away
"
--Antoine De Saint Exupéry


KISS => Keep It Simple Stupid !

04 August, 2008

23 February, 2008

"...a catch 22..."

Catch-22 is a term coined by Joseph Heller in his novel Catch-22, describing a paradox in a law, regulation or practice in which one is a victim regardless of the choice one makes. Just wanted to find out where the expression "Catch 22" originated from.

I knew the basis, like in a "hopeless" situation, any choices made would generate a negative lunge on oneself.



Og på Norsk: Catch-22 er en betegnelse fremstilt av Joseph Heller i novellen "Catch-22", som beskriver et paradoks i en lov, regulasjon eller praksis hvor en blir offer uavhengig av hvilke beslutninger en tar.

Ville bare finne ut hvor uttrykket "Catch 22" kom fra. Visste egentlig at det handlet om f.eks. en "håpløs" situasjon, hvor alle alternativer ville gi et negativt utfall.

Men da jeg leste litt mer om dette, viste det seg at det finnes allerede, mange fastsatte beskrivelser for mange logiske situasjoner. Ble enda mer engasjert når jeg så uttrykket "Høna eller egget?", det fortalte en del om dette engelske uttrykket.

Vi har vel mange uttrykker om slike situasjoner i det Norske språk? Ikke vet jeg.


Det jeg ble mest interessert i var data-avsnittet om "Deadlock" (dødlås) i data-terminologi, oversatt fra engelsk:

I data vitenskap, er en deadlock (dødlås) en situasjon hvor to konkurrerende prosesser venter på en ressurs den andre har kontroll over. Hver prosess vil bare frigi ressursen den har kontroll over dersom den mottar kontroll over ressursen den venter på. Derfor, vil en ressurs bare bli tilgjengelig for en av prosessene dersom den andre frigir sin ressurs - som ingen vil gjøre, inntil den mottar kontroll over ressursen den andre har.

For eksempel, la oss si prosess A har en minneblokk, og trenger disk-aksess. Imens, har prosess B kontroll over disk-aksessen, og trenger å legge sin informasjon i minnet - spesifikt, trenger den minneblokken prosess A kontrollerer. Prosess A vil holde på minneblokken og vente på at disk-aksess blir tilgjengelig. Begge prosesser er avhengig av hverandre, og vil derfor vente på hverandre uendelig inntil datamaskinen legger merke til deadlocken, velger et deadlock-offer og tvinger offeret til å frigi ressursene sine.

Denne situasjonen blir derfor en ond sirkel og er derfor et godt eksempel på en Catch-22. Denne typen situasjon har også blitt referert til som en "deadly embrace" (dødelig omfavnelse). En deadlock er, selvfølgelig, en uønsket situasjon i et datasystem.

http://en.wikipedia.org/wiki/Catch-22_(logic)

12 February, 2008

IF---

If you can keep your head when all about you
Are losing theirs and blaming it on you;
If you can trust yourself when all men doubt you,
But make allowance for their doubting too:
If you can wait and not be tired by waiting,
Or being lied about, don’t deal in lies,
Or being hated, don’t give way to hating,
And yet don’t look too good, nor talk too wise;

If you can dream—and not make dreams your master;
If you can think—and not make thoughts your aim,
If you can meet with Triumph and Disaster
And treat those two imposters just the same:
If you can bear to hear the truth you’ve spoken
Twisted by knaves to make a trap for fools,
Or watch the things you gave your life to, broken,
And stoop and build ’em up with worn-out tools;

If you can make one heap of all your winnings
And risk it on one turn of pitch-and-toss,
And lose, and start again at your beginnings
And never breathe a word about your loss:
If you can force your heart and nerve and sinew
To serve your turn long after they are gone,
And so hold on when there is nothing in you
Except the Will which says to them: "Hold on!"

If you can talk with crowds and keep your virtue,
Or walk with Kings—nor lose the common touch,
If neither foes nor loving friends can hurt you,
If all men count with you, but none too much:
If you can fill the unforgiving minute
With sixty seconds’ worth of distance run,
Yours is the Earth and everything that’s in it,
And—which is more—you’ll be a Man, my son!

--Rudyard Kipling, 1895.

08 February, 2008

OSS...? FSF....?


Åpen kildekode, og fri programvare, forskjellene?

Innen Linux fellesskapet, er det to hovedsaklige ideologiske bevegelser:

  • "The Free Software movement", som har bidragsyteren "Free Software Foundation" (Fri Programvare bevegelsen og FSF), arbeider for å gjøre all mykvare fri for proprietære restriksjoner. Følgere av denne bevegelsen mener at disse restriksjonene ødelegger for teknologisk forbedring og jobber mot målet for fellesskapet.

  • "The Open Source movement", som har bidragsyteren OSI (Åpen kildekode bevegelsen (OSS) og OSI), som arbeider for mange av de samme idealene, tar et mer pragmatisk fremsteg for å oppnå disse. Følgere av denne bevegelsen foretrekker å basere argumentene sine på de økonomiske og tekniske merittene av å lage åpen kildekode fritt tilgjengelig, i motsetning til de moralske og etiske prinsippene som driver Fri Programvare bevegelsen.


I den andre enden av spekteret, er gruppene som ønsker å vedlikeholde strengere kontroll over mykvaren sin. Skal ikke nevne noen navn her, men alle burde egentlig assosiere ordet "Vinduer"
med en godt kjent utvikler som hører til denne gruppen.
Fri Programvare bevegelsen er ledet av "The Free Software Foundation" (Fri Programvare Stiftelsen, heretter kalt FSF), bidragsyteren til GNU-prosjektet. Fri programvare er egentlig mer en ideologi. Deres mest brukte motto er: "free as in speech, not free as in beer" (kan ikke direkte oversettes til Norsk, da ordet "free" i sammenhenger kan bety både "gratis" og "fri" på engelsk, det er her misforståelsene ofte oppstår). I essens, er fri programvare et forsøk på å garantere hvisse rettigheter for både brukere og utviklere. Disse frihetene inkluderer friheten til å kjøre programmet for en hvilken som helst grunn, til å studere og modifisere kildekoden, til å redistribuere kildekoden, og til å dele alle modifikasjoner du lager. For å garantere disse frihetene, ble GNU General Public License (GPL) opprettet. GPLen, kort fortalt, sørger for at alle som distribuerer et program under lisensen også må tilby kildekoden og retten til å modifisere den så lenge de som modifiserer koden tilbyr modifikasjonene sine, altså kildekoden, tilbake til fellesskapet. Dette garanterer at når et program først blir "åpnet" til fellesskapet, kan det ikke bli "lukket" uten medtykkelse fra hver eneste forfatter av hver eneste kodebit (til og med modifikasjonene) innen kildekoden. De fleste Linux programmer er lisensiert under GPL.

Det er viktig å notere at GPL ikke sier noe om pris. Selv om det høres merkelig ut, kan du kreve avgift på fri programvare. Den "frie" delen er i frihetene du har med kildekoden, ikke prisen du betaler for programvaren. (Men, har noen først solgt, eller gitt deg, en kompilert versjon av et program som er lisensiert under GPL, kan du kreve kildekoden på dette programmet også.)


I fronten av den yngre Åpen Kildekode bevegelsen, er organisasjonen "The Open Source Initiative" (Åpen Kildekode Initiativet), det eneste som bare eksisterer for å få støtte for åpen kildekode programvare, som betyr, programvare som har kildekoden tilgjengelig i tillegg til ferdig-kompilerte kjørbare utgaver. De tilbyr ikke en spesifisert lisens, men støtter istedenfor de forskjellige typene av åpen kildekode lisenser som er tilgjengelige. Idéen bak OSI, er å få mer firmaer/selskaper med på åpen kildekode ved å tillate dem å skrive sine egne åpne lisenser og få disse lisensene sertifisert av OSI. Mange firmaer/selskaper vil slippe kildekode, men vil nødig bruke GPLen. Siden de ikke drastisk kan forandre GPLen, blir de tilbydt muligheten til å eie sin egen lisens, og få den sertifisert av denne organisasjonen.

En annen populær lisens er BSD lisensen. I kontrast til GPL, krever ikke
BSD lisensen at kildekoden skal bli utlevert. Programvare under BSD lisensen tillater redistribusjon i enten kilde eller binær form så lenge et par vilkår innfris. Forfatternes akkreditiver kan ikke bli brukt som reklame for programmet. Dette frir også forfatterne fra ansvar for skade som kan oppstå fra bruken av disse programvarene. Mesteparten av programvaren inkludert i Slackware Linux er BSD lisensiert.


Selv om FSF og OSI arbeider for å hjelpe hverandre, er de ikke det samme. FSF bruker en spesifik lisens og tilbyr mykvare bare under denne lisensen. OSI søker støtte for alle åpne lisenser, inkludert den fra FSF. Grunnprinsippene dem i mellom, om å gjøre kildekode tilgjengelig splitter noen ganger bevegelsene, men faktumet om at to ideologisk forskjellige grupper arbeider mot det samme målet, gir tillit til begges innsats.

31 January, 2008

UNIX

The title speaks for itself...


The Original Unix
http://en.wikipedia.org/wiki/Unix_philosophy


"Unix is simple. It just takes a genius to understand its simplicity."
Dennis Ritchie


Dennis Ritchie invented the programming language; C, more commonly known in computer theory as a "System Implementation Language". With the aid of C, Dennis Ritchie, along with Ken Thompson, created the early versions of the original UNIX operating system at "Bell Labs".


Bell Labs was merged with AT&T in the early 80's, creating the company "AT&T Bell Laboratories". In 1996 AT&T spun off their technologies and organizations into "Lucent Technologies", but kept the services business within AT&T. But Lucent still used the line "Bell Labs Innovations" in their logo's. And in 2006, Alcatel and Lucent merged into the company "Alcatel Lucent".


Ritchie now works in the "Convergence, Software and Computer Science Laboratory" department for Alcatel Lucent, residing in the Bell Labs Laboratories building.


Just a brief little history of how much an IT company can reorganize and rebrand over a couple of decades, but Ritchie says it's been a good company and office to do his kind of work in despite all the administrative stuff.


Sections from the above text is taken from Ritchie's homepage, which also contains a lot of interesting material on UNIX and UNIX programming: http://www.cs.bell-labs.com/who/dmr/

The last official
UNIX from Bell Labs is known to most UNIX fanatics today as: "System V", from which the pre-decessors, the "UNIX Time Sharing System (1-7)" also spawned the various "Berkeley Software Distribution(s)" available today (FreeBSD, OpenBSD, etc), often referred to as "BSD Unix" because it shared some initial codebase with the original UNIX by AT&T/Bell Labs.
"UNIX System V" continued to release versions up to version 4 in 1988, but "UTSS" releases, went up to version 10 until 1989. "UNIX System V version 4" forked off both "Solaris" and the now commercially available "UnixWare" in the 90's. It is also the basis for later implementations of the "SysV runlevel init scripts" in BSD and Slackware Linux. Other Linux distro's also include the SysV init system, but a lot of them are heavily modified and customized.
A number of big corporations made their own proprietary UNIX flavours. IBM made the "AIX" system, SGI made the "IRIX" system and Hewlet Packard made the "HP-UX" system, of which I had some user-experience with while working in the WAN-sector.

Other Implementations

In 1987, the system called "MINIX" also saw the light of day, which is the source of inspiration for Linus Torvalds "Linux" announced in 1991. Linux was created on UNIX philosophy and design concepts, but NOT based, or forked in any way on the UNIX codebase what-so-ever. I cannot determine if MINIX is a complete original, or a fork. The "Linux-IS-UNIX" claim, is a common misconception, and probably the reason why so many UNIX codebase owners has tried to sue the Linux creator(s) the last decade, there was even written a report funded in large by Microsoft about the similarities between Linux and MINIX, almost accusing Linus for stealing his idea and basis for Linux entirely from MINIX, which turned out to be untrue (even noted by MINIX creator Andrew S. Tanenbaum on his MINIX website FAQ). On the other hand, MINIX is microkernel-based, and has absolutely nothing to do with the monolithic kernel base used in Linux, except for the fact that Linus used and studied MINIX while attending the University of Helsinki as he was developing Linux. AND.., MINIX started porting it's sourcecode to other archtitectures around 1991.., coincidence?
If you're confused about the word "kernel", you should read this.
If you're still confused, you probably won't understand most of this post at all.

Tanenbaum and Torvalds even had a well-known 'flamefest' in the early 90's concerning the "obsoleteness" of the
monolithic kernel design in Linux, compared to Tanenbaum's microkernel implementation in MINIX.
Lawsuits

The early 90's witnessed USL (Unix System Laboratories) bring a lawsuit against BSDi (Berkeley Software Design) claiming that BSD contained illegally obtained code from the proprietary NET-2 UNIX codebase.

The mid 90's also saw a flow of lawsuits brought against Linux contributors (primarily IBM and Novell) from
SCO, the company that owned the rights to the original UNIX codebase at the time, claiming
they used their licensed and copyrighted Unix code in their contributions. The codebase is currently owned by Novell, as a result of the court-cases, the copyrights were solidified under Novell, the creator of SuSe Linux, which is in large parts based on my favourite Linux distro; Slackware Linux ;P
Other systems based on original Unix


Another useful link in this context would be the OS developed at Bell Labs/Lucent Technologies, named "Plan 9". The project goal was to create UNIX in it's simplicity as originally intended in the early development stages, but for use in the modern world. It also incorporated a couple of new concepts alongside the classic UNIX implementations. This was in the "Lucent Technologies" era of Bell Labs in the late 90's. The first and second release were strictly commercial, but in 2000, the third release was made under an open source license, and all commercial interest in the project dropped. The project is now in it's fourth release. http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs

And last, but not least, Dennis Ritchie created with the help of others, the last update of Plan 9, called "Inferno", which aims at providing a POSIX environment based on original UNIX concepts on a range of different devices, architectures and platforms (a wide specter of platforms actually: WinNT/2000/XP, Irix, Linux, BSD and Solaris). Worth mentioning about this project, is both the actual system changes themselves (filesystem,core), and it's "Dis Virtual Machine" kernel concept and it's accompanying programming-language "Limbo" which utilize JIT compilaion ("Just-In-Time", or "on-the-fly" compilation of object code). Inferno is also the first POSIX system from Bell Labs which seems successfull with the dual-licensing model (both commercial, "without copyleft" and Free Software (FSF,GPL), "with copyleft"). http://en.wikipedia.org/wiki/Inferno_%28operating_system%29

30 January, 2008

Min I/O


Et personlig resonnement om bruk og sikring av datamaskiner tilkoblet Internett i hverdagen.

Opprettet: 09.12.2007

Min erfaring med avansert databruk startet vel på slutten av 90-tallet, da en venn anbefalte meg å innstallere Slackware Linux for å bedre systemet mitt slik det kjørte programmer og utførte oppgaver slik jeg selv ville ha det til å utføres. Han oppfattet meg som en avansert databruker med klart definerte forventninger av mine egne systemer, og sa derfor at jeg ville finne mange nye kunnskaper dersom jeg begynte med Linux.

Slik ble det dessverre ikke med det første, fordi jeg hverken hadde erfaring med generell systemutvikling, programmering eller skreddersying av system-oppsett på noen som helst måte, sett bort i fra den vanlige Windows-farsen: "Installér-og-funger". Hvis en virkelig VIL skreddersy sitt eget system for å oppnå hvisse mål med hele prosessen, må en nesten kunne datamaskinen man vil skreddersy ut og inn, 'from scratch' som det heter så fint på gammalnorsk. Dette irriterte meg veldig en god stund.

Etter å ha prøvd et par linux-distribusjoner (såkalte programvare-samlinger), alt fra "Mandrake Linux" (nå kalt Mandriva) til "Debian GNU/Linux", tok jeg meg selv i å alltid falle tilbake på mitt første forsøk på åpen kildekode; "Slackware Linux". Denne 'distroen' tvinger en til å forstå hvordan et OS (Operativ System) basert på POSIX (Portable Operating System Interface)-standarder fungerer...
Ikke noen polerte grafiske brukergrensesnitt for å konfigurere noe som helst, alt foregår på CLI (Command Line Interface), noe som kan få hvem som helst til å ville rive ut sitt eget hår. Men jeg var heldig, mine yngre dager på 80-tallet tvang meg til å leke med MS-DOS p.g.a. tilgjengelige spill på den tiden. Og som mange andre hackere sannsynligvis gjorde for å finne frem til egne konklusjoner, hadde jeg min del av episoder med "prøv-og-feil" og "prøv-og-feil-og-ødelegg". Long-story-short: å tukle med data på grunn-nivå kan gjør MYE skade, men også gi mye positiv erfaring til å benytte ved senere anledninger (faren min delte ikke samme oppfatning ;P i alle fall ikke akkurat i gjerningsøyeblikkene, havarerte mang en harddisk på mine data-eventyr).

Jeg ble veldig fascinert av åpen kildekode miljøet, hvor alle bare kunne laste ned kildekode (programvare-oppskrift) og "koke sammen" (les kompilere) programmer og bruke dem uten noen begrensende brukeravtaler eller proprietære* lisenser som avgrenset hvordan en selv brukte/ga bort både ren kildekode eller modifiserte binære (ferdigkokte/kompilerte) versjoner gjennom nettet til alles felles fordel. De politiske sidene ved det hele kunne ikke interessere meg i det minste, men at kommersielle virksomheter på begynnelsen av 2000-tallet begynte å se på åpen kildekode som en motstridene trussel mot sine egne produkter, viste jo bare at folkene bak virkelig visste hva de holdt på med. Og dette styrket bare min egen innsats i å beherske teknologien.
* Proprietær programvare, også kalt godseid programvare, er en samlebetegnelse på programvare som holdes ufritt av et kommersielt selskap. Også gratis programvare kan gå innunder dette begrepet; at programvaren er gratis, betyr ikke at den nødvendigvis er fri. Det er her mange misforståelser oppstår – særlig på engelsk, der «free» betyr både «gratis» og «fri».
Det tok meg en del år å forstå prinsippene bak UNIX/Linux, delvis fordi systemene egentlig bare ble flittig brukt av universiteter, forskere, professorer og utviklere på 70/80-tallet. Men når jeg selv begynte å fordype meg i både systemutvikling og programmering, fant jeg ut at det ble uendelig mye lettere ettersom jeg la meg i selen for å forstå grunnstenene i databehandling. Og i samme slengen innså jeg også at det vil ta lang tid før "mannen-i-gata" kan bruke slike systemer effektivt i hverdagen, selv om jeg selv bare er hobby-bruker og ivrig fantast, så jeg at det fantes mange andre hobby-brukere med min tankegang på nettet gjennom å lese forumer og oppslag via OSS-prosjekter (OSS=Open Source Software). Så det finnes et uendelig antall andre som også vil ha et system som gjør ting på måter de selv bestemmer eller setter det opp til. Men faktum er at de fleste bare vil ha "noe som bare fungerer", både privat og i jobb. Og at det derfor beror totalt på oss som virkelig orker/gidder å sette oss inn i teorien bak det hele for å få ting til å "bare virke". Jeg liker ikke et så stort ansvar, men føler likevel at jeg med evne til å forstå IT bedre enn gjennomsnittet i alle fall burde gjøre folk oppmerksomme på fallgruvene, og muligens til og med hjelpe andre med å gjøre databruken sin sikrere.

Etterhvert ble jeg også oppmerksom på problemene bak datautvikling; tilrettelegging for nettopp disse sistnevnte brukerne. Til og med nå i det nye årtusenet, et par tiår etter personlige datamaskiner inntok markedet og ble vanlig bruksgjenstand i de fleste hjem, sliter virkelig IT-industrien fremdeles med nettopp den samme probleminnstillingen; tilrettelegging.

Det som egentlig var min personlige grunn til å inntre på åpen kildekode-scenen, var viljen til å "fikse" på ting i systemer, slik at de gjorde ting akkurat slik JEG ville at det skulle gjennomføres. Og dette er egentlig meget vanskelig å oppnå med lukkede/proprietære operativ systemer (les M$ Windows).
For ikke å glemme noe av det viktigste vi burde ta MYE mer hensyn til ift. databruk i hverdagen: nemlig sikkerhet! Nå når alle handler med kredittkort over nettet og egentlig ikke er helt klar over hvor usikkert det er å sende intime person-detaljer på det offentlige nett, er dette kritisk viktig. Hadde bare alle visst hvor enkelt det er for en med "know-how" å snappe opp biter med informasjon fra nettet og misbruke informasjonen på det groveste med hensynsløse kriminelle hensikter, hadde nok folk tatt litt mer ansvar i egne hender. Det var innlysende for meg, at jeg som privat-person måtte sikre hjemmenettverket mot inntrengere og lurendreiere. Men å totalsikre et dataanlegg/nettverk er umulig. Dess mer en sikrer, dess mer begrenser man hvordan man selv kan bruke systemene i ettertid. Å finne mellomtingen er definitivt ikke lett, men er for meg alfa-omega innen datasikring.

En kamerat som utdanner seg innen datasikkerhet ga meg et bra tips: bare tillat tjenester som brukes daglig og kjør whitelisting (unntakslister) slik at funksjonaliteten ikke reduseres. Selv fant jeg diverse artikler online om å bruke en råsikret SPI**(Stateful Packet Inspection)-brannvegg (ved bruk av IPTables/IPChains i Linux) med dedikerte kjeder for hver protokoll (TCP/UDP/ICMP) og egne kjeder for:

IP-spoofing:

I datanettverk, brukes uttrykket IP-spoofing for når pakker blir laget med falsk kilde-adresse for å skjule identiteten av senderen, eller for å gi seg ut for å være fra et annet datasystem enn det som faktisk blir brukt til å sende ut pakken. Vanlig adresse-spoofing benyttes dersom angriperen ikke bryr seg om responsen til mottaker, eller angriper klarer å gjette seg frem til responsen mottaker sender ut til den falske adressen i pakkene. I visse tilfeller, er det mulig for angriper å se disse responsene, eller å rute responsen til sin egen maskin. Det mest vanlige tilfellet av dette er når angriper spoofer fra en adresse på samme LAN eller WAN (angriper sitter på nettverket til samme Internett Leverandør (ISP)). IP-spoofing brukes som regel når det utføres tjenestenekt-angrep mot verter.

Port-scanning:

En port-skanner, er mykvare designet for å "sniffe" et nettverk for verter med åpne kommunikasjons-porter. Dette blir ofte brukt av administratorer/analytikere/hackere for å sjekke sikkerheten på nettverket deres, og av crackere/kriminelle til å kompromittere det. Å port-skanne en vert er å skanne for flere åpne kommunikasjons-porter på samme vert. Å "port-sveipe" er å skanne flere verter om gangen for én spesifik åpen port. Sistnevnte brukes som regel for å finne flere verter med den samme åpne tjenesten for å misbruke tjenesten/porten til å utføre et masseangrep/tjenestenekt-angrep (mer om dette nedenfor).

Tjenestenekt-angrep

Tjenestenekt (Denial-of-Service, DoS) brukes innen Informasjons- og IT-sikkerhet for å beskrive et angrep hvor man hindrer at noen eller noe (f. eks. en person eller et system) får tilgang til informasjon eller ressurser de skal ha tilgang til. Et vellykket tjenestenektsangrep vil således føre til et brudd på tilgjengeligheten til informasjonen/ressursen. Tjenestenektangrep har vokst til å bli et problem på Internett, særlig distribuerte varianter (Distributed DoS, DDoS), hvor flere "slave"-maskiner (f.eks. "zombies") brukes til å angripe en eller flere maskiner via nettverket. Alle disse maskinene samlet vil ha større båndbredde enn offeret, noe som utnyttes til å sende så mye data til offeret at legitim trafikk ikke vil komme igjennom. Et tjenestenektangrep må ikke nødvendigvis utføres via et nettverk. Det er mulig å lage programmer som ikke gjør annet enn å kopiere seg selv (såkalte "Fork Bombs"). Etter kort tid vil prosessoren bli overarbeidet og systemet vil stoppe.
...og dusinvis med andre hacking metoder før pakkene endelig kjøres i kjeden for videresending til det interne LAN-et, og så mot ende-vertene.
** I datasammenheng, er en "SPI"-brannvegg (en hvilken som helst brannvegg som utfører uttrykksfull pakke inspeksjon (SPI)) en brannvegg som holder rede på statusen av nettverksforbindelser (slik som TCP-strømmer, UDP-kommunikasjon eller ICMP-meldinger) som traverserer den. Brannveggen er programmert til å redegjøre legitime pakker for forskjellige typer etablerte forbindelser. Bare pakker som matcher en kjent etablert tilstand vil tillates å traversere gjennom brannveggen; andre vil bli forkastet.
Den endelige løsningen jeg kom med basert på informasjonen fra både kompis og Internett har spart meg for mye hodebry. Har kjørt denne skreddersydde løsningen på mine egne maskiner nå i ca. et halvt år, og den fanger faktisk opp de fleste ondsinnede pakkene som finner veien inn gjennom Internett-aksessen, uten å være altfor nazi angående sikkerhetsnivået slik at det ødelegger for normal funksjonalitet. Mesteparten av loggen består av døde packets (tidsbrudd p.g.a. ulovlig kilde og/eller destinasjon, evt. uetablerte forbindelser mot LAN-verter), men har fått noen SYN-scans fra diverse luringer rundt om i Europa også ;-P men som folka bak ruter-løsningen "IPCop" sier: "The Bad Packets Stops Here!" Kan de ikke nå målrettet vert, kan de ikke gjøre noe skade. Akkurat som partikler i luften som kan gå ned i lungene og gjøre skade innvendig, holdes ute med et luftfilter.

For å snakke litt om sikkerhet i Windows, så har jeg ikke store tilliten til at M$ faktisk sikrer noenting skikkelig i det hele tatt. Det sies at Windows-brannmuren skal stoppe det meste, men da spør jeg: hvorfor henger de fleste WinXP-maskiner seg konstant når de står tilkoblet direkte bredbånds-oppkobling uten avansert program/port-oppsett og protokoll-regelsett? Jeg jobber hos en av Nordens største bedrifts-ISPer, så jeg vet at enkelte privat-ISPer blokkerer for "ulovlige" protokoller (f.eks. P2P, BitTorrent, osv.) og noen kjører brannmur på forespørsel fra kunder. Med god kjennskap til nettverksteori, kan disse sperringene lett forbigås, men jeg forstår at visse ISPer føler seg tvunget til dette p.g.a. rettsforfølging, det er bare unødvendig siden det egentlig ikke sperrer for noe, alle sperringer har svakheter, og svakheter kan alltid utnyttes.

Men native brannmur eller mykvare-basert tredjeparts brannmur for Windows har jeg meget liten tillit til (basert på egen erfaring) og er også en av grunnene til at jeg SJELDEN kjører M$-produkter på egne maskiner. Har jeg alternativer, bruker jeg som regel dem, eller evt. kjører en sentral NAT/brannmur-maskin fra bredbånds-tilkobling til switcher/rutere mellom eventuelle usikrede maskiner i nettverket mitt.

Mitt personlige råd om generell datasikkerhet hos privatpersoner, ville vel vært: bruk helst en dedikert gateway m/brannvegg (les ruter) mellom datamaskiner på det interne LAN-et mot Internett-aksessen for å beskytte mot ondsinnet trafikk. Eller kjør en egen datamaskin som gateway mellom Internett-aksess og internt LAN, som gjør akkurat den samme jobben like godt som et dyrt nettverksdedikert produkt, bare for småpenger. Sørg også for at en eller flere enheter foran datamaskin(ene)*** før Internett-aksessen kjører en form for SPI-brannvegg.
*** Dersom det brukes mer enn èn brannvegg, må alle konfigureres for å tillate/nekte trafikk mellom hverandre
Et alternativt tiltak som kan være lurt, er å spesifisere for brannvegg(ene) hvilke programmer som ikke skal nektes full tilgang til det offentlige nett (Internett), eller evt. åpne spesifiserte porter (som i teorien ikke blir sett på som spesielt sikkert) og la den ytterste (dersom du kjører mer enn én) brannvegg filtrere/droppe uønsket trafikk.

**** Det siste alternativet anbefales ikke for folk som har vanskelig for å forstå enkel, generell data-/nettverks-sikkerhet.

Innlegget er sammensatt av egne erfaringer og utdrag fra bl.a. www.wikipedia.org