Toon posts:

Waarom geen current directory in path?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Een van de eerste dingen die ik leerde toen ik een paar jaar geleden Linux ging gebruiken, was dat je voor het executen van een file in een bepaalde directory altijd ./ moet typen, als je in de directory staat waarin de betreffende file staat.

De current directory (./) in het path zetten is namelijk een van de ergste manieren om de veiligheid van je systeem te compromitteren, werd me verteld.

Dit heb ik altijd voetstoots aangenomen, maar waarom is dat eigenlijk zo?

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

stel je je dit ff voor...
iemand krijgt het voor mekaar om een simpele maar gevaarlijke executable ergens neer te planten in het systeem en op te slaan als ls (kan ook gewoon een script zijn natuurlijk.. als het maar executable is)

ergens in het systeem, al is het maar in /tmp

als je als root ff in /tmp gaat kijken en je typt ls om de inhoud te zien en hij pakt de lokale ls

genoeg? :)

  • EnnaN
  • Registratie: September 2002
  • Laatst online: 04-05 08:12

EnnaN

Toys in the attic

als je ervan uitgaat dat er niemand zomaar "evil" thingys op je account plaatst, is er natuurlijk nix op tegen (enige manier daarvoor is een standalone machine achter slot en grendel zonder netwerk :)

maaruhm, als je een kleine(re) gok wilt nemen, ik weet niet zeker of het mogelijk is, maar als je ervoor zorgt dat eerst alle 'gewone' dir's worden gechekced, en de current pas als laatste, zal je nooit een 'ls' uit je current dir halen, tenzij je de ls uit de /bin weghaalt..rite?

sig


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 17:27

Predator

Suffers from split brain

possamai schreef op 17 January 2003 @ 14:34:
stel je je dit ff voor...
iemand krijgt het voor mekaar om een simpele maar gevaarlijke executable ergens neer te planten in het systeem en op te slaan als ls (kan ook gewoon een script zijn natuurlijk.. als het maar executable is)

ergens in het systeem, al is het maar in /tmp

als je als root ff in /tmp gaat kijken en je typt ls om de inhoud te zien en hij pakt de lokale ls

genoeg? :)

Als je "." als laatste in je PATH staat kan wat jij stelt niet gebeuren :)

Everybody lies | BFD rocks ! | PC-specs


Verwijderd

binary's die je wilt uitvoeren horen gewoon in een dir te staan die in je path staat
dus heb je een binary in je homedir staat en je wilt 'm uitvoeren dat staat hij daar gewoon verkeerd
je kunt 'm wel starten met ./<filenaam>. Maar het beste is gewoon een ~/bin maken en die ook opnemen in je path als je eigen progs wilt runnen.

Verwijderd

Predator schreef op 17 January 2003 @ 14:41:

[...]

Als je "." als laatste in je PATH staat kan wat jij stelt niet gebeuren :)
Maar wanneer een iemand root access verkrijgt door een exploit oid kan hij de precedence van de paths van een willekeurige user op het systeem wel veranderen zonder dat de user het meteen door zal hebben. Zeker wanneer hij/zij geen argwaan heeft. Niet?

Edit: Tja hier moet je dus wel echt root access voor verkrijgen terwijl dat niet meteen een voorwaarde is van het probleem, maar ach dit zou wel kunnen gebeuren volgens mij.

[ Voor 18% gewijzigd door Verwijderd op 18-01-2003 21:37 ]


  • Arzie
  • Registratie: Juni 1999
  • Laatst online: 15:51
Met rootaccess zijn veel interessantere dingen mogelijk, dus het gaat er juist om wat het probleem is als er iemand hoogstens useraccess krijgt.

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Je kunt het wel doen, en als je er een beetje op let zal het in de allermeeste gevallen geen probleem zijn. Echter, als je dit met allerlei kleine dingen doet, help je de security van je systeem omzeep. Je voegt zwakke punten aan een doordacht systeem toe, en dat alleen uit gemakzucht. Je kunt net zo goed eraan wennen hoe je met je systeem omgaat zodat het allemaal wel netjes blijft, en dat houdt dan ook in dat je '.' niet in je PATH zet, evenmin als dat je alles als root draait, ook dingen waar dit niet noodzakelijk is. De systeemveiligheid is opgebouwd uit vele kleine bouwstenen, als je er ergens wat tussenuithaalt verbeter je dat zeker niet.

Nog een argument om '.' nooit in je PATH te zetten is dat veel scripts hiervan uitgaan, ik kan zo 1-2-3 echt niet inschatten wat dit voor gevolgen voor de werkung van sommige scripts heeft, echter zul je dat dan ook pas uit kunnen vinden als het misgaat.

En ten derde ondermijnt dit een beetje de standaard, dat hoeft ook niet erg te zijn, maar handig is het ook niet.

Everyone complains of his memory, no one of his judgement.


Verwijderd

Predator schreef op 17 January 2003 @ 14:41:
Als je "." als laatste in je PATH staat kan wat jij stelt niet gebeuren :)
Het is slechts bij wijze van. Als ik wil kijken of het programma 'netstat' is geinstalleerd en iemand schrijft juist op dat moment een evil script in /tmp/netstat en ik sta in /tmp (via "ps -ax" kun je mijn shell zien en van daaruit in /proc/<pid>/ mijn current dir, dus kan zelfs elke dir met a+w zijn), dan type ik dus netstat<tab>, en ja, er is netstat. Niemand die me vertelt of dat ook werkelijk de door mij gezochte netstat is (/bin/) of dat die gewoon nog niet geinstalleerd is en ik een evil script run. Iedereen kan jouw runtime environment beinvloeden zodra je een variabele dir als "." in je PATH opneemt.

Vandaar. ;).

[ Voor 6% gewijzigd door Verwijderd op 19-01-2003 09:20 ]

Pagina: 1