Carol investigates the use of AI and its implications on IBM i Security
You can’t read or listen to any business, technical, or security-related news without hearing the term “AI” (Artificial Intelligence). With Microsoft’s investment in ChatGPT causing interest to explode, warnings are in almost every security-related newsletter I subscribe to. Examples include research showing how AI is being used by non-programmers to write malware, news articles regarding concerns that students will simply use ChatGPT to write their term papers, and an IBM i user group presentation showing how you can use ChatGPT to write RPG code. I decided it was time I check it out for myself. Not being familiar with how to use ChatGPT, I watched a YouTube video to get started. Then I had to decide how to put ChatGPT to the test.
My Approach
I decided I would write a paragraph on the benefits of using authorization lists on IBM i and then see how ChatGPT would write about the same topic. I asked my most excellent editor, Victoria Mack, to do no edits on my paragraph so it could be a pure comparison between my work and the output from ChatGPT. Here’s the question I asked, my answer, and the answer from ChatGPT:
Question: What are the benefits of using an authorization list to secure objects on IBM i?
My answer:
Using authorization lists allows you to manage objects’ authorities more easily when a set of user profiles need the same authorities to those objects. Rather than grant authorities to each object, you grant the authorities to the authorization list and then attach the authorization list to each object. If another profile needs access, you simply grant the required authority to the authorization list and they automatically have the authority they need to all objects associated with the list. Another benefit is the fact that you can manage authority to the list even when the objects attached are in use. This is especially beneficial when the object is a database file and the file is open. The system does not allow you to grant, remove or modify authority to a file that’s in use. However, if the file is secured by an authorization list, you can simply modify the authorities via the authorization list. Finally, using an authorization list to secure IBM i objects reduces the number of private authorities on the system. If you secure 10,000 objects with an authorization list, each user authorized to the list has only one private authority entry in their user profile – the one for the authorization list – rather than at least 10,000 - one (or more) for each object. Reducing the number of private authorities has the benefit of reducing the time it takes to perform Save Security Data (SAVSECDTA) and a subsequent Restore Authority (RSTAUT) in the event you have must restore your system.
You can see ChatGPT’s response in Figure 1.
Figure 1: ChatGPT’s benefits of using an authorization list (click on the images for pop-outs)
The response isn’t wrong, but it’s not the detailed answer that I would have hoped for.
Next, I wanted to see how detailed ChatGPT could get regarding managing authorization lists, so I asked what commands I should use to attach a list to a database file. See Figure 2 for its response.
Figure 2: ChatGPT’s response to the question about what commands to use to attach an authorization list to a database file
The answer is kind of close to being accurate. Obviously, the command string using Change Authority (CHGAUT) isn’t correct. While you can attach an authorization list using CHGAUT, the syntax you need to use to specify a database file is OBJ(‘/qsys.lib/mylib.lib/myfile.file’). Also, the parameter to name the authorization list is AUTL, not ALIST. And it seems to be confusing the parameters of Change Object Authority (CHGOBJAUT) and CHGAUT. Finally, where it’s getting the idea that you need *SECADM special authority to run CHGAUT is a bit of a mystery, and even *ALLOBJ is overkill if you own the object or have *OBJMGT.
I wanted to explore how well it could learn, so I challenged it, as shown in Figure 3.
Figure 3: ChatGPT’s response to being challenged on the CHGAUT command
This response gave me more hope as it was the closest to being accurate that I had seen so far. But I wanted to press the issue one more time, and, again, see if it could learn. So I told it that the CHGAUT command could be used to attach an authorization list to a database file. See Figure 4 for how it replied.
Figure 4: ChatGPT’s response to my correction and instruction
This response seemed to take several steps backward in accuracy. Several iterations of corrections and responses ensued. Its answers were never 100% correct, but it got closer with each response.
The next request I made was to write a CL program to create an authorization list and attach it to a database file. The program that was generated is in Figure 5.
Figure 5: ChatGPT’s attempt at writing a CL program
Clearly, this is not a CL program that would run, much less compile, given the fact that CRTALST isn’t even a command. But it does provide the basic structure of a program (declaring variable, etc.), which for some people is exactly what they need. For example, I much prefer to edit than create something from nothing. While I probably won’t use it to write a CL program, the next time I need to write some SQL and don’t know the syntax, I may give ChatGPT a try.
Why Am I Sharing This With You?
I’m sharing this with you because AI and its use is here now and here to stay. Some very cool uses exist today: applications that screen out all traces of information on resumes and job applications that could cause racial and/or gender discrimination, an application that allows providers to input patients’ information and receive a recommendation for the appropriate medicine to treat the individual’s depression rather than starting with the most popular medicine at the time, as well as simple appslike chat bots to answer basic questions when people visit an organization’s website. But it’s also being used nefariously. If you don’t subscribe to any security-related newsletters, check out Dark Reading’s article on how AI opens up opportunities for criminals or SecurityWeek’s article on prompt engineering. A new article appears almost every week describing how AI can be used for either good or bad. Whether or not AI affects your job today, it most assuredly will in the future, so we need to be aware of this technology!
Summary
Is ChatGPT going to be used to write malware for IBM i? Today, given what I’ve experienced, I believe the answer is no. But as more of us use it and correct it and it learns from us, I believe the answer will be yes; it could be used to write malware for IBM i. We need to be prepared for that day. How? By implementing good security practices today, staying current with our technology, and being aware of current threats.
LATEST COMMENTS
MC Press Online