Test System Security

cancel
Showing results for 
Search instead for 
Did you mean: 

Random "Security" Tools

Hey our company has been working towards CMMC this year and as such have been starting on building some processes and tools to help in compliance. I just wanted to share some of these that I can here. These are in varying levels of quality and are pretty much all still a work in progress. Just sharing in case these are helpful to anyone else. These are all still in active development and I will continue to push updates to the repositories linked. You can feel free to do whatever you want with them, give me feedback/issues, and I am also happy to collaborate and help work on this with anyone that might want to. Here is what I am able to share:

 

1. Virus Total API. This allows for files to be uploaded to virus total programmatically. The files are then analyzed for malware and other breaches. The API allows this to be done programmatically and is free (there is a pro version with a lot more features as well). This also can inspect URLs and IP Addresses as well. This can be found here: https://gitlab.com/cannontim/virustotal-api

2. TLS API. This is essentially a wrapper for the native LabVIEW TCP functions, the native LabVIEW TLS functions, and STM. This has a class for clients, servers, and multi-client servers which manages all of the configuration and everything for you and leaves just a start, stop, read, and write function for each class. This can be found here: https://gitlab.com/cannontim/tls-api

3. Syslog API. There are a few different Syslog libraries out there. This one offers the same UDP features to port 514 that most of these other toolkits offer. This one also can be used for TLS syslog to port 6514. Link is here: https://gitlab.com/cannontim/syslog-api

4. FPGA Flash Clearer. All this does is upload an empty bitfile to the FPGA on the selected target in order to clear an existing bitfile from flash. I have precompiled bitfiles for the targets that I am working with but the existing empty vi can be copied and compiled to any desired target. This can be found here: https://gitlab.com/cannontim/fpga-flash-clearer

5. cRIO Sanitizer. This is just a simple GUI for reformatting an RT target remotely and then rebooting it in order to clear volatile and non-volatile memory. This can be found here: https://gitlab.com/cannontim/crio-sanitizer

6. Static Security Tester. This scans a LabVIEW project and checks for common communication methods and also use of the database connectivity toolkit. If detected it marks them as "used" in the project and prompts the user to follow a checklist to ensure that the methods are being used safely (for example no hardcoded passwords and usernames to a database on the block diagram, no transmitting sensitive data via an unencrypted protocol, etc.). It also outputs the results of the discovery and the check marks from the user to file. This can be found here: https://gitlab.com/cannontim/static-security-tester

7. LDAP API. This allows LabVIEW to authenticate users securely over LDAP through your companies active directory. This allows for things like verifying a user is part of a domain but also pulling details about that user (this is dependant on what is setup in your organization for each user). This can be found here: https://gitlab.com/cannontim/ldap-api

8. Service Manager. While not directly security related, due to a lot of the security policy changes we've been making (every user having a unique login, computers locking after 15 minutes of inactivity, etc), we've felt it beneficial to move more pieces of software over to a client/server architecture. As such, having the ability to run LabVIEW exes as a service has become more and more important. This has an API for installing, starting, stopping, restarting, and removing services. It also has a GUI which can be used for managing all services on a system. This can be found here: https://gitlab.com/cannontim/service-manager

9. SBOM Pro. A GUI built on top of the tool shared by Sam Sharp here: https://forums.ni.com/t5/Test-System-Security/LabVIEW-CycloneDX-SBOM-Toolkit/td-p/4388308 (with some small modifications). This can be found here: https://gitlab.com/cannontim/sbom-pro

 

Like I mentioned, these are all works in progress so I'm sure they all have issues and various bugs. Let me know if you run into issues or if you would like to work together on finishing these tools. Just wanted to share in case any of these could be helpful for anyone in this group. I also am just about finished getting a dynamic security tester finished in LabVIEW which can be used for catching specific packets (filters can be applied by IP address, mac address, or port) and determining if they are encrypted or not. The goal would be to use this for automated testing of web services and network communications. I will share that on here when I have finished it.

 

Message 1 of 3
(260 Views)

These are great resources - Thanks for sharing!

0 Kudos
Message 2 of 3
(248 Views)
This is great - I'm so glad you've already managed to make use of my SBOM toolkit - I will take a look at what you've done but if you've made any changes/improvements/fixes to the library itself, please do submit it as a pull request.

It may make sense for you to use the 'VI Package' of the SBOM toolkit part, rather than including the source? Once it is a little more mature and complete, I will push it to vipm.io.

LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 3 of 3
(243 Views)