A programozás etikája

Egy könyvfejezeten dolgozom, az lesz a címe (mármint a fejezeté), hogy “Etikus programozás”. Itt egy részlet ízelítőnek.

————

A szakma etikája, avagy az etikus programozó

A programozás etikai kérdésihez több irányból közelíthetünk. A számítógépes szoftvereket programozók írják. A programozás komoly felkészültséget igénylő szakma, amit bonyolultságára, fontosságára és presztizsére való tekintettel hivatásnak is nevezhetünk. Az ilyen foglalkozásokkal könyvünk 3. fejezete foglalkozik. Ebben elmondtuk, hogy a hasonló szakmáknak általában megvan a maguk értékrendje, etikája, így beszélhetünk például orvosi vagy üzleti tanácsadói értékrendről és etikáról.

Igaz ez a programozói szakmára is[1]. Képviselői a számítógép feltalálása, tehát nagyjából a negyvenes évek óta foglalkoznak a szakmai etika kérdésével, és sikerült is eredményeket elérniük. A számítógépes szakmai szövetségek egy részének etikai kódexe is van, a tekintélyes Association for Computing Machinery például a kilencvenes évek elején dolgozta ki és fogadta el a sajátját.

A programozói szakmai etikai kódexeknek vannak gyakran előforduló, tipikus elemei. Előírhatják például, hogy a programozó a társadalom jóléte és fejlődése érdekében tevékenykedjen: olyan programokat írjon, amelyek segítik a mindennapos életet és a munkát, segítenek megoldani biztonsági, egészségügyi stb. problémákat, elhárítanak valamilyen veszélyt. A szoftver ne okozzon kárt másoknak, ne sodorjon veszélybe senkit. Ki kell küszöbölni, vagy minimalizálni kell az esetleg előforduló programozási hibák, biztonsági lékek negatív hatását. A programozó legyen becsületes és megbízható, legyen tisztában saját tudása, képességei korlátaival, és azokat ne titkolja mások előtt, ne csapja be megbízóit, felhasználóit. Ha tudomása van a szoftver valamilyen hibájáról, korrekt módon tájékoztassa az érintetteket. Ne lopjon, ne másoljon engedély nélkül, tartsa tiszteletben a szerzői jogokat, ne ékeskedjen idegen tollakkal, ismerje és tisztelje mások teljesítményét. Fordítson figyelmet a magánélet védelmére, biztonságára, ne szolgáltassa ki a szoftver felhasználóját másoknak. Őrizze meg a megbízói titkait, bizalmas adatait, tartsa be a titoktartás írott és íratlan szabályait. Vigyázzon arra, hogy az általa írt program csak szakszerű ellenőrzés és tesztelés után kerüljön használatba, ne elégedjen meg azzal, hogy a program „működik”, meg kell azt is vizsgálni, hogy minden tekintetben megfelel-e a specifikációnak és hogy biztonságos-e a használata. Ha egy program elkészült, a programozója vállaljon személyes felelősséget érte, így a használat során felmerülő, programozási hibákért, problémákért is. Jelezze az érintetteknek, ha egy programozási feladattal kapcsolatban valamilyen veszélyt érez, káros következmény felmerülésétől tart. Anyagi kérdésekben is legyen becsületes, hárítsa el a megvesztegetési kísérleteket, ne számlázzon túl, ne vegyen részt olyan munkában, aminek valamilyen bűnös célja van. Tanuljon és fejlődjön annak érdekében, hogy hasznos, biztonságos, megbízható, jó minőségű programokat tudjon írni.

A példaként felsorolt előírások tulajdonképpen a programozói szakmára adaptált általános etikai, erkölcsi szabályok. Fontosságuk érzékeltetése érdekében ismerkedjünk meg egy, a sajtóban is megjelent esettel a közelmúltból!

Egy, a szakmájában elismert etikus hacker megbízást kapott egy kórháztól annak informatikai rendszere biztonságának ellenőrzésére. Az etikus hacker egyfajta jó szándékú betörő, akit maguk a tulajdonosok kérnek fel betörésre. Ha sikerül bejutnia egy számítógépes rendszerbe, nem lop el semmit, nem okoz kárt, hanem elmondja, miként tudott bejutni, hol vannak rések a falon, mit tehet a rendszer gazdája a biztonság érdekében.

Megbízójához megérkezve a történetben szereplő hacker meglepve tapasztalta, hogy nagyszabású vizsgálatról van szó, a gazdag amerikai kórház sztárcsapatot hozott össze etikus hackerekből. A vezetők több tucat okos, hálózatra kapcsolt gyógyászati eszközt adtak át nekik mondván: próbáljátok meg feltörni ezeket, megszerezni az adataikat, sőt mi több, átvenni felettük az uralmat! A hacker munkához látott és meglepve tapasztalta, hogy nincs nehéz dolga: az eszközök jó része kifejezetten védtelen volt, némi szakértelemmel fel lehetett törni, be lehetett jutni az adatbázisokba, a gyógyszeradagoló eszközökben meg lehet változtatni a dózisokat, és így akár távirányítással meg is lehetett volna ölni valakit. Aki bejutott, a folyamatos hálózati összeköttetésnek köszönhetően más eszközökbe is átléphetett.

Az első, és mint láttuk, sikeres próbálkozások után a hacker hazament és kísérletképpen egy internetes bolhapiacon vett magának egy intelligens infúziós készüléket, majd otthon összekapcsolta egy hálózati számítógéppel, pont úgy, ahogy az egy kórházban történne. Most már nem lepődött meg azon, hogy az eszköz némi munka árán vakon engedelmeskedett neki.

Néhány hét múlva a hacker valamilyen rutinműtét miatt kórházba került. Az altatásból felébredve tucatnál több hálózatra kötött orvosi eszközt számlált meg a szobájában, nyolc rádiós hozzáférési ponttal. Amikor jobban lett, fogja a saját intelligens infúziós pumpáját, kiosont vele a mosdóba és szétszedte. Az eszköz kiszolgáltatta a tárolt adatokat, még jelszavakat is elárult, és ezek egyikével akár az elektronikus zárral ellátott gyógyszeres szekrénybe is be lehetett jutni. A történet hőse összeszerelte a pumpát, visszament a szobájába, ahol a másik ágyon is egy pont ilyen eszközre kapcsolt beteg feküdt. Vajon ki garantálta a biztonságát?

Felgyógyulását követően a hacker nem hagyta abba a munkát: rövid idő alatt 40 szállító mintegy 300 különböző gyógyászati eszközében talált biztonsági réseket és hibákat. A felelősség firtatásánál a gyártók a kórházakra mutogattak: nektek kellene áthatolhatatlan tűzfalakat emelni magatok köré, nektek kellene kiváló biztonsági szakembereket alkalmazni, akkor nem piszkálhatna bele senki a mi okos készülékeinkbe! A kórházaknak természetesen más volt erről a véleménye.

A történetben szereplő kórház szemlátomást igyekezett lépést tartani a technológiai fejlődéssel, szaknyelven fogalmazva „a dolgok internete”, az „internet of things” világába lépett, ahol minden digitális, mindent szoftver vezérel, és minden mindennel össze van kapcsolva. A szoftvereket programozók írták, akik ezek szerint nem a fentebb említett szakmai etikai elvek szerint jártak el. A felelősség kérdését firtatva fel lehet vetni más kérdéseket is, hiszen a betegek nem a programozókra, nem a készülékgyártókra, hanem a kórházra és az orvosokra bízták magukat. Arról is lehet vitatkozni, hogy meddig mehet el egy etikus hacker, mit engedhet meg magának a munkája során.

Programozó, kórházi vezető, orvos, etikus hacker – ezek szakmák, hivatások. Mindegyiknek vannak etikai normái, általános erkölcsi előírásai, elvárásai. E szakmák képviselői döntéseket hoznak, alternatívák közül választanak, a társadalom pedig elvárhatja tőlük, hogy döntéseikben morális elveket is érvényesítsenek.

De mi van akkor, ha a döntéseket nem az ember hozza, hanem a gép?

[1] A „Megéri jónak lenni?” című könyvünk 6. fejezete is felvet egyes programozással kapcsolatos etikai problémákat.