<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anttix</id>
	<title>Lambda - Kasutaja kaastöö [et]</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anttix"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/wiki/Eri:Kaast%C3%B6%C3%B6/Anttix"/>
	<updated>2026-10-28T09:25:55Z</updated>
	<subtitle>Kasutaja kaastöö</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=8433</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=8433"/>
		<updated>2011-12-20T23:55:18Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 2pts (best lab 3 proposal with Allan, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 3pts (best lab 3 report, best lab 4 report, best scenario 7 proposal)&lt;br /&gt;
&lt;br /&gt;
Robert P - 3 pts (best scenario 4 proposal, best lab 4 result, best lab 5 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Mart - 1 pts (best lab 5 report)&lt;br /&gt;
&lt;br /&gt;
Ronny - 1 pts (best lab 7 report)&lt;br /&gt;
&lt;br /&gt;
Mikheil - 1 pts (best lab 6 report)&lt;br /&gt;
&lt;br /&gt;
Jan - 1pts (best lab 8 result)&lt;br /&gt;
&lt;br /&gt;
Franck - 1pts (best lab 8 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6615</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6615"/>
		<updated>2011-12-15T22:04:02Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 2pts (best lab 3 proposal with Allan, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 3pts (best lab 3 report, best lab 4 report, best scenario 7 proposal)&lt;br /&gt;
&lt;br /&gt;
Robert P - 3 pts (best scenario 4 proposal, best lab 4 result, best lab 5 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Mart - 1 pts (best lab 5 report)&lt;br /&gt;
&lt;br /&gt;
Ronny - 1 pts (best lab 7 report)&lt;br /&gt;
&lt;br /&gt;
Mikheil - 1 pts (best lab 6 report)&lt;br /&gt;
&lt;br /&gt;
Jan - 1pts (best lab 8 result)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6601</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6601"/>
		<updated>2011-12-13T15:02:22Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 2pts (best lab 3 proposal with Allan, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 3pts (best lab 3 report, best lab 4 report, best scenario 7 proposal)&lt;br /&gt;
&lt;br /&gt;
Robert P - 3 pts (best scenario 4 proposal, best lab 4 result, best lab 5 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Mart - 1 pts (best lab 5 report)&lt;br /&gt;
&lt;br /&gt;
Ronny - 1 pts (best lab 7 report)&lt;br /&gt;
&lt;br /&gt;
Mikheil - 1 pts (best lab 6 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6587</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6587"/>
		<updated>2011-11-24T19:00:00Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 2pts (best lab 3 proposal with Allan, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 3 pts (best scenario 4 proposal, best lab 4 result, best lab 5 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Mart - 1 pts (best lab 5 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6491</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6491"/>
		<updated>2011-11-17T19:27:06Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 2 pts (best scenario 4 proposal, best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Mart - 1 pts (best lab 5 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6465</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6465"/>
		<updated>2011-11-17T19:26:40Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 3pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal, best scenario 5 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 2 pts (best scenario 4 proposal, best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6464</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6464"/>
		<updated>2011-11-03T22:02:28Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 2pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 2 pts (best scenario 4 proposal, best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6395</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6395"/>
		<updated>2011-11-03T21:01:23Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 2pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 1 pts (best scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
Anis - 1 pts (best lab 4 result)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6394</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6394"/>
		<updated>2011-11-03T20:42:38Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 2pts (best lab 3 proposal with Predrag, lucky SOB scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 2pts (best lab 3 report, best lab 4 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 1 pts (best scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6393</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6393"/>
		<updated>2011-10-13T19:47:44Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
Allan - 1pts (best lab 3 proposal with Predrag)&lt;br /&gt;
&lt;br /&gt;
Predrag - 1pts (best lab 3 proposal with Allan)&lt;br /&gt;
&lt;br /&gt;
Mauno P - 1pts (best lab 3 report)&lt;br /&gt;
&lt;br /&gt;
Robert P - 1 pts (best scenario 4 proposal)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6200</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6200"/>
		<updated>2011-10-06T21:12:36Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 3pts (lecture 1 vote, lab 2 testing method, lab 3 result)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6108</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6108"/>
		<updated>2011-10-06T18:14:58Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 2pts (lecture 1 vote, lab 2 testing method)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Michal - 1pts (best lab 1 result)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6106</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6106"/>
		<updated>2011-09-29T21:10:01Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 2pts (lecture 1 vote, lab 2 testing method)&lt;br /&gt;
&lt;br /&gt;
Andres - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
Roman - 1pts (best lab 2 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6068</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=6068"/>
		<updated>2011-09-22T21:03:22Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 2pts (lecture 1 vote, lab 2 testing method)&lt;br /&gt;
&lt;br /&gt;
Report writer #1 - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
Alexandre - 1pts (best lab 2 result)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5989</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5989"/>
		<updated>2011-09-22T21:00:42Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points scored so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 2pts (lecture 1 vote, lab 2 testing method)&lt;br /&gt;
Report writer #1 - 1pts (best lab 1 report)&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5988</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5988"/>
		<updated>2011-09-08T18:32:07Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Lab1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 1pts&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or &amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5768</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5768"/>
		<updated>2011-09-08T17:10:45Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4319&lt;br /&gt;
&lt;br /&gt;
All scenario proposals must be posted to their own respective forums.&lt;br /&gt;
&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 1pts&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5767</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5767"/>
		<updated>2011-09-01T20:30:21Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
Link and details will appear here as soon as the e-course is created by administrators.&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
== Points scored so far ==&lt;br /&gt;
&lt;br /&gt;
Margus - 1pts&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
** 512M memory, 1 CPU for each VM&lt;br /&gt;
* Wordpress 3.2.1 with default settings (no extra plugins, no performance tweaks, default skin) and default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5697</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5697"/>
		<updated>2011-09-01T20:22:18Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Scenario 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
Link and details will appear here as soon as the e-course is created by administrators.&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
** Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
** Must have some load ...&lt;br /&gt;
** It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
=== Simulation environment ===&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
=== Benchmarking tools ===&lt;br /&gt;
&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
=== How to separate benchmark tools from the server? ===&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
=== Determining if referenced content has an effect on results ===&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
=== How to measure the results? ===&lt;br /&gt;
&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
=== What to document? ===&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;br /&gt;
&lt;br /&gt;
Margus - 1pts&lt;br /&gt;
&lt;br /&gt;
=== Lab1 ===&lt;br /&gt;
&lt;br /&gt;
* Virtualization platform: VirtualBox&lt;br /&gt;
* Point will go to the person that can produce the most dense graph showing the number of concurrent connections against the response time. Individual tests used to plot the data must be repeated at least 3 times.&lt;br /&gt;
* Latest wordpress with default home page&lt;br /&gt;
* Ubuntu Server 10.04 LTS 32bit&lt;br /&gt;
* Web server: Apache2, SQL: MySQL (default versions bundled with OS)&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5696</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5696"/>
		<updated>2011-09-01T19:45:43Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Scenario 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
Link and details will appear here as soon as the e-course is created by administrators.&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Assume upstream bandwidth can cope...&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Proposals&lt;br /&gt;
&lt;br /&gt;
* Install a similar system on test hardware&lt;br /&gt;
  - Test hardware is smaller than&lt;br /&gt;
* Extrapolate from current system logs&lt;br /&gt;
  - Must have some load ...&lt;br /&gt;
  - It may NOT be linear (it usually isn&#039;t!)&lt;br /&gt;
* Generate some load (without breaking it) and extrapolate from logs&lt;br /&gt;
* Find existing performance graphs for wordpress ... (highly unlikely)&lt;br /&gt;
&lt;br /&gt;
Simulation environment&lt;br /&gt;
&lt;br /&gt;
* Real hardware&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
&lt;br /&gt;
Pick what is closer to the real system.&lt;br /&gt;
&lt;br /&gt;
Benchmarking tools&lt;br /&gt;
* httpPerf &lt;br /&gt;
* pagetop&lt;br /&gt;
* htop&lt;br /&gt;
* AB - apache bench&lt;br /&gt;
* curl / wget + custom scripts&lt;br /&gt;
* JMeter&lt;br /&gt;
* Grinder&lt;br /&gt;
* wpscan - wordpress specific&lt;br /&gt;
&lt;br /&gt;
How to separate benchmark tools from the server?&lt;br /&gt;
&lt;br /&gt;
* Use to VMs, Use CPU allocation in virtualization environment to allocate different CPUs for different VMs&lt;br /&gt;
* Put VM disk images on different disks (probably an overkill)?&lt;br /&gt;
&lt;br /&gt;
* Monitor process table and make sure that test tools consume significantly less than web server processes. Lower the priority of the test tools.&lt;br /&gt;
&lt;br /&gt;
* Start monitoring load and page views. Generate some load on real system. How?&lt;br /&gt;
&lt;br /&gt;
How do we define the system is dead?&lt;br /&gt;
Page view takes longer than 10sec.&lt;br /&gt;
&lt;br /&gt;
* Make a list of all references the main page has&lt;br /&gt;
* Measure the performance of all the URLs&lt;br /&gt;
* Disregard the ones that load at least two magnitudes faster.&lt;br /&gt;
&lt;br /&gt;
How to measure the results?&lt;br /&gt;
* Measure response times and number of parallel requests using the benchmarking tool itself&lt;br /&gt;
* Deduct the numbers from server logs&lt;br /&gt;
* Put the system under load, test with a normal browser if the load time is reasonable.&lt;br /&gt;
&lt;br /&gt;
What to document?&lt;br /&gt;
&lt;br /&gt;
* Exact configuration of the benchmarking tool (command line, scripts, config files etc. for EACH test performed)&lt;br /&gt;
* The version of the benchmarking tool used&lt;br /&gt;
* Virtualization platform&lt;br /&gt;
* Hardware specification&lt;br /&gt;
* URL of the page tested&lt;br /&gt;
* Wordpress configuration&lt;br /&gt;
* Wordpress content !!!&lt;br /&gt;
* Wordpress version&lt;br /&gt;
* Web server configuration&lt;br /&gt;
* Web server version (apache, php, sql, etc)&lt;br /&gt;
* The measurement results (page load times under each different test)&lt;br /&gt;
* Web browser used to measure response time (type, version, operating system)&lt;br /&gt;
* Operating system configuration (version, software installed, customizations etc).&lt;br /&gt;
* The AUTHOR! and the DATE!&lt;br /&gt;
&lt;br /&gt;
Write evertyhing down at ONCE.&lt;br /&gt;
if using VM-s save the image.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5695</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5695"/>
		<updated>2011-09-01T18:06:10Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice TH 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
Link and details will appear here as soon as the e-course is created by administrators.&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5694</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5694"/>
		<updated>2011-09-01T18:03:03Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 17:45 - 21:15 (odd weeks)&lt;br /&gt;
&lt;br /&gt;
Practice FR 17:45 - 21:15 (even weeks)&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at course forum in Moodle.&lt;br /&gt;
Link and details will appear here as soon as the e-course is created by administrators.&lt;br /&gt;
Please register your account today at http://moodle.e-ope.ee&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
Best of the bunch will score points.&lt;br /&gt;
&lt;br /&gt;
Points will be awareded for the:&lt;br /&gt;
&lt;br /&gt;
* Best simulation proposal&lt;br /&gt;
* Best result obtained in the lab environment&lt;br /&gt;
* Best lab report&lt;br /&gt;
&lt;br /&gt;
In total it is possible to score three points for every two weeks.&lt;br /&gt;
&lt;br /&gt;
Maximum score is 3, nobody will be awareded more.&lt;br /&gt;
&lt;br /&gt;
Minimum score to pass is 1.&lt;br /&gt;
&lt;br /&gt;
For those who can not score a single point, an&lt;br /&gt;
examination proposals will received from those&lt;br /&gt;
of you who scored 3 and voted.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080_Archived&amp;diff=8553</id>
		<title>ITX8080 Archived</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080_Archived&amp;diff=8553"/>
		<updated>2011-09-01T17:55:20Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;big&amp;quot;&amp;gt;This is a historic version for archival purposes&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;br /&gt;
&lt;br /&gt;
=== Lab 9 ===&lt;br /&gt;
&lt;br /&gt;
Start by implementing proper network topology:&lt;br /&gt;
* Create a CSMA(ring) network for each location (5 networks in total)&lt;br /&gt;
* Set the speed to 100Mbit/s&lt;br /&gt;
* Create 3 nodes for each location (2 servers, 1 router)&lt;br /&gt;
* Connect nodes to their respective networks&lt;br /&gt;
* Create another CSMA(ring) network to mimic the internet core&lt;br /&gt;
* Create 6 nodes to act as core routers on that network&lt;br /&gt;
** one for each simulated location&lt;br /&gt;
** an &amp;quot;extra&amp;quot; router that all attackers will be connected to&lt;br /&gt;
* Set the speed of the internet core to 10Gbit/s&lt;br /&gt;
* Connect location routers to respective core routers via Point-to-Point links&lt;br /&gt;
* Set the speed of those Point-to-Point links to 10Mbit/s&lt;br /&gt;
* Create 20 attacker nodes (just to speed up testing and development, You can increase that number to 1000 later)&lt;br /&gt;
* Connect all attacker nodes to the &amp;quot;extra&amp;quot; core router with point-to-point links&lt;br /&gt;
* Set the speed of attacker links to 1Mbit/s&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080_Archived&amp;diff=5692</id>
		<title>ITX8080 Archived</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080_Archived&amp;diff=5692"/>
		<updated>2011-09-01T17:52:49Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;br /&gt;
&lt;br /&gt;
=== Lab 9 ===&lt;br /&gt;
&lt;br /&gt;
Start by implementing proper network topology:&lt;br /&gt;
* Create a CSMA(ring) network for each location (5 networks in total)&lt;br /&gt;
* Set the speed to 100Mbit/s&lt;br /&gt;
* Create 3 nodes for each location (2 servers, 1 router)&lt;br /&gt;
* Connect nodes to their respective networks&lt;br /&gt;
* Create another CSMA(ring) network to mimic the internet core&lt;br /&gt;
* Create 6 nodes to act as core routers on that network&lt;br /&gt;
** one for each simulated location&lt;br /&gt;
** an &amp;quot;extra&amp;quot; router that all attackers will be connected to&lt;br /&gt;
* Set the speed of the internet core to 10Gbit/s&lt;br /&gt;
* Connect location routers to respective core routers via Point-to-Point links&lt;br /&gt;
* Set the speed of those Point-to-Point links to 10Mbit/s&lt;br /&gt;
* Create 20 attacker nodes (just to speed up testing and development, You can increase that number to 1000 later)&lt;br /&gt;
* Connect all attacker nodes to the &amp;quot;extra&amp;quot; core router with point-to-point links&lt;br /&gt;
* Set the speed of attacker links to 1Mbit/s&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5699</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5699"/>
		<updated>2011-08-31T11:12:14Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Praktilised tööd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
Küsimuste küsimiseks ja omavaheliseks suhtlemiseks on avatud kursuse &amp;quot;Üldfoorum&amp;quot; aadressil:&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/mod/forum/view.php?id=200854&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; rühmadele IABB37, IAPB37 kehtivad erinõuded. [https://moodle.e-ope.ee/mod/page/view.php?id=200865 Loe siit ...]&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
Oma arvutiga töö tegemiseks peab seal olema vähemalt&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
* [http://www.mozilla.com Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5654</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5654"/>
		<updated>2011-08-31T11:11:34Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Praktilised tööd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
Küsimuste küsimiseks ja omavaheliseks suhtlemiseks on avatud kursuse &amp;quot;Üldfoorum&amp;quot; aadressil:&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/mod/forum/view.php?id=200854&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; rühmadele IABB37, IAPB37 kehtivad erinõuded. [https://moodle.e-ope.ee/mod/page/view.php?id=200865 Loe siit ...]&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/course/view.php?id=4269&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
Oma arvutiga töö tegemiseks peab seal olema vähemalt&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
* [http://www.mozilla.com Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5653</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5653"/>
		<updated>2011-08-31T10:47:56Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Aeg, koht, tulemus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
Küsimuste küsimiseks ja omavaheliseks suhtlemiseks on avatud kursuse &amp;quot;Üldfoorum&amp;quot; aadressil:&lt;br /&gt;
&lt;br /&gt;
https://moodle.e-ope.ee/mod/forum/view.php?id=200854&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
Oma arvutiga töö tegemiseks peab seal olema vähemalt&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
* [http://www.mozilla.com Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5652</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5652"/>
		<updated>2011-08-31T10:47:44Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Aeg, koht, tulemus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
Küsimuste küsimiseks ja omavaheliseks suhtlemiseks on avatud kursuse &amp;quot;Üldfoorum&amp;quot; aadressil:&lt;br /&gt;
https://moodle.e-ope.ee/mod/forum/view.php?id=200854&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
Oma arvutiga töö tegemiseks peab seal olema vähemalt&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
* [http://www.mozilla.com Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused&amp;diff=8306</id>
		<title>ITV0110 1. töö: Html põhioskused</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused&amp;diff=8306"/>
		<updated>2011-08-31T10:27:05Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esimene ülesanne on inspireeritud [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi html juhendist] ja Tanel Tammeti varasematest analoogilistest ülesannetest.&lt;br /&gt;
&lt;br /&gt;
Seda on väga soovitav teha kolmes etapis, hinnatakse aga kogutulemust.&lt;br /&gt;
&lt;br /&gt;
Ülesandena loodud lehtedel peavad olema olemas alltoodud elemendid, igati sobiv ja soovitav on sinna lisada muid mõistlikke ja huvitavaid asju ka omal initsiatiivil.&lt;br /&gt;
&lt;br /&gt;
NB! Lehed tuleb luua hariliku teksti(programmeerimis)redaktoriga (soovitavad näiteks notepad++ või scite), mitte puhtalt visuaalse redaktoriga. Esitamisel peab oskama juhendajale seletada, mida konkreetsed htmli markupi osad teie lehel teevad ja miks nad seal on. Teile arusaamatuid htmli markupe elemente ei tohi kasutada (st enne kasutamist tuleb nendega mõne htmli õppematerjaliga tutvuda!).&lt;br /&gt;
&lt;br /&gt;
Loodud lehti võib selles ülesandes hoida lihtsalt arvuti failisüsteemis (ei pea olema laetud serverisse).&lt;br /&gt;
&lt;br /&gt;
Lehtede loomisel on hea kasutada valmis [http://enos.itcollege.ee/~aandreim/vr1/latest/Praktikumid/prax1/toorik.html toorikut] (kasutamiseks võtad View Page Source ja teed Copy-Paste)&lt;br /&gt;
  &lt;br /&gt;
;esimene etapp&lt;br /&gt;
&lt;br /&gt;
Tehke teksti(programmeerimis)redaktoriga 5 html lehte, mis on omavahel lingitud ja sisaldavad infot teie enda kohta (ei pea olema tõene info!). Pealehel olgu mh menüü, näiteks: Minust, Sõbrad, Lingid, Hobid jne.&lt;br /&gt;
&lt;br /&gt;
;teine etapp&lt;br /&gt;
&lt;br /&gt;
Joonistage mõne graafikaprogrammiga 5 pilti (mõned neist, võivad olla ka teie enda tehtud fotod, osad peavad aga olema joonistatud), salvestage neist osad GIF ja osad JPEG formaati ning lisage nad koduleheküljele eelmisest ülesandest (5 html lehte, omavahel lingitud). Kõigil lehtedel olgu siis mõni ise joonistatud/pildistatud GIF või JPEG formaatides pilt.&lt;br /&gt;
&lt;br /&gt;
Neile lehtedele tuleb järgmisena panna osadele taustavärv ning osadele taustapildid. Samuti tuleb ära muuta tavaliste ning külastatud linkide värvid - vaikimisi on need üldiselt sinised ning lillad - muutke omale meeldivaks. Seekord proovige rõhku panna ka visuaalsele küljele - &amp;quot;hea maitse standardit&amp;quot; ei ole küll olemas, ent püüdke anda endasat parim!&lt;br /&gt;
&lt;br /&gt;
;kolmas etapp&lt;br /&gt;
&lt;br /&gt;
Proovige teha taoline tabel, kasutage ka tabelil ning lahtril tausta värve ja püüdke tõepoolest süveneda tabeli tegemise põhimõtetesse (mitte lihtsalt kuskilt näite järgi), sest tüüpilised vead väljundis on enamasti tabeli tõttu (ka visuaalsete html-redaktorite puhul) ning teil on kindlasti vaja oskust tabeli html-teksti käsitsi parandada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nr 	Nimi 	         Matemaatika 	Inglise keel&lt;br /&gt;
1 	Aleksei Matiisen 95 	        77&lt;br /&gt;
2 	Lea Kuusik 	 88 	        99&lt;br /&gt;
3 	Leo Roost 	 32 	        83&lt;br /&gt;
4 	Tarmo Eessaar 	 100 	        100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui selline tabel tööle saadud, siis kasutage oma eelmistes ülesannetes tehtud lehekülgedel tabeleid - s.t. vasakule veergu pange menüü ning paremale sisu - mis tähendab, et kogu teie lehekülge ümbritseb üks suur tabel. Lisaks kasutage tabelit ka mõnes sisuosas.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused&amp;diff=5650</id>
		<title>ITV0110 1. töö: Html põhioskused</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITV0110_1._t%C3%B6%C3%B6:_Html_p%C3%B5hioskused&amp;diff=5650"/>
		<updated>2011-08-31T10:26:39Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esimene ülesanne on inspireeritud [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi html juhendist] ja Tanel Tammeti varasematest analoogilistest ülesannetest.&lt;br /&gt;
&lt;br /&gt;
Seda on väga soovitav teha kolmes etapis, hinnatakse aga kogutulemust.&lt;br /&gt;
&lt;br /&gt;
Ülesandena loodud lehtedel peavad olema olemas alltoodud elemendid, igati sobiv ja soovitav on sinna lisada muid mõistlikke ja huvitavaid asju ka omal initsiatiivil.&lt;br /&gt;
&lt;br /&gt;
NB! Lehed tuleb luua hariliku teksti(programmeerimis)redaktoriga (soovitavad näiteks notepad++ või scite), mitte puhtalt visuaalse redaktoriga. Esitamisel peab oskama juhendajale seletada, mida konkreetsed htmli markupi osad teie lehel teevad ja miks nad seal on. Teile arusaamatuid htmli markupe elemente ei tohi kasutada (st enne kasutamist tuleb nendega mõne htmli õppematerjaliga tutvuda!).&lt;br /&gt;
&lt;br /&gt;
Loodud lehti võib selles ülesandes hoida lihtsalt arvuti failisüsteemis (ei pea olema laetud serverisse).&lt;br /&gt;
&lt;br /&gt;
Lehtede loomisel on hea kasutada valmis [ http://enos.itcollege.ee/~aandreim/vr1/latest/Praktikumid/prax1/toorik.html toorikut ] (kasutamiseks võtad View Page Source ja teed Copy-Paste)&lt;br /&gt;
  &lt;br /&gt;
;esimene etapp&lt;br /&gt;
&lt;br /&gt;
Tehke teksti(programmeerimis)redaktoriga 5 html lehte, mis on omavahel lingitud ja sisaldavad infot teie enda kohta (ei pea olema tõene info!). Pealehel olgu mh menüü, näiteks: Minust, Sõbrad, Lingid, Hobid jne.&lt;br /&gt;
&lt;br /&gt;
;teine etapp&lt;br /&gt;
&lt;br /&gt;
Joonistage mõne graafikaprogrammiga 5 pilti (mõned neist, võivad olla ka teie enda tehtud fotod, osad peavad aga olema joonistatud), salvestage neist osad GIF ja osad JPEG formaati ning lisage nad koduleheküljele eelmisest ülesandest (5 html lehte, omavahel lingitud). Kõigil lehtedel olgu siis mõni ise joonistatud/pildistatud GIF või JPEG formaatides pilt.&lt;br /&gt;
&lt;br /&gt;
Neile lehtedele tuleb järgmisena panna osadele taustavärv ning osadele taustapildid. Samuti tuleb ära muuta tavaliste ning külastatud linkide värvid - vaikimisi on need üldiselt sinised ning lillad - muutke omale meeldivaks. Seekord proovige rõhku panna ka visuaalsele küljele - &amp;quot;hea maitse standardit&amp;quot; ei ole küll olemas, ent püüdke anda endasat parim!&lt;br /&gt;
&lt;br /&gt;
;kolmas etapp&lt;br /&gt;
&lt;br /&gt;
Proovige teha taoline tabel, kasutage ka tabelil ning lahtril tausta värve ja püüdke tõepoolest süveneda tabeli tegemise põhimõtetesse (mitte lihtsalt kuskilt näite järgi), sest tüüpilised vead väljundis on enamasti tabeli tõttu (ka visuaalsete html-redaktorite puhul) ning teil on kindlasti vaja oskust tabeli html-teksti käsitsi parandada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nr 	Nimi 	         Matemaatika 	Inglise keel&lt;br /&gt;
1 	Aleksei Matiisen 95 	        77&lt;br /&gt;
2 	Lea Kuusik 	 88 	        99&lt;br /&gt;
3 	Leo Roost 	 32 	        83&lt;br /&gt;
4 	Tarmo Eessaar 	 100 	        100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kui selline tabel tööle saadud, siis kasutage oma eelmistes ülesannetes tehtud lehekülgedel tabeleid - s.t. vasakule veergu pange menüü ning paremale sisu - mis tähendab, et kogu teie lehekülge ümbritseb üks suur tabel. Lisaks kasutage tabelit ka mõnes sisuosas.&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5651</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5651"/>
		<updated>2011-08-31T10:22:26Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
Oma arvutiga töö tegemiseks peab seal olema vähemalt&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
* [http://www.mozilla.com Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5648</id>
		<title>Võrgurakendused I 2018</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=V%C3%B5rgurakendused_I_2018&amp;diff=5648"/>
		<updated>2011-08-31T10:21:23Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
[[Pilt:Engine.jpg|left|mootor]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
Ainekood: ITV0110&amp;lt;br&amp;gt;&lt;br /&gt;
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110&amp;lt;br&amp;gt;&lt;br /&gt;
Punkte: 3.5 AP ehk 5 EAP&amp;lt;br&amp;gt;&lt;br /&gt;
Lektor: [http://tanel.tammet.googlepages.com Tanel Tammet]&amp;lt;br&amp;gt;&lt;br /&gt;
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223&amp;lt;br&amp;gt;&lt;br /&gt;
olemas on ka [[Võrgurakendused_I 2010| 2010 aasta arhiiv]] koos kõigi eelmise aasta materjalidega.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aeg, koht, tulemus ==&lt;br /&gt;
&lt;br /&gt;
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131 &lt;br /&gt;
&lt;br /&gt;
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:&lt;br /&gt;
* kolmapäeval 10:00-11:30 ruumides  IT-213E,  IT-213I rühmadele IABB37,  IAPB37&lt;br /&gt;
* neljapäeval 08:00-09:30 ruumides IT-213D,  IT-213H rühmadele	IABB31,  IABB32,  IAPB31,  IAPB32 	 &lt;br /&gt;
* neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- NB! Praktikumid algavad kursuse teisest nädalast (alates 6. septembrist) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).&lt;br /&gt;
&lt;br /&gt;
NB! Esimese loengu annab &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Antti Andreimann&amp;lt;/font&amp;gt;: Tanel Tammet on konverentsil.&lt;br /&gt;
&lt;br /&gt;
== Kursuse eesmärk ==&lt;br /&gt;
&lt;br /&gt;
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt: &lt;br /&gt;
* html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga. &lt;br /&gt;
* serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.&lt;br /&gt;
* lihtsamad SQLi kasutamise oskused.&lt;br /&gt;
&lt;br /&gt;
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.&lt;br /&gt;
&lt;br /&gt;
== Analoogilised kursused ==&lt;br /&gt;
&lt;br /&gt;
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/ loengumaterjale]) ja I. Liiv (vt [http://innar.li.ttu.ee/index.php?option=displaypage&amp;amp;Itemid=55&amp;amp;op=page&amp;amp;SubMenu= praksimaterjale]), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu [http://deepthought.ttu.ee/it/vorgutarkvara/wav3080/ materjale]), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid [http://enos.itcollege.ee/~aandreim/vr1/latest/ materjale]).&lt;br /&gt;
&lt;br /&gt;
== Praktilised tööd ==&lt;br /&gt;
&lt;br /&gt;
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.&lt;br /&gt;
&lt;br /&gt;
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Hilinenud tööd annavad poole punktidest.&amp;lt;/font&amp;gt; Töid võib (ja on soovitav) esitada enne tähtaega.&lt;br /&gt;
&lt;br /&gt;
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 1. töö: Html põhioskused|Html põhioskused]]. Tähtaeg neljapäev, 15. september.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NB!&amp;lt;/font&amp;gt; Järgmised tööd on näited aastast 2010, praegusel kursusel tehakse neis muutusi, kuid üldjoontes jäävad ülesanded sarnaseks. Tähtajad on juba uued, 2011 aasta jaoks.&lt;br /&gt;
 &lt;br /&gt;
* [[ITV0110 2. töö: CSS, javascript, veebiserver| CSS, javascript, veebiserver]]. Tähtaeg neljapäev, 13. oktoober.&lt;br /&gt;
* [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|Lihtne serverirakendus: vormid ja cgi]]. Tähtaeg neljapäev, 17. november.&lt;br /&gt;
* [[ITV0110 4. töö: Andmebaasiga serverakendus|Andmebaasiga serverakendus]]. Sisuks on väga lihtsakoelise &amp;quot;mini-facebooki&amp;quot; ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg neljapäev, 15. detsember.&lt;br /&gt;
&lt;br /&gt;
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.&lt;br /&gt;
&lt;br /&gt;
== Loengute plaan ja materjalid ==&lt;br /&gt;
&lt;br /&gt;
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sissejuhatus ja meeldetuletus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvuda lühidalt:&lt;br /&gt;
:* Interneti baastehnoloogia IT sissejuhatusest: [[Media:Itsissejuhatus10o08.ppt|Itsissejuhatus10o08.ppt]], [[Media:Itsissejuhatus10o08.pdf|Itsissejuhatus10o08.pdf]].&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/ Raggetti mikrotutorial  algajatele]&lt;br /&gt;
:* head eestikeelsed sissejuhatused [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivilt (pdf)] ja [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkaselt (html)]  &lt;br /&gt;
:* http://www.w3schools.com/.&lt;br /&gt;
:* http://www.w3c.org/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; HTML põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
:* [http://www.w3schools.com/html/default.asp w3schools html tutorial basic blokk].&lt;br /&gt;
Loe lisaks läbi ka&lt;br /&gt;
:* [http://www.w3.org/MarkUp/Guide/Advanced.html Raggetti klassikaline tutorial, eeskätt tabelid]&lt;br /&gt;
:* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi sissejuhatus, eeskätt värvid ja pildid]&lt;br /&gt;
:* [http://www.w3.org/TR/html401/struct/tables.html täiendavat tabelitest ametlikust standardist]&lt;br /&gt;
Tutvu lisaks kasuliku tagide nimistuga:&lt;br /&gt;
:* [http://joshduck.com/periodic-table.html htmli elementide perioodiline tabel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; CSS põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]: : kindlasti &amp;quot;basic&amp;quot; ja &amp;quot;styling&amp;quot; blokid, huvi korral loe edasi (&amp;quot;box model&amp;quot;, &amp;quot;advanced) ka, kuid need viimased ei ole kohustuslikud.&lt;br /&gt;
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus] ja sealtsamast [http://css.maxdesign.com.au/listutorial/index.htm listikasutuse tutorialid]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Javascript põhioskused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)&lt;br /&gt;
&lt;br /&gt;
Vaata soenduseks/demoks [http://www.chromeexperiments.com/ Google kogutud näiteid].&lt;br /&gt;
&lt;br /&gt;
Seejärel loe läbi ja proovi järgi selles järjekorras:&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript Wikipedia javascripti üldartikkel]: ülevaade, ajalugu jne. Keelt siit ei õpi!&lt;br /&gt;
* [http://www.w3schools.com/js/default.asp W3schools javascripti sissejuhatus]: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JavaScript_syntax Wikipedia Javascripti keele kiirõpetus]: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.&lt;br /&gt;
&lt;br /&gt;
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).&lt;br /&gt;
&lt;br /&gt;
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_dom.asp html dom objektid]: põhiasjad&lt;br /&gt;
* [http://www.tizag.com/javascriptT/javascriptform.php form validation]: klassikaline rakendus&lt;br /&gt;
* [http://www.w3schools.com/js/js_ex_browser.asp brauseriobjektid]: vahel kah kasulikud&lt;br /&gt;
&lt;br /&gt;
ja tingimata lugeda sinna juurde teegijuhendeid:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_all.asp  html dom ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_event.asp html events ülevaadet]&lt;br /&gt;
* [http://www.w3schools.com/jsref/dom_obj_style.asp style lugemine/muutmine js-s: hädavajalik reference]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Praktilist teisest praktikumist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas ja kuhu faile serverisse üles laadida jms: loe [[ITV0110 2. töö: CSS, javascript, veebiserver| teise praktikumi materjalidest]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Cgi töötlemine eri keeltes (C, python, bash, java, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt loe ja proovi tingimata ise läbi teha: [[pythoni cgi-d dijkstra serveris: kiire sissejuhatus]]&lt;br /&gt;
&lt;br /&gt;
Tutvu linuxi shelli elementaarsete käskudega [http://www.tuxfiles.org/linuxhelp/linuxcommands.html sellest lühiõpetusest] ja täiendavalt [http://info.ee.surrey.ac.uk/Teaching/Unix/ selle tutoriali] peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks &amp;lt;tt&amp;gt;man ls&amp;lt;/tt&amp;gt;. Huvi korral googelda lisaks.&lt;br /&gt;
&lt;br /&gt;
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
&lt;br /&gt;
ning siis vaata lisaks loengus tehtud/proovitud [[lihtsaid cgi programminäiteid]] eri keeltes.&lt;br /&gt;
&lt;br /&gt;
Cgi jaoks on olemas ka nö [http://www.rfc-editor.org/rfc/rfc3875.txt rfc-standard], mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata&lt;br /&gt;
näiteid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Veebiserveri ehitusest ja konfigureerimisest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* [http://www.jmarshall.com/easy/http/ veel http-st]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida [[Media:Itsissejuhatus_tiny.zip|pisikese veebiserveriga]].&lt;br /&gt;
&lt;br /&gt;
Enimkasutatav veebiserver Apache:&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/ apache oma koduleht]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server wikipedia apachest]&lt;br /&gt;
* [http://news.netcraft.com/archives/category/web-server-survey/ veebiserverite kasutusstatistikat]&lt;br /&gt;
&lt;br /&gt;
Apache konfigureerimisest:&lt;br /&gt;
&lt;br /&gt;
* [http://www.jlk.net/apache/beginners.shtml sissejuhatus algajatele]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.2/ ametlik juhend]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Python ja näiteid kasutamisest serverirakendustes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutvumine kolmanda praktikumiga: [[ITV0110 3. töö: Lihtne serverirakendus: vormid ja cgi|vormid ja cgi]]. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).&lt;br /&gt;
&lt;br /&gt;
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):&lt;br /&gt;
*  loe [http://docs.python.org/tutorial/ tutoriali] algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta) &lt;br /&gt;
*  lisaks [http://docs.python.org/library/cgi.html cgi teegi õpetust].&lt;br /&gt;
* Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!&lt;br /&gt;
* Paljud kasulikud asjad on kirjas Pythoni [http://docs.python.org/library/index.html#library-index teegi dokumentatsioonis].&lt;br /&gt;
* [[Kasulikke pythoni näitejuppe cgi jaoks]]&lt;br /&gt;
* Konkreetsete küsimuste korral aitab tihti googeldamine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Serverirakendused PHP-s, näited&lt;br /&gt;
&lt;br /&gt;
* Väikese ajaloolise ülevaate leiad [http://en.wikipedia.org/wiki/PHP wikipeediast]&lt;br /&gt;
* Põhiõpetus on [http://www.php.net/manual/en/ php oma saidil]: loe sealt kõigepealt [http://www.php.net/manual/en/tutorial.php sissejuhatavat tutoriali]&lt;br /&gt;
* [http://w3schools.com/php/default.asp W3school-si php tutorial] on samuti päris OK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL &lt;br /&gt;
&lt;br /&gt;
Loe selles järjekorras:&lt;br /&gt;
&lt;br /&gt;
* [http://web.njit.edu/~song/courses/is698/SQL_tutorials.ppt hea esimene sissejuhatus]&lt;br /&gt;
* [http://www.w3schools.com/sql/default.asp w3schools&#039;i tutorial]&lt;br /&gt;
* [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html mysql esmane tutorial] ja [http://dev.mysql.com/doc/refman/5.0/en/index.html mysql manuaal]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; SQL serverirakendustes&lt;br /&gt;
&lt;br /&gt;
* Vaata [[lihtsaid php ja mysql näiteid]] loengust.&lt;br /&gt;
* [http://dmsa.concordia.ca/tutorial_files/shortsql.ppt mysql PHP-s: ppt] &lt;br /&gt;
* [http://www.tizag.com/mysqlTutorial/ mysql PHP-s: veebitutorial]&lt;br /&gt;
* [http://blogs.techrepublic.com.com/security/?p=2368 SQL injection] vt ka [http://lh6.ggpht.com/_5YF7KQZuZS0/S6dvFXu5OoI/AAAAAAAACWM/qTcVpMxcDnA/licence%20plate%20camera%20sql%20injection_2%5B3%5D.jpg?imgmax=800 seda] ja [http://www.schneier.com/blog/archives/2010/10/pen-and-paper_s.html seda] ja [http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden seda]&lt;br /&gt;
* [http://www.w3schools.com/php/default.asp w3schools PHP tutorial all vasakul Mysql blokk]&lt;br /&gt;
* [[Vorgurakendused 1 SQL naited loengust]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Sessioonid, cookied, sisselogimine, autentimine&lt;br /&gt;
&lt;br /&gt;
Mõned lingid:&lt;br /&gt;
&lt;br /&gt;
* basic authentication [http://en.wikipedia.org/wiki/Basic_access_authentication wikipedias], [http://httpd.apache.org/docs/2.0/howto/auth.html apache manuaalis] ja [[basic authentication näited]]&lt;br /&gt;
* cookie [http://en.wikipedia.org/wiki/HTTP_cookie wikipedias], php cookie handling [http://w3schools.com/PHP/php_cookies.asp w3schools-st] ja [http://www.php.net/manual/en/function.setcookie.php php manuaalist]&lt;br /&gt;
* [http://oreilly.com/catalog/webdbapps/chapter/ch08.html ok sessiooniõpetus]&lt;br /&gt;
* php sessioonihandling [http://w3schools.com/PHP/php_sessions.asp w3schools] ja siit [http://ee.php.net/manual/en/book.session.php php mahukas sessiooni-manuaal] ja siit [http://www.tizag.com/phpT/phpsessions.php eraldi tutorial]&lt;br /&gt;
* väike [http://www.secologic.org/downloads/web/051123_eurosec_course_material_on_web_application_session_management.ppt ok sessioonihalduse tutorial]&lt;br /&gt;
* [[autentimise näide php sessiooniga]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ajax&lt;br /&gt;
&lt;br /&gt;
* Loe seotud tehnoloogiatest: [http://en.wikipedia.org/wiki/Ajax_%28programming%29 wikipedia ajax], [http://en.wikipedia.org/wiki/XMLHttpRequest wikipedia xmlhttprequest], [http://en.wikipedia.org/wiki/JSON wikipedia json]&lt;br /&gt;
* [[xmlhttprequest ja jsonile rakendatud eval näited]]&lt;br /&gt;
&lt;br /&gt;
== Vajalikud tööriistad ==&lt;br /&gt;
&lt;br /&gt;
* [http://notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
&lt;br /&gt;
== Lugemismaterjale ==&lt;br /&gt;
&lt;br /&gt;
Üldist:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3schools.com/ Mitu head tutoriali eri teemadel]&lt;br /&gt;
* [http://www.websitetips.com/ suur kogu häid tutoriale, artikleid ja soovitusi]&lt;br /&gt;
* Lisamaterjale kursusest [[Kasutajaliidesed võrgutehnoloogia baasil]]&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/ Raggetti tutorial  algajatele]&lt;br /&gt;
* [http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng3 Kaido Kikkase hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://innar.li.ttu.ee/failid/VR_2006.pdf Innar Liivi hea eestikeelne sissejuhatus] &lt;br /&gt;
* [http://www.w3schools.com/html/ w3schools&#039;i põhjalik html tutorial]&lt;br /&gt;
* [http://joshduck.com/periodic-table.html tore tagide nimistu]&lt;br /&gt;
* [http://www.w3.org/TR/html4/ HTML 4.01 ametlik standard]&lt;br /&gt;
* [http://www.w3.org/TR/html5/ HTML 5.0 ametlik draft]&lt;br /&gt;
&lt;br /&gt;
HTML+CSS+Javascript:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/MarkUp/Guide/Style.html First CSS intro]&lt;br /&gt;
* [http://www.w3schools.com/css/ w3schools&#039;i css tutorial]&lt;br /&gt;
* [http://www.w3schools.com/js/ w3schools&#039;i javascripti tutorial]&lt;br /&gt;
&amp;lt;!-- * [http://www.somacon.com/p141.php Asjalik &amp;quot;wizard&amp;quot; tabelite kujundamiseks] --&amp;gt;&lt;br /&gt;
* [http://www.alistapart.com/  A list apart]&lt;br /&gt;
* [http://css.maxdesign.com.au/listamatic/  listikasutus]&lt;br /&gt;
&lt;br /&gt;
HTTP &lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol http wikipedias]&lt;br /&gt;
* http://www.jmarshall.com/easy/http/&lt;br /&gt;
* [http://www.w3.org/Protocols/HTTP/AsImplemented.html T. Berners-Lee leiutatud esimene HTTP spec]&lt;br /&gt;
* [http://www.garshol.priv.no/download/text/http-tut.html hea väike HTTP ja CGI tutorial]&lt;br /&gt;
* [http://www.factini.com/c/httpViewer/ headerite jms vaatamise veebiabivahend]&lt;br /&gt;
&lt;br /&gt;
CGI programmid serveris&lt;br /&gt;
&lt;br /&gt;
* [http://www.jmarshall.com/easy/cgi/ lihtne sissejuhatus cgi-desse]&lt;br /&gt;
* [[Media:cgi.pdf|cgi.pdf: detailsem juhend]]&lt;br /&gt;
* [http://www.whizkidtech.redprince.net/cgi-bin/tutorial cgi esmane sissejuhatus Bashi näidetega]&lt;br /&gt;
* [http://www.cs.tut.fi/~jkorpela/forms/cgic.html cgi C keeles]&lt;br /&gt;
* [http://webpython.codepoint.net/cgi_tutorial cgi Pythonis]&lt;br /&gt;
* [http://www.yolinux.com/TUTORIALS/BashShellCgi.html cgi Bashis]&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
&lt;br /&gt;
PHP ja MySQL&lt;br /&gt;
&lt;br /&gt;
* http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php&lt;br /&gt;
* http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html&lt;br /&gt;
&lt;br /&gt;
Veebiserverid:&lt;br /&gt;
&lt;br /&gt;
* [[Media:Itsissejuhatus_tiny.zip|Tiny www server]] ja [[lihtsaid cgi programminäiteid]]&lt;br /&gt;
* http://www.devside.net/guides/windows/apache&lt;br /&gt;
* http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/&lt;br /&gt;
* http://www.yolinux.com/TUTORIALS/LinuxTutorialWebSiteConfig.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Kursus]]&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5693</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5693"/>
		<updated>2010-12-17T15:33:13Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Lab 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;br /&gt;
&lt;br /&gt;
=== Lab 9 ===&lt;br /&gt;
&lt;br /&gt;
Start by implementing proper network topology:&lt;br /&gt;
* Create a CSMA(ring) network for each location (5 networks in total)&lt;br /&gt;
* Set the speed to 100Mbit/s&lt;br /&gt;
* Create 3 nodes for each location (2 servers, 1 router)&lt;br /&gt;
* Connect nodes to their respective networks&lt;br /&gt;
* Create another CSMA(ring) network to mimic the internet core&lt;br /&gt;
* Create 6 nodes to act as core routers on that network&lt;br /&gt;
** one for each simulated location&lt;br /&gt;
** an &amp;quot;extra&amp;quot; router that all attackers will be connected to&lt;br /&gt;
* Set the speed of the internet core to 10Gbit/s&lt;br /&gt;
* Connect location routers to respective core routers via Point-to-Point links&lt;br /&gt;
* Set the speed of those Point-to-Point links to 10Mbit/s&lt;br /&gt;
* Create 20 attacker nodes (just to speed up testing and development, You can increase that number to 1000 later)&lt;br /&gt;
* Connect all attacker nodes to the &amp;quot;extra&amp;quot; core router with point-to-point links&lt;br /&gt;
* Set the speed of attacker links to 1Mbit/s&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5062</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5062"/>
		<updated>2010-12-17T15:30:45Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Lab 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;br /&gt;
&lt;br /&gt;
=== Lab 9 ===&lt;br /&gt;
&lt;br /&gt;
Start by implementing proper network topology:&lt;br /&gt;
* Create a csma (ring) network for each location (5 networks in total)&lt;br /&gt;
* Set speed of the local network to 100Mbit/s&lt;br /&gt;
* Create 3 nodes for each location (2 servers, 1 router)&lt;br /&gt;
* Connect the nodes to their respective networks&lt;br /&gt;
* Create another CSMA(ring) network to mimic the core network&lt;br /&gt;
* Create 6 nodes to act as routers on that network&lt;br /&gt;
** one for each simulated location&lt;br /&gt;
** an &amp;quot;extra router&amp;quot; that all attackers will be connected to&lt;br /&gt;
* Set the speed of the core network to 10Gbit/s&lt;br /&gt;
* Connect location routers to &amp;quot;core&amp;quot; routers via Point-to-Point links&lt;br /&gt;
* Set the speed of those Point-to-Point links to 10Mbit/s&lt;br /&gt;
* Create 20 attacker nodes (just to speed up testing and development, You can increase that number to 1000 later)&lt;br /&gt;
* Connect all attacker nodes to the &amp;quot;extra&amp;quot; core router with point-to-point links&lt;br /&gt;
* Set the speed of attacker links to 1Mbit/s&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5061</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5061"/>
		<updated>2010-12-17T15:30:30Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;br /&gt;
&lt;br /&gt;
=== Lab 9 ===&lt;br /&gt;
&lt;br /&gt;
Start by implementing proper network topology:&lt;br /&gt;
* Create a csma (ring) network for each location (5 networks in total)&lt;br /&gt;
* Set speed of the local network to 100Mbit/s&lt;br /&gt;
* Create 3 nodes for each location (2 servers, 1 router)&lt;br /&gt;
* Connect the nodes to their respective networks&lt;br /&gt;
* Create another CSMA(ring) network to mimic the core network&lt;br /&gt;
* Create 6 nodes to act as routers on that network&lt;br /&gt;
 * one for each simulated location&lt;br /&gt;
 * an &amp;quot;extra router&amp;quot; that all attackers will be connected to&lt;br /&gt;
* Set the speed of the core network to 10Gbit/s&lt;br /&gt;
* Connect location routers to &amp;quot;core&amp;quot; routers via Point-to-Point links&lt;br /&gt;
* Set the speed of those Point-to-Point links to 10Mbit/s&lt;br /&gt;
* Create 20 attacker nodes (just to speed up testing and development, You can increase that number to 1000 later)&lt;br /&gt;
* Connect all attacker nodes to the &amp;quot;extra&amp;quot; core router with point-to-point links&lt;br /&gt;
* Set the speed of attacker links to 1Mbit/s&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5060</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5060"/>
		<updated>2010-12-16T19:18:36Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture1 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture5&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5059</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5059"/>
		<updated>2010-12-16T13:38:58Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
Alexandra: 1 point - best lab 8-2 report.&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --vis=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture2&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5058</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=5058"/>
		<updated>2010-12-03T18:38:45Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points awarded so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 points - best solutions developed during lab 8-1&lt;br /&gt;
&lt;br /&gt;
Jeremy: 1 point - best solution developed during lab 8-2&lt;br /&gt;
&lt;br /&gt;
Christopher: 1 point - best lab 8-1 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --vis=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture2&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4979</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4979"/>
		<updated>2010-12-03T18:36:55Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points awarded so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 2 points - best solutions developed during lab 8-1 and 8-2&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --vis=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture2&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4978</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4978"/>
		<updated>2010-12-03T17:33:43Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* NS-3 (GPL Licensed) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 point - best solution developed during lab 8&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get itx8080 samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-tty-v2.tar.gz&lt;br /&gt;
&lt;br /&gt;
Run the samples&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
 ./waf --run &amp;quot;examples/tty/lecture2 --vis=1&amp;quot;&lt;br /&gt;
 ./waf --run examples/tty/lecture2&lt;br /&gt;
&lt;br /&gt;
Look at the generated files: wantraffic*&lt;br /&gt;
&lt;br /&gt;
Now create a new simulation that uses TCP networking instead of UDP. Refer to examples in examples/tcp.&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4977</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4977"/>
		<updated>2010-12-03T16:26:51Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Lab 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 point - best solution developed during lab 8&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
Run Example visualizations&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-wired-bridging --viz=1&amp;quot;&lt;br /&gt;
 ./waf --run &amp;quot;examples/wireless/wifi-ap --viz=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get Lab samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-lecture1.tar.gz &lt;br /&gt;
&lt;br /&gt;
Run the first sample&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4976</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4976"/>
		<updated>2010-12-03T15:41:11Z</updated>

		<summary type="html">&lt;p&gt;Anttix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 point - best solution developed during lab 8&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
Run Example visualization&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
&lt;br /&gt;
Get Lab samples from:&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ns3-lecture1.tar.gz &lt;br /&gt;
&lt;br /&gt;
Run the first sample&lt;br /&gt;
 ./waf --run examples/tty/lecture1&lt;br /&gt;
&lt;br /&gt;
If You are unable to install the stuff, You may get an&lt;br /&gt;
Ubuntu VM with all of the stuff preinstalled from&lt;br /&gt;
&lt;br /&gt;
http://www.tud.ttu.ee/~anttix/lab8/ubuntu10.04-omnetpp_ns3.vdi&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4975</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4975"/>
		<updated>2010-11-26T18:58:26Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Points awarded so far */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
Stefan: 1 point - best solution developed during lab 8&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
Run Example visualization&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4952</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4952"/>
		<updated>2010-11-26T17:10:29Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* NS-3 (GPL Licensed) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
Run Example visualization&lt;br /&gt;
 cd ns-3.9-pyviz&lt;br /&gt;
 ./waf --pyrun examples/flowmon/wifi-olsr-flowmon.py&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4951</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4951"/>
		<updated>2010-11-26T17:01:49Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* OMNet++ (Free for academic use only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4950</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4950"/>
		<updated>2010-11-26T16:59:24Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Install OMNeT++ INET framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file in the &amp;quot;If you are using the IDE&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ HttpTools framework ======&lt;br /&gt;
# Follow the instructions: http://code.google.com/p/omnet-httptools/wiki/buildAndInstall&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4949</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4949"/>
		<updated>2010-11-26T16:41:16Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Install OMNeT++ HttpTools framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ HttpTools framework ======&lt;br /&gt;
# Follow the instructions: http://code.google.com/p/omnet-httptools/wiki/buildAndInstall&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4948</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4948"/>
		<updated>2010-11-26T16:40:09Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* OMNet++ (Free for academic use only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
====== Install OMNeT++ ======&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ HttpTools framework ======&lt;br /&gt;
# Follow instructions in http://code.google.com/p/omnet-httptools/#Get_the_source&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4947</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4947"/>
		<updated>2010-11-26T16:39:42Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* Install INET framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file&lt;br /&gt;
&lt;br /&gt;
====== Install OMNeT++ HttpTools framework ======&lt;br /&gt;
# Follow instructions in http://code.google.com/p/omnet-httptools/#Get_the_source&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4946</id>
		<title>ITX8080</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=ITX8080&amp;diff=4946"/>
		<updated>2010-11-26T16:33:59Z</updated>

		<summary type="html">&lt;p&gt;Anttix: /* OMNet++ (Free for academic use only) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General Information =&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
Lecture TH 12:00 - 13:30&lt;br /&gt;
&lt;br /&gt;
Practice FR 14:00 - 17:30&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
Discussinons will be held at: itx8080 atatat googlegroups.com&lt;br /&gt;
&lt;br /&gt;
Send e-mail to hannesa at-no-spam-please gmail.com for an invitation.&lt;br /&gt;
&lt;br /&gt;
The lecturers can be reached via the course coordinator: &lt;br /&gt;
&lt;br /&gt;
antti.andreimann only-people-please eesti.ee&lt;br /&gt;
&lt;br /&gt;
== Points awarded so far ==&lt;br /&gt;
&lt;br /&gt;
Arnis : 3 points - ab testing solution, best countermeasure proposed for scenario 4, best snort rules proposed for scenario 6&lt;br /&gt;
&lt;br /&gt;
Igor : 3 points - wordpress virtualization solution, lab 3 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Kaarel : 2 points - lab 1 report and conclusions, lab 3 solution&lt;br /&gt;
&lt;br /&gt;
Märt : 3 points - wordpress testing procedure, best wordpress optimization (wp-cache + php-apc), best lab 2 report.&lt;br /&gt;
&lt;br /&gt;
Roland: 2 points - best Lab 4 report, IDS testing solution&lt;br /&gt;
&lt;br /&gt;
Hannes: 1 point - best lab 6 report&lt;br /&gt;
&lt;br /&gt;
Siim: 1 point - most popular scenario 7 solution&lt;br /&gt;
&lt;br /&gt;
Urmas: 2 points - lab 5 report, the set of viruses used in lab 7&lt;br /&gt;
&lt;br /&gt;
Martti: 1 point - best lab 7 report&lt;br /&gt;
&lt;br /&gt;
= Scenarios =&lt;br /&gt;
&lt;br /&gt;
== Scenario 1 ==&lt;br /&gt;
There is a Wordpress based blog.&lt;br /&gt;
&lt;br /&gt;
The client is worried: How many visitors can they handle before they die.&lt;br /&gt;
&lt;br /&gt;
Establish a baseline: How many page displays per second AT LEAST we can handle.&lt;br /&gt;
Disruption of the site operation is NOT acceptable.&lt;br /&gt;
&lt;br /&gt;
Minimal budget!&lt;br /&gt;
&lt;br /&gt;
Be as detailed and technical as You possibly can.&lt;br /&gt;
&lt;br /&gt;
Post to the discussion group the following information:&lt;br /&gt;
&lt;br /&gt;
# Detailed description of the simulation of the site. eg. if You&#039;re going to virtualize it then how? If You are running it as a process, then how You separate it from the real machine?&lt;br /&gt;
# Detailed description of the attack / benchmark tools picked. Where You are going to run them? What tools? How many copies? How you are going to collect the results?!!!&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Benchmarking:&lt;br /&gt;
* AB - Discussed in lecture&lt;br /&gt;
* http://tsung.erlang-projects.org - Jérémy&lt;br /&gt;
* wget + AB - Arnis&lt;br /&gt;
* http://jakarta.apache.org/jmeter/ - Roland, Jérémy&lt;br /&gt;
* http://grinder.sourceforge.net/ - Märt&lt;br /&gt;
* http://httpd.apache.org/test/flood/ - Hannes&lt;br /&gt;
* Normal monitoring software on live server - Urmas&lt;br /&gt;
&lt;br /&gt;
Simulation of the system:&lt;br /&gt;
* VirtualBox - Roland, Jérémy&lt;br /&gt;
* VMWare ESX - Igor&lt;br /&gt;
* VMWare Player - Marina&lt;br /&gt;
* Amazon EC2 - Märt&lt;br /&gt;
* KVM - Siim&lt;br /&gt;
* Original hardware - Hannes&lt;br /&gt;
&lt;br /&gt;
=== Lab 1 ===&lt;br /&gt;
We will need to create two different virtual machines, one is going to be the wordpress server and the 2nd one is the client which is used to attack the server. It&#039;s probably easiest to install only one image and then clone it.&lt;br /&gt;
&lt;br /&gt;
Hard disk image cloning is best done with&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 VBoxManage clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; clonehd FirstUbuntu.vdi SecondUbuntu.vdi&lt;br /&gt;
&lt;br /&gt;
After cloning the image create another virtual machine and attach the 2nd disk to that machine. As the result there will be two different virtual machines with two different virtual hard disks.&lt;br /&gt;
&lt;br /&gt;
To be able to connect between the two virtual machines, You need to add an&lt;br /&gt;
additional network adapter to both hosts. It can be either &amp;quot;Host Only&amp;quot; or&lt;br /&gt;
&amp;quot;Internal&amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
To enable the new adapters in Ubuntu edit the file: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
== Scenario 2 ==&lt;br /&gt;
Design a method for evaluating any speedup solutions for the wordpress.&lt;br /&gt;
A repeatable process to evaluate the claims.&lt;br /&gt;
Whatever optimizations.&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
The method must specify the level performance&lt;br /&gt;
at which the site is considered DEAD.&lt;br /&gt;
Budget requirements: Low - Dedicated machine + dedicated tester.&lt;br /&gt;
&lt;br /&gt;
=== Lab 2 ===&lt;br /&gt;
* Get Virtual machine disk image and instructions from: http://www.tud.ttu.ee/~anttix/lab2/ &amp;lt;br /&amp;gt; &#039;&#039;&#039;NB! DO NOT DOWNLOAD IMAGE FROM THE LINK NOTED IN INSTRUCTIONS PDF, IT WILL BE SLOW&#039;&#039;&#039;&lt;br /&gt;
* Fix bug in image (see below)&lt;br /&gt;
* Measure the effect of these wordpress plugins:&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache]&lt;br /&gt;
** [http://wordpress.org/extend/plugins/wp-cache/ WP-Cache]&lt;br /&gt;
* Devise Your own optimizations for the site&lt;br /&gt;
&lt;br /&gt;
 Bug in image: the ip address of the VM is saved in WP database as 192.168.56.3&lt;br /&gt;
 It is advised tu run the Target VM first and run the &amp;quot;sudo dhclient&amp;quot; command first in Target VM.&lt;br /&gt;
 Then check active IP of target by command &amp;quot;ifconfig&amp;quot;.  If it is not 192.168.56.3, then situation can be fixed by running:&lt;br /&gt;
 &lt;br /&gt;
 In Target VM: &amp;quot;sudo ifconfig eth2 192.168.56.3&amp;quot;&lt;br /&gt;
 In Client VM: &amp;quot;sudo ifconfig eth2 192.168.56.4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== A note to Windows users ====&lt;br /&gt;
Use this command line to access VBoxManage program&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Wordpress Admin access ====&lt;br /&gt;
 Username: admin&lt;br /&gt;
 Password: QIaTemvskSeM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note to Ubuntu users ====&lt;br /&gt;
VirtualBox with WiFi Does NOT work properly http://ubuntuforums.org/showthread.php?t=782936&lt;br /&gt;
&lt;br /&gt;
== Scenario 3 ==&lt;br /&gt;
Your client is worried about some stuff posted on a blog. They ask You to take care of it.&lt;br /&gt;
They have a throwaway &amp;quot;script kiddie&amp;quot; in a third world country, who will mount the attack&lt;br /&gt;
so You don&#039;t need to worry about hiding the attackers identity.&lt;br /&gt;
&lt;br /&gt;
Devise a way to attack a wordpress (default installation) based site to render it&lt;br /&gt;
unusable (page view times over 60 seconds).&lt;br /&gt;
&lt;br /&gt;
Attack resources: one PC, a script kiddie, internet connection of 2Mbit/s.&lt;br /&gt;
&lt;br /&gt;
How are we going to evaluate the solutions?&lt;br /&gt;
* Easy to use instructions&lt;br /&gt;
* The most efficient use of available resources&lt;br /&gt;
&lt;br /&gt;
Defacing will count, IF it works for the latest version of wordpress.&lt;br /&gt;
&lt;br /&gt;
=== Lab 3 ===&lt;br /&gt;
Possible attacks:&lt;br /&gt;
&lt;br /&gt;
* Brute force overload (AB or other benchmark), bang the slowest page possible.&lt;br /&gt;
* Connection flood (slowloris)&lt;br /&gt;
* SYN Flood (eg. with hping)&lt;br /&gt;
* Banging expensive operations (eg. adding big comments)&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Scenario 4 ==&lt;br /&gt;
Develop countermeasures for the attacks simulated in Lab 3.&lt;br /&gt;
&lt;br /&gt;
Limitations:&lt;br /&gt;
* No additional hardware&lt;br /&gt;
* No reactive measures&lt;br /&gt;
&lt;br /&gt;
=== Lab 4 ===&lt;br /&gt;
&lt;br /&gt;
Evaluate the countermeasures against attacks.&lt;br /&gt;
The countermeasures must not have negative effects&lt;br /&gt;
on &amp;quot;normal usage pattern&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Normal usage pattern is defined as:&lt;br /&gt;
* Bursts of 10 connections per IP address in 1 second&lt;br /&gt;
* Page load times not over 20 seconds&lt;br /&gt;
&lt;br /&gt;
== Scenario 5 ==&lt;br /&gt;
Create a solution and instructions for testing IDS&lt;br /&gt;
systems against the wordpress site and attacks&lt;br /&gt;
tried in lab 3.&lt;br /&gt;
&lt;br /&gt;
A repeatable process to evaluate vendor claims.&lt;br /&gt;
Whatever passive IDS system delivered as a VM or a dedicated box.&lt;br /&gt;
&lt;br /&gt;
Creating the IDS system itself is out of scope.&lt;br /&gt;
&lt;br /&gt;
The process must be detailed enough so that somebody else can get the same results when applying that.&lt;br /&gt;
The &amp;quot;other person&amp;quot; is expected to have IT knowledge sufficient to install and run a Linux desktop.&lt;br /&gt;
&lt;br /&gt;
Budget requirements: Modest - 2 Dedicated machines + dedicated tester + networking equipment to connect these together.&lt;br /&gt;
&lt;br /&gt;
The process must test at least the following:&lt;br /&gt;
* Port scan&lt;br /&gt;
* SYN flood&lt;br /&gt;
* slowloris/pyloris&lt;br /&gt;
* Ab overwhelming attack&lt;br /&gt;
&lt;br /&gt;
=== Lab 5 ===&lt;br /&gt;
Instructions for installing Snort IDS and its web GUI called &#039;acidbase&#039;: https://help.ubuntu.com/community/SnortIDS&lt;br /&gt;
&lt;br /&gt;
== Scenario 6 ==&lt;br /&gt;
&lt;br /&gt;
Develop/download/find/whatever a SNORT configuration (rulesets, preprocessors, whatever)&lt;br /&gt;
that performs better than the default configuration in lab 5 tests.&lt;br /&gt;
By better we mean:&lt;br /&gt;
* Less false positives&lt;br /&gt;
* Less false negatives&lt;br /&gt;
* The objectives are contradictory so the rule of thumb is one false negative per 10 false positives eg. solution with 10 false positives and 2 false negatives is better than the solution with 100 false positives and 1 false negatives, but the solution with 10 false positives and 1 false negative is better than the solution with 1 false positive and 2 false negatives.&lt;br /&gt;
* Attack is defined by a single invocation of the test script.&lt;br /&gt;
&lt;br /&gt;
== Scenario 7 ==&lt;br /&gt;
&lt;br /&gt;
There is a new remote vulnerability in Windows.&lt;br /&gt;
You became aware of a new virus that targets this vulnerability at 7 PM.&lt;br /&gt;
The antivirus vendor has released an updated virus database, but it&#039;s probably not installed&lt;br /&gt;
on all of the computers yet. Your company has 500 employees, with half of them running on laptops. You have to decide in 12 hours, if You need to collect all the employee&#039;s laptops in the morning.&lt;br /&gt;
&lt;br /&gt;
Collecting the laptops has a high cost in lost employee productivity: There will be a queue of laptops waiting to be inspected. You can assume that all of the laptops can be inspected in half a day.&lt;br /&gt;
&lt;br /&gt;
Limits: You can not mitigate the risk by changing the network configuration, You do not know how many laptops are still in the building. You can not take the servers offline.&lt;br /&gt;
&lt;br /&gt;
Resources: 5 workers, some networking equipment, real servers (you can not disrupt those), &amp;quot;samples&amp;quot; of existing systems: a few spare workstations, a few spare laptops, &lt;br /&gt;
&lt;br /&gt;
What do You know about the virus?&lt;br /&gt;
* It disables antivirus software&lt;br /&gt;
* It disables automatic software updates&lt;br /&gt;
* It can be cleaned up only manually in about 1 manhour&lt;br /&gt;
&lt;br /&gt;
You need to develop an action plan:&lt;br /&gt;
* What You test in those scarce 12 hours?&lt;br /&gt;
* How?&lt;br /&gt;
* How do You weigh the results to make the decision?&lt;br /&gt;
* The plan itself must be short and easy to understand so You can write it on a whiteboard.&lt;br /&gt;
* Justifications for the specific actions go to a separate file/document.&lt;br /&gt;
&lt;br /&gt;
=== Lab 7 ===&lt;br /&gt;
* Get viruses and XP install ISO-s from http://www.tud.ttu.ee/~anttix/lab7/&lt;br /&gt;
** Password for the protected zip: doomsday&lt;br /&gt;
* Alternatively, get Siims image&lt;br /&gt;
* Set up 5 VMS and connect them to a private network (or Host-Only network if You can&#039;t configure private nets):&lt;br /&gt;
** Plain old XP without any virus scanner (clean)&lt;br /&gt;
** Plain old XP with a virus scanner eg Avast (clean)&lt;br /&gt;
** Windows XP SP3, no virus scanner (clean)&lt;br /&gt;
** Plain old XP without any virus scanner (infected)&lt;br /&gt;
** Ubuntu Linux with tcpdump running&lt;br /&gt;
* If You have enogh time You can either:&lt;br /&gt;
** Find some more Worms and unleash them on Your virtual network (thanx to Urmas for those links)&lt;br /&gt;
*** http://vx.netlux.org/&lt;br /&gt;
*** http://www.excellentcontent.com/xbart/cbezels/&lt;br /&gt;
*** http://hacker-mc.blogspot.com/2008/12/pacoto-hacker.html&lt;br /&gt;
*** http://www.rohitab.com/discuss/oldfiles/&lt;br /&gt;
** Try to install Windows XP while it is connected to the infected network and see if You manage to install patches or antivirus before getting infected.&lt;br /&gt;
&lt;br /&gt;
Measure the time it takes for the virus to penetrate the machines.&lt;br /&gt;
Note if virus scanner was able to catch the virus even if the underlying flaw in&lt;br /&gt;
windows wasn&#039;t patched.&lt;br /&gt;
Test if the SP3 version is immune to attacks originating from the network,&lt;br /&gt;
even when virus scanner is not installed.&lt;br /&gt;
&lt;br /&gt;
== Scenario 8 ==&lt;br /&gt;
&lt;br /&gt;
Find a solution to simulate a network of 300 PC-s in a single corporate environment, accessing a software update service at once.&lt;br /&gt;
&lt;br /&gt;
Determine the load on primary internet connection and the router.&lt;br /&gt;
Assume that updates server will be able to keep up.&lt;br /&gt;
&lt;br /&gt;
Tools to consider&lt;br /&gt;
* [http://www.ssfnet.org/homePage.html SSFNet]&lt;br /&gt;
* [http://www.omnetpp.org/ OMNeT++]&lt;br /&gt;
&lt;br /&gt;
Additional resources&lt;br /&gt;
* [http://www.ssfnet.org/Exchange/gallery/index.html SSFNet module gallery]&lt;br /&gt;
* [http://code.google.com/p/omnet-httptools/ omnet-httptools]&lt;br /&gt;
&lt;br /&gt;
=== Lab 8 ===&lt;br /&gt;
==== OMNet++ (Free for academic use only) ====&lt;br /&gt;
# Compile OMNet++ using these instructions: http://omnetpp.org/doc/omnetpp41/InstallGuide.pdf&lt;br /&gt;
# Run omnetpp IDE&lt;br /&gt;
# Choose Tutorials-&amp;gt;Tic-toc tutorial from welcome page to open Tutorial documentation. Welcome page can be accessed from Help menu if You have accidentally closed it.&lt;br /&gt;
# Choose Go to workbench&lt;br /&gt;
# Click on tictoc in &amp;quot;Project Explorer&amp;quot; (on left hand pane)&lt;br /&gt;
# Choose Project-&amp;gt;Open Project&lt;br /&gt;
# Choose Project-&amp;gt;Build All&lt;br /&gt;
&lt;br /&gt;
====== Install INET framework ======&lt;br /&gt;
# Download https://github.com/downloads/inet-framework/inet/inet-20100723-src.tgz&lt;br /&gt;
# Create a directory named omnetpp-workspace and unpack inet-20100723-src.tgz in that directory.&lt;br /&gt;
# Switch Eclipse workspace to the newly-created directory: File -&amp;gt; Switch Workspace and select omnetpp-workspace.&lt;br /&gt;
# Follow instructions in omnetpp-workspace/inet/INSTALL file&lt;br /&gt;
&lt;br /&gt;
==== NS-3 (GPL Licensed) ====&lt;br /&gt;
Install all dependencies according to instructions [http://www.nsnam.org/wiki/index.php/Installation here] and [http://www.nsnam.org/wiki/index.php/PyViz here]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Do not clone or compile anything yet&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clone NS-3 repositories&lt;br /&gt;
 hg clone http://code.nsnam.org/ns-3-allinone&lt;br /&gt;
 cd ns-3-allinone&lt;br /&gt;
 ./download.py -n gjc/ns-3.9-pyviz&lt;br /&gt;
&lt;br /&gt;
Build NS-3&lt;br /&gt;
 ./build.py&lt;br /&gt;
&lt;br /&gt;
Read the introduction slides during the build :)&lt;br /&gt;
* http://www.nsnam.org/tutorials/geni-tutorial-part1.pdf&lt;br /&gt;
* http://www.nsnam.org/tutorials.html&lt;br /&gt;
&lt;br /&gt;
== Scenario 9 ==&lt;br /&gt;
&lt;br /&gt;
Simulate a DDoS attack against a network of web servers.&lt;br /&gt;
&lt;br /&gt;
* 2 types of attacks&lt;br /&gt;
** SYN Flood&lt;br /&gt;
** &amp;quot;AB&amp;quot; style attack&lt;br /&gt;
&lt;br /&gt;
Assumptions:&lt;br /&gt;
* 1000 &amp;quot;infected&amp;quot; hosts performing the attack&lt;br /&gt;
* 10 web servers, located in 5 locations&lt;br /&gt;
* The infected host only attacks one server&lt;br /&gt;
* The target to attack is selected randomly&lt;br /&gt;
* Assume that servers can keep up with the flood&lt;br /&gt;
* Data transferred during each connection is about 500kb&lt;br /&gt;
&lt;br /&gt;
Objectives:&lt;br /&gt;
* Assess the bandwidth these attacks consume in each location&lt;br /&gt;
&lt;br /&gt;
You can only implement a subset of constraints and assumptions.&lt;br /&gt;
Do as much as You can, maybe others have done even less :D&lt;/div&gt;</summary>
		<author><name>Anttix</name></author>
	</entry>
</feed>