A Facebook alaposan atomizálta a társadalmat, mi jön most?

A Facebook bevezeti a kommentek értékelésének lehetőségét, adta hírül néhány órával ezelőtt a Thenextweb.
Egészen kivételesen szinte biztosra bejósolható, hogy mi lesz az egész kifutása, holott csak egy olyan alap feature bevezetését vették tervbe, ami minden normális szolgáltatásban már régen létezik.
Már talán kevésbé, de sokáig a csapból is az folyt, hogy a közösségi médiás felületeken keresztül hogyan lehet hatékonyan fellépni a tömegeket érintő információs hadviselés és az egyszerű fake news ellen, eddig egészen elképesztően hülye ötletekkel látványos kudarcot vallott a Facebook. Ilyen volt, amikor a plebs megítélésére bízta, hogy egy hír szerintük fake vagy sem, mire az történt, hogy a hamis hírként megjelölt tartalmakra még többen kattintottak.
A magyar informatikai biztonság egyik vezéralakja néhány hónappal ezelőtt a Facebook-falán arról írt, hogy korábban egészen használható információforrás volt a Facebook, mára pedig kilométereken keresztül kell görgetni, hogy normális tartalmat találjon a felhasználó. Sok-sok magyarázatként én egyet emelnék ki.
Kik alkották a Facebook felhasználó bázisát kezdetben? A Harvardon tanuló hallgatók, akik nyilván magasabb intellektussal rendelkeztek az átlaghoz képest. Aztán a hallgatók meghívták a rendszerbe a rokonaikat, majd kutatókat, újságírókat, azaz nagyon sokáig felülreprezentáltak volt az a felhasználói bázisban azok, akik azért – mondjuk ki – értelmesebbek voltak, a Facebook pedig szűrők és trükközés nélkül is egy élhetőbb terep. A látványos változás akkorra tehető, amikor elérte a felhasználók száma a tízmilliót, ami ezt követte, már ugyancsak történelem: a rendszert valahogy fenn kellett tartani illetve profitábilissá kellett tenni, ehhez pedig teljesen más stratégiára volt szükség, ezzel a folyamattal párhuzamosan és egyben okként egyre nőtt az átlaghoz közelítő intellektussal rendelkező felhasználók aránya. Jól ismert, hogy az intellektus standard eloszlást követ, minél nagyobb mintát vizsgálunk, annál jobban, szemléletesen kiugrik, hogy az átlagos képzi a legnagyobb részt, legtöbbször ettől átlagos az átlagos. Az átlagnak pedig nemt tudományos oldalakról megosztott szakcikkekre volt szüksége, hanem cicás videóra és alaposan dokumentált nyaralós albumokra minden mennyiségben.
Átlagos intellektusú felhasználók társaságában pedig nem meglepő módon, kevésbé fogják komfortosan érezni magukat az értelmesebbek, főleg, ha udvariasságból olyat is felvesznek ismerősnek, aki ontja a falra a contentless hülyeségeket.
A Facebooknak ehhez az átlaghoz kellett alkalmazkodnia, de több közösségi szolgáltatásban is megfigyelhető egy olyan általános életciklus, hogy felfutó ágban menő, aztán egyre kommerszer, a végén pedig már-már ciki, ahogy a néhai iWiW-ről is monták sokan.
A Facebook egy korábbi vezetője a Verge múltkori cikkében rendkívül lesújtóan nyilatkozott a szolgáltatásról  nem véletlenül. Az egész Facebook úgy van kialakítva, hogy ott minimális erőbefektetéssel jöjjön a jól kiérdemelt kutyakeksz. A bardóczi reblogon már többször is volt téma, de még egyszer, nagyon röviden: az emberi agy reward-köre jutalomérzetet vált ki, ha sikerrel megoldunk egy feladatot, még nagyobb jutalomérzetet, ha ezzel mások elismerését meg is szerezzük akár csak pár percre, de ugyanez a rendszer kapcsol be akkor is, ha valaki mondjuk kokainnal tapossa a reward-pedált. Azaz a megszokásoknak és a sikerre való törekvésnek egy központi eleméről van szó. Az agykutatás Nobel-díjának is számító Brain-prize-t 2017-ben éppen ezen folyamatok tisztázásáért ítélték oda.
Jól ismert, hogy mindenből lehet függőség. Nem tudni, hogy a Facebook mennyire tervezetten, de úgy működik az átlagos felhasználó esetén, hogy egy, lényegében értelmetlen cselekvést, például egy teljesen átlagos kajafotó feltöltését lájkok és kommentek zápora követheti, ami visszaigazolás a felhasználó felé, hogy figyelnek rá. Ez persze, hogy beépül a megszokások közé, sokszor még akkor is, ha más örömforrások is érik a felhasználót.
Na ez a lényeg! Szinte biztosan mondhatjuk, hogy ez a pszichológiai magyarázata annak, hogy sosem vezették be például a dislike gombot vagy olyan lehetőséget, ami a felhasználó számára kellemetlen érzetet keltene, ennek eredményeként pedig idővel kevesebb időt töltene a szolgáltatásban.
Nem nehéz elképzelni, hogy ha valaki rendszeresen olyan visszajelzéseket kap valamilyen formában, aminek a jelentése, hogy amit posztolt, kommentelt, értelmetlen, ellenkezik a közvélekedéssel, ráadásul ez a gesztus egyetlen kattintással megtehető, nem fogja túl jól érezni magát tőle.
Az utóbbi tárgyalt témát összekapcsolva azzal, hogy a felhasználói bázis legnagyobb részét mégiscsak az átlag adja, érezhető, hogy az egész egyenesen veszélyes is lehet, hiszen a közvélekedés adott esetben  nem racionális, nem igazságos, nem is etikus, nem is lehetne ez másképp, hiszen többségében hülyék alakítják ki, úgy profán egyszerűsítéssel élve. Márpedig ha a hangos hülyék lehurrogják azokat, akiket talán nagyon nem kellene, a jól ismert buborék-effektus még markánsabbá válhat és még tovább szegmentálhatja a különböző értékrenddel, kultúrával, intellektussal rendelkező csoportokat, akik közt persze eddig is szinte nulla volt az információcsere. Látszólag paradox módon ezt éppen a közösségi web erősítette fel, amelyikről közhelyesen szokták mondani, hogy eltünteti a határokat, holott talán még sosem volt ennyire atomizált a társadalom, mint most.
Ha valakit magasabb szinten, hálózatelméleti megközelítésben érdekelnek a jelenség részletei, törvényszerűségei, megincsak Barabási-Albert László Hálózatok tudománya valamint Csermely Péter régi, de lebilincselő, Rejtett hálózatok ereje ajánlható, ami PDF-ben legálisan is elérhető itt.
Ami biztos, hogy nagyon meglepő lenne, ha a Facebook diszlájkolós ötlete működőképes lenne, ha viszont mégis, azzal kapcsolatban fentebb írtam meg a magyarázatot: a klasztereződött társadalomban hasonló intellektusú, társadalmi státuszú felhasználók kevésbé fogják lehurrogni egymást. Amikor felvetődik az a konteóba illő gondolat, hogy a webes óriások már egyenesen az akarják megszabni tervezetten vagy kevésbé tervezetten, hogy miről hogyan gondolkodjunk, akkor is hasonlóról van szó.
Ajánlott két nagy kedvenc még:

 

A net szívcsakrája – a DNS

Amikor a DNS kerül szóba, nagyon sokaknak hirtelen csak az jut eszébe, hogy rendszerint az internet telefonkönyvéhez hasonlítják durva egyszerűsítéssel, mivel a DNS az egyik, ami elengedhetetlen ahhoz, hogy a gépek és szolgáltatások megtalálják egymást a neten. Holott még ennél sokkal többről van szó!
Való igaz, hogy a DNS szolgáltatás teszi lehetővé, hogy egy adott hosztnévhez  tartozó IP-cím vagy IP-címek azonnal megtalálhatóak legyenek a neten, a levelezőrendszerek tudják, hogy adott hosztnévvel végződő emailt milyen gépen keresztül kell kézbesíteni, és így tovább, a DNS messze nem valami száraz és unalmas téma, sőt! Ha hirtelen meg kellene neveznem üzemeltetés szempontjából néhány történelmi fordulópontot a DNS történetében, kettőt emelnék ki.
Már a net hajnalán többen tapasztalhatták, hogy a webhelyüket és levelezésüket is hosztoló szolgáltató DNS szerverei esetleg túlságosan lassan válaszolnak, ami pedig még rosszabb, a DNS szerverek lehalása esetén az általuk kezelt domainek egyszerűen leesnek a netről. Ekkor többen úgy gondolták, hogy érdemes valamilyen bombabiztosra váltani, amire ingyenes megoldást jelentett a  Namecheap Free DNS szolgáltatása. A Namecheap ingyenességében nem volt semmi csalás vagy rejtett költség, a Namecheap üzleti modelljének alapja vélhetően az volt, hogy ha a felhasználók látják, hogy az ingyenes DNS szolgáltatásuk jó, akkor például domain nevet is náluk fognak regisztrálni, ami be is jött. A free DNS szolgáltatással kapásból 5 névszerver beállítására volt lehetőség, amik már akkor bonyolult CDN-szerű rendszereken futottak, amikor még nem is így hívtuk őket.
Igaz, voltak, akik azt tapasztalhatták, hogy a .hu-s TLD-vel rendelkező domainjükhöz nem tudják beállítani a Namecheap DNS szervereit a magyar ISZT példátlanul szigorú, rugalmatlan és több ponton ésszerűtlen korlátozása miatt, amik a névszerverekkel kapcsolatban fogalmaztak meg feltételeket. Ezeket a szabályokat még a net hajnalán fektették le, a cél éppenséggel nemes volt, csak izomból nem lehet kényszeríteni a tömeget, hogy csak olyan technikai megoldást alkalmazzanak valamivel kapcsolatban, amiről egy szűk kör eldöntötte, hogy csakis az lehet megfelelő. A névszerver szolgáltatásnak elvben teljesen függetlennek kell lennie például attól, hogy ki a regisztrátor.
A második nagy áttörést a Cloudflare jelentette, amelyik rendkívül egyszerűen beállítható, az alapfunkciói ingyenesek és gyakorlatilag eltüntette az egy-egy rekord átírásához kapcsolódó átfutási időt azzal, hogy a CDN-jeivel gyakorlatilag mindenhol ott van. Alighanem többen nem tudják, de a Cloudflare éppen egy éve, Magyarországon is jelen van egy rakás szerverrel a BIX 20 GB-s peering partnereként és láthatóan kell is, hogy legyen: a BIX forgalmi statisztikái szerint ugyanis a teljes forgalma, egy hazai netszolgáltató forgalmához hasonlítható, ami persze nem csak a DNS-kérések kiszolgálásából adódik. A Cloudflare le is tarolta a piacot szerte a világon, éppen az egyszerűsége miatt, az esetek többségében megfelel a célnak, viszont bizonyos rekordtípusokat, amikre szükség lehet, a mai napig nem támogat, ugyan éppen ezért kevésbé is lehet egy-egy beállítást véletlenül elrontani.
Aki igazán ínyenc módon szeretné megoldani a saját domainjéhez tartozó zóna kezelését és freemiumot is kínáló alternatívára után néz, annak érdekes lehet a szintén piacvezetők közt lévő, de Cloudflare-hez képest kevésbé ismert NS1. Nem nagyon van más DNS-szolgáltató, amelyik egyáltalán azt mutatná, hogy mennyi lekérdezés történt összesen vagy egy-egy DNS-rekordot nézve, ráadásul úgy, hogy még azt is mutatja egy térképen, hogy honnan jöttek a kérések.
Ez több, mint érdekes lehet egy felhőbe burkolt világban, már nem a 90-es években vagyunk, nem lehet azt mondani, hogy ha főleg Magyarországról nézegetnek egy webhelyet vagy arra a domainre küldenek email-t, akkor a kérések döntően Magyarország felől záporoznak. A magyarázat a CDN-ek, load balancerek lelki világában keresendőek, ezek üzemeltetői viszont nem teszik ki a kirakatba, hogy pontosan hogyan is működnek.
A NS1 professzionális voltához tartozik, hogy pontosan naplózva van, hogy mikor mit állítottunk át mire, ezen kívül számos olyan rekordtípust támogat, amit a többi szolgáltató nem.
Ezen kívül van olyan sajátossága, ami különösen nagy forgalmú oldalak esetén lehet fontos teljesítmény szempontjából, mégpedig az, hogy rekordonként beállítható, többek közt az, hogy melyik földrajzi régióból várható a legtöbb kérés, a szolgáltatás annak megfelelően fog optimalizálni és minél gyorsabban kiszolgálni a kérést. Vagy éppen drasztikus módszer ugyan, de teljes AS-eket tiltólistára lehet tenni, amik felé az NS1 egyáltalán nem fog válaszolni egy domainnel kapcsolatban. Drasztikus módszernek tűnik, viszont nem elképzelhetetlen olyan szituáció, amikor éppen ezzel fékezhető meg DDoS egy olyan világban, ahol a feketepiacon viszonylag olcsón elvben bárki bérelhet olyan botnet hálózatot, amelyik adott domain és amögötti szolgáltatások ellen intéz támadást.

 

Tudható, hogy a DNS-szolgáltatók piaci részesedése rendkívül egyenetlen és fontos tudni, hogy alapvetően azért senki ne piszkáljon zónafájlt anélkül, hogy tudná, mit is csinál pontosan, ezen kívül egy-egy módosítást követően fontos, hogy az újonnan megadott értékeket tényleg betűről betűre ellenőrizzük, különben kellemetlen meglepetések érhetnek. A Namecheap ingyenes és fizetős verziójában is egy textbox máig maximálisan 255 karakter hosszúságú adat vihető be, ami elegendőnek is tűnik. De csak annak tűnik. A mai ajánlások szerint a levelek aláírásához legalább 2048 bites DKIM kulcsot érdemes használni, amit ha vágólapra másolunk, majd beillesztjük a Namecheap DNS vezérlőpultjában, el is menjük, az Namecheap egyáltalán nem figyelmeztet azzal kapcsolatban, hogy a kulcs második felét egyszerűen levágta.
Aki manapság egy szervezetnél DNS-t konfigurál, esetleg saját DNS-szervert üzemeltet, érdemes lehet megfontolni egy jobb üzemeltetői tanfolyam elvégzését, így érthetővé válik, hogy mi is történik a motorháztető alatt egy olyan szolgáltatás esetében, ami az eredeti formájához képest talán a legnagyobb változáson ment keresztül.

Szemléletmódváltás vagy halál?

A legkülönbözőbb területeken lassan már nem is az lesz a kérdés, hogy egy-egy eszköz okoseszköz-e, valamint csatlakozik-e valamilyen módon a nethez, hanem az, hogy mennyire képes egyáltalán működni smart-funkciók és net nélkül, már ha ezek egyáltalán elválaszthatók.

Az egészségügyben az egészen egyszerű vagy annak tűnő eszközöktől az egészen bonyolult diagnosztikai eszközökig minden gyártó követte vagy egyenesen diktálta a trendet, legyen szó vezeték nélküli kapcsolattal ellátott pacemakerekről és inzulinpumpákról, amikkel kapcsolatban a biztonsági aggályok már évekkel ezelőtt bejárták a világsajtót. Nem kérdés, hogy egy-egy ilyen eszközön még a firmware frissítés is rejt magában rizikót. Az orvosi képalkotó diagnosztikában természetesen adta magát az igény arra, hogy a kapott adattenger minél egyszerűbben elérhető legyen PC-n is, ahogy pedig az lenni szokott ilyenkor a gyártók egyrészt nem szeretnének lemaradni a versenytársaikhoz képest, szeretnének minél több kényelmi fícsört beépíteni, igen, még olyan áron is, ha a fejlesztés közben a biztonságból kell engedni.
Nemrég jelent meg a TheHackerNews cikke, ami szerint a támadók kimondottan röntgen-gépeket és MRI gépeket támadtak, ezen kívül sejthetően a gyártók IT-infrastruktúráját.
Több fejlesztő és fehér kalapos hekker előszeretettel hülyézi le azokat a fejlesztőket, akik egyszerűen nem szokták meg, hogy a secure coding valóban fontos, pontosabban lassan más típusú fejlesztésről nincs is értelme beszélni kicsit is komoly helyen.
A programozás, ha úgy tetszik nyelvhasználat. A natív nyelvhasználatnak, azaz ember-ember kommunikációnak pedig általános sajátossága, hogy nem kérdőjelezzük meg más szavahihetőségét, amíg erre nincs alapos okunk. A programozáskor a fejlesztő meghatározza, hogy a gépnek mit kell vagy kellene csinálnia, részletkérdés, hogy bizonyos programozási nyelvek esetén ugyanazt a feladatot minél kevesebb féle módon lehet lekódolni, mint a Pythonban vagy éppenséggel nagyon sokféle módon, mint a Perl-ben. De az eredeti paradigma szerint a fejlesztő fejleszt, tesztel, majd elhiszi, hogy a kód csak úgy működhet, ahogyan azt megírták. Miért? Mert a bizalomközpontú ember-ember kommunikációból indult ki a fejlesztő, amikor lefejlesztette azt, amit kellett.
A metaforát folytatva, a fejlesztésre alkalmazva sokáig azért nem foglalkoztak egyáltalán azzal a fejlesztők, hogy az alkalmazás vagy szolgáltatás megfelelő bemenetet kap-e, mert nem feltételezték, hogy esetleg lesz valaki, aki majd olyan bemenetet küld, amin keresztül akár az operációs rendszer szintjén valami nagyon kellemetlen dolog történik, például.
Csakhogy az éles szoftverfejlesztés és az internet természete más, bizonyos értelemben éppen fordítottja az ember-ember kommunikációnak.  Az elektronikus levelezés nagyon jó példa a netes szolgáltatások természetének megértésére. A spamek és phishing ellen vívott küzdelemben eredeti formájához képest technikai téren az emailezés teljesen megfordult: egészen addig feltételezik a levelezőrendszerek, hogy az email hamis, amíg sok-sok kifinomult lépésen keresztül nem bizonyosodik meg róla címzett, hogy hiteles.
Hasonló trend, ami szerint ha gépekről van szó, semmi sem hiteles, amíg nincs hitelesítve avagy a megfelelősége tesztelve, a fejlesztés és üzemeltetés területén markánsabban vagy kevésbé, de mindenhol ott van ugyanez.
Azaz az információáramlás natív természetével, az ember-ember kommunikációval ellentétben amikor az ember mondja meg a gépnek, hogy mit csináljon a fejlesztésen keresztül,  mindegy, hogy egy apró webappról, egy levelezőrendszerről az internet valamelyik elemi szolgáltatásáról van szó, a gépeknek, a fejlesztőnek és az üzemeltetőnek azt kell feltételezniük, hogy az információ vagy egy működés nem fogadható el hitelesnek, amíg több mechanizmus nem igazolta, hogy valóban az.
Alighanem mindenki találkozott már azzal a védhetetlen véleménnyel, hogy “hozzánk minek akarnának betörni” vagy éppen egy szoftverrendszer jó úgy, ahogy van, elkészült időre, holott annak kellene általános gyakorlatnak lennie, hogy a fejlesztést követően több tesztelési metodikát is bevetve igazolható legyen az elvárható szintű stabilitás és biztonság.
Persze, hogy lesznek többen a piacon, akik függetlenül attól, hogy inzulinpumpát, röntgengépet vagy lélegeztetőgépet gyártanak, amik a maguk módján okoseszközök, például lehetővé teszik a vezeték nélküli firmware-frissítést, a gyártók engedve a kisebb ellenállásnak, fejlesztés közben a biztonságra és a tesztelésre fognak a legkevesebb figyelmet fordítani.
Természetesen függően attól, hogy milyen eszközről van szó, más előírásoknak kell megfelelnie egy inzulinpumpának és egy intenzív betegellátásban vagy aneszteziológiában használatos lélegeztetőgépnek, a lényeg viszont ugyanaz: ha a fejlesztők nem szakítanak a korábbi megszokással és a kódolás nem lesz eleve biztonságos kódolás, annak beláthatatlan következményei lesznek.
Kevesen tudják, hogy ami sokak számára sci-fi, az a gyógyszergyártásban már a jelen, a gépek szemet kápráztató sebességgel és pontossággal teszik a dolgukat, egyre kevesebb emberi felügyelet mellett. Ahogy az az iparágnak megfelelően megkövetelhető, rendkívül szigorú szabályok vannak ugyan, de az elvi lehetőségét nem zárhatjuk ki annak, hogy sosem hakkolnak meg egy robotot például egy patkolt filmware-rel. Márpedig ha egy high-tech robot egy-egy hatóanyag ezerszeresét adagolja a készülő gyógyszerkészítménybe, ráadásul úgy, hogy azt ne is lehessen észrevenni rutinszerűen, tragikus következményekkel járhat.
Végül megjegyzem, még ha eléggé biztonságosan is működnek az atomreaktorok PLC-i, a légi forgalomirányításban használt valós idejű rendszerek, sokkal gyorsabban árasztanak el az okoseszközök, minthogy ahhoz a végfelhasználók hozzá tudnának szocializálódni vagy a jogalkotók eléggé gyorsan tudnának megfelelő kontrollokat beépíteni.

J. A. után szabadon azt írnám, hogy programozni és tesztelni csakis szépen, ahogyan a csillag megy az égen, úgy érdemes, úgy szabad.

kép: Alibaba

Magatartástudomány, social engineering és a HUMINT

Ésszerű terjedelmi korlátok mellett szinte lehetetlennek tűnik hatékonyan érvelni amellett, hogy a fehér kalapos hekkerek bizonyos módszereiket, kutatásaikat miért nem fejleszthetik egy bizonyosnál magasabb szintűre olyan módon, hogy ne kutatnának utána olyan témáknak, amik a hekkelés emberi oldalával foglalkoznak. A héten született meg a gondolata, hogy csokorba rendezve közreadjuk a legfontosabb könyveket, amiket nagyon ajánlott elolvasnia mindenkinek, aki behatóbban szeretne foglalkozni a social engineeringgel és human intelligence-szel.

Social Engineering Penetration Testing: Executing Social Engineering Pen Tests, Assessments and Defense (Gavin Watson, Andrew Mason, Richard Ackroyd)

A könyv ugyan tárgyalhatná bővebben is az emberi természet azon sajátosságait, amin keresztül egy-egy megtévesztés működik, az aktuálisan legkorszerűbb, egyéb SE technikák és persze technikai eszközök ötvözésével mutatja be mindezt. Ezen kívül nagy hangsúlyt fektet a reportingre, amit nagyon sok könyvből hiányolunk. A bőséges elmélet mellett szinte minden oldalra jut valamilyen technika éles bemutatása. A könyvre nem mondanám, hogy jobb vagy rosszabb, mint Chris Hadnagy Social Engineering The Art of Human Hacking  írt alapműve, de az biztosan megállapítható, hogy a Syngress műve nagyobb hangsúlyt fektet a gyakorlatra. A kevésbé szorgalmas olvasók számára több cheat sheet is segíti a minél gyorsabb megértést.

Unmasking the Social Engineer – The Human Element of Security

A Social Engineering alapmű kistestvérének is nevezhetnénk, tartalmi szempontból pedig tényleg nem túloz: a mű a magatartástudomány legújabb állásának megfelelően szemlélve mutatja be, hogy mikor valószínűsíthetünk csalást. A könyv szerkesztésében egyébként maga Paul Ekman, a világ egyik legnagyobb, mára fogalommá vált liespottere is részt vett. Ha már liespotting, van valami, amit alighanem nem lehet elégszer hangsúlyozni. Ahogy tartja a mondás “vigyázz az egykönyves emberekkel”. A Lie To Me tévésorozatban rendszerint azt láthatjuk, hogy Dr. Lightman seperc alatt azonnal teljes bizonyossággal, ha valaki hazudik vagy manipulációval próbálkozik, ilyen a valóságban tényleg nem létezik. A manipuláció bármilyen típusának kiszúrása egyrészt rendkívül sok gyakorlatot igényel, a másik, amit figyelembe kell venni, hogy még a legjobb könyvek is, mint amilyen Paul Ekman magyar nyelven is megjelent Beszédes hazugságok, című könyve, a közérthetőség kedvéért szükségszerűen egyszerűsítésekkel él, ami miatt nagyon rizikós, ha valaki az ott olvasott technikákat laikusként azonnal próbálja átülteti a gyakorlatba.
Tételezzük fel, hogy valakinek olyan konferenciára kell ellenőrzés nélkül bemennie, amiről nem tudható előre – például nyílt forrásokban keresve – hogy milyen a konferencia résztvevőin lévő badge vagy az azt tartó szalag, azaz nem tud előzetesen preparálni önmagának, ugyanakkor lebukni sem szeretne. Mit lehet tenni ilyenkor? Vigyázat, mélyvíz! Laikus megközelítéssel a social engineer visz magával többféle szalagot és formátumú badge-t, ami aztán vagy bejön vagy sem. Ha viszont felkészültebb, miért van a táskájában éppen fehér, fekete, vöröses, zöld és kék szalag, a különböző méretű badge-eken pedig miért van különböző betűmérettel előre printelve a neve éppen serif és sans-serif betűtípussal is? [Például mosdóba menet vagy a parkolóban már ki lehet választani a megfelelőt megfigyelve, hogy a többi vendégen milyen van.] A magyarázatot a kognitív pszichológia és az attól elválaszthatatlan érzékelésbiológia adja meg. Hogy hogyan érzékeljük a környezetünket – és például a biztonsági őr hogyan, pontosabban milyen esetekben szúrhatja ki a fake-elt konferenciakitűzőt – a magyarázatot a kognitív pszichológia adja meg. Michael W. Eysenck és Mark T. Keane Kognitív pszichológia könyve az érzékelés minden részletére kitér, ahogyan a cím mutatja, arra is, hogy a kapott információkat milyen sémák szerint dolgozzuk fel, hogyan állapítunk meg összefüggéseket, tároljuk az emlékezetünkben és mindennek mik a tudományosan igazolt korlátai is. Alighanem lesznek olyanok, akik ugyan soha nem hitték volna magukról, hogy különösebben érdekelni fogja őket a tudat működése, ezt a könyvet nem fogják tudni letenni.
Ha valakit behatóbban érdekel, hogy pontosabban miért is úgy működik az emberi megismerés, ahogyan Alan Baddeley Az emberi emlékezet és Merlin Donald Az emberi gondolkodás eredete könyveiben talál elméletibb, de attól még közel sem száraz áttekintést.

Ahogy az OSINT-tel kapcsolatban meg szoktam jegyezni,  egyrészt nem kevés kört lehet megspórolni azzal, ha olyan tudományterületre is ellátogatunk, ami az egymással sokszor átfedésben lévő OSINT, a HUMINT és a social engineering legősibb alkalmazója, ez pedig a kriminalisztika. A Bócz Endre szerkesztésében megjelent Kriminalisztika I-II. ugyan sosem került könyvkereskedelmi forgalomba, minden nagyobb könyvtárban található belőle legalább egy helyben használható példány, a legújabb kiadás pedig közvetlenül a kiadótól megvásárolható. A megfelelő részek egyrészt olyan nyomozati módszereket ismertetnek, például a kriminalisztikai csapdával kapcsolatban, amik némi ötletességgel átültethető netes környezetbe anélkül, hogy kvázi újra fel kellene találnunk a kereket. Emellett a nyomtan és bizonyítástan része olyan szemléletmódot ad, ami nagyban megkönnyíti saját kutatások tervezését vagy konkrétan lehetetlen kutatást tervezni szakszerűen ezek ismerete nélkül.

A kriminalisztika nagy-nagy könyve is kitér rá, hogy a manipulációnak, hazugságnak nincs markere, még egy profi liespotter is a legjobb esetben csak annyit állapíthat meg biztosan valakinek a reakciója vagy reakciói időbeli egymásutánja alapján, hogy valami nem stimmel az adott kultúrában megszokott kommunikációhoz,  képest. Ezt azért fontos kiemelni, mert vannak olyan könyvek,  amik nagyon durva egyszerűsítésekkel élnek, például olyan kijelentéseket tesznek, hogy ha valaki egy kérdésre a megszokottnál nagyobb reakcióidő mellett válaszol  vagy félrenéz, esetleg annak jeleit mutatja, hogy zavarba jött, az biztosan hazudik vagy elhallgat valamit, ami nyilván nem igaz. Arra tekintettel, hogy manapság a hitelesség a legnagyobb érték hosszú távon, egy laikus által megállapított téves következtetés a másik szavahihetőségével kapcsolatban nagyon súlyos károkat okozhat. Számos oka lehet annak, ha valaki zavarba jön vagy más olyan jeleket mutat, amik általában
a hazugság jelei, de ennek további fejtegetése nem tárgya ennek a posztnak.

Methods of Persuasion – How to Use Psychology to Influence Human Behavior – Nick Kolenda könyve tudományos igényességgel, mégis érthetően mutat egy átfogó képet azzal kapcsolatban, hogy hogyan is befolyásolják az emberek egymást tudva vagy tudattalanul, ugyanakkor nem veszik el interperszonális pszichológiai részletekben, viszont a könyv végén, ahogy az egy jó könyvtől elvárható, bőséges irodalomjegyzéket találhatunk.

Elliot Aronson A társas lény című könyvére bátran mondhatjuk némi fahumorral, hogy be kellene tiltani, mert akkor biztosan többen olvasnák. És tényleg. Máig a legjobb tudományos ismeretterjesztő könyv a szociálpszichológia területén, ami több kísérlet bőséges leírásával és értelmezésével új megvilágításba helyezi a társadalmi jelenségek magyarázatát, másrészt az személyközti kapcsolatok természetét egyaránt. Ugyancsak Aronsontól ismerős lehet a szintén magyarul is megjelent Rábeszélőgép c. könyv, ami kimondottan a tömegkommunikáció és a propaganda tudományos bemutatására helyezi a hangsúlyt. Aki kedvet kap a témához, beszerezheti mellé Mackie és Smith “kavicsos” könyvét, ami még részletesebben tárgyal olyan, mindenki által érdekes témákat, mint amilyen az attitűdök és a viselkedés kapcsolata, a normák és a konformitás természete, hogyan látjuk önmagukat és hogyan látnak mások minket, de kitér a kísérlettervezés legfontosabb sajátosságaira is. Ez utóbbi viszont már kézikönyv, azaz a végigolvasás helyett hasznosabb, ha a minket érdeklő témáknak megfelelő sorrendben olvassuk a fejezeteket.
Bereczkei Tamás 60-adik születésnapja alkalmából megjelentetett Evolúciós pszichológia mesterfokon könyv, ismétcsak nem jobb vagy rosszabb, mint a professzor Evolúciós pszichológia című könyve, hanem másmilyen. A könyv olvasása közben többször is lehet amolyan aha-élményünk, emellett az emberi természetnek számos olyan sajátossága van, ami a szükséges mértékben csak akkor érthető meg, ha az olvasó azt is megérti, hogy ezek a sajátosságok miben is gyökereznek, legyen szó akár akadémiai terepen dolgozó kutatóról, akár social engineeringre, human intelligencere szakosodott játékosról.
Könnyen lehetséges, hogy még mindig nem sikerült teljesen meggyőzni néhány olvasót azzal kapcsolatban, hogy miért lehet szükség a no-tech-hacking módszerek tudományos hátterének ismeretére ilyen mélységben olyannak, akit végülis mégiscsak az információbiztonság érdekel. Természetesen ezek a könyvek az esetek többségében nem használhatók egyfajta szakácskönyvként, viszont a meglévő ismerteink közé integrálva például azt, hogy melyik mechanizmust mi triggereli a másikban, új, saját módszerek fejleszthetőek ki, emellett a meglévő módszereink tovább finomíthatóak, ami pedig esetenként legalább ilyen fontos lehet, ha nem is a magatartástudománnyal hivatásszerűen foglalkozó szakértelmével tudjuk szemlélni, hogy mi, miért, hogyan történik, de jóval magasabb szinten, mint a laikus.
A magatartástudományokkal kapcsolatban máig van egy olyan tévhit, ami szerint a klinikus és alapkutatásban dolgozó agyturkászok kísérletezgetnek, megfigyelgetnek, aztán cikkeznek arról, amire jutottak, de lehet, hogy az eredmények kiértékelése gyakorlatilag nem állja ki a tudományosság próbáját, például a megfigyelt jelenség nem csak azzal a modellel magyarázható, amit leginkább valószínűsítenek. Sigmund Freud tudománytörténeti jelentősége azért nagy, mert ő volt az első, aki szisztematikusan próbált magyarázatot adni az emberi viselkedés megfigyelhető sajátosságaira. Ma már tudvalevő, hogy Freud, Jung és sokan mások pipázgattak, elfilozofálgattak, majd leírtak olyan dolgokat, amik ma már nem mennének át egy komolyabb peer-review-n. A korszerű magatartástudománynak igen szigorú érvrendszere van, ennek megfelelően ha nem is veti ki magából maradéktalanul a bizonytalan modelleket és feltételezéseket, annyi bizonyos, hogy háttérbe szorítja azokat. Másként fogalmazva: bízhatunk benne, hogy egy-egy sokat idézett jelenség magyarázata nem tartalmazhat komoly mellényúlásokat és soha nem épít labilis előfeltevésekre, mint ahogy például Freud  számos elmélete.

Gyakori programozási hibák #1 – vigyázz, makrók! (C, C++)

A posztsorozatban olyan tipikus programozási, konkrétabban kódolási hibákat, később szemantikai hibákat vesézek ki, amikkel szinte biztos, hogy szembesül az, akinek a C vagy a C++ az első programozási nyelve. A felsorolás persze szubjektív, a számomra legemlékezetesebb hibákat tárgyaljam, de többször puskázok Dennis Ritchie,  Bjarne Stroustrup alapműveire, amiben fel is hívják a figyelmet egy-egy hibalehetőségre, ezen kívül Koenig C csapdák és buktatók, és Dewhurst C++ hibaelhárító című könyeire.
A makró szigorúan nézve nem is a programozási nyelv része, hanem csak a fejlesztő munkáját segítő eszköz, amikor a fordító egyszerűsítve a fejlesztő által makróban meghatározott szöveggel cseréli le a forráskód összes, makróval hivatkozott részét.
Ennél egyszerűbb nem is lehetne, ugye? Természetesen ebben is van hibalehetőség az igen szigorú szintaxis miatt, ráadásul esetenként éppen olyan hibát eredményez, ami miatt a tanonc a hibát teljesen máshol kezdi el keresni, mint ahol az ténylegesen van, függően a makróban meghatározott szövegtől. Hogy még bonyolultabb legyen, esetenként implementációfüggő, hogy a fordító hogyan kezelje a makrókat.
A makró meghatározásának általános sémája:
#define makro_neve makro_erteke
Ami viszont nagyon nem mellékes, hogy a fordító véresen komolyan veszi, hogy a #define után egy szóközzel van elválasztva a makró neve és attól pontosan egy szóközzel van elválasztva a makró értéke, ami már mellékes, hogy mennyi szóközt tartalmaz, elvben, de arról később.
Vegyük az alábbi példát:
#define hozzaadas (szam) ((a)+1)
Ha nem tudjuk az előbb ismertetett ökölszabályt, akkor azt hihetnénk, hogy a
hozzaadas (szam)
előfordulási helyén majd mindenhol az ((a)+1)-t építi be a fordító, valójában viszont ha a makrót úgy kezeljük, mintha függvény lenne a behívás helyén valami ilyesmi épülne be:
(szam) ((a)+1)
Ami teljesen világos, hogy mást csinál, ráadásul ez itt egy nagyon egyszerű eset.
A C-nél a C++nál gyorsan hozzá lehet szokni, hogy a forráskódban a szóköz gyakran csak szellősebbé teszi a forráskódot, ez a makróknál nem így van.