Detta dokument är en teknisk rapport för ett projekt vars syfte är att utveckla en Lambda-funktion som letar efter oanvänd Domain Name System (DNS)-information i AWS’ Route 53. Denna information har potential att orsaka säkerhetsbrister genom att missleda användare till en destination annan än den som de förväntar sig nå. Någon med skadliga avsikter skulle därför kunna använda sig av denna brist för att rikta data till sig själv som denne inte egentligen bör ha tillgång till. Problemet förvärras hos molntjänster som erbjuder uthyrning av IP-adresser då dessa ofta kommer från en adressrymd som tjänsten underhåller. När en användare sedan slutar hyra adressen hamnar den återigen i adressrymden. Om det råkar finnas DNS-information kopplad till den adressen så kommer de nu orsaka den tidigare nämnda säkerhetsbristen då de hänvisar till en IP-adress som vem som helst kan ha hyrt. För att åtgärda detta skrevs en funktion i Python 3.9.4 som sedan integreras i AWS Lambda. Funktionen körs från ett baskonto i AWS och hämtar data både från detta konto och andra konton genom att anta en specifik IAM-roll inom dem. Där hämtar den både kontots DNS-information samt IP-adresser som den sedan jämför för att se om de stämmer överens eller ej. Om de gör det så är informationen inte oanvänd och därför ointressant för funktionen. All DNS-information som inte har en matchande IP-adress läggs då till i en lista som sedan skickas ut till behöriga genom SNS i AWS. / This document is a technical report on the development of a Lambda function, the purpose of which is to look for orphaned (dangling) Domain Name System (DNS) records in AWS’ Route 53. These records can open up serious vulnerabilities as they have the potential to misdirect clients to end-points other than the one they think they are accessing; something which can be the cause of malicious intent. This is particularly an issue in cloud platforms that offer the ability to lease IPs from their own pool of addresses, as said addresses go back into the pool once they are released by the lessee. These addresses are then able to be leased by anyone with access to AWS and could, as such, lease addresses until they happen upon one that has a corresponding orphaned record somewhere and redirect sensitive data to themselves. The resulting function is written in Python 3.9.4 and integrated into AWS via Lambda. It functions by assuming roles in specified accounts in order to fetch DNS records and Elastic IPs from these accounts, which it then tries to match in order to determine whether or not they are orphaned. Any orphaned records found are then compiled into a list containing the account ID and URL of each record which is then sent out to the appropriate parties through AWS SNS.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:ltu-86428 |
Date | January 2021 |
Creators | Lundström, Jonatan |
Publisher | Luleå tekniska universitet, Datavetenskap |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0021 seconds