Spørgsmål:
Årsag til ikke at bruge chmod -R 777 på intern server til projektkildekode?
user1717828
2018-08-24 00:33:40 UTC
view on stackexchange narkive permalink

Fra mine dage med amatørwebudvikling har princippet om mindst privilegium slået mig ind for ikke at bruge chmod -R 777 dir . Jeg har personligt aldrig haft brug for det, så jeg har aldrig brugt det.

Jeg arbejder nu professionelt på et udviklingsteam, og vi flyttede for nylig eksekverbar kode til en delt intern server. Kun personer fra virksomheden har adgang til serveren, og vi stoler på alle i vores virksomhed. Koden er alligevel ikke særlig følsom.

At prøve at køre et script , som et andet teammedlem skrev i den delte mappe, forårsagede en tilladelsesfejl, så "bare for at kontrollere, om det ellers ville fungere " en kollega kørte chmod -R 777 / opt / path / to / shared / folder på projektet. Når det virkede, sagde kollegaen, at det er fint at lade det være som det er i stedet for at skifte til en mere kontrolleret -gruppe -løsning for os.

Fordi jeg er en chimpanse Jeg vil tale op og sige, at dette er dårlig praksis, og vi skal ændre det til en grupper -løsning. Efter at have overvejet det kan jeg dog ikke komme med en grund til, at delt eksekverbar kode på en intern server ikke skal have 777 -tilladelser.

Fra et sikkerhedsmæssigt synspunkt , er der nogen grund til at ændre vores projektmappes tilladelser fra 777 til noget bundet lidt tættere sammen med groups?


† Vi kan 't ændringskrav til denne scripts tilladelse.

Tangential, men `chmod -R 777` gør alle dine filer eksekverbare.Du vil ikke have det.
Tre svar:
gowenfawr
2018-08-24 01:34:58 UTC
view on stackexchange narkive permalink

Men efter at have tænkt over det kan jeg ikke komme med en grund til, at delt eksekverbar kode på en intern server ikke skal have 777 tilladelser.

Fordi du stoler ikke kun på hver bruger - hvilket måske er rimeligt på en intern server, hvor "alle", der har adgang, skal have den kontrol - du stoler også på enhver proces på den server. Webserveren. SSH-serveren. DHCP-klienten. Hver planlagt opgave og enhver service. Selv processer, der kører som "ingen" og "nogroup". Alle mulige processer, der muligvis udnyttes af en angriber for at få eller udvide deres adgang.

Fordi hvis du vil være så sjusket i intern udvikling, vil nogen være så sjusket på en produktion eller kunde system, fordi "det er sådan, vi fikset det internt".

Fordi en angriber vil glæde sig over at finde det lille system, der kun er internt og ikke er vigtigt eller beskyttet, kan du se svagheder som skrivbare webapplikationsfiler, brug dem at komme ind på systemet og begynde at udnytte det for at komme et sted. Jeg vil vædde på, at de adgangskoder, som folk bruger på dette system, også fungerer på andre, mere værdifulde, interne systemer. Måske bruger I også den samme root-adgangskode på tværs af servere? Det er altid sjovt at finde.

Mike Ounsworth
2018-08-24 04:24:53 UTC
view on stackexchange narkive permalink

Jeg tager andenpladsen @gowenfawr og siger, at opdræt af bedre chimpanser er et mål for sig selv her. (nu vil jeg ekstrapolere vildt om din virksomhedskultur)

Hos min softwareudviklingsvirksomhed har vi set en stigende tendens, hvor kunder beder om bevis for vores sikkerhedspraksis ikke kun i produktionsmiljøer, men også i vores udviklingsproces og virksomhedens it generelt. Dette er en helt rimelig anmodning, fordi:

  1. Slurvet sikkerhed i produkter sætter deres data i fare. Se: Equifax-overtrædelse af 2017.
  2. Slurvet sikkerhed i dev fører til, at udviklere skriver sjuskete produkter. Virkelig skal holdningen om, at sikkerhed er vigtig, komme fra ledelsen for at give udviklere sikkerhedstræning og tid til at foretage ordentlige kodevurderinger og viljen til at prioritere at rette sikkerhedsfejl i forhold til kundefunktioner. Tilladelse af sjusket praksis som et bevis er, at virksomhedskultur ikke fremmer sikkerhed.
  3. Slurvet sikkerhedspraksis i it fører til vira i netværket, som kan føre til vira i koden. Se det berømte Linux-bagdørforsøg fra 2003, hvor nogen brød elektronisk ind i backupkodedepotet og indsatte en ondsindet kodeændring i håb om, at det til sidst ville blive flettet ind i hovedreposet.
  4. ol>

    Så er dette en beslutning, som du ville være stolt af at fortælle en kunde om?


    Bundlinie: Princippet om mindst privilegium er en af ​​de mest grundlæggende sikre kodningsprincipper. Det er en tankegang, der skal være en del af enhver softwareudviklingsproces. Det handler om at stille spørgsmålet "Er det nødvendigt at svække vores sikkerhed som denne?" Snarere end "Kan nogen bevise, at dette er farligt?". Hackerne er altid klogere end dig.

    Selvfølgelig, hvis chmod 777 er nødvendigt af en eller anden grund, så bliver det mindst privilegium, og der kunne være en legitim sikkerhedsdiskussion at have her, men det lyder som om det ikke er; dette er bare dovenskab. Det giver mig ikke tillid til, at princippet om mindst privilegium følges i selve produktet, for eksempel hvordan data lagres, hvor meget ekstra data returneres fra API-opkald, hvilke oplysninger der logges, eller hvor som helst andet princip om mindst privilegium er relevant for dit produkt.

"At tillade sjusket praksis som bevis er" - måske siger du et ord?
safesploit
2018-08-24 01:36:35 UTC
view on stackexchange narkive permalink

Medmindre programmet kræver skrivetilladelser, er jeg forvirret over, hvorfor din kollega brugte chmod -R 777 / opt / path / to / shared / folder når chmod -R 775 / opt / sti / til / delt / mappe tillader stadig læsning og udførelse af tilladelser og opnå den ønskede adgang.

Da dine teammedlemmer er de eneste, der har adgang til serveren, og du stoler på dem. At have global skriveadgang er ikke nødvendigvis en dårlig ting. Men formålet er også at forhindre ondsindede eller useriøse programmer i at ændre eller slette filerne. Ransomware kan være et eksempel, der udføres af Alice med brugertilladelser.

  • / home / alice / --- (drwxrwxrwx alice alice)
  • / home / bob / --- (drwxrwx --- bob bob)

For ovenstående scenarie krypterer ransomware, der udføres af Alice, og overskrive alle filer, hun har skriveadgang til. Givet Alice hører ikke til gruppen bob og / home / bob / har ikke global rwx Alice har nul adgang. Men hvis Bob skulle køre ransomware med brugertilladelser, har Bob rwx -tilladelser, fordi / home / alice / bruger globale rwx -tilladelser. Så nu bliver både Alice og Bobs hjemmekataloger krypteret af ransomware.

Tilføjelse af brugere til en gruppe er ret simpelt, Linux: Føj bruger til gruppe (Primær / Sekundær / Ny / Eksisterende). Dette tilføjer brugernavnet: alice til gruppen bob . Chown -R bob: bob hvor bruger: gruppe ejer kataloget rekursivt. chmod -R 750 vil rekursivt give rwxr-x --- tilladelser, så Alice kan læse og udføre i / home / bob / -mappen, men kan ikke skrive.

  • sudo adduser alice bob
  • sudo chown -R bob: bob / home / bob /
  • sudo chmod -R 750 / home / bob /

Princippet om mindst adgang er primært at beskytte mod ondsindede brugere. Imidlertid er ondsindede programmer også meget alvorlige. Derfor er global læsning, skrivning og udførelse sammen ------ rwx et meget dårligt sikkerhedsprincip. Denne idé gøres ved at tilføje alice til gruppen bob . Nu har brugeren alice rx tilladelser til / home / bob / mens andre brugere uden for bob -gruppen ikke kan, undtagen rod. Ligeledes, hvis Bob ønskede at dele filer med Alice, men ikke ønsker, at Alice skulle have gruppeadgang, kunne der oprettes en ny gruppe, kaldet AB , hvor Alice og Bob er i gruppen. Nu kunne der oprettes en mappe / opt / AB_share / (rwxrwx ---) , og ovenstående kommandoer blev anvendt. Kun dem inden for AB -gruppen har adgang.

De vigtigste søjler for sikkerhed er "tilgængelighed".At give alle skrivetilladelse betyder, at de også har sletningstilladelse.Alt, hvad der kræves, er en utilsigtet skrivefejl eller fejl for at alle de delte ressourcer kan blive beskadiget eller slettet.Tilladelser hjælper med at forhindre ondsindede handlinger, men de forhindrer også utilsigtede handlinger.Overvej korrekte tilladelser som en * sikkerhedsforanstaltning, selvom * sikkerhed * ikke er et problem.
Komponenten * skriv * var faktisk nødvendig, da scriptet (som vi ikke kan ændre) skriver til forskellige og forskellige logfiler i mappen, blandt andet.Resten af dine point er gode.


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 4.0-licens, den distribueres under.
Loading...