<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Blog of Max Horvath</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.maxhorvath.com/atom.xml" />
    <id>tag:www.maxhorvath.com,2008-03-19://1</id>
    <updated>2008-11-04T13:58:17Z</updated>
    <subtitle>For more quality in software products ...</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>Problems when upgrading to Ubuntu 8.10 - Kernel panic - Unable to mount root fs</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/11/problems-when-upgrading-to-ubuntu-810-kernel-panic-unable-to-mount-root-fs.html" />
    <id>tag:www.maxhorvath.com,2008://1.26</id>

    <published>2008-11-04T13:46:12Z</published>
    <updated>2008-11-04T13:58:17Z</updated>

    <summary>Yesterday I was upgrading my laptop at work from Ubuntu 8.04 to the newly released version 8.10. I had no errors in this version using the LiveCD. But when I restarted the computer and tried to run Ubuntu 8.10 I had this problem:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="fix" label="Fix" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grub" label="Grub" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="intrepidibex" label="Intrepid Ibex" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kernelpanic" label="Kernel Panic" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ubuntu" label="Ubuntu" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
Yesterday I was upgrading my laptop at work from <a href="http://www.ubuntu.com/">Ubuntu</a> 8.04 to the newly released version 8.10. I had no errors in this version using the LiveCD. But when I restarted the computer and tried to run Ubuntu 8.10 I had this problem:
</p>

<textarea name="code" class="html:nogutter:nocontrols" cols="60" rows="10">
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
</textarea>

<p>
Using the newest kernel of Ubuntu Hardy (8.04) - version 2.6.24-21 - I could still boot really nicely into the new system.
</p>

<p>
Booting into Ubuntu 8.10 using the LiveCD and its kernel 2.6.27-7, there where also no problems at all.
</p>

<p>
After some googling I found the quite silly solution. Turns out the script that updated the /boot/grub/menu.lst didn't include the initrd line for some insane reason. So, in menu.lst I had:
</p>

<textarea name="code" class="html:nogutter:nocontrols" cols="60" rows="10">
...
title           Ubuntu 8.10, kernel 2.6.27-7-generic
root            (hd0,4)
kernel          /boot/vmlinuz-2.6.27-7-generic root=UUID=********-****-****-****-************ ro splash
...
</textarea>

<p>
No initrd line! Just add the initrd line so it looks like this:
</p>

<textarea name="code" class="html:nogutter:nocontrols" cols="60" rows="10">
...
title           Ubuntu 8.10, kernel 2.6.27-7-generic
root            (hd0,4)
kernel          /boot/vmlinuz-2.6.27-7-generic root=UUID=********-****-****-****-************ ro
initrd          /boot/initrd.img-2.6.27-7-generic
splash
...
</textarea>

<p>
Almost too obvious. Well, I hope the folks at the ubuntu team will be fixing the grub update script quite soon to include the initrd line again.
</p>

<p>
Don't forget to change your UUID to suit you. You can find out what the UUID of a file system is with the vol_id command. For example "vol_id /dev/sda1". You can always discard the UUID, and just use root=/dev/sda<strong>x</strong>.
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Protecting your MySQL database from SQL injection attacks with GreenSQL</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/09/protecting-your-mysql-database-from-sql-injection-attacks-with-greensql.html" />
    <id>tag:www.maxhorvath.com,2008://1.17</id>

    <published>2008-09-05T15:15:00Z</published>
    <updated>2008-10-31T17:49:48Z</updated>

    <summary>SQL injection attacks can allow hackers to execute arbitrary SQL commands on your database through your website. To avoid these attacks, every piece of data supplied to your web application, either via a web form or via web services, or other means, must be validated to not contain information that is not expected. GreenSQLis a firewall for SQL - it sits between your Website and your MySQL database server and decides which SQL statements should and should not be executed.</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="greensql" label="GreenSQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="MySQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="security" label="Security" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>
<a href="http://en.wikipedia.org/wiki/SQL_injection" onClick="javascript: pageTracker._trackPageview ('/outgoing/wikipedia.org');">SQL injection</a> attacks can allow hackers to execute arbitrary SQL commands on your database through your website. To avoid these attacks, every piece of data supplied to your web application, either via a web form or via web services, or other means, must be validated to not contain information that is not expected.
</p>

<p>
<a href="http://www.greensql.net/" onClick="javascript: pageTracker._trackPageview ('/outgoing/greensql.net');">GreenSQL</a> is a firewall for SQL - it sits between your Website and your <a href="http://www.mysql.com/" onClick="javascript: pageTracker._trackPageview ('/outgoing/mysql.com');">MySQL</a> database server and decides which SQL statements should and should not be executed. GreenSQL is distributed under the GPL license.
</p>

<h3><strong><big>Introduction</big></strong></h3>

<p>
GreenSQL is a proxy for MySQL databases. Web applications should connect to GreenSQL which will forward legitimate SQL queries to your MySQL database, after running the query through a filter. The result of the query will be returned though GreenSQL, too (it is a proxy). If GreenSQL detects a query that is not whitelisted and that includes suspicious SQL, it will block that query and return an empty result set without contacting the MySQL database.
</p>

<p>
GreenSQL consists of two components: the proxy server / firewall itself and the management interface. You can see a demo of the management interface at <a href="http://demo.greensql.net/" onClick="javascript: pageTracker._trackPageview ('/outgoing/greensql.net');">demo.greensql.net</a>.
</p>

<p>
The proxy server / firewall is written in C/C++ and the management interface in PHP.
</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.maxhorvath.com/images/protecting_your_mysql_database/greensql-architecture.html" onclick="window.open('http://www.maxhorvath.com/images/protecting_your_mysql_database/greensql-architecture.html','popup','width=640,height=173,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.maxhorvath.com/images/protecting_your_mysql_database/greensql-architecture-thumb-400x108.jpg" width="400" height="108" alt="Greensql Architecture" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span>

<p>
Even though GreenSQL hasn't reached the 1.0 status, there are already packages for popular *nix distributions like FreeBSD, Debian, Ubuntu, Fedora and SuSe available. Compiling from has been made much easier now, too - there is a automatic database configuration tool, which makes installation much easier than before
</p>

<h3><strong><big>Using GreenSQL</big></strong></h3>

<p>
The GreenSQL configuration file allows you to set how risky you think certain things are. For example you can assign a weight to the use of certain keywords. The logic is based on evaluation of SQL commands using a risk scoring matrix as well as blocking known db administrative commands (DROP, CREATE, etc). After a specific block level has been reached, the query will not be forwarded to the MySQL server.
</p>

<p>
The management interface gives you an overview of queries used to contact your MySQL database. Given those details, it's easy to fine tune the rules. Each time GreenSQL considers a SQL query as a security risk - it is blocked. You can alter this behavior for a specific query by explicitly adding it to the whitelist.
</p>

<h3><strong><big>Conclusion</big></strong></h3>

<p>
GreenSQL is production-ready, yet. But you should keep an eye on it and give it a try in some of your test project - I think it has a huge potential.
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Welcome to my new blog</title>
    <link rel="alternate" type="text/html" href="http://www.maxhorvath.com/2008/03/welcome-to-my-new-blog.html" />
    <id>tag:www.maxhorvath.com,2008://1.3</id>

    <published>2008-03-04T09:35:33Z</published>
    <updated>2008-03-04T23:11:46Z</updated>

    <summary>Hey everybody, I&apos;ve just decided to restart my blog. I plan to post about topics regarding Quality Assurance, especially focusing on PHP web applications. Due to my position as Quality Manager at studiVZ Ltd., Europes largest social network, I hope...</summary>
    <author>
        <name>Max Horvath</name>
        <uri>http://www.maxhorvath.com</uri>
    </author>
    
        <category term="Misc" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.maxhorvath.com/">
        <![CDATA[<p>Hey everybody, I've just decided to restart my blog.</p>

<p>I plan to post about topics regarding Quality Assurance, especially focusing on <span class="caps">PHP </span>web applications.</p>

<p>Due to my position as Quality Manager at <a href="http://www.studivz.net/">studiVZ Ltd.</a>, Europes largest social network, I hope to give you valuable insights of our testing strategies which you can use in one of your current or next projects.</p>]]>
        
    </content>
</entry>

</feed> 