Ik ben al betekenis om dit te schrijven voor een tijdje, maar had een bericht door te gaan op een van de SecurityFocus mailinglijsten die me gemotiveerd zijn om het gedaan te krijgen. De post vroeg: "Hoe kun je beperken sudo, zodat een gebruiker niet wissen van de hele harde schijf?". Het korte antwoord is, is het uiterst moeilijk is.
Sudo is een tool gebruikt binnen de UNIX-en Linux-wereld. Het laat de beheerder om toegang te beperken tot high-level commando's. Het verschilt van het su commando in dat su meteen geeft de gebruiker root-niveau toegang. Sudo maakt de beheerder te verfijnen, die root commando's daadwerkelijk kan worden geopend. Daarnaast, sudo creëert een audit trail van alle uitgevoerde opdrachten.
Het probleem met sudo is dat het geen zicht heeft wanneer een hulpmiddel staat een command shell te worden voortgebracht. Dit betekent dat een gebruiker kan zich misdragen op het systeem, terwijl het genereren van een audit trail, waardoor het lijkt ze niets verkeerd gedaan.
Probeer het zelf
Ik ga je door een voorbeeld, zodat u kunt precies wat ik bedoel ervaring. Je hebt een Linux systeem voor. Als u niet beschikt over een handige, Backtrack zou moeten werken prima. Het testsysteem dat ik gebruik is gebaseerd op Fedora , maar ze zijn redelijk vergelijkbaar.
Stap # 1: Voeg jezelf aan de gebruikers groep
Gebruik je favoriete teksteditor om het bestand / etc / group bestand te bewerken. Kijk voor de groep "users" en voeg uw account naam. In dit voorbeeld Ik heb de accountnaam "cbrenton".
gebruikers: x: 100: cbrenton
Stap # 2: Maak een sudousers entry
Vervolgens moeten we het bestand / etc / sudoers bestand om te bepalen wat de gebruikers groep is toegestaan om te doen. We moeten visudo gebruiken voor deze, dat is een tekst-editor op basis van de vi editor . Als u vertrouwd bent met vi, typt u het commando "visudo" en voeg deze regel toe aan het einde van het bestand:
% Gebruikers ALL = / usr / bin / minder
Als je niet weet vi, geef ik je de exacte commando's. Vergeet niet alles is hoofdlettergevoelig:
visudo
G
o <- kleine letter O
% Gebruikers ALL = / usr / bin / minder
<esc> <Esc>
: Wq
Stap 3: Monitor sudo activiteit
Open een tweede terminal venster en gebruik "su -" root privileges te nemen. Typ in het commando:
tail-f / var / log / secure
Dit zal ons toelaten om alle sudo activiteit.
Stap 4: Voer een sudo commando
Terug in het eerste terminal venster type in het commando:
sudo less / etc / hosts
U wordt gevraagd om uw wachtwoord (uw wachtwoord, niet van root wachtwoord). Zodra u uw wachtwoord moet u de inhoud van het bestand / etc / hosts bestand te zien. In de tweede terminal venster moet je nu een logboekvermelding ongeveer als volgt uitziet:
18 augustus 16:07:58 fubar sudo: cbrenton: TTY = punten / 4; PWD = / home / cbrenton; USER = root; COMMAND = / usr / bin / less / etc / hosts
Dus we kunnen zien datum / tijd, die de uitgevoerde opdracht, welke terminal ze waren op, welke directory ze in, welke permissies niveau die ze gebruikten, en welke opdracht ze uitvoeren met inbegrip van alle command line switches (in dit geval een bestand specificatie) . Tot zover gaat alles goed.
Stap 5: Bust a shell
In de eerste terminal venster (het uitvoeren van de opdracht less) type in:
! <enter>
Je moet nu kijken naar een root commando prompt. Om te controleren of je bent in feite root, typ het commando:
whoami
Merk op dat het intypen van het commando "whoami" niet een zekerheid logboekvermelding te genereren. Met andere woorden, als we een command shell met het less commando voortgebracht, kunnen we alles doen wat we willen en sudo zal niet loggen.
Stap 6: Aanvullende verificatie
In de eerste terminal venster waar "minder" is op de achtergrond, typt u het commando:
top
Dit zal uitprinten statistieken over het draaiende systeem.
In de tweede terminal venster let op de terminal in gebruik is. In het bovenstaande voorbeeld logboekvermelding de terminal is "TTY = pts / 4", maar van jou kan anders zijn. Maak een notitie van de terminal. Nu, in dit tweede venster drukt u op:
<CTRL>-C
te doden de staart commando. Voer nu het commando:
ps ax | grep 'pts / 4 "
Vervanging van "pts / 4" met wat terminal naam die u hebt genoteerd. U ontvangt uitvoer lijkt op het volgende:
17330 pts / 4 Ss 00:00 bash
18392 pts / 4 S 0:00 less / etc / hosts
18410 pts / 4 S 0:00 / bin / bash
18432 pts / 4 S + 0:00 top
Dit vertelt ons dat we twee schelpen die op die terminal. De eerste is te kijken naar de hosts-bestand, terwijl de tweede is het uitvoeren van de top commando. Zodat het systeem niet echt zien dat we spelen om binnen de tweede schil, kan haar gewoon dat sudo niet loggen.
Een andere root level commando's die je kunt proberen dat niet alles wat kwaad:
iptables-L
ifconfig
lsof-i
Wanneer u bent ervan overtuigd dat u volledige root toegang, ga terug en controleer het log om te controleren of sudo heeft niets ingelogd:
tail / var / log / secure
Wanneer u klaar bent met de shell in de eerste terminal venster, typ in:
uitgang
q
Wat hebben we geleerd?
We hebben geleerd dat we niet kunnen toestaan dat gebruikers de volledige sudo toegang tot het systeem hebben en daadwerkelijk handhaven van een audit trail van wat ze doen. Toegang moet worden beperkt tot tools die niet ondersteunen beroep op een schelp. Als we niet zeker zijn, het is een kwestie van het controleren van de man-pagina's. Probeer dit:
man minder
/
schelp
Het commando "man minder 'brengt de handleiding voor het gebruik van het" minder "commando. Door op de backslash-toets wordt de zoekfunctie. Wanneer we het type in het woord "shell" en druk op de enter toets, man springt naar het eerste exemplaar van de string "shell" en hoogtepunten elke instantie. Let op de sectie man sprong op beschrijft hoe minder kan zich beroepen op een schelp. Nu we weten dat we niet kunnen sudo toegang tot de commando "minder" vergunning. Een betere optie kan het commando "cat", die geen ondersteuning biedt voor het inroepen van een shell worden.
Een andere mogelijkheid is om gewoon gebruik maken van een andere tool. Bijvoorbeeld de tool op is speciaal ontworpen om een aantal van de veiligheid tekortkomingen in sudo, inclusief de mogelijkheid om shell access control te pakken.
Exec Samenvatting
Sudo is een geweldige tool die je verstandig gebruiken. Een van de meest voorkomende fouten gemaakt met sudo is te gebruiken om toegang tot alle root-level tools mogelijk te maken. Sudo kan genereren een effectief audit-trail, maar alleen als het zich beperkt tot tools die geen shell-mogelijkheid.

