Artikel top billede

(Foto: More Human Than Human film)

Jeg satte en fælde for ChatGPT – men hvem snørede hvem?

Klumme: Hvad kan hackere bruge ChatGPT til? Kunstigt intelligente chatbots sænker barren for, hvor let det er at begå cyberkriminalitet, men hvordan – sådan helt konkret? Her er nogle bud, som godt kan få det til at løbe koldt ned ad ryggen på en garvet sikkerhedskonsulent.

Denne klumme er et debatindlæg og er alene udtryk for forfatterens synspunkter.

Det er ikke noget nyt, at hacker-værktøjer gradvist bliver mere brugervenlige eller ligefrem udbudt som betalingstjenester – fx Ransomware-as-a-Service. Den udvikling har været i gang i mange år, men er mest foregået i skyggerne på det mørke internet.

Det ændrede sig radikalt 22. november sidste år, hvor ChatGPT gik online og på under tre måneder slog alle rekorder ved at runde over 100 millioner aktive brugere.

Vi er vidner til en historisk game changer – også i forhold til cybersikkerhed.

Det betyder ikke, at chatbotten med ét slag gør alle og enhver til superhackere, men den kan udføre mange tunge og komplekse opgaver, som i dén grad sænker barren for, hvor let det er at begå cyberkriminalitet.

Samtidig har den enorme medieopmærksomhed medført, at langt de fleste af verdens 5,2 milliarder internet-brugere nu ved, at chatbotten eksisterer og kan løse mange opgaver på en hidtil uset måde.

Derfor vil det også være dybt naivt at tro, at ChatGPT ikke får nogen indflydelse på, hvor mange der fremover vil forsøge at jagte hurtige penge eller berømmelse ved at begå cyberkriminalitet.

Min Python-kode blev naglet til væggen

Hvordan kan ChatGPT hjælpe professionelle hackere i en travl hverdag?

Jo, man kunne jo sætte den til at lede efter sårbarheder i potentielle ofres kode, som derefter kan bruges til at indlede et angreb.

Det er en klassisk og ressourcekrævende hackeropgave, som kræver indgående kendskab til det/de programmeringssprog, der skal analyseres.

ChatGPT er et eminent værktøj til formålet, for chatbotten er trænet i både Python, JavaScript, C++, Java, PHP og en række andre programmeringssprog.

Som en test uploadede jeg 200 linjer Python-kode, hvor jeg med vilje havde inkluderet fire-fem sårbarheder for at teste, om ChatGPT ville opdage dem.

Det gjorde den på et øjeblik – og ikke nok med det: Den fandt dobbelt så mange.

På få sekunder stod jeg med klare beskrivelser af ti sårbarheder, som alle var helt valide og fint forklaret – også i forhold til hvordan de kan misbruges (se nederst).

Hvor mange kriminelle hackere lader nu ChatGPT overtage den opgave? Det er en skræmmende tanke.

Muterende virusser på den nemme måde

Et andet eksempel: I 2022 efterforskede Orange Cyberdefense næsten 30.000 bekræftede sikkerhedshændelser.

Omkring 40 procent af dem skyldtes malware. Herunder muterende virusser som er vanskelige at opdage, fordi de hele tiden ændrer deres kode.

Det kan gøres ved at programmere dem sådan, at der hele tiden sættes nye tegn i koden.

Virusserne virker stadig på samme måde, men får et nyt digitalt fingeraftryk, som gør det sværere for antivirusprogrammer at opdage dem. Det kan også gøres ved at kryptere dele af koden.

I begge tilfælde er det muligt at skyde genvej med ChatGPT, som hellere end gerne viser vej til kodebiblioteker, hvor der findes masser af forprogrammerede rutiner, som kan gøre det meget lettere at få virusser til at lave uforudsigelige krumspring.

Farligere phishing

Så er der jo også den trussel, vi alle kender: Luskede phishing-mails som lover guld og grønne skove, hvis man bare lige sender numrene på sit kreditkort.

Eller måske en besked fra et velkendt transportfirma om, at en pakke snart bliver sendt tilbage, hvis man ikke trykker på linket i mailen – som så inficerer pc'en med malware. Fx en keylogger der kan overvåge og videresende indtastede kreditkortdata.

Kreativiteten er stor, men det er ikke altid, at sprogkundskaberne følger med, og er der noget mere afslørende end dårligt engelsk, når fingeren svæver over museknappen?

Den advarsel kan vi godt vinke farvel til, nu hvor ChatGPT har holdt sit indtog.

Chatbotten forstår 95 sprog, så langt de fleste brugere kan nu henvende sig på deres eget modersmål og bede om email-tekster på formfuldendt business engelsk. Fx sådan her:

Mig:

Skriv en email pa engelsk med anmodning om at gennemføre en udestående betaling

ChatGPT:

Subject: Request for Pending Payment

Dear [Recipient's Name],

I am writing to follow up on the outstanding payment of [Amount] for [Product/Service] that was due on [Date]. As per our agreement, the payment was supposed to be made within [Number] days of receiving the invoice, which was sent to you on [Date].

It has come to my attention that the payment is still pending, and I would appreciate it if you could provide me with an update on the status of the payment. I would also like to remind you that late payments can have a significant impact on our business operations and cause unnecessary delays in our work.

I kindly request that you make the payment as soon as possible to avoid any further inconvenience. If there is any issue that is causing the delay, please let me know, and we can work together to find a solution. I appreciate your attention to this matter, and I look forward to receiving your prompt response.

Thank you for your cooperation.

Sincerely,

[Your Name]

Ingen ved, hvor mange mennesker der allerede er blevet snydt af strømlinede tekster forfattet af ChatGPT, men det ville ikke undre mig, hvis det allerede drejer sig om mange tusind.

Hvordan skal vi styre disse chatbots?

Både OpenAI og andre udbydere bruger store ressourcer på at styre deres chatbots med såkaldte guardrails – dvs. regler for, hvad de må svare på og hvordan.

Det giver god mening, men er også lettere sagt end gjort, fordi der er utrolig mange gråzoner på spil.

Når det kommer til faktuelle fejl eller etisk forkerte svar, så er problemet meget synligt. Nærmest på grænsen til det komiske.

Men hvem kan vide, om analyse af en Python-kode er et led i et hackerangreb eller blot en uskyldigt tjek af oversete sårbarheder, før en ganske almindelig software rulles ud til kunderne?

Man kan selvfølgelig ikke bare bede ChatGPT om at skrive en ransomware eller en virus. Gør man det, afviser chatbotten at svare.

Men det er en smal sag at bede den om at kode "uskadelige" moduler hver for, hvorefter de ret let kan samles til et effektivt angrebsvåben.

Det betyder for eksempel at selv amatørhackere (script kiddies) uden kompetence i programmering nu kan udvikle deres egne unikke angrebsværktøjer, og jeg har svært ved at se, hvordan guardrails kan forhindre det.

Så ja – ChatGPT skubber til magtbalancen mellem sort og hvidt hold, og det skal vores forsvar fremover tage højde for.

De ti sårbarheder, som ChatGPT fandt i min Python-kode:

Password input: The password is entered via the getpass library, which hides the entered characters from being displayed on the screen. However, the password is still stored in clear text in memory. If someone gains access to the system while the script is running, they may be able to retrieve the password. A better solution is to use an environment variable to store the password and retrieve it from there.

Lack of input validation: The script does not validate user inputs, such as the IP address and device group. An attacker could provide malicious input to exploit vulnerabilities in the system.

Insecure connection: The script disables SSL verification with verify=False, which means it allows insecure connections. This leaves the connection open to man-in-the-middle attacks.

Hardcoded credentials: The username and password are hardcoded into the script, which means they are visible in plain text. A better approach is to use an external file or environment variables to store sensitive information.

Incomplete error handling: The script does not handle all possible errors. For example, if the API call fails, the script will exit without providing any information on what went wrong.

Code repetition: The script has duplicated code for making API calls. This can make the code difficult to read and maintain. Refactoring the code into functions could help reduce duplication.

No limit on API requests: The script does not limit the number of API requests that can be made. If the script is run frequently, it could cause a denial-of-service attack on the server.

No logging: The script does not log any information about what it is doing or any errors that occur. This can make it difficult to diagnose problems or track down potential security breaches.

Use of deprecated library: The requests.packages.urllib3.disable_warnings method is used to disable SSL verification. This method has been deprecated in newer versions of requests. It's recommended to use the verify parameter instead.

No authentication token refresh: The script does not refresh the authentication token when it expires. If the script is run for a long time, the token will expire, and the script will stop working. Refreshing the token periodically can prevent this from happening.

Klummer er læsernes platform på Computerworld til at fortælle de bedste historier, og samtidig er det vores meget populære og meget læste forum for videndeling.

Har du en god historie, eller har du specialviden, som du synes trænger til at blive delt?

Læs vores klumme-guidelines og send os din tekst, så kontakter vi dig - måske bliver du en del af vores hurtigt voksende korps af klummeskribenter.