Szerteszana²

grin agymenései
Taggalés security

Have you been pwned?

2017-10-06 11:47 írta grin

A jelszóbiztonságról szeretnék neked mesélni.

Kaptam egy emailt egy tök jó szolgáltatástól, a neve Have I been pwned?, ami neminformatikus nyelven annyit jelent, hogy „ellopták-e az adataimat?”. Az email közölte, hogy az XY@PQ.ORG email címemet a BimBamBum webes szolgáltatás 2014-es betörésekor megszerezték a jelszóval együtt, amit a BimBamBum Inc. egy 15 perc alatt visszafejthető „kódolással” kódolt le.

Szar ügy.

Ez ugye mit jelent?

  • Ha a jelszó egyszerű volt (általában a 10 karakternél rövidebb, vagy szótárban is létező szavakat tartalmazó szavakat [bármilyen „tréfás” átirattal, pl. „j3lsz0” vagy „jElSzo”] tekintsük rövidnek), akkor vehetjük úgy, hogy nem volt kódolva, vagyis az emailcím+jelszó páros ismert.
  • Ha a jelszó ismert, akkor az email+jelszó párost már el is adták jó pénzért több tucat bűnözőnek, szíves felhasználás céljából. Ezután MINDEN nyilvános szolgáltatáson robotok ezrei fogják végigpróbálni, hogy ez a párosítás eredményez-e sikeres belépést, az email küldéstől a twitteren át a banki belépésekig. Ha eredményez, boldogan használni fogják.
  • Ha a jelszó bonyolult volt, és te nem vagy politikailag vagy gazdaságilag értékes célpont, akkor nem tudják a jelszót visszafejteni, és esélyesen „csak” az email címedet fogják árulni, mint ellenőrzött spam célpontot.

És akkor most elmesélem, hogy nekem miért nem okoz ez lelki törést. Azért, hogy legközelebb neked se okozzon.

Az én jelszavam kódolt változtatát is elvitték. Nem mennek vele semmire.

Az adott szolgáltáson még 2014-ben, amikor kiderült, és a szolgáltató értesített megváltoztattam a jelszót. (Sok szolgáltató ezt automatikusan megteszi, amúgy.) Így oda ezzel már nem fognak belépni. Pipa.

A jelszavam hosszú, az ottani konkrétan 12 karakteres volt. Így ennek direkt visszafejtése (ebben az esetben) valószínűtlen, mivel a mostani technológia szerint egészen sok pénz kellene hozzá (becslések szerint 100-nál több GPU 1 évig dolgozna rajta, becsült költsége $2.5 millió.)

De tegyük fel, hogy nem volt hosszú, vagy valakinek épp van a sufniban 1000 GPU-ja és rászán egy hónapot az én kis jelszavamra. Szóval megvan a jelszó.

Ezt a jelszót csak ezen az egy szolgáltatáson használom. Másképp fogalmazva: minden belépéshez új jelszót készítek. A fentiekből kitalálhatóan hosszabbat, mint 10 karakter. A fentiekből kitalálhatóan véletlenszerű karakterekből és nem szótári szavakból.

Ez azt jelenti, hogy még ha tudják is a jelszót, azt semmilyen más szolgáltatás esetén nem fogják tudni használni, és mivel ezen a szolgáltatáson már megváltoztattam, ott sem. Nem nyertek vele semmit, maximum az email címemet spammelni (ami egy másik okból nem zavaró: az email címem közvetlenül tanítja a spam szűrőmet, amit több tucat server is használ, így minden spammer hozzájárul a világ spam-mennyiségének csökkentéséhez).

„Jó, jó, ” – mondhatod – „de hogy jegyezzek meg végtelen számú jelszót? Post-iteljem a homlokomra?”

Jó ötlet! Na de tényleg, nem az. Tök zavaró amikor pislogsz és levágja a szemhéjadat. Ne ezt tedd.

Jelszó-manager, password manager, password vault, meg Allah tudja, milyen neveken futnak azok a programok, amik megjegyzik a jelszavakat. És most mondhatod, hogy nahát, fantasztikus, akkor ha valaki ellopja ezt a file-t, ott vannak a jelszavak!

Nyilván a jelszavakat titkosítani kell. Ez nehéz feladat: az interneten található „biztonságos” jelszótárolók nagy része egyszerűen csak – népies kifejezéssel élve – szar. Nem biztonságos, rosszul van megírva, siralom. A másik feladat sem könnyebb: ha jó is a titkosítás akkor is kell egy mesterjelszó (master password), ami sokkal biztonságosabb, mint a jelszavak, amiket tárol, hiszen ha ezt visszafejti valaki akkor ott az összes jelszó. És ezt meg kell jegyezni, ezt az egyet, de azt nagyon, és ezt sokat kell begépelni, hiszen – optimális esetben – a jelszótároló rendszeresen rákérdez, ha egy ideig nem használtad (általában 5-10 perc nem használat után illik újra rákérdezni). Ez egy nehéz feladat.

Az első esetben sajnos vagy értesz a kriptográfiához, a programozáshoz, és sok időd van, és ellenőrzöd a kiválasztott jelszótároló program biztonságát, vagy pedig próbálsz olyan forrásokat találni, akik ezt megtették. Én nem tudok neked garantált választ adni…

Frissítés: Eredetileg azt írtam, hogy:

…de azt tudom, hogy én a Keepass2-t használom (én Linux és Android alatt, de eredetileg Windows-os); ez egy nyílt forrású, egészen sokat nézegetett program, és eddig jelentős kifogást nem hallottam róla. Ha gondolod, ezt tudod használni…
…de egy konktruktív szakmai vita folytán, mely során felmerült a KeePass gagyi integrációja a böngészőkkel, a múlt évezredbeli (vagyis Mono) GUI, illetve a tárolt adatok formátumának „elméleti (nem)biztonsága”, rátaláltam a Password Safe programra, és „ahogy megismertem Őt, azonnal megváltoztatta az életem, és ezen a héten húsz százalékkal olcsóbban!”. ;-) Úgyhogy úgy néz ki, hogy importáltam a KeePass jelszavaimat és most őt tesztelem; ugyanúgy offline, de jelentősen modernebbnek néz ki, és kellemes browser és android integrációja van. Így most úgy néz ki, ezt fogom használni. Én konkrétan az eszközeim között megosztom a jelszófile-t, így a gépen felvett jelszó elérhető a telefonon is (mert felhőből továbbra is csak a sajátot).

(Én nem szeretem az online jelszótárolókat, mint amilyen például a LastPass. Számos probléma volt velük azon túl, hogy hálózati kapcsolat szükséges a használatukhoz, ami nem minden esetben szerencsés, pláne, hogy jelszavakat küldözgetünk egy távoli rendszerre, még ha kódoltan is. Mások viszont szeretik és használják, így nem mondom, hogy ne. De azt se, hogy ige. :-))

A második és sokkal nehezebb probléma a mesterjelszó, ami – mint említettem – legyen megjegyezhető, legyen hosszú, ne legyen kitalálható, ne tartalmazzon szótári szavakat[1], és ne legyen extrém bonyolult beírni (például telefonon). Ez egy szép, egymásnak is látszólag ellent mondó feltételrendszer. Az emberiség által jelenleg legjobbnak tartott módszer az, hogy nem „jelszót”, hanem „jelmondatot” használsz, vagyis több, lehetőleg egymáshoz semmi kapcsolattal nem rendelkező szót, vagy olyan mondatot ami írásban nem fordul elő, lehetőleg legalább 1-2 olyan szóval, ami egyáltalán nem létezik. Jó, hülyén hangzik, de a klasszikus módszerek egyike például, hogy veszel egy számodra megjegyezhető kifejezést, mondjuk „három ember képes egy titkot megőrizni, ha ebből kettő már meghalt” (– Benjamin Franklin), és a kezdőbetűkből képzed a „heketmhekmm” szót. (Praktikus módon, ha könyvből akarsz kifejezést nyerni, akkor igyekezz nem unalomig ismert forrást találni, például kerüld az iskolában kötelező módon tanított verseket vagy a Himuszt [bár azt úgysem tudod már].)

Tekintve, hogy a jelszót sokszor be kell írni, én így a „jelmondat” és a „nem létező szó” kombinációt javaslom: 1-2 nem létező szóból álló, legalább 10 karakternél hosszabb mesterjelszó a mindennapi élethez elegendő biztonságot adhat („a tudomány mai állása szerint”). Ha az ember belehajít még egy-két írásjelet is, az is sokat dob a helyzeten, a fenti példából mondjuk egy „heketmhekmm%emaktyk” egészen frappáns jelszó lehet (persze ezeket a példákat kerüld el, mert az Anyám tyúkja is egészen ismert).

Az is igaz, hogy a mesterjelszó problémára létezik egy „harmadik” megoldás, a klasszikus információbiztonság elveinek megfelelően a „valami, amit tudsz + valami, amivel rendelkezel + valami, ami vagy”, vagyis egy titkos információ, egy titkosító eszköz és egy személyes biometriai jellemző (például ujjlenyomat vagy retinaminta). Ezzel várhatóan fogsz találkozni, valahányszor be kell menned a Nevadai sivatagban található Area-51 bázisra, de amúgy otthoni jelszótárolásnál nem jellemző. Vannak programok (és elvileg a KeePass is képes rá) amik képesek mesterjelszó helyett USB tokent használni; különösen ha a token PIN kóddal is védett, akkor ez meglehetősen biztonságos módja a jelszótárolásnak.

Összefoglalva tehát: ha nem akarod, hogy kiverjen a víz amikor kiderül, hogy ellopták egy jelszavadat egy feltört weblapról, webshopból vagy szolgáltatásból, akkor a jelszavaid legyenek egyediek, legyenek véletlenszerűek, legyenek hosszúak (10 karakter minimum), tárold őket biztonságos módon titkosított jelszókezelőben amit egy biztonságos, hosszú, megjegyezhető és használható jelmondattal védesz. Így egészen jók az esélyeid, hogy a nevedben ne történjenek olyan dolgok, amiket nem szeretnél, és ne vezessenek ahhoz, hogy az internet szolgáltatód letilt, a tárhelyszolgáltatód kizár vagy éjjel kettőkor mérsékelten udvrias rendőrök kérdezik a személyes adataidat.

Lábjegy

  1. Jogos kritikaként érkezett, hogy igazából ha 3-4 szóból áll a jelmondat akkor ha a szavak szótári, de amúgy vegyesen gyakori és ritka szavakból állnak, illetve nem kitalálhatóak vagy kapcsolhatóak a személyhez (mert tegyük fel, hogy aki vissza akarja fejteni akár infomációkat is próbálhat gyűjteni) akkor az is kellően biztonságosnak tekinthető. A statisztikák szerint egy átlagos beszélő 10-20 ezer szót ismer és használ, ami szavanként nagyjából 13 bitet jelentene, ha csak a szótári kombinációkat nézzük. Ilyen szempontból 4 szó már kielégítő, és ezeket már vizuális technikákkal meg lehet jegyezni.
  2. Aaron Toponce: Random Passphrases Work, Even If They're Build From Known Passwords.
  3. Password strength checker a zxcvbn könyvtárat és csak helyben futtatott javascriptet használva; főként angol szavakra kihegyezve.

Másiklábjegy (2017-11-12)

Mivel több esetben felmerült, beidéznék néhány cikket arról, hogy Bill Burr, aki 2003-ban elkészítette a ma már közismert „krixkrax jelszó, rendszeresen megváltoztatva” elvet bocsánatot kért a világtól a tévedéseiért, hogy mi változott 2017-ben és hogy miért nem alapvetően jó megoldás a userek halálra szivatása, és persze hogy mi az új NIST irányelv, ami a jelszavakról is említést tesz (lásd 5.1 fejezet illetve az Appendix A).

A lényeg – according to NIST – 2017-ben: minimum 8 karakter, és a maximum hossz minimum 64 karakter (de a melléklet említi a megabyte méretű jelszavak életrevalóságát is, persze inkább anekdotikus szinten), a karakterkészlet lehetőség szerint nem korlátozott (tehát lehet benne szóköz, bármi nem non-printing karakter, unicode [de ennél fontos a normalizálás: NFKC/NFKD], stb.), nem használunk publikus „hint”-eket és kifejezetten nem „titkos személyes információkat” (pl: mi a jó édes anyádnak… a neve?), valamint kiszűrni a nagyon gáz jelentkezőket: a legismertebb jelszavak listái, szótári szavak, ismétlődő mintázatok és kontextusfüggő egyezések, mint pl. a user saját neve vagy emailcímének darabjai. Javasolt a jelszóerősség mutatása, a jó jelszó ismérveinek nem kötelező érvényű ismertetése. Nem alkalmazunk további megkötéseket és nem követelünk rendszeres jelszóváltást (NIST SP-800-63B; 5.1.1.2.).

Secure chat on mobile and desktop

2017-01-07 10:12 írta grin

Big Brother is Listening

We live in curious times.

While we have "civilisation" and "freedom" and "democracy", we also happen to have corrupted politicians, governmental secret services, industrial and business spying, and generally various violations of privacy and personal space.

When Phil Zimmermann have created PGP it wasn't because he was spied on -- it was because anyone of us could have been spied on and we wouldn't be able to protect ourselves; usually it doesn't quite matter but at the point when it started to matter it'd be already too late to start doing something about it. Prevention. Back then the Government have considered a person "suspicious" if s/he encrypted the communication; when everyone encrypts their communication it wouldn't be "suspicious" anymore, and wouldn't be possible to single out peope just because they're using secure means to communicate. And by "secure" I mean secure against even the skilled criminals, including governmental ones. Todays' encryption is usually "unbreakable" even for the three-letter U.S. and Russian agencies (and the similar ones with undescribable name in China).

Since then time have forwarded fast, and not just PGP became legal but there are plethoras of programs promising secure communication, protection of one's identity, untraceability or deniability of messages, self-destructing or timing out messages and alike. This have happened due to the governmental and industrial criminals becaming more and more aggressive in their invasion of our privacy, storing and analysing personal private communication, using and abusing it to their purpose and agenda.

They often say: the terrorists use the technology, so we have to make it illegal. Obviosuly, since if we make it illegal the terrorists will stop using it, unlike the citizens protecting their own private life from the government?

"When privacy is outlawed only outlaws have privacy."

But that's a theoretical problem; in reality we have to protect ourselves from political and business oriented criminals in high positions, attacking our communication infrastructure wherever they can. Google have learned the hard way that even their internal traffic could be unlawfully tapped by the agencies and they're hard working preventing that and hoping that they're protecting faster than the government infiltrates it. Everyone have to protect themselves as good as they can since we cannot put all the trust in the companies running the stuff in faraway places. I trust best what I protect for myself.

So let us see the practice. I try to summarise you some of the best and most secure, widely available communication programs for mobile phones (or at least Androids). We do not talk about the security of the devices here: that's a different and quite lengthy topic, but let's assume that at least the devices are not readily tapped. If the stakes are that high then don't use industrial devices; use self-built open-source computers with professionally crafted protection. It is not hard, but we don't need it right now - we don't want to kill JFK after all, just prevent agents to blackmail people for whatever random reason, to prevent our email and phone addresses from spamming and analysing, to prevent agents and businesses to build personality profiles of us and alike. We're not the criminals - they are.

The programs

The good

I'll expand these below.

  • WhatsApp - public protocol
  • Signal (formerly TextSecure) - public protocol
  • Wire - open source
  • Conversations (XMPP + OMEMO / OTR) - public protocol
    • ChatSecure (discontinued)
  • Telegram secret chat
  • SIP + encryption
  • ToX (and AnTox) - public protocol

The questionnable

These often encrypt the communication between you and the server of the provider, but without end-to-end encryption they can read everything you do.

  • Telegram normal / group chat
  • Hangouts / Google Talk - TLS

The bad

Apart from using insecure means of communication these programs often leak private data to their parent companies or agencies. Some of them gather completely unrelated private data on purpose.

  • Viber - insecure and known illegal transfer of private communication
  • Facebook chat - insecure
  • Facetime - pretty secure but no identity verification
  • Skype - insecure, known privacy problems
  • Snapchat - insecure and misleading

Never heard of

These show up in my searches but never have used them, listing them in case someone's wondering.

  • Threema - non-free
  • Gliph - looks like some kind of bitcoin based business, with non-published security architecture and high claims
  • Wickr (possibly pretty good, with end-to-end encryption and have been audited but the protocol isn't public and the code is not open; it have a stupid idea of destroying every message after at most a week or so; and I've been told that Wickr shuts down accounts not used for half a year without warning.)
  • G-Data Secure chat - not much info, uses signal protocol
  • Line - Japan... no much info on implementation
  • Ricochet - runs on TOR network, no group chat (yet) and its security isn't that great. Rather simplistic.
  • Streembit - "a network service for humans and machines"; p2p, dht, ecdsa sign, aes256 crypt

Crypto background

Let me briefly tell you about some crypo stuff to make it easier to feel what's that fuss about. For those who are professionals on the crypto field I offer my sincerest apologies for oversimplifications.

Attackers and assurances

An "attack" means that someone gets to know information they have no business to know. Attackers could be anyone: governments, businesses, spammers, rogue internet providers, spooks, and even the person you're talking to. Let's see first what could go bad, and what to do about it:

Attacker goalSecurity property
1. Compromise messagesConfidentality
2. Change messagesIntegrity
3. Inject false messagesAuthenticity
4. Identify as another personAuthentication of partners
5. Block communicationNo single point of blocking
6. Learn metadataPrivacy protection
7. Prove content of messagesDeniability of content
8. Prove that persons communicatedDeniability of conversation
9. Learn past communication after compromiseForward secrecy
10. One attack compromises all future communicationFuture secrecy

That's a lot indeed.

There is also one property which is very important to consider: being open source. OS means that the program code is published for anyone to read, and to be able to verify the (security and other) claims the program authors make. Closed source often means code nobody ever looked at and never verified, so the authors can claim whatever they please without doing anything about it. Some closed source code were, however, externally audited, and if you trust the professionality of the auditor these (claims) should be reasonably trusted.

From the security protocol viewpoint (eg. "how good is the encryption technology a program uses") number 5 and 6 are not part of the problem, while in reality these are very important.

Metadata (#6) means the attacker can reveal who communicated to whom, when, how many times, how long the messages were, as well as the possible identity of the parties; in a hostile communication environment (like that between ukrainian people vs. Russian government) these are very sensitive (and potentially life threatening) informations. Metadata protection usually means that anonimity of the parties are ensured while there's some methods to assure #3 and #4.

Protecting from #5 is not meaningless as well. While obviously there is no protection against switching off the whole internet for someone, there exist protection against shutting down one or some central servers by force. Distributed, serverless channels are just for that.

You have to see that from the programs above very few offers you protection against #5, because it means you have to be a member of a distributed network. Tox and the not very much used Bleep offers you that, in exchange for higher network traffic, since you have to be a member of a distributed network of nodes, basically you're one server of the many. To be honest it is important that these assurances are only true if there are plenty of users using the given method, since a distributed network is only good if there are at least a few hundred well distributed users around (preferably way more). Tox does seem to have such userbase, Bleep may not.

To protect against #6 is not convenient for you either, since to protect from #4 both parties have to verify each others' anonymous identity. It's compulsory to be sure that what you verify is true, so the verification has to happen on a channel (preferably in live conversations or phone conversation) which is strongly identifying the partner. It usually involves reading up lots of numbers. :-) Conversations, Wire, Tox, Bleep offers you such protection.

Another way of #6 (metadata protection) is that the provider is reasonably trusted not to collect metadata, usually by using open source to prove it or to have an external auditor to prove it (but in that case it only stands for the audited software version and not for any other versions). Signal is probably on of these: while they collect real-world metadata (phone numbers) and store it on a central server they don't collect converstional metadata, which is fairly safe while having a simplified partner identification and partner directory. The counterexample is WhatsApp which provides the same way of message security and confidentality as Signal but syphons your metadata to Facebook to sell for advertisers or else.

Most program I suggested protects you against all other problems, which means Conversations, Wire, Tox, Bleep, Signal, Telegram secret chats, and possibly others which cannot be verified due to their closed source nature.

I would draw the line here, and insert summary in the middle to screw up those who read only the beginning and the end of a long post:

To use full security use Tox

The others (from "questionable" to "bad") often only protect the path between the device and the central server of the provider, and you have to fully trust the provider not to, well, act like an attacker. They can do whatever they want, including faking messages and reveal all content to third parties. If you do trust the provider, your messages may be safe from 3rd party adversaries listening to your network connection.

There are an interesting group of programs which claim to have a cryptographical technology to protect you (mostly only for #1 - #3), while their very technology is questionable. Such problems were identified in Telegram, and possibly others in the "bad" bunch which I didn't check thoroughly.

(Unfinished enty)

DNS alapú DDoS, avagy ki támad hol hogyan?

2014-05-31 22:29:09 írta grin

A mostani támadások kapcsán többen kértek már egyszerűbb magyarázatot, hogy tulajdonképpen miért is akadoznak a szolgáltatók a napokban, miféle botnetek, milyen dns, és egyáltalán? Megpróbálom nem-informatikusul elmondani, nagyrészt.

A DNS és a névserverek

Röviden a DNS-ről: a DNS (Domain Name System) az az internetes alrendszer ami egy névhez megtalálja a hozzá tartozó IP címet (pl. „yikes.tolna.net” névből kitalálja hogy a gép címe „193.227.196.2”), illetve bizonyos esetekben fordítva ugyanezt; elengedhetetlen hogy az emberek számára megjegyezhető szavakból a gépek számára érthető számok keletkezzenek. Ezeket a neveket a DNS serverek tárolják és válaszolnak a kérésekre, amiket adatcsomagok formájában kapnak.

Műszaki mélységek nélkül két fontos serverfajta dolgozik a DNS-en: a „hivatalos” (authoritatív) és a „gyorsító” (caching) serverek; az előbbi csoport most számunkra nem érdekes, ők tudják a saját adataik minden részletét; a második csoport feladata az hogy a saját ügyfelek, saját gépek DNS forgalmának egy részét helyben szolgálják ki, tárolva az ismétlődő kéréseket, gyorsítva a folyamatot. Ilyen caching névservert szinte minden „router” tartalmaz, vagyis azok a kütyük amikkel „egy internet drótra több gépet lehet dugni”, vagy „meg lehet osztani wifin”, vagy hasonlók.

Mint látható a caching serverek feladata a saját gépek kiszolgálása, de mindenfajta kérést elfogadva (hiszen a felhasználók bármilyen kérést kérhetnek, amit gyorsítani kell). Normális esetben tehát a caching névserverek csak saját gépeknek (bármit) szolgálnak ki, és mindenki mást elutasítanak. Ez így normális.

A problémánk lényege az, hogy bizonyos eszközök ezt az alapvető szabályt megszegik: bárkinek bármit hajlandóak kiszolgálni a DNS rendszeren belül (ezek neve „open resolver”). Ennek oka változatos: igénytelenség és gondatlanság a leggyakrabban, nagyívű leszaromság az óccó kütyülik gyártóckáitól, a gyári alapbeállítások biztonság-tudatosságának teljes hiánya, illetve néha egyszerű emberi hiba a beállítások során. Amikor egy ilyen hibás kütyü kerül a netre akkor ő az egész világ számára nyújt DNS feloldási szolgáltatást.

Ez első ránézésre még nem lenne baj, maximum nem gyorsít nekik semmit.

Erősítéses támadások

Azt, hogy miért támad meg valaki valakit most ne sokat beszéljünk; leggyakrabban azért, mert az illető egy fasz, ezt nem lehet ennél árnyaltabban fogalmazni. Nincs tudatában sem a károkozás nagyságának, sem a várható következményeknek, és nagyjából ez a féltéglával-betöröm-a-kirakatokat informatikai megfelelője. Gyakran történik a támadás politikai okból, és nem ritka a bevétel-orientált támadás valaki ellen vagy valaki mellett sem. A támadások fajtái, műszaki megoldásai nagyon változatosak, ne menjünk most bele.

A támadások egyik típusa a túlterheléses támadás: valamilyen módon olyan adatmennyiség érkezik be egy gépre, szolgáltatóhoz, gerincvonalra vagy az egész világra hogy attól az adott szolgáltatások, a teljes szogláltató, az érintett országok vagy semmi a világon nem érhetők el addig, míg a támadás hatásosan folytatódik. A túlterheléses támadások pedig akkor kivitelezhetőek gazdaságosan ha azt erősítéssel (amplification) teszik: egy kis adatforgalmú „tetű” utasítja a „zombikat” hogy támadjanak meg valakit, így a tetűnek nem kell végtelen erőforrással rendelkeznie.

Az erősítésnek is két fő fajtáját különböztetném most meg: az egyik amikor a zombikon valamilyen kártékony, rejtett program fut (vírus, trójai, …), a másik amikor a zombikon semmiféle változtatás nem történik hanem azok valamilyen hibáját használják ki az erősítésre, vagyis a zombikon van valami ami egy pici adatcsomagra egy hatalmas adatcsomaggal válaszol. Mi most ez utóbbival foglalkozunk.

A erősítés folyamata az utóbbi esetben elég egyszerűen megérthető:

  1. a TETŰ kiszemeli az ÁLDOZATot, megkeresi az IP címét,
  2. a TETŰ küld egy olyan (pici) adatcsomagot minden ZOMBInak amiben meghamisítja a feladó címét, hogy úgy nézzen ki mintha az ÁLDOZAT  küldene egy kérdést a ZOMBInak,
  3. a ZOMBI megkapja a csomagot és válaszol rá egy nagy adatcsomaggal, viszont mivel azt hiszi hogy a kérdést az ÁLDOZAT küldte ezért neki küldi a választ.

Vagyis a tetű kiküld 1000 darab 50 byte-os adatcsomagot mire az áldozatra ráömlik mondjuk 1000 darab 500 byte-os adatcsomag. Másodpercenként 500 kilobyte, ami kb. 5 megabitnek felel meg másodpercenként. Ha mindezt több ezer vagy tízezer zombival és picit nagyobb erősítéssel számoljuk akkor elég gyorsan összegyűlik több tíz vagy száz gigabit is, amit a legnagyobb szolgáltatók is nehezen viselnek, nem beszélve a teljes internetes gerinchálózatról.

A botnet a zombik összessége: egy közös irányítású hálózat, csoport, ami agyatlan robotokból áll, akik teljesítik a vezértetű kéréseit. A közös cél fogja őket össze, így gyakran nem szükséges egyformának lenniük, egyforma software-ekkel rendelkezniük, csupán a támadásra használt eljárás közös, és az irányító.

Vissza a DNS-re

A DNS erősítéses támadások picit más műszaki módszerrel, de lényegében ugyanezt a módszert követik: a tetű ráveszi a zombikat hogy egy pici kérésre bazinagy válaszokat küldjenek valahova. De hogyan tudná rávenni valaki akárhonnan hogy egy gép egyáltalán válaszoljon neki bármit is? Hiszen a caching DNS serverek csak a saját barátaiknak válaszolnak, így hiába is küldenek nekik bármit is, hamisítva persze, semmi nem történik, nincs válasz.

Kivéve persze ha open resolver-ről van szó, aki bárkinek bármilyen DNS adatot megpróbál feloldani. Innentől egyszerű: tetű küld egy speciális módon hamisított pici DNS kérést az open resolvernek (aki innentől zombi névre hallgat), aki generál egy bazi választ az áldozatnak és elküldi (elküldeti) neki.

Mit tegyek, tehetek?

„Ne ess pánikba!” – Galaxis Utikalauz Stopposoknak

Az első, hogy ellenőrizd magad: itt, vagy itt, esetleg itt.

Ha nincs baj, akkor király (vagy királynő) vagy. Nincs több teendő, mehetsz vissza netet nyomkodni. ;-)

Ha a tesztek szerint open resolvert üzemeltetsz akkor jelzem, hogy a te édesanyádat is gyakran emlegettük mi, informatikusok az elmúlt napokban, persze kimondottan kontextusból kiragadva és mindenféle személyes vonatkozást anonimizálva, szemeket fekete négyzettel letakarva, satöbbi. Zombi vagy, és jó eséllyel neked is köszönhetjük hogy az elmúlt napokban-hetekben akadozik az internet. Köszi!

De lépjünk tovább. A probléma megoldása az, hogy egy szakember (informatikus) megszünteti az open resolvert, miután megkereste, hogy mi az. Ez az alap. Ez nem olyan dolog amit egy plázacica a műkörmeivel, hidrogénszőke fanszőrzetével és pincsikutyájával meg tud oldani. Vannak olyan problémák, de ez nem az.

Jó, látom, még mindig olvasol. Nem akartalak megbántani, hidrogéneztesd ha jól esik. ;-)

A megoldás azért az esetek nagy részében sztereotip: van egy kici kínai routereckéd ami nagyon olcsó volt, cserébe viszont szar, és a gyártója vagy ad hozzá javításokat vagy sokkal inkább nem ad. Ez az a doboz amivel megosztod a netedet a több géped között dróton vagy wifivel. Nagyon jó eséllyel ő a bűnös.

Lehetséges megoldások:

  • Kivágod a retekbe és a gépedet közvetlenül dugod a netre. Általában ez nem szokott járható útként funkcionálni.
  • Kivágod a retekbe és veszel egy normális eszközt és informatikusra bízod a beállítását. (És fizetsz érte, nem pedig kuncsorogsz; vagy nyírd le a gyepjét tízszer vagy vegyél neki egy karton sört vagy akármi, ne gondold már hogy az informatikusok a világ ingyenkurvái.) Nem könnyű ajánlani megfelelő eszközt, én legalábbis nem tudok, mert amit ajánlani tudok azt a plázacicák nem tudják feltétlenül beállítani. (Amúgy én mikrotik cuccokat használok most már szinte mindenütt, értelemszerűen Linux alapú.)
  • Keresel hozzá gyári javítást (firmware) és felteszed. Nem egyszerű és el lehet rontani, bár tény hogy az elrontáshoz igazi tehetség kell.
  • Változtatsz a beállításain hogy csak belső irányba szolgáljon ki DNS kéréseket (esetlegesen ilyen beállítása nem lesz, de nem kizárható).
  • Változtatsz a beállításain és megadod a tűzfalában hogy kintről ne fogadjon el DNS kéréseket (műszakilag: bejövő csomagok, protokoll UDP, cél port 53).
  • Változtatsz a beállításain, és kikapcsolod benne a DNS servert (teljesen), és a gépeiden használod a szolgáltató servereit, vagy akár a google dns szolgáltatását (már ha épp minden hálózati tevékenységedet meg szeretnéd velük – meg az amerikai állammal – osztani). Nem ideális, mert kézzel kell baszkurálni a gépek beállításait is, egyenként.
  • Kivágod a gyári firmware-t az előbb említett retekbe (egybként ez egy másik szót helyettesít, nem keverendő össze az ásványokban gazdag zöldséggel) és felteszel egy dd-wrt / openwrt / tetszőleges open source firmware-t. Ez nem mindig lehetséges (az extragagyi cuccokban nincs hozzá elég erőforrás), de amikor igen akkor ez szokott a jó megoldás lenni.

Mint látod valóban nincs triviális megoldás. Ez van, ez egy komplex világ.

Remélem nagyrészt érthető voltam. A fenti probléma (túlterheléses támadások vagy DDoS - Distributed Denial of Service) általánosan létezik, nem csak a DNS-sel kapcsolatban; napjainkban az időszinkronizációtól kezdve (NTP) a nyomtatók lekérdezéséig (SNMP) minden szolgáltatásnál alapvető hogy ne lehessen hamisított pici kérésekkel bazi válaszokhoz jutni. Sok még a probléma, elleszünk vele egy ideig mi, informániákusok.

Ti meg, ha épp ráértek, még segíthettek is nekünk, hogy tudjuk adnia netet – nektek.

Önvédelmi tanfolyamok Facebook felhasználóknak

2014-01-19 10:24:26 írta grin

Mosolygató hír volt az, hogy az elmúlt 3 év alatt 3 millió tini hagyta ott a Facebookot vélhetően leginkább annak köszönhetően hogy ott megjelentek szüleik is, de ennek ellenére titkos ügynökségünk rendíthetetlenül folytatja tájékoztató munkáját, vélhetően legalábbis az előzőekben említett hátrahagyott szülők tekintetében.

Ezen bejegyzés pedig azért született mert ebben a hónapban már a harmadik személyt kellene részletesen feltupíroznom a „Hogyan védjük meg magunkat a Facebooktól” témában melyet nem tudok elintézni a szokásos „Nézd át a biztonsági beálításaidat!” üzenettel.

Facebook security for Dummies

Előrebocsájtom hogy a leírás az angol beállítások alapján készül így a magyarul használók találgassák ki hogy mit hogy hívnak. Lehet hogy megnézem magyarul is a végén, de lehet hogy nem. Hogy ezt miért mégis magyarul írom, azt fedje – az olvasók védelmében – jóindulatú homály.

Frissítés: beleírtam a magyar megfelelőket is az angol után zárójelben, tekintettel a fokozottan hátrányos rétegekre. You're welcome.

Prályvöszí

Tehát tevékenységünket a beálítások (kis fogaskerék) Privacy Settings (adatvédelem) menüjében végezzük.

Who can see my stuff? („Ki láthatja dolgaimat”)

Who can see your future posts? (Ki láthatja jövőbeni bejegyzéseidet) – ennek a menüpontnak a leánykori neve Átba Szlak (szláv eredetű, eredeti jelentését alkoholos homály fedi), ugyanis nagyjából akármit állítasz itt be, semmi komolyabb jelentősege, mivel amikor új postot írsz akkor átírhatod azt, hogy kik lássák, ezen beállítástól függetlenül, azonban ennek relatív hasznosságát nullifikálja az, hogy ezt a módosítást meg is jegyzi, tökéletesen figyelmen kívül hagyva azt hogy itt mire állítod. Emellett érdemes röviden említeni:

  • public (nyilvános) – mindenki látja
  • Friends (ismerősök) – csak azok látják akiket ismerősöknek jelöltél (a „friend” szó eredeti jelentése az óangolban „barát” volt, de a modern értelmezés szerint ennek jelentése „a senkik azon köre akik valamilyen módon kiemelsz a többi senkik közül, klikkelés formájában”) plusz az NSA.
  • Only me (csakén) – Senki nem látja rajtad és a külföldi és hazai titkosszolgálatokon, illetve az ukrán, orosz és kínai bűnözőkön kívül.
  • Custom (egyéni) – erről érdemes picit beszélni: az első részben („share this with”, megosztás velük) megmondhatod, hogy kik láthatják a postot: az értelemszerűn túl Friends of Friends (ismerősök ismerősei) jelentése hogy az ismerőseid ismerősei is lássák, a Friends of those tagged alapján azok is láthatják akik barátai azoknak akik be vannak jelölve a képen vagy szerepelnek a kommentekben; a második részben („don't share this with”, elrejtés előlük) pedig megmondhatod hogy az első részbe beleesők közül kit akarsz kivenni: itt felsorolhatod azokat az ismerőslistáidat akik az első rész alapján jogodultak lennének de mégsem láthatják a postot. (Az ismerőslisták készítésének képességét feltételezem, de ha sok megkeresés érkezik majd írok róla.)

Review all your posts you're tagged in (átnézheted az összes bejegyzéseidet…): itt csak megnézni tudod azt hogy hol jelöltek be téged képen vagy kommentben. Ha valami nem tetszik akkor a kis ceruzával tudod változtatni (pl. törölni magad vagy a postot), illetve a mellette levő kis ábrával változtatni hogy azt kik látják, ha erre van jogosultságod (vagyis a post a sajátod, általában). Ez amúgy az Activity logba (tevékenységnapló) vezet ami máshonnan is elérhető, és a bal oldali kategóriákat egyenként is át tudod nézni, hogy jelenleg a jelenléted milyen körben látszódik a Fæcesbookon (Kakakønyv).

Limit audience of old posts (Korlátozod azon bejegyzések láthatüságát, …): Hasznos dolog, melyet egyszer kell használni amikor megkezded új életedet (vagyis amikor a „mindenki lát mindent” beállításaidat először átírod). Amikor ezt a gombócot lenyomod akkor minden olyan régi post ami Public vagy Friend of Friend körben volt látható automatikusan Friendsre fog váltani és eltűnik a general public szemei elől (eltekintve a fent említett NSA-tól, a google keresőtől, az internet archívumoktól, a spambotoktól és a kukkolóktól, akik már régen lementettek mindent, amit csak lehetett).

Who can contact me? (Ki léphet velem kapcsolatba)

Ez a rész azzal foglalkozik hogy kik tudnak neked üzenni. Ha nem kapsz sok idegen spamet akkor nem kell igazán aggódni, ha túl sok külső szutykot kapsz akkor lehet korlátozni.

Who can send you friend requests (Ki jelölhet téged): nekem Everyone (mindenki) ez a beállítás, mert dacára annak hogy internet celeb vagyok (hehehe) nem jön megterhelően sok ismerős klikk, melyet amúgy is egy mozdulattal küldök ignore-ba. :-)

Whose messages do I want filtered… (Kinek az üzeneteit szeretném látni…): A basic (alapszintű) beállítás mellett az üzenetek nagy része az inboxba érkezik, a strictnél pedig az Other folderbe, hacsak nem ismerős küldi. Szerintem tökmindegy, hacsak nem kapsz ezer üzenetet naponta.

Who can look me up? (Ki találhat rám)

Na itt érdemes figyelni: ez a rész azt adja meg hogy ki és hogyan tudja megkeresni az adataidat, képeidet.

Who can look you up using email address (ki kereshet meg email cím alapján): Ha valaki tudja az email címedet meg tud-e keresni FB-on? Illetve ha valaki nem tudja hogy egy email cím kihez tartozik akkor meg tudja-e ezt keresni ezen a módon? Javaslom a Friends beállítást: aki nem ismerős, ne találja meg az adataidat email cím alapján.

Who can look you up using phone number (ki kereshet meg telefonszám alapján): Ha valaki tudja a telefonszámodat, ezt érted, és a fenti alapján már azt is hogy ha valaki nem tudja hogy az adott telefonszám kié vajon a facebook ad-e neki kényelmes keresési lehetőséget? Friends.

Do you want search engines to link to your timeline (szeretnéd hogy a keresőoldalak…):  Ha ezt bekapcsolod akkor minden amit postolsz (változó korrelációval a postok láthatóságához) nem csak látható, de tökéletesen kereshető is lesz a világvége plusz egy napig. A neveddel együtt. Meg az ismerőseiddel. Meg az ő postjaikkal. Minden amit lálykolsz, kommentelsz, postolsz. Mondjam vagy mutassam?

Tálymlályn en tegin (Idœvonal ees megjelö)

Eddig a bal oldalon a Privacy fütylin álltunk, de most ideje alákattintani és áthaladni a Timeline and Tagging (idővonal és megjelölés) fütylire ami az előzőnél nem kevésbé fontos dolgokat szabályoz.

Who can post on your timeline (ki írhat bejegyzést az idővonaladra): az itt szereplő lehetőségeket behatárolják egyéb beállítások; ha mindent jól csináltál eddig akkor itt csak két lehetőség áll rendelkezésedre: Friends és Only me. Ez adja meg hogy a timeline-re („faladra”) ki tud postolni új dolgokat. Hagyd Friendsen, ha megbízol abban hogy az ismerőseid maxiumum szülinapi köszöntőket fognak feladni akkor amikor a Facebook erre figyelmezteti őket, mert magától a kutyának se' jutnál eszébe.

Review posts friends tag you in before they appear on your timeline (Szeretnéd felülvizsgálni ha az ismerőseid megjelölnek…): Az egyik legfontosabb beállítás, amit ha engedélyezel akkor bárki bárhol bejelöl téged (képen, kommentben, postban) ez a link nem fog rád mutatni illetve nem jelenik meg a timeline-ban addig míg azt te kézzel jóvá nem hagyod. Enable (be)!

Who can see things on my timeline (Megnézheted, hogyan látják mások…): Egy nagyon hasznos eszköz, amivel megnézheted hogy mások mit látnak belőled a facebookon. Alapból az átlagsenkit mutatja (magánnyomozók és az ellenségeid közül azok akiket nem jelöltél barátnak) de a felső sávban beállíthasz szinte bárkit. Tanulságos.

Who can see posts you've been tagged in (Ki láthassa azon bejegyzéseket amelyekben meg vagy jelölve): Szintén érdekes beállítás ami azt adja meg hogy kik látják a timeline-odon azt hogy hol jelöltek be téged mások képeken, postokban, kommentekben. A javasolt beállítás általában Friends, még akkor is ha a postjaidat amúgy FoF is látja, mert nem biztos hogy mással is meg akarod osztani hogy a céges bulin te is benne voltál a célbahányóverseny győztes csapatában. Az only me is egy alternatíva, de akkor a jószándékú jelöléseket sem fogják az ismerőseid látni. Mivel amúgy is kézzel hagyod ezeket jóvá (ugye?!) így lehet lazábban is kezelni.

Who can see what others post on your timeline (Ki láthatja mások mit írnak az idővonaladra): Ki láthatja a timeline-odon mások postjait, amennyiben ezeket egyáltalán engedélyezted fentebb. FoF javasolt, ha értelmes a baráti köröd, Friends vagy Custom a megfelelő tiltásokkal, ha nem annyira.

Review tags people add to your own posts (Szeretnéd felülvizsgálni ha az ismerőseid megjelölést adnak…): Ha bekapcsolod akkor a te postjaidhoz fűzött kommentekben illetve a képeid taggelésében nem lehet hivatkozás anélkül hogy azt ne hagynád jóvá. Hasznos bekapcsolni.

When you're tagged who do you want to add to the audience (Amikor megjelölnek egy bejegyzésben kiket…): Hát ez egy jó bonyolult kérdés, koncentráljunk. Ha van egy post, komment vagy kép amit egy adott kör lát, és ebben téged hivatkoznak (képen taggelnek, kommentben hivatkoznak) akkor ezt követően a te ismerőseidnek mely köre lássa a postot azon túl, akik már eddig is látták? Vagyis a taggelésekkel tudod bővíteni azok körét akik az adott objektumot látják. Nálam ez a beállítás Custom, vagyis Friends mínusz mindenki aki le van tiltva arról hogy lássa a tevékenységemet.

Who sees tag suggestions when phptps look like you are uploaded (Ki láthatja megjelölésedre vonatkozó ajánlást): Ha ezt be tudod kapcsolni akkor baj van: azt jelenti hogy engedélyezett az arcfelismerő, ami a feltöltött képekben automatikusan felismer téged és betaggel. Ha mégis így van tiltsd le hacsak nem akarod hogy bárki arcfelismerésre használja a facebookot, elég neked a titkosszolgálat is.

Kezdetnek ennyi mára. A Blocking (tiltás) részben lehet embereket és appokat kitiltani, ami egyedileg érdekes lehet, de még jobb ha bemész a baloldali Apps (al kalmazások)  fütylin a legelső opcióba („Use apps, plugins, games and websites on Fæcesbook and everywhere?(Az alkalmazásokat, beépülő modulokat és webhelyeket a Facebookon és máshol is szeretnéd használni)) és azt mondod hogy Turn off platform (platform kikapcsolása). Ezzel kiiktathatod a kártékony facebook tartalmak mintegy 80%-át (beleértve az idióta játékokat, adathalás appokat, elmebeteg szavazósdinak álcázott spamfarmokat stb.).

És most reklám.

Taggalés security

Szerteszana²

grin agymenései