IBM has taken more steps to keep the IBM i super securable.
IBM recently announced a new release—V7R4—and with it some new integrated security features you’ll want to take advantage of. Let’s take a look at the top three features.
Service Tool Commands
IBM has externalized some of the system configuration options found in System Service Tools (SST) as well as the service tool ID configuration options by making them CL commands. This is in direct response to requests from organizations running large numbers of IBM i partitions and having the need to perform remote management rather than sign in to each instance separately. You can now create, change, and delete a Service Tool ID using the appropriate command (CRT/CHG/DLTSSTUSR). Using the Display or Change SST Security Attributes (DSP/CHGSSTSECA) commands, you can display or modify the system configuration settings, such as the ability to lock system values, the password rules for the SST service tool ID, and more.
Before you wonder whether this is opening up security risks for SST, never fear. You still require some special authority. The exact authority is documented in the Service Tools Commands section in Appendix D of the V7R4 Security Reference manual. In addition, required parameters of the commands demand that you provide a valid service tool ID and password that has enough authority within service tools to perform the task.
TLS1.3 was approved by the IETF last year, so it’s no surprise that this protocol was enabled in V7R4. In fact, it and TLS1.2 are the protocols that are enabled if you leave the QSSLPCL system value at the default value of *OPSYS. This means that when you upgrade and you’ve done nothing with this system value in a previous release, some of the protocols that may currently be in use on your system will be removed. For example, the protocols enabled when *OPSYS is specified in V7R2 are TLS1.0, TLS1.1, and TLS1.2. When upgrading from V7R2, TLS1.0 and TLS1.1 will be removed.
It’s been best practice on IBM i for several years to only enable TLS1.2 so that your encrypted sessions are running with the most secure encryption ciphers and to stop using the protocols with known vulnerabilities, but I know many organizations haven’t done that. Prior to upgrading to V7R4, I’d suggest that you make sure TLS1.0 and TLS1.1 and their corresponding encryption ciphers aren’t in use. To do that, you can enable counters within service tools to determine which protocols and ciphers are in use. This link explains this process. If you discover that the weaker protocols are in use, you can then run a trace to determine what process is using them. Instructions can be found here. If you discover that a process is using TLS1.1 or TLS1.0, you can add the protocol back into the QSSLPCL system value, but I would encourage you not to do that. Both TLS1.0 and TLS1.1 have been deprecated, meaning that they’re not to be used. And rightly so! They’re OLD! TLS1.0 was approved in 1999, and TLS1.1 was approved in 2006. Lots of innovation and many vulnerabilities have come to light since these were acceptable technologies. If you have connections using TLS1.0 or TLS1.1, it’s time to move forward and use current technology.
If you’ve read previous articles or heard me talk about the Authority Collection feature that was added in V7R3, you’ll know that I am a huge fan of this feature. Simply put, it takes the guesswork out of securing your system. You don’t have to wonder what authority is required; simply start the authority collection and find out what’s required. When the Authority Collection feature was added in V7R3, you could only turn on the collection based on a specific user profile. You could scope what was being collected by object, but you had to know which users were accessing an object to be able to gather information about the requirements. In V7R4, IBM enhanced the authority collection feature to allow you to turn it on by object. You can turn it on for a specific object or all objects in a specific library or directory. What’s collected is all of the users that are accessing these objects together with the details of the authority that’s required to access the object(s), the authority they currently have to the object, and where it’s coming from (*PUBLIC authority, a private authority, one of their groups, an authorization list, or adopted authority.) Again, that’s so incredibly helpful if you’re trying to set objects to more restrictive settings but are scared you’re going to break something by doing so. Using the authority collection feature allows you to have confidence that you have given the authority required to access the object (but no more than is necessary) and that you won’t break something in the process.
When should you use Authority Collection by user versus by object? Using the Authority Collection feature in V7R3 has proven to be incredibly helpful when helping our clients reduce the amount of authority a specific user or set of users have. For example, service accounts are often created with *ALLOBJ. We have successfully removed that *ALLOBJ special authority by turning on the Authority Collection for that service account, determining what it’s accessing, and authorizing that profile with the authority required to access those objects. With Authority Collection by object, I anticipate using it to help clients reduce the overall access control setting to a specific file or to reduce access to an entire application. Slightly different approaches, but both approaches have the goal of removing unnecessary access or reducing access to just the amount required—that is, implementing the principle of least privilege access.
Thank you, IBM, for providing us with more great security features that allow this platform to be the most securable around! I’m hoping that you, dear reader, can use these features as a reason to upgrade sooner rather than later.