Please enable JavaScript.
Coggle requires JavaScript to display documents.
Secure Coding Best Practices https://www.youtube.com/watch?v=zlEdzJccdps …
Secure Coding Best Practices
https://www.youtube.com/watch?v=zlEdzJccdps
critical systems
the system itself
any other system that can interact with it no matter how low the priority
unrelated processes
hardware (printers)
external systems
what to do against penetration
static analysis tools for security
coverity & Sonar
CERT Thread Saftey Analsis
Rose Checkers
AIR integer Model
Compiler Enforced Buffer Overflow Elimination
dynamic analysis tools
Sanizers (GCC+Clang)
Asan Address Saniziter (buffer overlows, memory leaks)
Tsan Thread Sanitzier (concurrency bugs)
Msan (Memory Sanitzier (unintiallized memory)
Ubsan (undefined behavior sanitizer (UB)
Fuzz Testing
OSS-Fuzz (google)
libFuzzer (coverage guided fuzzing)
american fuzzy lop (uses genetic algorithms to generate test cases)
threat modeling
pen testing
secure tdd
avoid confirmation bias
don't test your own code
don't allow release dates to control testing
Security Layers
Security Wrappers
Design wrapper classes for libraries you don't own
include exception handling
validates data that goes into the library and comes out of it
Trust Boundaries
sanitize data at specific boundaries
don't trust data from foreign sources
want to avoid duplicate validation steps
principle of least privilege
use the minimum privileges necessary
grant & revoke privileges only as needed
watch for exceptions and multiple returns
privilege control is only one layer of protection
complexity is the enemy
creates emergent behavior
makes it hard to reason about our code
undersatndablity
logging
log memory form segmentation faults & exceptions
the pattern of corrupted memory tells us something
where when it was corrupted tells us sth. as well
digging through core files is non-trivial
log security
we realy can't afford to encrypt logs
they are often a treasure trove of information
sanitize what you put in them
audit trails
use security specific exceptions
treat logging as an essential part of your security model
best practices
validate your data
treat warnings as errors
design with security requirements in mind
establish a coding standard that includes security
deploy security specific static analysis tools
use asymmetric testing (pen testing, fuzz and unit testing)
get bui-in from aboce to make security a release criteria