Cybersecurity Internship
This course allows students to volunteer to work in an agency related to cybersecurity. Students must volunteer for 50 hours per course credit and complete course assignments.
Course Material
During the Fall semester of 2022, I interned at the Old Dominion University (ODU) Internet Technology Services (ITS) Networking department. This was a challenging and rewarding experience from which I gained valuable professional experience in a field related to Cybersecurity.
I chose to work for this organization because I believe it will be useful in my progress as a Cybersecurity professional to develop a working knowledge of the underlying networking technologies that enable our modern society.
Below are links to my Final Paper and the reflective journal entries:
Skill Development
During this internship, I had plenty of opportunity to practice my Linux skills, as well as scripting/automation.

grep
to examine the output of an automation scriptI cloned and amended an existing legacy script to help with a specific tediously manual task. Occasionally I needed to trace a large number of cables from where it was connected to a network switch to where it was connected into the “patch panel,” and I found myself getting mixed up after a certain amount of time. I wrote this function (in Python) to help keep me on track – further detail can be found in Appendix C of the final report.
def update_descr(child):
if len(sys.argv) == 3:
startat = sys.argv[-1]
# get all ports
child.sendline('term len 0')
r = child.expect(['[\r\n][0-9a-zA-Z\._-]+#']) #Cisco (already enabled)
child.sendline('show int status')
r = child.expect(['[\r\n][0-9a-zA-Z\._-]+#']) #Cisco (already enabled)
x = child.before
if 'startat' in locals(): # start at specified port
lines = x.decode("utf-8").splitlines()
start = [i for i, line in enumerate(lines) if startat.lower() in line.lower()]
ports = x.decode("utf-8").splitlines()[start[0]:]
else: # start at first port
ports = x.decode("utf-8").splitlines()[3:]
# for each port
for port in ports:
# display current config
print('\n-----------------------------------')
print(port)
print('-----------------------------------')
portname = port.split()[0]
# if correct -> accept and move to next port
ans = input("Is this configuration correct? (y/n) ")
while not ans in ['y', 'n']:
ans = input("Try again; please type y or n.\nIs this configuration correct? (y/n)")
if ans == 'y':
continue
# else
elif ans == 'n':
# prompt for new description
desc = input("new description: ")
print(desc)
# update switchport
#child.sendline()
child.sendline('conf t')
child.expect(['[\r\n][0-9a-zA-Z\._-]+\(config\)#']) #Cisco (already enabled)
print('entered configuration terminal')
child.sendline('int {0}'.format(portname))
child.expect(['[\r\n][0-9a-zA-Z\._-]+\(config-if\)#']) #Cisco (already enabled)
child.sendline('description {0}'.format(desc))
print('set new description')
child.expect(['[\r\n][0-9a-zA-Z\._-]+\(config-if\)#']) #Cisco (already enabled)
child.sendcontrol('z')
print('exited conf t')
child.expect(['[\r\n][0-9a-zA-Z\._-]+#']) #Cisco (already enabled)
# wr mem
child.sendline('wr mem')
print('wrote to memory')
Personal Development
I found the workplace and management culture during this job very much to my liking. People were easygoing, and even when there were urgent tasks that needed to be done, they were approached in a calm manner, with tasking and sub-tasking handled respectfully. I have been in a professional environment like this before, and I know that this environment speaks volumes of the competence of each member of team, and the mutual respect and confidence everyone has for each other.
I would characterize this job as very low-pressure. Projects are conducted over very long timelines, and plenty of advanced notice is given to stakeholders affected by major changes resulting from execution of these projects. However, with very long timelines, procrastination can become an issue, so it is important to stay focused on tasks and plan to use the available time efficiently.
Communicating knowledge between peers and supervisors was not especially difficult, because there is a shared body of knowledge at the level I was working at. Communicating with the users could sometimes present more of a challenge, since most lay people don’t understand much more than “the network port in my office is not working.” So, communicating with people who don’t share the same depth of knowledge on this subject was a matter of talking in very broad terms and omitting specifics. Most people generally just want to know whether the issue has been fixed or not, so including more information than that is usually a waste of energy, unless they specifically request it.
There are five different job titles (that is, five different job opportunities) represented in the team I worked with. Each has a specific role related to Networks, and most have some overlap with Cybersecurity. For example, the Network Automation Engineers write scripts that not only accomplish the desired goal, but they do it in such a way that complies with all standing Security practices and doesn’t expose any element to unnecessary risk of attack. These jobs all have various standardized certification requirements, but two of the most common were the Cisco Certified Network Associate (CCNA) and the CompTIA Security+ Certificate.