3e reactie Ts
(betrekking hebbend op een reguliere computer en niet op een server)Door Anoniem: "Echter als je de meeste poorten dicht hebt zou dit ook kunnen plaatsvinden met gebruik van poort 80 of 443, dat zijn immers de poorten die iedereen wel open heeft. "
Kan theoretisch, maar dan moet de aanvaller wel eerst het process killen dat van die poort gebruik maakt (anders zet je die poort natuurlijk niet open op de externe firewall). Het gaat over inkomend verkeer. Je kunt per poort ook alleen het protocol toestaan dat voor die poort toegestaan is. Een normale niet op HTTP gebaseerde shell op poort 80 kan dan niet werken.
* Dus als je browser crasht heb je wel een indicatie omdat het een bekende truc is
(bewust laten crashen).Is het (alsnog) een goed idee om dan :
- direct te internet verbinding eraf te gooien?
- je browser (offline) in safe modus op te starten om het cache geheugen te legen?
- of zelfs je computer (offline) in safe modus op te starten om cache geheugens te legen, browser in safe modus op te starten, opstart items te controleren en desgewenst toegevoegde opstart items te verwijderen?
- hierna pas de computer normaal op te starten en daarna pas weer online te gaan?
* Wat betreft firewall beheer wordt er altijd gesproken over poortbeheer
(welke blokkeer je voor welke programma's?) en of over white listing
(welke programma's mogen überhaupt contact maken met het internet?).- een combinatie lijkt me gewenst.
- ik mis nog een andere optie waarover volgens mij nooit gesproken wordt, namelijk ; apart en specifiek protocol beheer.
Een zoektochtje naar het aantal en soorten protocollen levert het volgende op
http://ftp.tw.freebsd.org/pub/branches/3.0-stable/src/etc/protocols
Dat zijn pakweg 255 protocol nummers waarvan een aantal nog niet toegewezen zijn.
Ik krijg de indruk dat de meeste protocollen daarvan voor standaard gebruikers niet relevant zijn er er pakweg een handvol overblijven, in ieder geval onderstaande 3 ?
* protocol nummer 6 , TCP
(voor een paar standaard poorten geopend, browsers, mail, enkele os-services)* protocol nummer 17 , UDP
(in welke gevallen, voor welke services en over welke poorten toestaan is uitzoeken)* protocol nummer 41 , IPV6
(wanneer je een ipv6 modem hebt of met ipv6 adressen wil communiceren, ideeën? Idem voor ipv4?)- is het dan een logische/zinvolle gedachte om aan te nemen dat overige protocollen geblokkeerd kunnen worden (m.u.v. wat ipv6 extra's).
Protocollen opgesomd
(alfabetische volgorde) :
3PC , A/N , AH , ARGUS , ARIS , AX.25 , BBN-RCC-MON , BNA , BR-SAT-MON , CBT , CFTP , CHAOS , Compaq-Peer , CPHB , CPNX , CRTP , CRUDP , DCN-MEAS , DDP , DDX , DGP , DIVERT , EGP , EIGRP , EMCON , ENCAP , ESP , ETHERIP , FC , FIRE , GGP , GMTP , GRE , HMP , HOPOPT , I-NLSP , IATP , ICMP , IDPR , IDPR-CMTP , IDRP , IFMP , IGMP , IGP , IL , IP-ENCAP , IPComp , IPCV , IPIP , IPLT , IPPC , IPV6-FRAG , IPV6-ICMP , IPV6-NONXT , IPV6-OPTS , IPV6-ROUTE , IPX-in-IP , IRTP , ISIS , ISO-IP , ISO-TP4 , KRYPTOLAN , L2TP , LARP , LEAF-1 , LEAF-2 , MERIT-INP , MFE-NSP , MHRP , MICP , MOBILE , MTP , MUX , NARP , NETBLT , NSFNET-IGP , NVP-II , OSPFIGP , PGM , PIM , PIPE , PNNI , PRM , PTP , PUP , PVP , QNX , RDP , RSVP , RVD , SAT-EXPAK , SAT-MON , SCC-SP , SCPS , SCTP , SDRP , SECURE-VMTP , SEP , SKIP , SM , SMP , SNP , Sprite-RPC , SPS , SRP , SSCOPMCE , ST , ST2 , SUN-ND , SWIPE , TCF , TLSP , TP++ , TRUNK-1 , TRUNK-2 , TTP , UTI , VINES , VISA , VMTP , VRRP , WB-EXPAK , WB-MON , WSN , XNET , XNS-IDP , XTP
- Welke uit deze lijst hebben dan het meeste prioriteit (of beter allemaal)?
- Uit te sluiten protocol nummers in ranges opgave mogelijk ?
0-5 , 7-16 , 18-40 , 42-252
- Hoe doe je dat dan concreet en effectief, als je geen extra firewall software hebt bijvoorbeeld? Ook via het host file?
Er zijn hele volksstammen die denken dat dit type van security, security by obscurity, slecht is en daarom niet toegepast mag worden. Maar dat is onzin. Het doel is niet het voldoen aan een onhaalbaar ideaal (het utopisch beveiligingparadigma van perfecte software en beveiliging), het doel is voorkomen van data lekkage. Ook in het geval dat de server wel gehackt is ondanks alle andere maatregelen om dat te voorkomen.
Inderdaad
* Security by obscurity,
is geen vervanging voor standaard maatregelen die je tot je beschikking hebt.
Als je niet meer anders kan, door einde lifecycle van je Os kan het een noodzakelijke extra maatregel worden. Genoeg gebruikers te vinden die op oudere hardware en met een ouder Os werken volgens mij.
(maar extra (obsucre?) maatregelen nemen, daar moet je zin in hebben of zelfs de lol van inzien ;-), koop anders toch maar een nieuw systeem, niets doen is in ieder geval geen goede optie lijkt mij* Economisch aanpakken / denken,
behalve voor zeer specifiek gemotiveerde aanvallers zal het economisch argument
(veel moeite doen) de doorslag geven.
Ik neem aan dat bij het pogen systemen te exploiten het een heel nuttige/economische aanpak is eerst alle bekende standaard (of eenvoudige) wegen te bewandelen.
Een script of file pad moet eerst gedefinieerd worden en is gebaseerd op de verwachting van de schrijver, obscurity zit in de weg bij standaard aannames en scripts.
* Homogeniteit versus Obscurity!
Je kan het zelfs omdraaien
(dat argument hoor ik nooit)Hoe groter de homogeniteit is hoe economisch aantrekkelijker het is als target
(Niet voor niets dat nieuw geïntroduceerde Os-en en versies het zwaarst onder vuur liggen, kijk maar naar de Cve's in vergelijking tot de systeemversie release data).
Wanneer de grootste gemene deler up-to-date systemen betreft, heb je als aanvaller de zekerheid dat je simpele/gerichte methodiek voor die groep gaat werken vanwege de homogeniteit.
Hoe minder homogeen je target groep is
(niet up-to-date, verschillende Os versies) hoe meer variabelen je moet inbouwen, des complexer het wordt en hoe minder economisch het daarmee is. ;-)
* "Expect the unexpected"
Obscure maatregelen op een systeem kunnen een aanvaller (hopelijk) voor de nodige complete raadselen stellen.
Echter ook voor gebruikers geldt een zekere economie
(gemak, zucht,..) ; namelijk hoeveel moeite ben je bereid om te steken in een veilig systeem.
Dat is over het algemeen (te? / bar?) weinig : geen interesse en op basis daarvan,.. teken maar uit.
En als dat wel het geval is, dan zal het in een handig App'je verpakt moeten zitten.
Dat valt me ook hier keer op keer op. Op zich wel een economische zinvolle gedachte, App'jes en addons alleen zijn niet zaligmakend.
Maar goed.
De signature controle van de executable vind plaats tijdens het starten. Het signeren van executables kan shellcode niet tegenhouden. Shellcode draait (normaliter) als deel van een al toegestaan process op de server, na het succesvol uitvoeren van een exploit. Het overschijft een stukje geheugen. Als je middelen gebruikt die dat voorkomen, of die de juiste plaats van het invoegen van de code moeilijk te bepalen maken dan kun je mogelijk voorkomen dat de shellcode wordt uitgevoerd.
* Ik kan alleen maar hopen dat je dat enigszins met de volgende maatregelen wat kan ondervangen in geval van vermoeden van een gecompromitteerd systeem.
- offline gaan
- safe boot / boot van een andere OS disk
- caches (en meer) schonen
- startup processen monitoren
???
Hoe zit het nu met het limiteren van permissies van command line functionaliteit / programma's ?
Zou dat helpen tegen een (nogmaals) benadering van buitenaf als beschreven in eerder opgegeven link
http://patrickmosca.com/osx-persistent-backdoor/
Of is deze vraag 'Not done' daar het een (veronderstelde) favoriete tool is van de meeste systeembeheerders?
Maar daar heb je met privé computers niet mee te maken.
Het lijkt me dat het onder standaard accounts overbodige functionaliteit is waarbij mogelijke root processen de functionaliteit nog steeds kunnen benutten .
Wie weet het en 'durft' (ook al is het je favoriete tool ;-) deze vraag (s.v.p.) wèl te beantwoorden?Ik heb (summier) aangegeven dat de gebruiker niet bewust hoeft mee te werken.
Ik schreef 'iets of iemand' , en aan het eind dat de ook shellcode via een bufferoverflow het zou kunnen doen.
Dat 'iets' kan een exploit zijn (evt dus bufferoverflow en 'shellcode' ), wat op de een of andere manier actief wordt op een intern systeem.
Email, 'drive by exploit' op een website.
Of social engineering van de gebruiker. Feitelijk is iemand telefonisch overhalen een teamviewer sessie op te zetten ook een reverse shell. (maar geen 'shellcode' ) .
En 'shellcode' is een onderdeel van een exploit (vaak dus een bufferoverflow) waarbij een stukje code van de aanvaller uitgevoerd wordt binnen de priveleges en met toegangsmogelijkheden van de applicatie die ge-exploit is.
* Buffer overflow is dus weinig tegen te doen (?), vertrouwen wordt het op de kwaliteit en support van het getargete programma zelf?
Dus met name de browsermakers die de kans op buffer overflows zo klein mogelijk maken?
* Limiteren van de permissies van je command line programma gaan zeker helpen tegen verborgen exploits / scripts in een file. Je hebt onder het standaard account waar je werkt de rechten niet om de applicatie te openen, dat heb ik inmiddels wel getest (niet met recente malware, die heb ik niet).
* Drive by downloads kan je zelf voorkomen op verschillende manieren .
De meest rigide
(maar denk ik best werkbare) methode heb ik op deze site al meerdere malen aangekaart, het wil er niet in. Heb ik een verbod op / erecode voor gemist aangaande creatieve oplossingen?
Standaard Downloads folder op slot met permissies en definiëren in je standaard browser.
Tweede aparte browser erbij voor als je een keer iets wil downloaden met opgave van een andere voorkeur download folder.
Very simple
(werkt in ieder geval in OS X).Javascripts monitoren of tijdelijk uitschakelen helpt niet altijd. Geen maar toestemming met je No-Script en daar ga je weer.
* Exploits per email maatregelen zijn op zich bekend, maar wie past ze toe?
- weergave in plain text in plaats van html opmaak (jammer van de mooie nieuwsbrieven, zelden echt visuele kunstwerkjes)
- firewall blockingrules aanmaken voor emailclient connecties over poort 80 / 443
(en eigenlijk alle andere poorten die je niet nodig hebt) zodat een in html opgemaakte mail geen additionele files kan ophalen of connecties zoeken met foute servers op het moment dat jij de mail selecteert.
- links in een bericht niet aanklikken, eerst zorgvuldig controleren en je afvragen waarom je die link zou moeten aanklikken. Is het bericht echt wel afkomstig van een bekende?
- bijlagen, tja, dat weten we nu wel.
Blijft staan de methode van verstopte scripts in bestanden die je command line application openen, ...
- Social engineering is een veel gebruikte methode inderdaad.
Openstaand dus nog steeds!* Kan de methode als beschreven in eerder opgegeven link?
http://patrickmosca.com/osx-persistent-backdoor/
!* Hoe plaatst de creatieveling in kwestie nu bestanden op de computer van de ander?
Of kan het 'gewoon' door te variëren op de ftp constructie
(zoals met het plaatsen van een website op een server, gaat niet zonder wachtwoord trouwens) door bestanden te uploaden naar bepaalde directories op de computer van een ander?
Als het plaatsen van bestanden inderdaad 'zomaar kan' helpt denk ik alleen nog het op slot zetten van grote delen van je local user account libraries
(waar er overigens inderdaad een heleboel van op slot kunnen, zonder merkbare nadelen, sommigen veranderen niet zoveel).Daarbij ga ik er wel vanuit dat je niet onder je admin account werkt.
Mac tipje / ideetje dan nog :
I.g.v. van onzichtbaar geplaatste files en directories, kijk zelf hoe dat te doen voor je eigen Mac OS X versies.
In het Finder window (links) een extra snelkoppeling aanmaken.
Een snelkoppeling naar een zoekopdracht voor alleen invisible files binnen je local user library.
Wanneer geplaatst onder saved searches in je linker Finder window kan je af en toe eens kijken of er ineens rare verborgen files of directories zijn bijgekomen door even op de search te klikken en te sorteren op datum of soort. Diverse variaties op dit idee mogelijk.
Mocht je deze methode nog niet kennen.