\documentclass{article}
\usepackage{charter}
\usepackage{hyperref}
\begin{document}
\section*{Homework 3}
\begin{enumerate}
\item What should the architecture of a network application under Unix
be that processes potentially hostile data?
\item How can you exploit the fact that every night root has a cron
job that deletes the files in \texttt{/tmp}? (Hint: cron-attack)
\item How does a buffer-overflow attack work? (Hint: What happens on
the stack.)
\item Why is it crucuial for a buffer overflow attack that the stack
grows from higher addresses to lower ones?
\item How does a stack canary help with preventing a buffer-overflow
attack?
\item Why does randomising the address where programs are run help
defending against buffer overflow attacks?
\item Assume format string attacks allow you to read out the
stack. What can you do with this information? (Hint: Consider what
is stored in the stack.)
\item Assume you can crash a program remotely. Why is this a problem?
\item How can the choice of a programming language help with buffer
overflow attacks? (Hint: Why are C-programs prone to such attacks,
but not Java programs.)
\end{enumerate}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: