SECURE CODE - HOW TO KEEP RUSSIA OUT OF OUR SYSTEMS
Have
you ever used a software or application that would randomly freeze up, slow down,
or unexpectedly crash? This is due to bugs in the software, it happens when
software is developed too quickly, is too complex, and does not undergo a
software testing cycle, peer review, or quality review. Because of the
pressures on businesses to accelerate their workflows, the software development
process behind this acceleration can tend to suffer; resulting in the
introduction of software errors known as bugs (BairesDEV, 2021). Many people don’t
know that not only are bugs a nuisance within the software application itself,
but they can also introduce vulnerabilities that hackers can exploit to wreak
havoc on computer systems.
Last
year hackers believed to be backed by the Russian Intelligence Service (SVR) planted
a bug into the network monitoring software known as Solarwinds, they introduced
this code during the software development cycle and used it to launch a massive
cyber-attack against America (Temple-Raston, 2021). It is estimated that 18,000
Solarwinds customers downloaded the malicious code, to include Microsoft,
Intel, Cisco, the United States Treasury, the Justice and Energy Departments, the
Pentagon, the Department of Homeland Security, and even the Cybersecurity
Security Agency (CISA), whose jobs it is to protect computer networks from
cyberattacks. To understand what a remarkable feat this was, it is important to
know that finished software code has a type of digital factory seal, one that
customers believe to be safe, unaltered, and free of any malicious code. The
hackers took advantage of the software development process, and implanted a
small piece of code into the Solarwinds software while an update was compiling,
completely bypassing human detection (Temple-Raston, 2021). The total damage
done by this hack is still being determined and may not ever be fully
understood.
The
Solarwinds hack helped shed much needed light on why it is so important to produce
bug free code. Thankfully there are a number of ways to help make sure bugs aren’t
introduced to the software development process.
The first way is to write testable code, write it so that it fails the
test, watch it fail at least once, then write the code to pass the test, repeat
this process to make sure quality assurance is introduced into the software development
process (Sachedina, 2019). Keep code simple, complex code is bound to be error ridden,
avoid using huge code commits, use smaller, concise code commits, and this
makes code easier to test. Split the code up into separate individual modules,
this makes sure you can test the code individually and is less complex. Take
compiler code warnings into account, don’t ignore them, these warnings may
indicate bugs in the code. Take your time and regularly test your code. Finally,
implement effective coding standards that help standardize code development,
this helps avoid common pitfalls that can and often do lead to bugs (Sachedina,
2019).
Also,
writing secure software will keep hackers from exploiting vulnerabilities
within the code. This can be done by:
·
Validating
all input from untrusted data sources
·
Compile
code while using the highest warning level available for your compiler
·
Architect
and design your code to meet security policies
·
Keep
the code simple, not complex
·
Default
deny permissions and base access on permission rather than exclusion
·
Use
the least privilege principle
·
Sanitize
the data sent to other systems
·
Practice
defense in depth
·
Use
effective quality assurance techniques
·
Adopt
a secure coding standard
Unfortunately
it is near impossible to write a code to use on a system that is free of vulnerabilities.
However, by adopting policies and procedures that helps keep your code bug free
and secure, a lot of these vulnerabilities can be prevented in advance, keeping
data and systems safe from cybercriminals.
References
Carnegie
Mellon University. (2018, May 2). Top 10 Secure Coding Practices. Confluence.
Retrieved February 19, 2022, from
https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices
How
to reduce bugs in software development. BairesDev. (2021, June 23). Retrieved
February 19, 2022, from
https://www.bairesdev.com/software-development/how-to-reduce-bugs/
Sachedina,
F. (2019, December 2). Quality begins with code: 10 ways to reduce software
bugs. Simple Programmer. Retrieved February 19, 2022, from
https://simpleprogrammer.com/reduce-software-bugs-quality-code/
Temple-Raston,
D. (2021, April 16). A 'worst nightmare' cyber attack: The untold story of the
solar winds hack. CPR News. Retrieved February 19, 2022, from
https://www.npr.org/2021/04/16/985439655/a-worst-nightmare-cyberattack-the-untold-story-of-the-solarwinds-hack
Comments
Post a Comment