hws/hw03.tex
changeset 392 4dff36e2bbc6
parent 389 9019f84ef99c
child 465 76f9457b8f51
equal deleted inserted replaced
391:a612dd3ddc81 392:4dff36e2bbc6
     7 \section*{Homework 3}
     7 \section*{Homework 3}
     8 
     8 
     9 \HEADER
     9 \HEADER
    10 
    10 
    11 \begin{enumerate}
    11 \begin{enumerate}
    12 \item What should the architecture of a network application under Unix
       
    13   be that processes potentially hostile data?
       
    14 
       
    15 \item What is a unikernel system and why is a unikernel
       
    16 preferable on a web server system (in contrast to a traditional
       
    17 general purpose operating system like Linux).
       
    18 
       
    19 
    12 
    20 \item How does a buffer-overflow attack work? (Hint: What happens on
    13 \item How does a buffer-overflow attack work? (Hint: What happens on
    21   the stack.)
    14   the stack.)
    22 
    15 
    23 \item Why is it crucial for a buffer overflow attack that the stack
    16 \item Why is it crucial for a buffer overflow attack that the stack
    39 \item Assume you can crash a program remotely. Why is this a problem?
    32 \item Assume you can crash a program remotely. Why is this a problem?
    40 
    33 
    41 \item How can the choice of a programming language help with buffer
    34 \item How can the choice of a programming language help with buffer
    42   overflow attacks?  (Hint: Why are C-programs prone to such attacks,
    35   overflow attacks?  (Hint: Why are C-programs prone to such attacks,
    43   but not Java programs.)
    36   but not Java programs.)
       
    37   
       
    38 \item When filling the buffer that is attacked with a
       
    39 payload (starting a shell), what is the purpose of 
       
    40 padding the string at the beginning with NOP-instructions.  
    44 \end{enumerate}
    41 \end{enumerate}
    45 
    42 
    46 \end{document}
    43 \end{document}
    47 
    44 
    48 %%% Local Variables: 
    45 %%% Local Variables: