- [Instructor] Software developers must take care
to write code that is not susceptible
to privilege escalation attacks.
Escalation of privilege attacks
seek to take normal user accounts
and transform them into accounts with administrative rights.
This can be especially dangerous
on systems that have external exposure,
allowing someone on the internet
to take control of a server.
Privilege escalation vulnerabilities often arise
as the result of buffer overflow issues
or other security vulnerabilities in code
that allow an end user to execute
arbitrary instructions on the server.
When the end user gets access
to the underlying operating system,
he or she can take advantage
of privilege escalation vulnerabilities
to leverage that access into administrative privileges.
There are some basic mitigation strategies
that developers and operations teams can take
to reduce the likelihood of privilege escalation attacks.
First, developers should perform input validation
on all input received from end users.
This validation should perform strict checking
to ensure that the input is in the expected format
and of the correct length.
Second, operations teams should ensure
that the operating systems, platforms,
and applications installed on servers
are current supported versions
and have all the latest security patches.
Third, developers and system engineers should work together
to enforce the principle of least privilege.
Any service accounts that support code execution
should have the minimum set of privileges necessary
to support the execution of that code.
Granting these service accounts excess privileges
can increase the access of an attacker
who exploits the code.
Finally, IT organizations
should take advantage of controls designed specifically
to prevent privilege escalation attacks.
These include data execution prevention
and address space layout randomization technologies.
Following these simple safety measures
can dramatically improve the security of code
and prevent privilege escalation attacks from succeeding.