{"licence":{"name":"CC BY-SA 4.0","spdx":"CC-BY-SA-4.0","url":"https://creativecommons.org/licenses/by-sa/4.0/","attribution":"Atlas, a bilingual technical dictionary (https://cmaintz.github.io/tech-atlas/)"},"id":"cs/service","url":{"en":"https://cmaintz.github.io/tech-atlas/en/terms/cs/service/","da":"https://cmaintz.github.io/tech-atlas/da/terms/cs/service/"},"term":{"en":"Service","da":"Tjeneste (service)"},"aka":{"en":["background service","daemon"],"da":["baggrundstjeneste","service"]},"domain":["cs"],"cluster":"os","layer":"os","status":"current","summary":{"en":"A program that runs in the background without a user, often starting with the computer and waiting to handle requests.","da":"Et program, der kører i baggrunden uden en bruger, ofte starter med computeren og venter på at håndtere forespørgsler."},"body":{"formal":{"en":"A long-running process that the operating system starts and keeps going on its own, usually under a dedicated account, to provide a function such as printing, updates or answering requests over the network.","da":"En langvarig proces, som styresystemet selv starter og holder kørende, som regel under en særlig konto, for at levere en funktion som print, opdateringer eller svar på forespørgsler over netværket."},"plain":{"en":"Like a night porter - nobody sees them working, but they are always on duty and ready when someone rings the bell.","da":"Som en natportier - ingen ser vedkommende arbejde, men portieren er altid på vagt og klar, når nogen ringer på klokken."},"inPractice":{"en":"During a review, the IT lead at a small business finds a remote-support service on a server that starts with the machine and listens on a port open to the internet, although nobody has used it for two years; it is switched off.","da":"Under en gennemgang finder den IT-ansvarlige i en mindre virksomhed en fjernsupport-tjeneste på en server, som starter med maskinen og lytter på en port åben mod internettet, selv om ingen har brugt den i to år; den bliver slået fra."},"whyItMatters":{"en":"Services run all the time, often with wide rights and open to the network, so a flaw in one gives an attacker a way in without any user having to click anything.","da":"Tjenester kører hele tiden, ofte med vide rettigheder og åbne mod netværket, så en fejl i én giver en angriber en vej ind, uden at nogen bruger behøver at klikke på noget."}},"deepDive":{"en":"On Unix the traditional term is daemon: a process that detaches from its controlling terminal by forking, calling setsid(), forking again, changing to the root directory and closing inherited file descriptors, then usually drops privileges after binding any privileged ports. Modern service managers make most of that unnecessary. systemd describes each service in a unit file with directives such as ExecStart=, Type= (simple, forking, notify, oneshot), User=, Restart= and dependencies (Wants=, After=), starts it in its own cgroup so every child process is tracked and can be killed reliably, and captures its output in the journal. Socket activation lets systemd hold the listening socket and start the service on first connection. launchd plays the same role on macOS.\n\nOn Windows, the Service Control Manager (services.exe) starts services registered under HKLM\\SYSTEM\\CurrentControlSet\\Services, with a start type (automatic, delayed automatic, manual, disabled), recovery actions and an account. The built-in accounts differ sharply in power: LocalSystem has full local rights and the computer's identity on the network, LocalService and NetworkService are reduced, virtual accounts (NT SERVICE\\name) give per-service identities, and group Managed Service Accounts (gMSA) provide domain identities with automatically rotated passwords. Many Windows services share svchost.exe host processes. Each service also gets a service SID that can be used in ACLs.\n\nServices are high-value targets because they run continuously, often with elevated rights, and frequently listen on the network, so a remotely exploitable bug gives pre-authentication access with no user interaction; EternalBlue against SMBv1, used by WannaCry in 2017, is the canonical example. Local weaknesses are equally common: unquoted service paths containing spaces (CWE-428, ATT&CK T1574.009), service binaries or registry keys writable by ordinary users, and services running as LocalSystem when a restricted account would suffice. Attackers also create or modify services for persistence and privilege escalation (T1543.003 on Windows, T1543.002 for systemd), and service accounts with Kerberos SPNs and weak passwords are the target of Kerberoasting (T1558.003).\n\nHardening follows least privilege and least functionality: disable services that are not needed (CIS Benchmarks list them per OS), run each under a dedicated low-privilege or dynamically allocated account, and use sandboxing options; systemd offers directives such as NoNewPrivileges=, ProtectSystem=strict, ProtectHome=, PrivateTmp=, CapabilityBoundingSet= and SystemCallFilter=, and systemd-analyze security scores a unit's exposure. Inventory matters because forgotten services, such as remote-support agents and old management interfaces, are a typical initial-access path. The word is overloaded: an OS service is a local background process, whereas a network service, a microservice or an IT service in ITIL terms is a capability offered to clients, which may be implemented by one or many such processes.","da":"På Unix er den traditionelle betegnelse daemon: en proces, der løsriver sig fra sin kontrollerende terminal ved at forke, kalde setsid(), forke igen, skifte til rodmappen og lukke nedarvede fildeskriptorer, og som normalt dropper sine rettigheder, når eventuelle privilegerede porte er bundet. Moderne tjenestestyring gør det meste af det overflødigt. systemd beskriver hver tjeneste i en unit-fil med direktiver som ExecStart=, Type= (simple, forking, notify, oneshot), User=, Restart= og afhængigheder (Wants=, After=), starter den i sin egen cgroup, så alle børneprocesser spores og kan stoppes pålideligt, og opsamler dens output i journalen. Socket activation lader systemd holde den lyttende socket og starte tjenesten ved første forbindelse. launchd har samme rolle på macOS.\n\nPå Windows starter Service Control Manager (services.exe) de tjenester, der er registreret under HKLM\\SYSTEM\\CurrentControlSet\\Services, med en starttype (automatisk, forsinket automatisk, manuel, deaktiveret), genopretningshandlinger og en konto. De indbyggede konti har vidt forskellig magt: LocalSystem har fulde lokale rettigheder og computerens identitet på netværket, LocalService og NetworkService er begrænsede, virtuelle konti (NT SERVICE\\navn) giver identitet pr. tjeneste, og group Managed Service Accounts (gMSA) giver domæneidentiteter med automatisk skiftede adgangskoder. Mange Windows-tjenester deler svchost.exe-værtsprocesser. Hver tjeneste får desuden et service-SID, der kan bruges i ACL'er.\n\nTjenester er værdifulde mål, fordi de kører konstant, ofte med forhøjede rettigheder, og ofte lytter på netværket, så en fejl, der kan udnyttes over netværket, giver adgang uden autentificering og uden brugerinteraktion; EternalBlue mod SMBv1, som WannaCry brugte i 2017, er det klassiske eksempel. Lokale svagheder er lige så almindelige: tjenestestier med mellemrum uden anførselstegn (CWE-428, ATT&CK T1574.009), tjenesteprogrammer eller registreringsnøgler, som almindelige brugere kan skrive til, og tjenester, der kører som LocalSystem, hvor en begrænset konto ville være nok. Angribere opretter eller ændrer også tjenester for at opnå persistens og rettighedseskalering (T1543.003 på Windows, T1543.002 for systemd), og tjenestekonti med Kerberos-SPN'er og svage adgangskoder er målet for Kerberoasting (T1558.003).\n\nHærdning følger mindste privilegium og mindste funktionalitet: slå tjenester fra, der ikke er brug for (CIS Benchmarks lister dem pr. styresystem), kør hver tjeneste under en dedikeret konto med få rettigheder eller en dynamisk tildelt konto, og brug sandkassefunktioner; systemd tilbyder direktiver som NoNewPrivileges=, ProtectSystem=strict, ProtectHome=, PrivateTmp=, CapabilityBoundingSet= og SystemCallFilter=, og systemd-analyze security giver en unit en score for eksponering. Overblik er vigtigt, fordi glemte tjenester som fjernsupportagenter og gamle administrationsgrænseflader er en typisk vej ind for angribere. Ordet er flertydigt: en tjeneste i styresystemet er en lokal baggrundsproces, mens en netværkstjeneste, en microservice eller en IT-ydelse i ITIL-forstand er en funktion, der tilbydes klienter, og som kan være implementeret af én eller mange sådanne processer."},"edges":[{"type":"kind-of","to":"cs/process","confidence":"high","strength":"normal"}],"depth":0,"sources":[{"title":"Modern Operating Systems","tier":"textbook","publisher":"Tanenbaum & Bos (Pearson)"}],"draft":true}