Static Analysis
Before a system is up and
running, we can examine its design and code to locate and repair security
flaws. We noted earlier that the peer review process involves this kind of
scrutiny. But static analysis is more than peer review, and it is usually
performed before peer review. We can use tools and techniques to examine the
characteristics of design and code to see if the characteristics warn us of
possible faults lurking within. For example, a large number of levels of
nesting may indicate that the design or code is hard to read and understand,
making it easy for a malicious developer to bury dangerous code deep within the
system.
To this end, we can examine
several aspects of the design and code:
control flow structure
data flow structure
data structure
The control flow is the
sequence in which instructions are executed, including iterations and loops.
This aspect of design or code can also tell us how often a particular
instruction or routine is executed.
Data flow follows the trail
of a data item as it is accessed and modified by the system. Many times,
transactions applied to data are complex, and we use data flow measures to show
us how and when each data item is written, read, and changed.
The data structure is the way
in which the data are organized, independent of the system itself. For
instance, if the data are arranged as lists, stacks, or queues, the algorithms
for manipulating them are likely to be well understood and well defined.
There are many approaches to static analysis,
especially because there are so many ways to create and document a design or
program.
Automated tools are available
to generate not only numbers (such as depth of nesting or cyclomatic number)
but also graphical depictions of control flow, data relationships, and the
number of paths from one line of code to another. These aids can help us see
how a flaw in one part of a system can affect other parts.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.