Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Programmeringsmodellen kräver ofta en serveråteranrop till en klient via ett fjärrproceduranrop (RPC) eller klientanrop till en server som inte är betrodd. Detta introducerar många potentiella fallgropar.
För det första måste återanrop till klienten göras med en tillräckligt låg personifieringsnivå. Om servern är en mycket privilegierad systemtjänst kan det ge klienten behörighet att ta över systemet genom att anropa en lokal klient med personifieringsnivå eller högre. Att anropa en fjärrklient med högre personifieringsnivå än nödvändigt kan också leda till oönskade konsekvenser.
För det andra, om en angripare uppmanar din tjänst att utföra ett återanrop, kan den starta vad som kallas ett svart hål– Överbelastningsattack. Sådana attacker är inte specifika för RPC. i dessa attacker får en dator dig att skicka trafik till den, men den svarar inte på dina begäranden. Du sänker mer och mer resurser till att kalla det svarta hålet, men de kommer aldrig tillbaka. Ett allmänt exempel på en sådan attack är en TCP-nivåattack som kallas TCP/IP SYN-översvämningsattack.
På RPC-nivå sker en enkel attack med svarta hål när en angripare anropar ett gränssnitt och begär att servern anropar gränssnittet igen. Gränssnittet uppfyller kraven, men angriparen returnerar aldrig anropet: en tråd på servern är bunden. Angriparen gör detta 100 gånger och binder 100 trådar på servern. Så småningom får servern slut på minne. Felsökning av servern kan potentiellt avslöja identiteten för den svarta hålsuppringaren, men ofta startas servern om utan att misstänka att det är fel, eller så finns det kanske inte tillräckligt med expertis för att fastställa angriparen.
Den tredje fallgropen finns på klienten. Ofta ringer en klient ett anrop till servern som informerar servern om hur den ska anropas tillbaka (vanligtvis en strängbindning) och väntar sedan på att ett anrop från servern ska tas emot, och accepterar blint alla anrop på den slutpunkten som påstår sig komma från servern. Motringningsprotokollet från servern till klienten bör innehålla någon verifieringsmekanism för att säkerställa att det faktiskt har sitt ursprung på servern när återanropet kommer till klienten.