<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19149945</id><updated>2011-11-29T18:37:42.837-06:00</updated><category term='virtualization'/><category term='Twitter'/><category term='Thinkpad'/><category term='mongo'/><category term='Parenting'/><category term='eLearning'/><category term='CI'/><category term='Cisco'/><category term='Martial'/><category term='Protocols'/><category term='Colonial City'/><category term='BSD'/><category term='Python-n-Ruby'/><category term='Open'/><category term='Debuntu'/><category term='Nostalgia'/><category term='The Wire'/><category term='gnucitizen'/><category term='Mental'/><category term='Apps'/><category term='python'/><category term='Mac'/><category term='Poetry'/><category term='Obama'/><category term='devops'/><category term='solaris'/><category term='DC'/><category term='Coding'/><category term='Vulns'/><category term='Austin-Skokie'/><category term='cyber'/><category term='Trinux'/><category term='God-n-Country'/><category term='CentOS'/><category term='Linsec'/><category term='Vuln'/><category term='moodle'/><category term='nonsql couchdb'/><category term='Scada'/><category term='Bidness'/><category term='Fun'/><category term='Java'/><category term='Ideapad'/><category term='Teaching'/><category term='OpenSolaris'/><category term='android'/><category term='NSM'/><category term='Linux'/><category term='Tools'/><category term='Netbooks'/><category term='EVDO'/><category term='Kultur'/><category term='Two-O'/><category term='P2P'/><category term='Back East'/><category term='Meta'/><title type='text'>BlogFranz</title><subtitle type='html'>The end of vulnerabilities. Alternating between Python and Ruby; R&amp;amp;D, Consulting, and Ops; Linux and BSD. Moving from Austin to Skokie to Baltimore. Adoptive to Bio. Republican to Democrat, and other Things Done Backwards</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default?start-index=101&amp;max-results=100'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>601</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19149945.post-3831228838488637956</id><published>2011-09-04T12:32:00.002-06:00</published><updated>2011-09-04T12:34:15.168-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><title type='text'>Good Bye BlogFranz and 20th Century</title><content type='html'>Hello &lt;a href="http://franzgedank.wordpress.com/"&gt;franzgedank&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally decided to give WordPress and try and leave this klunky place behind. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3831228838488637956?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3831228838488637956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3831228838488637956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3831228838488637956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3831228838488637956'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/09/good-bye-blogfranz-and-20th-century.html' title='Good Bye BlogFranz and 20th Century'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-521041688969186083</id><published>2011-08-14T18:09:00.009-06:00</published><updated>2011-08-14T19:09:55.121-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>The chroot Hack to making Debian kFreeBSD a Usable Firewall</title><content type='html'>&lt;b&gt;A Rant Against Debian kFreeBSD&lt;/b&gt;&lt;br /&gt;Don't get me wrong, I love the fact that there is a&lt;a href="http://www.debian.org/ports/kfreebsd-gnu/"&gt; Debian distribution based on FreeBSD&lt;/a&gt; but if you are going to &lt;a href="http://wiki.debian.org/Debian_GNU/kFreeBSD_why"&gt;mention PF&lt;/a&gt; as a reason for using it, you should at least have a version of tcpdump that can read packet drops  and build of pflogd so they can be logged. How useful is a firewall that you can't even tell when there are policy violations? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not very. So I'd run across &lt;a href="http://mixinet.net/~sto/blog/debian/20101130_The_FreakyWall_Part_3/"&gt;this blog&lt;/a&gt; and even sort of tried to apply the patches. Yes, that is the right answer (and I've been meaning to build my own Debian kFreeBSD package repository, but I'm lazy) but I today on the kFreeBSD FAQ that showed how you could run a native FreeBSD binaries in a chroot. Incidentally you can do the reverse as well, meaning run Debian *BSD chroots on top of the real FreeBSD.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a quick and easy way to get tcpdump and pflogd working on a Debian kFreeBSD without having to compile anything.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Preparation&lt;/b&gt;&lt;br /&gt;I won't repeat all the instructions from the &lt;a href="http://wiki.debian.org/Debian_GNU/kFreeBSD_FAQ"&gt;FAQ&lt;/a&gt; because they just work but here are the high level steps:&lt;div&gt;&lt;ol&gt;&lt;li&gt;Pull down the .iso for FreeBSD 8.2 (obviously pick the right architecture)&lt;/li&gt;&lt;li&gt;Mount the iso using mdconfig (this is basically like loopback filesystem)&lt;/li&gt;&lt;li&gt;Extract the sources from the install CD&lt;/li&gt;&lt;li&gt;Strip out the libraries and files that you need&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I decided to create an /opt/native for my chroot jail&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;div&gt;/opt/native/etc:&lt;/div&gt;&lt;div&gt;total 92&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root   512 Aug 14 13:26 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root   512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;-rw-r--r--  1 root root  1667 Aug 14 13:25 aliases&lt;/div&gt;&lt;div&gt;-rw-r--r--  1 root root   429 Aug 14 13:21 group&lt;/div&gt;&lt;div&gt;-rw-------  1 root root  1433 Aug 14 13:25 master.passwd&lt;/div&gt;&lt;div&gt;-rw-r--r--  1 root root  1329 Aug 14 13:22 passwd&lt;/div&gt;&lt;div&gt;-rw-r--r--  1 root root 40960 Aug 14 13:26 pwd.db&lt;/div&gt;&lt;div&gt;-rw-------  1 root root 40960 Aug 14 13:26 spwd.db&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/lib:&lt;/div&gt;&lt;div&gt;total 2848&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root     512 Aug 14 13:12 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root     512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;-r--r--r--  1 root root 1432616 Aug 14 12:08 libcrypto.so.6&lt;/div&gt;&lt;div&gt;-r--r--r--  1 root root   32104 Aug 14 12:08 libcrypt.so.5&lt;/div&gt;&lt;div&gt;-r--r--r--  1 root root 1155172 Aug 14 12:09 libc.so.7&lt;/div&gt;&lt;div&gt;-r--r--r--  1 root root  182668 Aug 14 12:08 libpcap.so.7&lt;/div&gt;&lt;div&gt;-r--r--r--  1 root root   56832 Aug 14 13:12 libutil.so.8&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/libexec:&lt;/div&gt;&lt;div&gt;total 244&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root    512 Aug 14 12:15 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root    512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;-r-xr-xr-x  1 root root 220628 Aug 14 12:15 ld-elf.so.1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/sbin:&lt;/div&gt;&lt;div&gt;total 24&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root   512 Aug 14 12:11 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root   512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;-r-xr-xr-x  1 root root 18924 Aug 14 12:11 pflogd&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/usr:&lt;/div&gt;&lt;div&gt;total 8&lt;/div&gt;&lt;div&gt;drwxr-xr-x  4 root root 512 Aug 14 12:06 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root 512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root 512 Aug 14 12:06 bin&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root 512 Aug 14 12:10 sbin&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/usr/bin:&lt;/div&gt;&lt;div&gt;total 4&lt;/div&gt;&lt;div&gt;drwxr-xr-x 2 root root 512 Aug 14 12:06 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 4 root root 512 Aug 14 12:06 ..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/usr/sbin:&lt;/div&gt;&lt;div&gt;total 644&lt;/div&gt;&lt;div&gt;drwxr-xr-x 2 root root    512 Aug 14 12:10 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 4 root root    512 Aug 14 12:06 ..&lt;/div&gt;&lt;div&gt;-r-xr-xr-x 1 root root 627792 Aug 14 12:10 tcpdump&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/var:&lt;/div&gt;&lt;div&gt;total 10&lt;/div&gt;&lt;div&gt;drwxr-xr-x  5 root root 512 Aug 14 13:24 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 10 root root 512 Aug 14 13:21 ..&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root 512 Aug 14 13:23 empty&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root 512 Aug 14 13:26 log&lt;/div&gt;&lt;div&gt;drwxr-xr-x  2 root root 512 Aug 14 13:30 run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/var/empty:&lt;/div&gt;&lt;div&gt;total 4&lt;/div&gt;&lt;div&gt;drwxr-xr-x 2 root root 512 Aug 14 13:23 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 5 root root 512 Aug 14 13:24 ..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/var/log:&lt;/div&gt;&lt;div&gt;total 10&lt;/div&gt;&lt;div&gt;drwxr-xr-x 2 root root  512 Aug 14 13:26 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 5 root root  512 Aug 14 13:24 ..&lt;/div&gt;&lt;div&gt;-rw------- 1 root root 4290 Aug 14 14:12 pflog&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/opt/native/var/run:&lt;/div&gt;&lt;div&gt;total 6&lt;/div&gt;&lt;div&gt;drwxr-xr-x 2 root root 512 Aug 14 13:30 .&lt;/div&gt;&lt;div&gt;drwxr-xr-x 5 root root 512 Aug 14 13:24 ..&lt;/div&gt;&lt;div&gt;-rw-r--r-- 1 root root   5 Aug 14 13:30 pflogd.pid&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Create your chroot scripts on the host filesystem&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They should look like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="font-family: courier new;"&gt;&lt;div&gt;&lt;div&gt;root@debian:/opt# ls -al /usr/local/bin/native*&lt;/div&gt;&lt;div&gt;-rwxr--r-- 1 root staff 74 Aug 14 13:30 /usr/local/bin/nativepflogd&lt;/div&gt;&lt;div&gt;-rwxr--r-- 1 root staff 47 Aug 14 12:12 /usr/local/bin/nativetcpdump&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and inside&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;root@debian:/opt# cat /usr/local/bin/native*&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;exec chroot /opt/native/ /sbin/pflogd -s 250 -i pflog0 -f /var/log/pflog &lt;/div&gt;&lt;div style="font-family: courier new;"&gt;exec chroot /opt/native /usr/sbin/tcpdump "$@"&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Make sure the chroot jail can get to devices&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# mount -t devfs devfs /opt/native/dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This should show up as&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;# mount&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;devfs on /opt/native/dev (devfs, local, multilabel)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Confirm that it actually works&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;You can start pflogd by running /usr/local/bin/nativpflogd&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;div&gt;root@debian:/opt# ps aux | grep pflog&lt;/div&gt;&lt;div&gt;root      9115  0.0  0.1   3240  1264 ?        S+   14:18   0:00 grep pflog&lt;/div&gt;&lt;div&gt;64        8965  0.0  0.1   9680  1508 ?        S    13:30   0:00 pflogd: [running] -s 250 -i pflog0 -f /var/log/pflog&lt;/div&gt;&lt;div&gt;root      8964  0.0  0.1   9680  1448 ?        Ss   13:30   0:00 pflogd: [priv]&lt;/div&gt;&lt;div&gt;root@debian:/opt# &lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;div&gt;# nativetcpdump -nr /var/log/pflog &lt;/div&gt;&lt;div&gt;reading from file /var/log/pflog, link-type PFLOG (OpenBSD pflog file)&lt;/div&gt;&lt;div&gt;17:30:47.166732 IP 192.168.56.1.64248 &amp;gt; 192.168.56.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST&lt;/div&gt;&lt;div&gt;17:30:47.437045 IP 192.168.56.1.64248 &amp;gt; 192.168.56.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST&lt;/div&gt;&lt;div&gt;17:30:47.707640 IP 192.168.56.1.64248 &amp;gt; 192.168.56.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-521041688969186083?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/521041688969186083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=521041688969186083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/521041688969186083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/521041688969186083'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/08/chroot-hack-to-making-debian-kfreebsd.html' title='The chroot Hack to making Debian kFreeBSD a Usable Firewall'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4790854502293012043</id><published>2011-07-30T16:34:00.008-06:00</published><updated>2011-08-06T08:01:26.388-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>The 5 Minute Guide to Running OpenVZ on CentOS 6.x</title><content type='html'>As much as I like Debian (and the fact that it has OpenVZ kernels in the repos, for now...) CentOS is really the best distribution for running this container-based virtualization environment. This assumes a &lt;a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOSMinimalCD6.0"&gt;minimal CentOS 6.0 install&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;1) Add the OpenVZ repos&lt;br /&gt;&lt;br /&gt;See the &lt;a href="http://wiki.openvz.org/Quick_installation"&gt;Quick Installation guide&lt;/a&gt; and ensure that:&lt;br /&gt;&lt;pre&gt;[root@opti330 yum.repos.d]# cat /etc/yum.repos.d/openvz.repo&lt;br /&gt;[openvz-utils]&lt;br /&gt;name=OpenVZ utilities&lt;br /&gt;#baseurl=http://download.openvz.org/current/&lt;br /&gt;mirrorlist=http://download.openvz.org/mirrors-current&lt;br /&gt;enabled=1&lt;br /&gt;gpgcheck=1&lt;br /&gt;gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ&lt;br /&gt;&lt;br /&gt;[openvz-kernel-rhel6]&lt;br /&gt;name=OpenVZ RHEL6-based kernel&lt;br /&gt;#baseurl=http://download.openvz.org/kernel/branches/rhel6-2.6.32/current/&lt;br /&gt;mirrorlist=http://download.openvz.org/kernel/mirrors-rhel6-2.6.32&lt;br /&gt;enabled=1&lt;br /&gt;gpgcheck=1&lt;br /&gt;gpgkey=http://download.openvz.org/RPM-GPG-Key-OpenVZ&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2) Install the packages (after updating of course)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# yum install openvz-kernel-rhel6 vzctl vzquota bridge-utils&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3) Update /etc/sysctl.conf&lt;br /&gt;&lt;pre&gt;net.ipv4.ip_forward = 1&lt;br /&gt;net.ipv4.conf.all.proxy_arp = 1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This ARP proxying is really only needed if you are doing veth networking (the default we'll use below)&lt;br /&gt;&lt;br /&gt;4) Reboot&lt;br /&gt;&lt;br /&gt;You kernel should now be:&lt;br /&gt;&lt;pre&gt;[root@opti330 yum.repos.d]# uname -a&lt;br /&gt;Linux opti330 2.6.32-042stab024.1 #1 SMP Tue Jul 26 15:23:12 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;5) Update /etc/sysconfig/iptables to allow traffic to/from venet0 (only if you are using venet)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;-A FORWARD -i venet0 -o eth0 -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;-A FORWARD -i eth0 -o venet0 -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or something close. You will also want to update your iptables policy or disable it or disable it.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6) Now you can create your VE's per the instructions on my &lt;a href="http://code.google.com/p/blogfranz/wiki/OpenVzStuff"&gt;OpenVZ Wiki Page&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4790854502293012043?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4790854502293012043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4790854502293012043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4790854502293012043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4790854502293012043'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/07/5-minute-guide-to-running-openvz-on.html' title='The 5 Minute Guide to Running OpenVZ on CentOS 6.x'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4867143595070738045</id><published>2011-07-28T19:20:00.006-06:00</published><updated>2011-07-28T20:20:29.219-06:00</updated><title type='text'>Creating Debian Packages with FPM for the Impatient</title><content type='html'>So I've been aware of &lt;a href="http://www.semicomplete.com/blog/geekery/fpm.html"&gt;FPM&lt;/a&gt; for a while, but I actually hadn't got around to using it. This is an example on Debian but it should work on Ubuntu just fine.&lt;br /&gt;&lt;br /&gt;1) Use the package maintainers version of Ruby and RubyGems.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@debian64-10:~/tmp# apt-get install ruby ruby-dev rubygems&lt;br /&gt;[snip]&lt;br /&gt;Get:1 http://ftp.us.debian.org/debian/ squeeze/main rubygems1.8 all 1.3.7-3 [202 kB]&lt;br /&gt;Get:2 http://ftp.us.debian.org/debian/ squeeze/main rubygems all 1.3.7-3 [66.7 kB]&lt;br /&gt;Fetched 269 kB in 0s (518 kB/s)&lt;br /&gt;Selecting previously deselected package rubygems1.8.&lt;br /&gt;(Reading database ... 50363 files and directories currently installed.)&lt;br /&gt;Unpacking rubygems1.8 (from .../rubygems1.8_1.3.7-3_all.deb) ...&lt;br /&gt;Selecting previously deselected package rubygems.&lt;br /&gt;Unpacking rubygems (from .../rubygems_1.3.7-3_all.deb) ...&lt;br /&gt;Processing triggers for man-db ...&lt;br /&gt;Setting up rubygems1.8 (1.3.7-3) ...&lt;br /&gt;Setting up rubygems (1.3.7-3) ..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2) Install FPM&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@debian64-10:~/tmp# gem update; gem install fpm&lt;br /&gt;Updating installed gems&lt;br /&gt;Nothing to update&lt;br /&gt;Building native extensions.  This could take a while...&lt;br /&gt;Successfully installed json-1.5.3&lt;br /&gt;Successfully installed fpm-0.3.7&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3) This installed it but where does the script go? It isn't in /usr/local/bin. Nah that would be too obvious.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@debian64-10:/# find / -name "fpm"&lt;br /&gt;/var/lib/gems/1.8/bin/fpm&lt;br /&gt;/var/lib/gems/1.8/doc/fpm-0.3.7/rdoc/files/lib/fpm&lt;br /&gt;/var/lib/gems/1.8/gems/fpm-0.3.7/bin/fpm&lt;br /&gt;/var/lib/gems/1.8/gems/fpm-0.3.7/lib/fpm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4) Update your path to included the gem wrappers and confirm that it runs&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;root@debian64-10:/# export PATH=$PATH:/var/lib/gems/1.8/bin&lt;br /&gt;root@debian64-10:/# fpm&lt;br /&gt;Missing package target type (no -t flag?)&lt;br /&gt;Missing package source type (no -s flag?)&lt;br /&gt;There were errors; see above.&lt;br /&gt;&lt;br /&gt;Usage: fpm [options]&lt;br /&gt;  -p, --package PACKAGEFILE        Th&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To make it interesting, let's create a package that requires a dependency. The app I'm doing this for at work requires Java unfortunately, but I'll do Mono here for fun.&lt;br /&gt;&lt;br /&gt;(I'm skipping the part here where I google for a lame Hello World C# app because I haven't touched the language since 2005 but the bottom line is I end up with .exe that will go in /usr/local/bin) so we have something like.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;root@debian64-10:~/hellomono# pwd&lt;br /&gt;/root/hellomono&lt;br /&gt;root@debian64-10:~/hellomono# ls -al usr/local/bin/hellomono.exe &lt;br /&gt;-rwxr-xr-x 1 root root 4096 Jul 28 21:39 usr/local/bin/hellomono.exe&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;All we are doing here is specifying the source (a directory) and a destination target (.deb). I assume we could do the same thing for an RPM or even creepier build a Ruby gem that contained a Mono app.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;root@debian64-10:~/hellomono# fpm -s dir -t deb -d mono-runtime .&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This created a .deb based on your current directory&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;tar: ./build-deb-hellomono_1.0_amd64.deb/data.tar: file is the archive; not dumped&lt;br /&gt;Created /root/hellomono/hellomono_1.0_amd64.deb&lt;br /&gt;root@debian64-10:~/hellomono# ls&lt;br /&gt;hellomono_1.0_amd64.deb  usr&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And if we open it up&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;root@debian64-10:/tmp# ar -x hellomono_1.0_amd64.deb &lt;br /&gt;root@debian64-10:/tmp# ls&lt;br /&gt;control.tar.gz data.tar.gz  debian-binary  hellomono_1.0_amd64.deb  hsperfdata_root&lt;br /&gt;root@debian64-10:/tmp# tar xzvf control.tar.gz &lt;br /&gt;control&lt;br /&gt;md5sums&lt;br /&gt;root@debian64-10:/tmp# cat control&lt;br /&gt;Package: hellomono&lt;br /&gt;Version: 1.0&lt;br /&gt;Architecture: amd64&lt;br /&gt;Maintainer: &lt;root@debian64-10&gt;&lt;br /&gt;Depends: mono-runtime&lt;br /&gt;Standards-Version: 3.9.1&lt;br /&gt;Section: default&lt;br /&gt;Priority: extra&lt;br /&gt;Homepage: http://nourlgiven.example.com/no/url/given&lt;br /&gt;Description: no description given&lt;br /&gt;root@debian64-10:/tmp# ls&lt;br /&gt;control  control.tar.gz  data.tar.gz  debian-binary  hellomono_1.0_amd64.deb  hsperfdata_root  md5sums&lt;br /&gt;root@debian64-10:/tmp# tar xzvf data.tar.gz &lt;br /&gt;./&lt;br /&gt;./build-deb-hellomono_1.0_amd64.deb/&lt;br /&gt;./usr/&lt;br /&gt;./usr/local/&lt;br /&gt;./usr/local/bin/&lt;br /&gt;./usr/local/bin/hellomono.exe&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now I scp it over to an Ubuntu LTS box and install&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;virtual@ubuntu14:~$ sudo dpkg -i hellomono_1.0_amd64.deb &lt;br /&gt;[sudo] password for virtual: &lt;br /&gt;Selecting previously deselected package hellomono.&lt;br /&gt;(Reading database ... 73505 files and directories currently installed.)&lt;br /&gt;Unpacking hellomono (from hellomono_1.0_amd64.deb) ...&lt;br /&gt;dpkg: dependency problems prevent configuration of hellomono:&lt;br /&gt; hellomono depends on mono-runtime; however:&lt;br /&gt;  Package mono-runtime is not installed.&lt;br /&gt;dpkg: error processing hellomono (--install):&lt;br /&gt; dependency problems - leaving unconfigured&lt;br /&gt;Errors were encountered while processing:&lt;br /&gt; hellomono&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Fix the dependencies&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;virtual@ubuntu14:~$ sudo apt-get install -f&lt;br /&gt;Reading package lists... Done&lt;br /&gt;Building dependency tree       &lt;br /&gt;[snip]&lt;br /&gt;Setting up hellomono (1.0) ...&lt;br /&gt;Setting up libmono-system2.0-cil (2.4.4~svn151842-1ubuntu4) ...&lt;br /&gt;Processing triggers for libc-bin ...&lt;br /&gt;ldconfig deferred processing now taking place&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And it runs!&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;virtual@ubuntu14:~$ /usr/local/bin/hellomono.exe &lt;br /&gt;Hello World&lt;br /&gt;virtual@ubuntu14:~$ dpkg -l | grep hello&lt;br /&gt;ii  hellomono                       1.0                                             no description given&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4867143595070738045?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4867143595070738045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4867143595070738045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4867143595070738045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4867143595070738045'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/07/creating-debian-packages-with-fpm-for.html' title='Creating Debian Packages with FPM for the Impatient'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7304913924499454741</id><published>2011-06-18T09:00:00.006-06:00</published><updated>2011-06-18T09:32:02.605-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='devops'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>BCFG2: A non-religious Open Source Configuration Management Tool?</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-2sj7iXwO_YI/TfzAfBLdpkI/AAAAAAAABz4/km07IPB3Ggw/s1600/battle-god-battle-justme-demotivational-posters-1303405386.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 336px; height: 273px;" src="http://4.bp.blogspot.com/-2sj7iXwO_YI/TfzAfBLdpkI/AAAAAAAABz4/km07IPB3Ggw/s400/battle-god-battle-justme-demotivational-posters-1303405386.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5619578074176529986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Yesterday I was reading a &lt;a href="http://www.krisbuytaert.be/blog/anybody-else-confused-about-chef"&gt;pissing match between Chef and Puppet&lt;/a&gt; and I'm starting to think that the only thing more religious than scripting languages (Ruby vs. Python) or web frameworks (Rails vs. Django) is configuration management tools.  Just as the case with religious sects that spun off from each other due to theological (or personality) battles, dissatisfaction with &lt;a href="http://en.wikipedia.org/wiki/Cfengine"&gt;cfengine&lt;/a&gt; begat &lt;a href="http://projects.puppetlabs.com/projects/puppet/wiki/About_Puppet"&gt;Puppet&lt;/a&gt; which in turn begat &lt;a href="http://www.opscode.com/chef/"&gt;Chef&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enter &lt;a href="http://trac.mcs.anl.gov/projects/bcfg2"&gt;BCFG2&lt;/a&gt; which I discovered on Wikipedia's page on &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software"&gt;Open Source configuration management tools&lt;/a&gt; and this &lt;a href="http://www.verticalsysadmin.com/config2010/"&gt;great page&lt;/a&gt; which compares and contrasts the 4 leading tools. Unlike these tools, this was an organic development project that was developed for internal use at &lt;a href="http://www.mcs.anl.gov/index.php"&gt;Argonne National Labs&lt;/a&gt; &lt;i&gt;and&lt;/i&gt; it is written in Python. Also it is non-commercial, unlike it's three other competitors. I don't think these factors are accidental.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, if you've never heard of it check out the &lt;a href="http://trac.mcs.anl.gov/projects/bcfg2"&gt;BCF2 project page&lt;/a&gt; and  some of the &lt;a href="http://trac.mcs.anl.gov/projects/bcfg2/wiki/AudioVideo"&gt;videos&lt;/a&gt; and see if you agree. I'm only a couple of hours in, but it definitely seems to have some interesting features that differentiate it from the alternatives, besides being a little less religious.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Meanwhile I'm testing it out on a few VMs. What I'm most interested in, is how it supports multiple Linux distributions simultaneous, in particular Debian, Ubuntu, and CentOS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7304913924499454741?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7304913924499454741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7304913924499454741' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7304913924499454741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7304913924499454741'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/06/bcfg2-non-religious-open-source.html' title='BCFG2: A non-religious Open Source Configuration Management Tool?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-2sj7iXwO_YI/TfzAfBLdpkI/AAAAAAAABz4/km07IPB3Ggw/s72-c/battle-god-battle-justme-demotivational-posters-1303405386.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8682696515733185968</id><published>2011-03-15T06:31:00.007-06:00</published><updated>2011-03-15T06:56:40.251-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python Boto + SSH SOCKS = Easy Cheap Coffeeshop VPN</title><content type='html'>A while back (well actually after reading &lt;a href="http://lcamtuf.blogspot.com/2010/12/unencrypted-public-wifi-should-die.html"&gt;Unencrypted Wifi Must Die&lt;/a&gt;) I started using SSH SOCKS tunnels to a small AMI I created with using the AWS Console. I end up paying less than a dollar a month for this. You'll need to install &lt;a href="http://code.google.com/p/boto/"&gt;Python Boto&lt;/a&gt; for this, but on Ubuntu 10.04 and later this is as simple as&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;apt-get install python-boto&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The code is pretty simple&lt;br /&gt;&lt;br /&gt;First connect to EC2&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;e = boto.connect_ec2()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Create a new instance where AMI_TYPE is set to 't1.micro' (the smallest cheapest AMI)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;r = e.run_instances(AMI,key_name=KEY_NAME,instance_type=AMI_TYPE)&lt;br /&gt;i = r.instances[-1]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You basically have to create the reservation and then pull the instance from the list of reservations. Wait for the instance to come up so you can find out the dns name&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;print "Host name:",i.public_dns_name&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;--&lt;br /&gt;&lt;a href="https://github.com/mdfranz/awstools/blob/master/ec2unnel.py"&gt;ec2unnel.py&lt;/a&gt; is available on GitHub. You obviously need to change the name to your SSH key and set your AWS environment variables or hard code them in the script.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz@mfranz-xp60sublts:~$ ./ec2unnel.py stop&lt;br /&gt;Connecting to EC2...&lt;br /&gt;Host name: ec2-75-101-195-59.compute-1.amazonaws.com&lt;br /&gt;State: shutting-down&lt;br /&gt;State: shutting-down&lt;br /&gt;State: shutting-down&lt;br /&gt;State: shutting-down&lt;br /&gt;State: shutting-down&lt;br /&gt;State: shutting-down&lt;br /&gt;State: terminated&lt;br /&gt;mfranz@mfranz-xp60sublts:~$ ./ec2unnel.py start&lt;br /&gt;Connecting to EC2...&lt;br /&gt;Creating instance in: us-east-1&lt;br /&gt;Launch time: 2011-03-15T12:15:05.000Z&lt;br /&gt;State: pending&lt;br /&gt;State: pending&lt;br /&gt;State: pending&lt;br /&gt;State: pending&lt;br /&gt;State: pending&lt;br /&gt;State: running&lt;br /&gt;Host name: ec2-50-17-19-144.compute-1.amazonaws.com&lt;br /&gt;&lt;br /&gt;mfranz@mfranz-xp60sublts:~$ ssh -v -i duo.pem -D 1080 ec2-user@ec2-50-17-19-144.compute-1.amazonaws.com&lt;br /&gt;OpenSSH_5.3p1 Debian-3ubuntu5, OpenSSL 0.9.8k 25 Mar 2009&lt;br /&gt;debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;debug1: Applying options for *&lt;br /&gt;debug1: Connecting to ec2-50-17-19-144.compute-1.amazonaws.com [50.17.19.144] port 22.&lt;br /&gt;debug1: Connection established.&lt;br /&gt;debug1: identity file duo.pem type -1&lt;br /&gt;debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3&lt;br /&gt;debug1: match: OpenSSH_5.3 pat OpenSSH*&lt;br /&gt;debug1: Enabling compatibility mode for protocol 2.0&lt;br /&gt;debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu5&lt;br /&gt;debug1: SSH2_MSG_KEXINIT sent&lt;br /&gt;debug1: SSH2_MSG_KEXINIT received&lt;br /&gt;debug1: kex: server-&gt;client aes128-ctr hmac-md5 none&lt;br /&gt;debug1: kex: client-&gt;server aes128-ctr hmac-md5 none&lt;br /&gt;debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024&lt;1024&lt;8192) lang =" en_US.utf8"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And you see it takes a while for the terminated instances to go away.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz@mfranz-xp60sublts:~$ ./ec2unnel.py&lt;br /&gt;Connecting to EC2...&lt;br /&gt;2011-03-15T12:02:23.000Z terminated&lt;br /&gt;2011-03-15T12:15:05.000Z terminated&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Obviously you'll need to set your proxy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8682696515733185968?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8682696515733185968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8682696515733185968' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8682696515733185968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8682696515733185968'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/03/python-boto-ssh-socks-easy-cheap.html' title='Python Boto + SSH SOCKS = Easy Cheap Coffeeshop VPN'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1921945893204436406</id><published>2011-02-13T10:02:00.007-06:00</published><updated>2011-02-13T10:56:50.198-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Large Scale Packet Dump Analysis with MongoDB</title><content type='html'>So when dealing with hundreds of MBs (or even several GBs) of packet captures spread across dozens of files, wireshark sort of breaks down, even with a fast CPU. In my case I have a laptop (with LUKS encrypted drive) so it is pretty slow. Yeah you can split them into smaller files but then you lose visibility into the complete picture when performing your queries. I think you could also write some .lua wireshark but you still have the bottleneck of tshark. So what to do? Let's back up a bit.&lt;br /&gt;&lt;br /&gt;Over the years I've written a variety of Perl, Python, or Ruby scripts for processing .pcaps. Some that use C (or pure Python) .pcap parsers--or when I first started doing this over a decade ago just parsing the output of tcpdump and building hashes or dictionaries. Not only is this slow but you have to persist your hashes via pickling. And the challenge of the pcap libraries is they typically don't have any application layer decoding and they require a C version of the library which isn't very cross platform.&lt;br /&gt;&lt;br /&gt;Enter pdml. I first described this in a &lt;a href="http://www.digitalbond.com/index.php/2006/04/14/processing-ethereal-xml-files-part-i/"&gt;Digital Bond blog post&lt;/a&gt; back in 2006. I can remember doing this on a lowly Powerbook G4 and it just worked. A year ago I was looking for a project to use MongoDB. So I wrote some code to automate the process of creating the .pdml files using wireshark and extracting the fields of interest and inserting them into a MongoDB database. I have a configuration file that specifies which PDML fields I want to extract.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[frame.len]&lt;br /&gt;type = decimal&lt;br /&gt;&lt;br /&gt;[ip.ttl]&lt;br /&gt;size = 8&lt;br /&gt;type = decimal&lt;br /&gt;&lt;br /&gt;[ip.src]&lt;br /&gt;size = 4&lt;br /&gt;type = ipaddr&lt;br /&gt;&lt;br /&gt;[ip.dst]&lt;br /&gt;size = 4&lt;br /&gt;type = ipaddr&lt;br /&gt;&lt;br /&gt;[tcp.dstport]&lt;br /&gt;size = 16&lt;br /&gt;type = decimal&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Because MongoDB doesn't support periods in key names (I learned this the hard way last year) I change the name of the field from ip.src to ip_src. Anything that wireshark knows about I can extract and it will become a key for that packet.&lt;br /&gt;&lt;br /&gt;While I was still importing packets (I had close to 2 million packets in the database) I issue a query to see the unique source IPs. I can do this for any field that is supported in the PDML.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt; db.raw.distinct("ip_src")&lt;br /&gt;&lt;br /&gt;Sun Feb 13 11:20:05 [conn17] query art0.$cmd ntoreturn:1 command: { distinct: "raw", key: "ip_src", query: {} } reslen:4457 1607ms&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or let's say I wanted to look at what are the unique TTLs.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt; db.raw.distinct("ip_ttl")&lt;br /&gt;&lt;br /&gt;11:31:17 [conn17] query art0.$cmd ntoreturn:1 command: { distinct: "raw", key: "ip_ttl", query: {} } reslen:452 1779ms&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Not bad for 2.7 million packets (and counting).&lt;br /&gt;&lt;br /&gt;This example is pretty uninteresting because it is just standard TCP/IP headers and if you just wanted session data you could just use netflow but this far more flexible.&lt;br /&gt;&lt;br /&gt;The downside is speed of import. Creation of the .pdml file by running tshark is very slow and the parsing of XML in Python is also not the speediest. I'm up to close to 3.1 million packets in about an hour that I've successfully imported into my database, but once they are in it is lightning fast and you are free. Where I'm (hopefully) headed today is some scripts that will create Graphviz representations of  all the communications of interest perhaps like those available with &lt;a href="http://afterglow.sourceforge.net/faq.html"&gt;Afterglow.&lt;/a&gt; Or I can use this to analyze and reconstruct streams from some of the proprietary protocols that I was most interested in. Or I can use this as an exercise to write a &lt;a href="http://nodejs.org/"&gt;Node.js&lt;/a&gt; app to browse this data. The point is getting it into a useful database that allows flexible and fast queries and offloads a lot of  manual tasks I would normally have to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1921945893204436406?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1921945893204436406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1921945893204436406' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1921945893204436406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1921945893204436406'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/02/large-scale-packet-dump-analysis-with.html' title='Large Scale Packet Dump Analysis with MongoDB'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2098076553627597540</id><published>2011-01-22T15:01:00.009-06:00</published><updated>2011-01-22T17:59:44.680-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgia'/><category scheme='http://www.blogger.com/atom/ns#' term='Back East'/><title type='text'>Dark Horse (1999)</title><content type='html'>&lt;span style="font-style: italic;"&gt;(Something I wrote last week thanks to whoever it was in Room 227 at the Holiday Inn Express I was staying at down in Virginia had their TV turned up way too loud&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, before I got the nerve to call the front desk and tell them to turn it down&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;When you are twenty, you have all the time in the world, but nothing to say. When you are forty, you have something to say but no time (or space) to say it. Tonight, I ran across across an set of old CDs  dating back to college. They were mixed in with CDRs (backups I will never ever recover from and long unsupported OS install disks) inside one of those thick translucent CDW bags from the their showroom in Vernon Hills, IL.   I was surprised they even worked. Or at least some of them did. Despite four moves in five years, I have held on to them. Mostly for the bag and the memories of driving up Milwaukee Avenue at lunchtime when I worked at Hewitt.&lt;br /&gt;&lt;br /&gt;I've always thought we left Chicagoland way too soon, even though I know why. For once, there is no imminent move to bring on the clutter-purge of contractor bags, the sound of Legos vacuumed off carpet, that smell of Murphy's Oil Soap on hardwoods. No more "staging" for the buyer's agents or cleaning the rental and holding your breath during the moveout inspection, wondering how much will get subtracted from your security deposit.&lt;br /&gt;&lt;br /&gt;The beltway was eerie tonight in the fog. A brief warming in between twenty degree days.. It was strange to see the spires of Mormon Temple illuminated by floodlights, which normally means &lt;span style="font-style: italic;"&gt;you have made it&lt;/span&gt;, that traffic will get better, regardless of your direction.&lt;br /&gt;&lt;br /&gt;But tonight there was no such emotion. Traffic was moving and moving fast. Only the solace of  motion with a musical assist. Not unlike my flights West from Austin to San Jose in the early 2000s, staring out the window watching  over the West Texas plains, the Rockies, then the Sierras, then that perilous landing over downtown.&lt;br /&gt;&lt;br /&gt;With three kids solitude only comes during the commute or travel.  &lt;span style="font-style: italic;"&gt;I will be in a hotel room tonight. I will write.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It only took forty five minutes to get Tyson's Corner. The Cure's &lt;span style="font-style: italic;"&gt;Pornography&lt;/span&gt; played “Strange Days” and it has held up over time. Most of the rest have not. Brute force existentialism seems quaint. Now you have no time for the faux nihilism, critical theory, or other youthful excesses. The soundtrack from the &lt;span style="font-style: italic;"&gt;Until the End of the World&lt;/span&gt; has held up through the years, however, and “Knocking at Death's Door” seemed strangely beautiful tonight. The movie, itself, not so much. However, the vision of us all glued to our small electronic screens reading our dreams was prophetic and perhaps the EMP blast silencing everything electronic.&lt;br /&gt;&lt;br /&gt;I'm so glad I only discovered the Internet in my last year at A&amp;amp;M. I am thankful for all those hours in the computer lab, printing draft after draft of my poems and short stories. Some of these I have kept to. A Liberal Arts major out of place. Marking them up at wherever I went to review them in the pre-Starbucks age. Reading T.S. Eliot. Was it just the other day on the beltway en route to Tyson's I had the urge to read Proofrock?&lt;br /&gt;&lt;br /&gt;And Wim Wenders. It was 1992, wasn't it? The Spring of poetry readings, after getting my first short story (and that one poem) published in the campus literary magazine. Readings at coffeehouses. Night stocking at the College Station Kroger on University Avenue. Oscar, the tyrannical foreman, kneepads around the shins of his stubby legs. “Faster, white boy. Faster.” Perhaps I've conflated him with a scene from &lt;span style="font-style: italic;"&gt;My Own Private Idaho.&lt;/span&gt; Curses in Spanish. The semester my wife and I started dating. January, or was it February? March is the most beautiful month in Texas, weather-wise.&lt;br /&gt;&lt;br /&gt;Later, I would learn that in between the 2nd and 3rd week of February is when Spring came to Austin. The twin Elms of our 3/1 barely 1100 square foot house in Brentwood, had blossomed. The night before, returning home from Russia, landing at the Bergstrom, a family, home, for the first time. I trudged to the cheap lot leaving Amelia with a screaming, traumatized toddler running away from her, screaming, while I looked for our Red Dodge Dakota and struggled with a car seat for the first time. There would be a lot of screaming, but by the time we turned onto Anderson Lane (or was it North Lamar) it had stopped. Kolya looked around the small house and knew he was home. &lt;span style="font-style: italic;"&gt;"Kolya Dom&lt;/span&gt;," we repeated and he pointed at the ceiling fans, bookshelves, and the popcorn ceiling.&lt;br /&gt;&lt;br /&gt;Only two days earlier, we had left Moscow. Four days before, had left the snowy Volga at night, our facilitator emptying a whole section of the Tupelov with only whisper, so the Americans (and a lone Scottish couple) could leave with their newly acquired children. Did she buy them off? Did she threaten them? In the airport lounge we learned how Russians deal with hysterical, stressed out women. Phenobarbital.&lt;br /&gt;&lt;br /&gt;Just like yesterday, it was snowing the morning as we left the orphanage. Perhaps because we were the youngest couple (we had not suffered through years of failed fertility treatments before deciding to adopt,) standing outside in front of the &lt;span style="font-style: italic;"&gt;Detsky Dom&lt;/span&gt;, we were interviewed by Russian television. Did that ever air? Paranoia causing us to lie and say we still lived in San Antonio because that was what was on our paperwork. It was the final days of Yeltsin. They knew Putin was coming, or so we were told over homemade fruit-flavored vodka.&lt;br /&gt;&lt;br /&gt;"The dark horse," the only English-speaking Russian on our floor in the suburban Moscow flat, called him. Our final night in Moscow we stayed a block from Red Square but only ventured out one time to a supermarket for kefir and chocolate. It was too cold and we were too exhausted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2098076553627597540?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2098076553627597540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2098076553627597540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2098076553627597540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2098076553627597540'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2011/01/dark-horse-1999.html' title='Dark Horse (1999)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3464599220592060048</id><published>2010-12-31T14:30:00.007-06:00</published><updated>2011-01-09T14:34:48.875-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><title type='text'>"Twitter Segmentation": or why you need at least three accounts</title><content type='html'>After I'd been using Twitter for a few months (ok, I really don't remember how long it had been) I realized that &lt;a href="http://blogfranz.blogspot.com/2009/02/personal-or-professional-or-why-one.html"&gt;I needed two accounts&lt;/a&gt; for a number of reasons: privacy, personal branding, and audience. Well, when I created &lt;a href="http://twitter.com/seclectech"&gt;@seclectech&lt;/a&gt; I'm up to three accounts. Here is why. Besides that I take my time on Twitter way too seriously.&lt;br /&gt;&lt;br /&gt;As much as I love shooting the shit with folks as &lt;a href="http://twitter.com/frednecksec"&gt;@frednecksec&lt;/a&gt; that is just one side of me. And arguably not my best side. I know it. It is the the snarky, sarcastic, cynical side that can't help but mock the endless FUD about SCADA and Smart Grid Security and the never ending drumbeat of Sinophobia and generally react by picking positions I may or may not believe, just for the fun of it, and just to mess with people.&lt;br /&gt;&lt;br /&gt;But I don't want to engage in that all the time and it is not healthy either. Sometimes, I don't want to follow people that engage in that sort of nonsense (or cause me to engage in that sort of discourse) I just want to learn about cool technical stuff (whether security or non-security related). Folks like @jonoberheide @jordansissel @jedisct1 @rgaidot consistently provide solid technical information about the topics I'm interested in (and might be interested in) without the snark (i.e. security and technology politics) of other folks I follow on @frednecksec who might be more entertaining.&lt;br /&gt;&lt;br /&gt;If twitter had better filtering options (for example that would allow me to block hashtags such as #stuxnet or #wikileaks or #tsa) I might not need to do that, but until that happens I need two different public accounts depending on the tweets I want to produce or consume.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3464599220592060048?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3464599220592060048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3464599220592060048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3464599220592060048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3464599220592060048'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/12/twitter-segmentation-or-why-you-need-at.html' title='&quot;Twitter Segmentation&quot;: or why you need at least three accounts'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-596444587878562643</id><published>2010-12-24T12:38:00.014-06:00</published><updated>2010-12-24T16:40:34.392-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>How did your technical skills fare in 2010?</title><content type='html'>&lt;span style="font-style: italic;"&gt;Well, my first full year at SAIC is coming to an end and it is time to take stock of what I've learned, technically, over the past year. I hope to have another blog on management, project, and customer engagement skills, because, truth be told and like it or not, I've grown more in that area than technically in the past year.  &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;Now your day job shouldn't be the only  thing determining the level of your technical skills, but it is obviously a  major factor. In the last quarter, I picked up leadership/management  responsibilities so I will mindful in 2011 to ensure that I at least &lt;/span&gt;&lt;span style="font-style: italic;"&gt;maintain the skills I've got and not become "soft" and hands-off.&lt;/span&gt;&lt;span style="font-style: italic;"&gt; This point has been made crystal clear to me as I've been reviewing folks resumes (but have seldom interviewed them) that have let their skills go. A cautionary tale. And some that that I have managed to interview, I've heard the line "I could learn that again if I needed to"&lt;/span&gt; &lt;span style="font-style: italic;"&gt;one too many times. Folks hold on to the skills they hold precious, even if you have to do it on your own time or change jobs. It is just too easy, especially if you are doing well and making an impact for your organization to let things go.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Coding&lt;/span&gt;&lt;br /&gt;The last year has been no different that other periods. Historically, coding occurs in fits and stops. At the beginning of the year I was involved in a research project where I was doing a bunch of Python development with MongoDB, but that ended early on. Near the end of the year more light scripting mostly using dpkt, scapy, and nfqueue-bindings for some protocol testing testing that will hopefully end soon so I can stop the dreaded commute two times a week to Tysons Corner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Networking &amp;amp; Security Products&lt;/span&gt;&lt;br /&gt;I really enjoyed working with ScreenOS on the lower end Juniper SSGs. Most of my firewall experience was Cisco (or PF) so it was a refreshing change of pace. It was a bit frustrating at first, both the ScreenOS CLI and WebUI are preferable to anything from Cisco has ever developed. On the other hand, I did not enjoy working with Garretcom industrial switches, especially their screwed up way of configuring trunk ports and and VLANs. Not to mention their screwed up Flash UI. Working with one of the wireless clients/bridge/APs commonly used by some of the armed services was also a mixed bag, but I learned a little bit about RF surveys and the pros and cons of Mesh vs. Bridge vs. Client/AP wireless architectures. And then there is Air Defense, which I probably haven't learned as well as I could have but there wasn't enough time. In the lab, I kept up my skills up with IOS and ASA based SSLVPNs, but this was actually something I first learned in 2009.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Design/Build/Test/Deploy&lt;br /&gt;&lt;/span&gt;&lt;span&gt;A&lt;/span&gt; few of my projects have been true engineering (as opposed to assessment) projects that involved specific requirements (either that were provided to us or we had to develop ourselves for the client) where we were responsible for network/system design, configuring all these components and finally bringing them to deployment and handing the components over the customer. The "big enterprise" operational/IT skills I picked up at Hewitt definitely helped here. A couple of projects have required designing and implementing a new wired and wireless network infrastructure (as well as the appropriate C&amp;amp;A activities necessary to connect it) and this has been an interesting challenge, sort of like putting together a puzzle as you figure out to connect all the various L2/L3 infrastructure and security devices together.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Miscellaneous&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Stuff&lt;/span&gt;&lt;br /&gt;Besides fooling around with MongoDB for about a month solid, I learned that some of the RAID controllers on Compaq hardware are lame and that backing up and restoring ESX filestores can be extremely slow and painful if you have SATA drives. Hands-on experience (mostly just getting it working and defining an appropriate security architecture vs. hard core device hacking) with  several different smart meters, collectors, and headends, but nothing to write home about and certainly nothing I'd pose for a newspaper for in front of my hacking gear. Last, but not least, I've had the pleasure working with a great new client of taking a deep dive into a popular SCADA system and architecting a real time vulnerability management solution that will be deployed in the new year. Didn't learn any new products here but definitely a new experience of developing a solution from scratch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It seems like I should have done more than this, but perhaps this is even better than 2010. I learned some new products, APIs, and wrote a bit of new code. I guess it could be worse as a senior engineer for a large government contractor I could be writing technical proposals and pricing non-stop. Fortunately I've been able to dip down and keep my hands dirty now and then, in addition to the normal QA (and tough questions) to keep engineers honest and on track.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;So it's been a decent year, but in 2011 I need to do better, and this will be a challenge as there is no doubt that more of my time will be involved managing employees as opposed to just leading projects.Undoubtedly I will need to do work on my own time to keep it real. Stay tuned for some goals I will define for the new year.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-596444587878562643?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/596444587878562643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=596444587878562643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/596444587878562643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/596444587878562643'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/12/how-did-your-technical-skills-fare-in.html' title='How did your technical skills fare in 2010?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4885611314841898821</id><published>2010-12-04T17:39:00.003-06:00</published><updated>2010-12-04T17:59:19.141-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>Greatest Hits from the Arce/McGraw Article on Cyber FUD</title><content type='html'>These guys nailed it in &lt;a href="http://www.informit.com/articles/article.aspx?p=1662328"&gt;Software [In]security: Cyber Warmongering and Influence Peddling&lt;/a&gt; and here are my favorite lines:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The (perhaps intentional) conceptual roll up of cyber crime, cyber  espionage, and cyber war into the scariest of cyber boogeymen  exponentiates the FUD factor, making an already gaping policy vacuum  more obvious than ever before&lt;/blockquote&gt;Amen, I still don't even know what "CyberSecurity" really means. Back in 2003-2004 when I first heard about it I thought it was a was for "non-security folks" (putting physical security folks in that bucket) to refer to IT/Computer/Network Security. But I don't know anymore. This conflation is confusing.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The problem with these kinds of stories is that they have somehow worked  their way to the halls of policymakers who repeat them without critical  analysis.  For every careful Dan Geer there are ten shrieking cyber  security talking heads busy stirring the pot saying things like, "We may  call it espionage, but it's really warfare.&lt;/blockquote&gt;The "World's Greatest Hacker" is the least of our concerns because he isn't influencing policy in the beltway.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What makes us particularly skeptical is the intentional blurring of the  lines that helped to distinguish the military, the intelligence  community, and the cyber security industry — a direct result of US  government pouring of billions of dollars into the burgeoning maw of  perpetual cyber security initiatives.&lt;/blockquote&gt;Is it any coincidence that the cyber-euphoria coincided with the US economy going to hell as IT security vendors "cyber-ize themselves." There are quite a few Austin startups (you know who you are) that have become "Cyber Security Vendors" to get that Federal money.&lt;br /&gt;&lt;blockquote&gt;They point out that those beating the cyber war drums the loudest are at  least partially responsible for the sorry state of affairs in computer  security.  Retired Director of National Intelligence (DNI) Admiral Mike  McConnell bears the brunt of this criticism, as do one-time NSA Director  and Deputy DNI General Mike Hayden, and one-time cyber czar Richard  Clarke.  We know all of these men and they are all honorable and  careful. Like us, they are all capitalists as well.&lt;/blockquote&gt;Anybody that goes after "Digital Pearl Harbor" Clarke is OK in my book.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Public/private partnerships pander politically but they do no real good.   As it turns out, security is not a game of ops centers, information  sharing, and reacting when the broken stuff is exploited.  Instead, it  is about building our systems to be secure, resilient, survivable, and  trustworthy.&lt;/blockquote&gt;They go after all my favorite buzzwords. The public private partnership is when the vendor and contractors (and sometimes critical infrastructure asset owners) write all the policy to their economic advantage&lt;br /&gt;&lt;br /&gt;In conclusion, this is article is a strong defense of defense and building security in. We should let the military and the Intelligence Community do their job and the rest of us (in the Information/Network/Application/Internet Security profession) focus on ours and stop trying to play "soldier hacker." Of course the irony is some of the biggest "CyberWar Cheerleaders" have neither a background in the military, the intelligence community, or Computer Security.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4885611314841898821?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4885611314841898821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4885611314841898821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4885611314841898821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4885611314841898821'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/12/greatest-hits-from-arcemcgraw-article.html' title='Greatest Hits from the Arce/McGraw Article on Cyber FUD'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8628492258314110731</id><published>2010-11-28T16:14:00.012-06:00</published><updated>2010-11-28T17:43:28.865-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Netflow on the Endpoint?</title><content type='html'>So you probably most commonly think of &lt;a href="http://en.wikipedia.org/wiki/Netflow"&gt;Netflow&lt;/a&gt; as a router feature (where you can monitor chokepoints to identify top talkers), but over the long holiday weekend I've used it as a way to monitor behind crappy closed source SOHO APs that don't allow you to turn off NAT. &lt;span class="Apple-style-span" style="font-size: 16.2037px; "&gt;I've started running netflow on some of the Linux endpoints and just for grins I enabled it on my work laptop. On the various systems I point them at a single Netflow receiver, but on my laptop I obviously point them a local receiver.&lt;/span&gt;&lt;div&gt;&lt;br /&gt;On Ubuntu/Debian it is as simple as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;apt-get install flow-tools softflowd fprobe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mindrot.org/projects/softflowd/"&gt;Softflowd&lt;/a&gt; and &lt;a href="http://fprobe.sourceforge.net/"&gt;fprobe &lt;/a&gt;both allow you to generate Netflow datagrams to send to a netflow receiver such as&lt;a href="http://www.splintered.net/sw/flow-tools/docs/flow-tools.html"&gt; flow-tools&lt;/a&gt;.  In both cases the receivers have single configuration files in /etc/default that allow you to specify the interface to monitor and the address and UDP port of the receiver.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;root@e6400:/var/flows/2010/2010-11/2010-11-28# cat /etc/default/softflowd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# configuration for softflowd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# note: softflowd will not start without an interface configured.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# The interface softflowd listens on.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INTERFACE="eth0"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Further options for softflowd, see "man softflowd" for details.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# You should at least define a host and a port where the accounting&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# datagrams should be sent to, e.g.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# OPTIONS="-n 127.0.0.1:9995"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OPTIONS="-n 127.0.0.1:3333"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;root@e6400:/var/flows/2010/2010-11/2010-11-28# cat /etc/default/fprobe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#fprobe default configuration file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INTERFACE="wlan0"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FLOW_COLLECTOR="127.0.0.1:3333"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#fprobe can't distinguish IP packet from other (e.g. ARP)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OTHER_ARGS="-fip"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since neither of these probes allow you to monitor multiple interfaces I'm having to use both to monitor my wired and wireless interfaces.&lt;br /&gt;&lt;br /&gt;Next, I configured flow-tools by editing &lt;span style="font-family:courier new;"&gt;/etc/flow-tools/flow-capture.conf&lt;/span&gt; with a single line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-w /var/flows -n 275 -N 3 127.0.0.1/127.0.0.1/3333&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This stories the netflow data in the /var/flows directory and the receiver listens on 127.0.0.1:3333 which corresponds to what we had above&lt;br /&gt;&lt;br /&gt;I found that if the directory isn't present the daemon will fail to start. This error message will show up in the logs but not on the console&lt;br /&gt;&lt;br /&gt;When I go into work tomorrow and I plug into my dock, this should do the trick, but we'll see.&lt;br /&gt;&lt;br /&gt;The only thing I'm not sure about is whether the daemons will correctly handled a downed interface so I may have to manually start the daemons.&lt;br /&gt;&lt;br /&gt;Now you'll see the files are created&lt;br /&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;root@fe6400:/var/flows/2010/2010-11/2010-11-28# ls -alt | head -20&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;total 248&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;drwxr-xr-x 2 root root 4096 2010-11-28 18:10 .&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   88 2010-11-28 18:10 tmp-v05.2010-11-28.181027-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 18:10 ft-v05.2010-11-28.180515-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 18:05 ft-v05.2010-11-28.180001-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 18:00 ft-v05.2010-11-28.175448-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:54 ft-v05.2010-11-28.174935-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:49 ft-v05.2010-11-28.174422-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:44 ft-v05.2010-11-28.173909-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:39 ft-v05.2010-11-28.173356-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:33 ft-v05.2010-11-28.172843-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:28 ft-v05.2010-11-28.172330-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:23 ft-v05.2010-11-28.171816-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:18 ft-v05.2010-11-28.171304-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:13 ft-v05.2010-11-28.170751-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:07 ft-v05.2010-11-28.170237-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 17:02 ft-v05.2010-11-28.165725-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root   96 2010-11-28 16:57 ft-v05.2010-11-28.165212-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root  346 2010-11-28 16:52 ft-v05.2010-11-28.164659-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"&gt;-rw-r--r-- 1 root root  806 2010-11-28 16:46 ft-v05.2010-11-28.164146-0500&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And most of these are empty. I should adjust the the rotation should it creates smaller files.&lt;br /&gt;&lt;br /&gt;But I can see what sort of activity my laptop was up to while I was dealing with my youngest son's terrible in-between-two-and-three during supper.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;root@e6400:/var/flows/2010/2010-11/2010-11-28# flow-cat ft-v05.2010-11-28.164146-0500| flow-print&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;srcIP            dstIP            prot  srcPort  dstPort  octets      packets&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.1       172.16.1.145     17    67       68       576         1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;0.0.0.0          255.255.255.255  17    68       67       656         2         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    58772    53       61          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       34490    100         1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       38384    51          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       39480    51          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    39480    53       51          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    34490    53       61          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    53304    53       60          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       34640    100         1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    38384    53       51          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       58772    100         1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    34640    53       61          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1      172.16.1.145     17    53       38674    76          1         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     224.0.0.251      17    5353     5353     2611        9         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;172.16.1.145     192.168.1.1      17    38674    53       60          1  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8628492258314110731?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8628492258314110731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8628492258314110731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8628492258314110731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8628492258314110731'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/11/netflow-on-endpoint.html' title='Netflow on the Endpoint?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-505215403075639806</id><published>2010-11-14T08:33:00.008-06:00</published><updated>2010-11-14T10:51:59.083-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>Five Quick Interview Tips for Security Folks</title><content type='html'>So I've been spending 1-2 days a week for the last month or two interviewing folks for some open reqs. And yes I'm still hiring.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've done quite a bit of interviewing (on both sides of the table) over the years in both big and small companies. In terms of the "big guys" I probably view Microsoft's process as the "gold standard." I also interviewed onsite with Amazon a while back and definitely incorporated some of what I experienced as a candidate from these west coast firms in what I do as an interviewer. Early in my days at Cisco we also did some good interviewing of candidates.&lt;br /&gt;&lt;br /&gt;But based on recent experience, here are some things I've noticed, both in terms of tips and turn-off's. Most of these are of these are common sense.&lt;br /&gt;&lt;br /&gt;1) Speak in &lt;span style="font-weight: bold;"&gt;concrete and specific&lt;/span&gt; (vs. abstract and general) terms about deliverables, responsibilities, tasks, and accomplishments. Convey a clear sense of who you are, what you like to do, and what you have accomplished. What is your career trajectory? Connect the dots for me. Even if you are "paper security" person (as opposed to a hands-on technical type) you can and should speak in specific standards, documents, and processes and data.&lt;br /&gt;&lt;br /&gt;2) If asked about a given technology, &lt;span style="font-weight: bold;"&gt;the wrong answer is "another team did that" &lt;/span&gt;or "we weren't allowed to do that." Even if it is true. Find another way. This is a common problem with IT/Operational types and makes it difficult for me to envision you working in consulting, R&amp;amp;D, or other roles where you need to be flexible and will fill gaps where you find them.&lt;br /&gt;&lt;br /&gt;3) Admit that you have forgotten certain technical skills if you've been "doing security" (or anything technical) for any period of time. If you say you haven't forgotten anything, you are either lying or a robot. In the long run, it is better to communicate in clear terms what you do or do not know. Plus, if you do get hired, something you claimed you were able to do (but perhaps wasn't able to be verified during the interview process, for whatever reason) may come back to haunt you as you will most certainly be passed a task.&lt;br /&gt;&lt;br /&gt;4) When asked a seemingly factual question, &lt;span style="font-weight: bold;"&gt;the wrong answer is "I don't know" or "I could google it and find out."&lt;/span&gt; That is not the point. The point is to figure out what you know "around" that problem space. Plus, you are not going to get off that easy. I will take the question down a notch.&lt;br /&gt;&lt;br /&gt;5) If asked if you can code, never, ever say you took Java/C programming in college, but haven't done any coding since then. Even if it is true. The "Modern American Poetry" classes I took are just as relevant.  &lt;span style="font-weight: bold;"&gt;And resumes should err on the side of fewer skills than more skills.&lt;/span&gt; It makes it a pleasant surprise when you happen to know something not listed on your resume. And realistically if you put Nmap or Nessus (and most security folks do) please know what these do, because I will ask.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-505215403075639806?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/505215403075639806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=505215403075639806' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/505215403075639806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/505215403075639806'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/11/five-quick-interview-tips-for-security.html' title='Five Quick Interview Tips for Security Folks'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3420875012855005052</id><published>2010-09-27T18:41:00.007-06:00</published><updated>2010-09-27T19:38:53.208-06:00</updated><title type='text'>Hackers, Crackers, Terrorists, and Other Things You Should Care Less About</title><content type='html'>&lt;span style="font-weight:bold;"&gt;@kodefupanda: Who cares who #stuxnet target  was? The takeaway is that ICS security is a prob that effects us all. We  need solutions not attribution.&lt;br /&gt;&lt;br /&gt;@taosecurity: @frednecksec Attribution is necessary if you want to deal with the threat. It's not necessary if you only want to address vulnerabilities.&lt;br /&gt;&lt;br /&gt;@frednecksec:  @taosecurity Depending on who "you" are. If you are a scada admin and  are behind on the vulngame, threats are somebody elses problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, for quite a while now, one of my pet peeves in any security talk/whitepaper  (especially a SCADA or control system security one) is when the author has a list of bullets under a headline called threats. &lt;span style="font-style: italic;"&gt;You know, the bad guys.&lt;/span&gt; Typically they throw in some cheesy clip art. Even worse they will talk about the motivation: fun, profit, curiosity, world domination, etc. I always found this annoying and irrelevant. Really, who cares why someone is attacking (attempting to exploit a vulnerability in) your system and it really does not matter who they are apart from an IP address that you may or may not be able to do traceback that you may or may not be able to report to  law enforcement. You focus on what you can control. Your own networks. Your own systems. Assuming you even have the time, talent, and tools to do that.&lt;br /&gt;&lt;br /&gt;But admittedly I have a bias here. Most of my career has focused on vulnerabilities. And most of my career, I've been focused in the technical realm. Not policy or procedures. Not politics. Not targeting the bad guys (well at least after I left tactical MI, and I only targeted bad guys in warfighter command staff exercises, never in the real world.) It has been about monitoring your assets, protecting your them, ensuring devices, applications, and other hardware/software components are properly engineered so that when they are deployed operationally, they can stand up, that you've done a reasonable job reducing the attack surface, ensuring the right set of security capabilities have been implemented, that you've thought things through. You pay lip surface to threats (attack trees, threat models, etc.) but you really are only concerned about that magical moment when a threat exploits a vulnerability. That event. The goal is to prevent that or make it as unlikely as possible, or if it does happen you want to minimize the impact.&lt;br /&gt;&lt;br /&gt;When you are concerned about technical vulnerabilities, the capabilities or intent of the threat agents don't really matter, unless there is an intersection with the assets you are responsible for monitoring or protecting--or securing prior to deployment if you are in product security or appsec. So I learn the adversary has some  new tool (malware, script, or whatever) that I can detect (or not detect) that I should attempt to monitor and recover from. There is some new way of exploiting applications or network access controls or surreptitiously gaining unauthorized access. This is why you pentest, this is why you do design reviews, this is why you do operational drills. It is really not about threats. It is about your stuff. Not their stuff or them.&lt;br /&gt;&lt;br /&gt;So if you come from this vulnerability-centric frame of mind (or at least I think I'm accurately capturing this outmoded way of thinking about the brave new world full by Cyberwar, APT, Cyberterrorism, and what my Senator this morning referred to as "Cyber Shields") you become sort of confused when folks like &lt;span class="fn"&gt;Bejtlich&lt;/span&gt; say that this no longer matters, that that this is an outmoded approach not appropriate to the 2nd decade of the 21st century. That is all failed that we must give up and go after the Chinese dragon or the Russian bear. We must stop all we are doing. Defense no longer works.&lt;br /&gt;&lt;br /&gt;You know, sort of like a Bush Doctrine for cyberspace. Take the fight to them.&lt;br /&gt;&lt;br /&gt;(To me there is a difference between the fact that you have to  continuously stamp out vulnerabilities, over and over, Microsoft Tuesday  after Microsoft Tuesday, new application or protocol. A never ending struggle that guarantees job security for a lifetime. This might be insanity, but it is not failure, but I digress)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So the big question here is who is we.&lt;/span&gt; What has really changed for the system administrators, the security administrators, the firewall administrators, the folks responsible for monitoring the logs, the pentesters, the application security girls, the policy and compliance weenies. They all must suddenly switch to a threat focus?&lt;br /&gt;&lt;br /&gt;If by we, you are talking about the intelligence community if you are talking about the military, national security policy? Absolutely. Do what you need to do--or what I assumed you were already doing. Target terrorist networks with "cyber weapons" take out critical infrastructure with your cache of 0-days SCADA (or Telcom)  vulnerabilities. Just do it, Cybercommand. Or whoever.&lt;br /&gt;&lt;br /&gt;But for the rest of us, that probably aren't doing as good a job as we should monitoring our networks, patching our systems, analyzing our logs, keeping the auditors off our backs, keeping our aging systems even running as we have to do more and more with less, we are supposed to care about who the bad guys are and going after them?&lt;br /&gt;&lt;br /&gt;For us, I say Stuxnet and Aurora (the Google one, not the smoking, shaking generator one) change nothing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3420875012855005052?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3420875012855005052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3420875012855005052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3420875012855005052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3420875012855005052'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/09/hackers-crackers-terrorists-and-other.html' title='Hackers, Crackers, Terrorists, and Other Things You Should Care Less About'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7568489082223703355</id><published>2010-09-12T19:52:00.008-06:00</published><updated>2010-09-12T20:55:11.632-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Back East'/><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>Altitude Induced Peace and Grown Up [Security] Jobs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/TI2R2UI1wvI/AAAAAAAABwA/6mfTHRdL8v4/s1600/southwest-airlines-address.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 110px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/TI2R2UI1wvI/AAAAAAAABwA/6mfTHRdL8v4/s200/southwest-airlines-address.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5516225480903475954" /&gt;&lt;/a&gt;&lt;div&gt;So while en route from PHX to BWI, late Thursday night after a couple of (what appear to be) successful days onsite with a new-ish client, I couldn't help but a feel a bit of satisfaction, or perhaps, more importantly, &lt;i&gt;lack of restlessness&lt;/i&gt; that has characterized much of my infosec^H^H^H^H^Hcybersecurity career. Things actually made sense. My career had some sort of meaningful trajectory. I had not just been hopping around every 18 months for the the last decade. There was a method to the madness.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;(Perhaps it is no coincidence that the we've finally settled and bought a house north of Baltimore, that I wasn't on pins and needles while out of town when talking to my wife, or that the start of the school year has gone surprisingly smoothly for my two oldest children, or that my oldest's BPD, et. al. is reasonably under control, but I digress)&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Around the turn of the century (and perhaps longer), I definitely had a case of the &lt;i&gt;what do I do next? What is the next big thing?&lt;/i&gt; How can I scratch that itch?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I got my start as a trainer, which was a monkey I had on my back for a few years, only made worse that I had a B.A. in English and History from an engineering school and that my first job out of college was as an 8th grade reading teacher of all things!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I relished the chance to leave Trident (only after my stock options from the Veridian acquisition were safely deposited) on to a all too brief stint as a security consultant at SBC (where I mostly wrote proposals and coded tools nobody would ever use) to my 5+ years at Cisco (internal consulting, then R&amp;amp;D, then back again) which was just as frustrating as it was rewarding. Politics. Personalities. My own naiveté. But exposure to Big Corporate life and a hell of a lot of cool technology. Then, fleeing to a small company, which was also as rewarding as it was frustrating. Mostly the working at home thing and not having enough people to work with, which was maddening, because I found out I was more social than I thought, culminating in that fateful move to Chicago for operational IT work and a hell of a lot of Ruby coding. On call. Weekend upgrade. BSD! Then back to training because I was burned out of ops work and wanted an easy way to move back East. And I actually enjoyed teaching. Adults (in the military) and kids (when I was a middle school teacher).&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;What triggered my thoughts at 28,000 feet (or whatever 737-700s fly at Eastbound) was recalling how natural early in the morning it was to be up at the whiteboard in the meeting I was having: drawing network diagrams, proposing solutions, debating implementations, cracking jokes. How &lt;i&gt;this was just like teaching&lt;/i&gt;--or at least how I liked to teach.  And I realized that there was no way that I could have felt this comfortable if I hadn't had the last two (no, scratch that, three) jobs. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the best things about teaching at Tenable (more so with the Enterprise classes than my Nessus classes) was how I'd get all sorts of weird questions based on peculiar aspects of a student's network (or political) environment. This kept me on my toes. And before then, at Hewitt, getting just enough of a taste of the &lt;i&gt;keeping-shit-running hell&lt;/i&gt; of operational work and large, complex, global networks that makes a SCADA system seem simple.  And before that all the lessons learned from Dale (who was channeling Tom Peters) about projects and clients and who you really are. So despite the fact that I still haven't stayed in one place for more than 18 months in the last two years&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;But the "grown-up" part in the title? What is that about? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps because I was (or still am) only a mediocre bug-hunter (or pentester or whatever, though I loath the term) but that of vulnerability sort of work I did at Cisco (and later at Digital Bond) never seemed to make a difference. And if I'm honest about it, the learning about a new product, application, protocol, or whatever was more interesting than actually finding flaws in it. Besides, you never really knew would be fixed or not--certainly was not in the critical path, was only at the tail end. Maybe things have changed now in appsec as it has gone mainstream? Maybe I got involved in that field too early. I know I got interested in fuzzers way too early. That's for damn sure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although I still do some of this sort of work, these days most of what I do now involves building things, not breaking things. And it is in the critical path. Secure network &amp;amp; system design is in the critical path. Hell, even compliance work is in the critical path. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That cool, technical work where you could wear shorts and sandals into the office every day and never had face to face meetings with your clients and never had to record time or worry about how much time you are billing, burn rate, or profitability--that was not in the critical path.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As much as I miss Austin, that is what I'll be thinking of when I head down 95 and pull into the office in the BWI flight path tomorrow morning for the first time in a week.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7568489082223703355?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7568489082223703355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7568489082223703355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7568489082223703355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7568489082223703355'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/09/altitude-induced-peace-and-grown-up.html' title='Altitude Induced Peace and Grown Up [Security] Jobs'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/TI2R2UI1wvI/AAAAAAAABwA/6mfTHRdL8v4/s72-c/southwest-airlines-address.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5077969780225644419</id><published>2010-09-02T21:04:00.009-06:00</published><updated>2010-09-02T21:59:45.212-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>A year later am I still scared? And some lessons on proposals</title><content type='html'>A year ago, &lt;a href="http://blogfranz.blogspot.com/2009/08/why-must-i-be-unnerved-25-from-brand.html"&gt;when I started my current job at SAIC,&lt;/a&gt; I referenced a Tom Peters quote about how your projects should scare you. Well, a year later, I'm no longer scared if the new job will work out,  if I will hate it, if there will be enough billable work to keep me employed--or at least from spending too much time in IR&amp;amp;D-land. In fact I'm not scared at all, although I'm certainly being challenged. This is a good thing, obviously.&lt;br /&gt;&lt;br /&gt;I'm at that point where I'm at thought I would be based on &lt;a href="http://blogfranz.blogspot.com/2008/03/talent-retention-and-18-month-window.html"&gt;my standard 18 month cycle&lt;/a&gt;. It is interesting how this cycle has repeated itself as I've moved from job to job. About now, things are firing on all (or maybe too many) cylinders and I have the confidence that I lacked for a while. That confidence partially comes from having gotten over that "prove yourself" hump. (One of the consequences of switching jobs is that you have to prove to yourself and others at the beginning the way you don't if you stay in the same role years and years. Of course if you have a continuing stream of new projects where you have to prove yourself to new clients, you get some of that but it is not the same level of stress)&lt;br /&gt;&lt;br /&gt;Right now, I have too many projects (this week I billed to 6-7 different charge codes, which is way too many as there is a reason you should have only 2-3 projects at a time) and tasks and they key challenge to to delegate and distribute the load so I don't burn out.&lt;br /&gt;&lt;br /&gt;And to say no. I will never forget how during my interview at Hewitt the to-be-CISO asked me if I could say no. I don't remember my answer, but I learned why it was necessary and I certainly see that now. And the need to disengage. Tonight, I told my boss (or at least my boss for a few more days now if the rumors are true) that I was taking the night off and my wife and I watched &lt;a href="http://www.imdb.com/title/tt0880502/"&gt;The Edge of Heaven&lt;/a&gt;. Highly recommended if a bit slow moving at first. No, I wouldn't be working on that proposal tonight.&lt;br /&gt;&lt;br /&gt;Which leads me to the original idea for this blog. So proposals? What have I learned about proposals? Right now, I'm going through one of those frustrating periods at work were I'm doing less technical work and more proposals and pricing than I'd like. These periods are a necessary evil and they are worth the thrill of the award, but they are not fun. I thought I hated technical proposals but pricing is worse. And there are things worse than pricing, but I wont go there.&lt;br /&gt;&lt;br /&gt;So it seems like I've done a lot of proposals in the last year. Maybe I have maybe I haven't relative to folks in similar roles in similar sized companies, but there has definitely been variety.  A few technical proposals I've written from scratch (more or less) and done all the pricing and am now leading the project but most where I'm part of a larger proposal team. And this is where the idea for this blog came in mind as I was stuck in traffic on 695 this afternoon.&lt;br /&gt;&lt;br /&gt;What are some lessons of writing projects proposals (or at least participating in proposal teams) from the last year?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Who is the boss?&lt;/span&gt; This seems easy but it doesn't always happen. Even if there are multiple PMs or team leads involved,  you need to appoint one who will run the proposal process. Ambiguity as to who is driving the process can be a disaster. It will screw it up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Err on the side of more conference calls and less emails.&lt;/span&gt; I can't believe I'm saying this. Especially if there are folks that haven't worked together before or are from different organizations. You have to build up that trust. Don't hesitate to pick up the phone. Just sending out calls to contribute and review a document isn't going to cut it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Divide and conquer.&lt;/span&gt; Assign tasks to specific questions in the RFP. Yeah, the folks assigned may screw it up and somebody may need to clean it up and rescue that section, but there needs to be clarity on who has to write what.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tell folks when things are due.&lt;/span&gt; When does the client need it? What the internal process hurdles? When are you tasks due. Open ended tasks also won't get done. Especially if folks are using spare cycles they need to know when to perform that context switch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Get some sleep.&lt;/span&gt; Yes, since proposals are typically on top of your normal project it does require nights and weekend.&lt;br /&gt;&lt;br /&gt;And on that note.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5077969780225644419?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5077969780225644419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5077969780225644419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5077969780225644419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5077969780225644419'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/09/year-later-am-i-still-scared-and-some.html' title='A year later am I still scared? And some lessons on proposals'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8321397701596969602</id><published>2010-08-09T19:35:00.007-06:00</published><updated>2010-08-09T20:21:18.426-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Finally Went Android (Or, My Favorite Apps)</title><content type='html'>So last month I finally broke down and got an Android phone. I'd my eye on them for a while. I've never had a desire to get an iPhone, mostly due to my aversion to AT&amp;amp;T, but also because I am not an iPhone guy just like I wasn't an Apple guy in high school (not suprisingly, I was a Kaypro and then a C-64 guy) although I've been through a couple of Mac phases over the years. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I went with a much maligned Motorola Cliq XT, mostly because it was cheap, small, and fairly rugged. That is my preference for cell phones over the years. A lot of folks complained about Motoblur but it really isn't that bad. Realistically you don't have to even use it. Delete the bubbles off your home desktop and you really won't know it is there. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Cliq XT It is not perfect but hey it is just a phone! Plus I'm chained to my BlackBerry so it doesn't really matter if it reboots while I'm on a call. Someone can get ahold of me on that. Yeah I know it is still Android 1.5, but I don't care. In terms of usability for non-email tasks it is such an improvement over my BlackBerry. I also like the fact of having two different carriers. I had no issue with Sprint but their upgrade prices were awful and I got free activation from T-Mobile. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(Pro tip: if you are unfortunate to work in a large company at least check for their corporate discounts with cell providers. Not only do you save money but you get better service when you call in.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;So what are my favorite apps?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Seesmic.&lt;/b&gt; That is a no brainer. No ads. Works for high volume account. I tried the "Happenings" app for my low volume account. Forget about it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Opera Mini&lt;/b&gt; - I really haven't given the built-in browser a chance. Haven't wanted to.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Easy Tether&lt;/b&gt; -- I really only use this as a backup but it works on Ubuntu 10.04 and Windows without issue. I did manage to do an adb shell, but never got the SOCKS proxy working.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Some Battery Widget&lt;/b&gt; on my desktop that allows me to toggle GPS/Wifi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Connect Bot&lt;/b&gt; -- I still haven't generated public keys, but it is more useful than you would think. Still haven't figured out how to do a CTRL-C, so unless you know how, don't use "top" &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Pandora&lt;/b&gt; -- everybody know what Pandora is. I use this to help put my toddler to sleep. Try the "Lucinda Williams" channel it works, although makes you miss Texas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Android System Information &lt;/b&gt;- this barely makes the cut but at least I haven't deleted it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Advanced Task Killer Free&lt;/b&gt; - I really haven't touch this much, but I think it is doing something?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8321397701596969602?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8321397701596969602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8321397701596969602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8321397701596969602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8321397701596969602'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/08/finally-went-android-or-my-favorite.html' title='Finally Went Android (Or, My Favorite Apps)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3783512301804925925</id><published>2010-04-11T09:40:00.002-06:00</published><updated>2010-04-11T09:42:07.451-06:00</updated><title type='text'>Pictures from Texas!</title><content type='html'>&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.com/mdfranz/SpringBreak2010?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_MPIoEEC-IC0/S8HqMe8uzZE/AAAAAAAABqc/BAqAwmHp5No/s160-c/SpringBreak2010.jpg" width="160" height="160" style="margin:1px 0 0 4px;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.com/mdfranz/SpringBreak2010?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;Spring Break 2010&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3783512301804925925?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3783512301804925925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3783512301804925925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3783512301804925925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3783512301804925925'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/04/pictures-from-texas.html' title='Pictures from Texas!'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_MPIoEEC-IC0/S8HqMe8uzZE/AAAAAAAABqc/BAqAwmHp5No/s72-c/SpringBreak2010.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-30095149061492626</id><published>2010-03-21T18:32:00.002-06:00</published><updated>2010-03-21T18:54:42.284-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Obama'/><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>218!</title><content type='html'>So I've been listing too much of the raucous debate in the house about health care on C-SPAN. &lt;br /&gt;&lt;br /&gt;Politico provides the &lt;a href="http://www.politico.com/news/stories/0310/34753.html"&gt;best analysis&lt;/a&gt; of the behind-the-scenes action in what led to where we are:&lt;br /&gt;&lt;blockquote&gt;The rebirth of the reform effort is the result of a little luck, insurance company avarice, a subsiding of post-Brown panic among party incumbents and the calculation by many Hill Democrats that going small or giving up was just as politically perilous as going big.&lt;br /&gt;&lt;br /&gt;But the main reason the bill has made it to the floor has as much to do with the complex, occasionally tense, ever-evolving partnership between the first African-American president and the first female speaker.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;blockquote&gt;Publicly, the White House seemed to send a different signal each day.&lt;br /&gt;&lt;br /&gt;In the space of two weeks, Obama or his top advisers suggested breaking the bill into smaller parts, keeping it together in one comprehensive package, putting it at the back of legislative line and needing to “punch it through” Congress, as Obama himself said at one point.&lt;br /&gt;&lt;br /&gt;At a fundraiser in early February, Obama described the “next step” as sitting down with Republicans, Democrats and health care experts, describing a process that could take weeks, if not longer. He also seemed to acknowledge for the first time that Congress may well decide to scrap health care altogether — an admission that blunted his repeated and emphatic vows to finish the job.&lt;br /&gt;&lt;br /&gt;Behind the scenes, Obama had, in fact, already settled on a strategy.&lt;br /&gt;&lt;br /&gt;He would invite Republicans and Democrats to a summit, to give them one last chance at compromise, knowing they wouldn’t budge. And privately, he had decided that his favored approach was a comprehensive bill.&lt;/blockquote&gt;&lt;br /&gt;However, what I've been thinking about over the last few days is the similarity between how health care reform, Hillary, and McCain were handled by the Obama team. See my from &lt;a href="http://blogfranz.blogspot.com/2008/10/valium-08.html"&gt;October 08&lt;/a&gt; where I mentioned an Andrew Sullivan article of how Obama's calm (and sometimes perceived weakness) lures the opponents into a false sense of victory and incites them. It was easy to doubt him during the primary (why wasn't he more aggressive against Clinton) and during the Summer of 08 (why did he take that stupid trip to Europe) but in all cases (assume this goes through) he pulls it off.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Will this really make a difference? I don't know and I really don't care. I knew enough to support it: the exclusions about pre-existing conditions (which impacted my family first hand) was good enough for me, although I know how much I paid for my plan at Cisco a decade ago, probably 1/5 in a comparable-sized company. As if the campaign of 2008 (the selection of Palin) didn't prove it enough, the GOP continues to show it's true colors and they don't match mine anymore. Even though I have elected more Republicans than Democrats over the years (not like you really have a choice in Texas) it is hard to know whether the GOP is really that ignorant or are they just that deceptive in order to go "downscale" Republican base that Bush built. As always, I'm a political reactionary. For me, just as my vote for Bush in 2004 was more a vote against Michael Moore and his kind, my support for this bill is just as much about giving Limbaugh and Beck the finger as passing needed reforms. And the former is a lot more certain than the latter.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-30095149061492626?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/30095149061492626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=30095149061492626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/30095149061492626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/30095149061492626'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/03/218.html' title='218!'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8479753684679511978</id><published>2010-02-21T09:16:00.003-06:00</published><updated>2010-02-27T21:34:01.602-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nonsql couchdb'/><title type='text'>Installing CouchDB/CouchApp on 64 Bit Debian 5.x</title><content type='html'>So the &lt;a href="http://wiki.github.com/jchris/couchapp/manual"&gt;manual installation for CouchApp&lt;/a&gt; is mostly correct, but here were some slight modifications. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; my installation assumed everything that was custom-compiled went into /opt to keep a clean segregation of anything that is part of the distribution vs. hand compiled.&lt;br /&gt;&lt;br /&gt;1. Install erlang from source (V5.7.4). I removed the 5-6 erlang packages but still got the dependencies. I also had to add &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;libncurses5-dev&lt;/span&gt; to the list of packages for Erlang to compile.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;./configure --with-ssl --prefix=/opt&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Of course now I had to use the following when building CouchDB:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;./configure --prefix=/opt --with-erlang=/opt/lib/erlang/usr/include/&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3. Adjust paths accordingly to &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/opt/var/lib/couchdb&lt;/span&gt; &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/opt/var/log/couchdb&lt;/span&gt; etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;NOTE: This VZ was running on 64bit OpenVZ&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Linux debian5amd64-50 2.6.26-2-openvz-amd64 #1 SMP Thu Feb 11 01:40:09 UTC 2010 x86_64 GNU/Linux&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8479753684679511978?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8479753684679511978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8479753684679511978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8479753684679511978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8479753684679511978'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/02/installing-couchdbcouchapp-on-64-bit.html' title='Installing CouchDB/CouchApp on 64 Bit Debian 5.x'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6738614487279426304</id><published>2010-02-18T21:05:00.004-06:00</published><updated>2010-02-18T21:11:30.711-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Did the Stimulus Work?</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jWmUnU7HS-I&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/jWmUnU7HS-I&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Spending 2-3 hours on the D.C. beltway (yeah it took me that long to get from Rockville to Ellicot City tonight) does not put you in best frame of mind, but I took a break from tech stuff and catch up on some politics, for a change and actually blog instead of tweet. Apart from the campaign-style movie above, there is &lt;a href="http://www.nytimes.com/2010/02/17/business/economy/17leonhardt.html?adxnnl=1&amp;amp;adxnnlx=1266548495-Q8k9nPMo/hYsCtpK7xsUqg"&gt;Judging the Stimulus by Job Data Reveals Success&lt;/a&gt; with the key argument as&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;The case against the stimulus revolves around the idea that the economy would be no worse off without it. As a Wall Street Journal opinion piece put it last year, “The resilience of the private sector following the fall 2008 panic — not the fiscal stimulus program — deserves the lion’s share of the credit for the impressive growth improvement.” In a touch of unintended irony, two of article’s three authors were listed as working at a research institution named for Herbert Hoover.&lt;br /&gt;&lt;br /&gt;Of course, no one can be certain about what would have happened in an alternate universe without a $787 billion stimulus. But there are two main reasons to think the hard-core skeptics are misguided — above and beyond those complicated, independent economic analyses.&lt;br /&gt;&lt;br /&gt;The first is the basic narrative that the data offer. Pick just about any area of the economy and you come across the stimulus bill’s footprints.&lt;br /&gt;&lt;br /&gt;In the early months of last year, spending by state and local governments was falling rapidly, as was tax revenue. In the spring, tax revenue continued to drop, yet spending jumped — during the very time when state and local officials were finding out roughly how much stimulus money they would be receiving. This is the money that has kept teachers, police officers, health care workers and firefighters employed.&lt;br /&gt;&lt;br /&gt;Then there is corporate spending. It surged in the final months of last year. Mark Zandi of Economy.com (who has advised the McCain campaign and Congressional Democrats) says that the Dec. 31 expiration of a tax credit for corporate investment, which was part of the stimulus, is a big reason.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Let's hope so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6738614487279426304?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6738614487279426304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6738614487279426304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6738614487279426304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6738614487279426304'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/02/did-stimulus-work.html' title='Did the Stimulus Work?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4362253415827998564</id><published>2010-02-04T20:48:00.005-06:00</published><updated>2010-02-04T22:09:13.879-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>A Maze of Twisty Fuzzers All Alike</title><content type='html'>Funny how a &lt;a href="http://www.digitalbond.com/index.php/2010/02/03/best-way-to-fuzz/"&gt;single innocent tweet can stir the pot&lt;/a&gt;. Not that I'm disappointed or that I mind, because the pot definitely needed to be stirred, but that certainly wasn't my intent on Monday. &lt;i&gt;Really. &lt;span class="Apple-style-span" style="font-style: normal;"&gt;But let's back up.&lt;/span&gt;&lt;/i&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;So I gave a short, not terribly technical &lt;a href="http://blogfranz.googlecode.com/files/franz-fuzzing-maze-cert-2010.pdf"&gt;presentation on Open Source fuzzing tools&lt;/a&gt; right before lunch at a conference on vulnerability discovery hosted by CERT at their office in Arlington. It was go to back there as I'd been to the SEI offices back in 2006 when I was working with them on the disclosure of some SCADA vulns.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, I didn't get to stick around the whole day (I missed Jared DeMott's presentation) and I was in and out during a conference call but there interesting talk by CERT, CERT-FI, Secunia, and Codenomicon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But most interesting, and what led to my innocent tweet was a talk by Microsoft on how they use fuzzing and what were the results of different tools and approaches.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The conclusion I found to be surprising that they found that the use of "smart fuzzers" to have a lower ROI than the use of "dumb fuzzers" and their whitebox fuzzing platform called SAGE. Their point was  the time it takes to define, model, and implement the protocol in a smart fuzzer is in most cases better spent having less skilled engineers run dumb fuzzers or white box tools.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;They mentioned a talk at &lt;a href="http://technet.microsoft.com/en-us/security/ee460903.aspx"&gt;Blue Hat Security Briefings&lt;/a&gt; (I don't think this is the actual talk, but I don't have time to look for it) where they presented the bug results on a previously untested application were tested by a internally written (smart fuzzer), &lt;a href="http://peachfuzzer.com/"&gt;Peach&lt;/a&gt; (the dumb fuzzer?) and their whitebox fuzzing platform called &lt;a href="http://channel9.msdn.com/posts/Peli/Automated-Whitebox-Fuzz-Testing-with-SAGE/"&gt;SAGE.&lt;/a&gt; They mentioned an interesting technique of taking "major hashes" and "minor hashes" on the stack traces to isolate unique bugs. This is interesting because the primary focus has been on reducing the number of unique test cases but another approach is to look at the results. It may end up being more efficient. Of course this assumes the ability to have instrumented targets which may not always be the case, for example with embedded systems.&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;So Dale picked up on this and tried to apply this to the world of SCADA&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;blockquote&gt;We have two security vendors that are trying to sell products to the control system market: &lt;a href="http://www.wurldtech.com/"&gt;Wurldtech&lt;/a&gt; with their Achilles platform and &lt;a href="http://www.mudynamics.com/products/Mu-Test-Suite/security-testing.html"&gt;Mu Dynamics&lt;/a&gt; with their Mu Test Suite. [FD: Wurldtech is a past Digital Bond client and advertiser] One of the features of these products is they both send a large number of malformed packets at an interface – - typically crashing protocol stacks that have ignored negative testing.&lt;/blockquote&gt;Mu responded within the comments in the blog and Wurldtech (far more defensively) &lt;a href="http://www.wurldtech.com/blog/?p=168"&gt;on their own blog&lt;/a&gt; &lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;blockquote&gt;In fact, our CTO Dr. Kube even gave a presentation at Cansecwest almost 2 years ago called “Fuzzing WTF” which was our first attempt to re-educate the community. To bolster the impact, we invited our friends at Codenomicon to help as they also were frustrated with the community discourse. The presentation can be found &lt;a href="http://cansecwest.com/csw08/csw08-marcus-varpiola.pdf"&gt;here&lt;/a&gt;.&lt;/blockquote&gt;Well I guess thie "re-education" (which sounds vaguely Maoist, I guess some of us need to be sent to a Wurldtech Fuzzing Re-education program) hasn't exactly worked although a &lt;a href="http://www.hima.com/"&gt;satisfied Wurldtech customer&lt;/a&gt; did chime in on the Digital Bond blog. I actually agree that the need for better descriptions of fuzzing tools capabilities is needed and that was the entire point of my talk. I did a survey of the features available several dozen fuzzing tools and fuzzing frameworks that could be used to test.&lt;br /&gt;&lt;br /&gt;I didn't spend as much time on the actual message generation as I should have and I was only focusing on Free and Open Source tools, but I identified a number of attributes for comparison such as target, execution mode, language, transport, template (generation, data model, built-in functions), fault payloads, debugging &amp;amp; instrumentation, and session handling. I'm not sure I completely hit my target but one of my goals was to develop some criteria to help folks make better choices on which Open Source tools could be used to most efficiently conduct robustness testing of your target. One of my conclusions (which I was pleased to hear echoed in the Microsoft talk) is that no single tool is best, no single approach is adequate--and that there are different types of fuzzing users that will require different feature sets. A QA engineer (that may have little to no security expertise) requires different features from those required for a pen-tester (or perhaps security analyst as part of a compliance-based engagement) which are still different from a hard core security researcher.&lt;br /&gt;&lt;br /&gt;And the same applies to commercial tools you are paying tens of thousands of dollars for. One size does not fit all, regardless of the marketing (or mathematical) claims of the vendor. It would definitely be good to see a bakeoff of the leading commercial and Open Source fuzzing/protocol robustness tools similar to what &lt;a href="http://www.blogger.com/http//www.jedimercer.com/component/content/article/36-misc/76-webapp-throwdown.html"&gt;Jeff Mercer has been doing for webapp scanners&lt;/a&gt; but I'm not optimistic that we will see that on the commercial tools because they are too expensive and the primarily customers for these tools (large vendors) are not going to disclose enough details about the vulnerabilities discovered to provide a rich enough data set for comparison.&lt;br /&gt;&lt;br /&gt;It won't be me but perhaps some aspiring young hacker will take the time to do a thorough comparing the coverage of the &lt;a href="http://www.krakowlabs.com/lof.html"&gt;tools that are out there&lt;/a&gt; against a reference implementation  -- instead of writing yet another incomplete, poorly documented Open Soure fuzzer or fuzzing framework.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4362253415827998564?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4362253415827998564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4362253415827998564' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4362253415827998564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4362253415827998564'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/02/maze-of-twisty-fuzzers-all-alike.html' title='A Maze of Twisty Fuzzers All Alike'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7004418259583465963</id><published>2010-01-13T19:44:00.003-06:00</published><updated>2010-01-14T18:23:48.919-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><title type='text'>Hello MongoDB (Jython Style)</title><content type='html'>&lt;p&gt;It has been ages since I've played around with any of the Java scripting languages so I thought I'd give Jython a spin with MongoDB. I have no idea about the performance between the pure Python vs. Java driver but it would be an interesting benchmark.&lt;/p&gt;&lt;p&gt;This is a very quick code snippet based on the &lt;a href="http://www.mongodb.org/display/DOCS/Java+Tutorial"&gt;MongoDB Java tutorial&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This was done on Ubuntu 9.10 with OpenJDK in the standard repositories and assumes the jython shell script is in your path. It also assumes the Java MongoDB driver is in your path and I was lazy so I didn't bother with CLASSPATH.&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;#!/usr/bin/env jython&lt;br /&gt;import sys&lt;br /&gt;sys.path.append("mongo-1.2.jar")&lt;br /&gt;from com.mongodb import *&lt;br /&gt;print "Jython MongoDB Example"&lt;br /&gt;m = Mongo("10.0.0.33")&lt;br /&gt;db = m.getDB("grid_example")&lt;br /&gt;&lt;br /&gt;for c in db.getCollectionNames():&lt;br /&gt;      print c&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;And the output is just what you'd expect.&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;"&gt;mfranz@karmic-t61:~/Documents/mongo$ ./jymongo.py&lt;br /&gt;Jython MongoDB Example&lt;br /&gt;fs.chunks&lt;br /&gt;fs.files&lt;br /&gt;system.indexes&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7004418259583465963?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7004418259583465963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7004418259583465963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7004418259583465963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7004418259583465963'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/hello-mongodb-jython-style.html' title='Hello MongoDB (Jython Style)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-717509551658819972</id><published>2010-01-13T12:47:00.007-06:00</published><updated>2010-01-13T13:04:01.627-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><title type='text'>Avoiding Bracket Hell in MongoDB Queries (Python Style)</title><content type='html'>&lt;span style="font-family: times new roman;"&gt;To me it wasn't immediately obvious from the MongoDB &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://www.mongodb.org/display/DOCS/Advanced+Queries"&gt;Advanced Query documentation&lt;/a&gt;&lt;span style="font-family: times new roman;"&gt; that you can string together multiple operators to perform existence, membership, and greater/than that tests.  And since JSON can get very messy (and long!) and the syntax is slightly different from the Javascript in the documentation, instead of passing JSON directly to the find method of your collection pass a dictionary and assign the various conditions&lt;/span&gt;&lt;div style="font-family: times new roman;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: times new roman;"&gt;For example:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;myq = {}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   myq["batchstamp"] = b # a timestamp&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   myq["modbus_tcp_reference_num"] = {"$exists": True}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   cur = coll.find( myq )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: times new roman;"&gt;Although it doesn't appear much easier than passing&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;{'modbus_tcp_reference_num': {'$exists': True}, 'batchstamp': 999999999}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Once start adding additional conditions (themselves which may have dictionaries it is much easier and less error prone. Trust me!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-717509551658819972?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/717509551658819972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=717509551658819972' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/717509551658819972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/717509551658819972'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/avoiding-bracket-hell-in-mongodb.html' title='Avoiding Bracket Hell in MongoDB Queries (Python Style)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6479303586461053697</id><published>2010-01-10T18:54:00.003-06:00</published><updated>2010-01-10T19:10:32.869-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><title type='text'>PyMongo for Dummies (using Squid logs, again)</title><content type='html'>In my &lt;a href="http://blogfranz.blogspot.com/2010/01/dummies-guide-to-mongodb-queries-using.html"&gt;last blog&lt;/a&gt; I showed some examples form the MongoDB shell. Next, we'll go through the &lt;a href="http://api.mongodb.org/python/1.3%2B/api/index.html"&gt;PyMongo API&lt;/a&gt;, since only crazy people code in JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [3]: c = pymongo.Connection("192.168.169.62")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [4]: db = c.mongosquid&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [5]: raw = db.raw&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;In [6]: raw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Out[6]: Collection(Database(Connection('192.168.169.62', 27017), u'mongosquid'), u'raw')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We could have also referred to our collection as db["raw"] or db[coll] if you needed to define the collection in a variable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [7]: raw.count()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Out[7]: 205339&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can find out the methods that belong to the database with the collection_names() method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [40]: db.collection_names()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Out[40]: [u'raw', u'system.indexes']&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The find_one() method allows you to quickly inspect your collection and take a peek at a sample document.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [10]: raw.find_one()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Out[10]:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;{u'_id': ObjectId('4b496cddb15cb004a4000000'),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'format': u'-',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'method': u'GET',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'size': 824477.0,&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'source': u'192.168.1.254',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'squidcode': u'TCP_MISS/200',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'stamp': 1263096815.7609999,&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'url': u'http://netflix086.as.nflximg.com.edgesuite.net/sa0/166/1680180166.wmv/range/660083845-660907844?'}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The distinct() method does have some limitations, as I discovered the hard way, as you an see from this exception.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [13]: raw.distinct("stamp")&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;---------------------------------------------------------------------------&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;OperationFailure                          Traceback (most recent call last)&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;/root/&lt;/span&gt;&lt;ipython console=""&gt;  &lt;span style="font-family:courier new;"&gt;/usr/lib/python2.4/site-packages/pymongo-1.3-py2.4-linux-i686.egg/pymongo/collection.pyc in distinct(self, key)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;/usr/lib/python2.4/site-packages/pymongo-1.3-py2.4-linux-i686.egg/pymongo/cursor.pyc in distinct(self, key)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;/usr/lib/python2.4/site-packages/pymongo-1.3-py2.4-linux-i686.egg/pymongo/database.pyc in _command(self, command, allowable_errors, check, sock)&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OperationFailure: command SON([('distinct', u'raw'), ('key', 'stamp')]) failed: assertion: distinct too big, 4mb cap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So in my previous blog (using JavaScript) I introduced queries but you really can't do anything useful without using a cursor. If you've ever done any MySQL coding before you should be familiar with the concept. Basically it allows you to iterate through the results of a query.&lt;br /&gt;&lt;br /&gt;Here we have the same expressions but you obviously need to quote the gt in Python.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [29]: c  = raw.find( {'stamp': { "$gt": 1263096815 }})&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [31]: c.count()&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Out[31]: 2060&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [23]: c = raw.find({'squidcode':'TCP_DENIED/403'})&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [24]: c.count()&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Out[24]: 2999&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the sake of this exercise, we only want to see 3 results so we call the limit() method.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [26]: c.limit(3)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Out[26]: &lt;/span&gt;&lt;pymongo.cursor.cursor object="" at="" 0xb7388d6c=""&gt;&lt;br /&gt;&lt;br /&gt;Now we can iterate through the results of our query. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [27]: for e in c:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   ....:     print e&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;  &lt;br /&gt;....:    &lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;   ....:    &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;{u'squidcode': u'TCP_DENIED/403', u'format': u'-', u'stamp': 1262520969.721, u'source': u'192.168.1.254', u'url': u'http://www.bing.com/favicon.ico', u'_id': ObjectId('4b496ea4b15cb004a6000000'), u'method': u'GET', u'size': 1419.0}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{u'squidcode': u'TCP_DENIED/403', u'format': u'-', u'stamp': 1262521126.928, u'source': u'192.168.1.254', u'url': u'http://www.msn.com/', u'_id': ObjectId('4b496ea4b15cb004a600003e'), u'method': u'GET', u'size': 1395.0}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{u'squidcode': u'TCP_DENIED/403', u'format': u'-', u'stamp': 1262521127.654, u'source': u'192.168.1.254', u'url': u'http://www.bing.com/favicon.ico', u'_id': ObjectId('4b496ea4b15cb004a600003f'), u'method': u'GET', u'size': 1419.0}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So if we try again, what happens?&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [28]: for e in c:&lt;/span&gt;&lt;br /&gt;     &lt;span style="font-family:courier new;"&gt;print e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   ....:    &lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;   ....:     &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nada. We have to rewind the cursor object to be able iterate again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In [30]: c.rewind()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Out[30]:&lt;br /&gt;&lt;/span&gt;&lt;pymongo.cursor.cursor object="" at="" 0xb7388d6c=""&gt;  &lt;span style="font-family:courier new;"&gt;In [31]: for e in c:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    print e&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;   ....:     &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;   ....:    &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;{u'squidcode': u'TCP_DENIED/403', u'format': u'-', u'stamp': 1262520969.721, u'source': u'192.168.1.254', u'url': u'http://www.bing.com/favicon.ico', u'_id': ObjectId('4b496ea4b15cb004a6000000'), u'method': u'GET', u'size': 1419.0}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can also manually iterate through these by calling next()&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;In [51]: cr.next()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Out[51]: &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;{u'_id': ObjectId('4b496ea4b15cb004a6000000'),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'format': u'-',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'method': u'GET',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'size': 1419.0,&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'source': u'192.168.1.254',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'squidcode': u'TCP_DENIED/403',&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'stamp': 1262520969.721,&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; u'url': u'http://www.bing.com/favicon.ico'}&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;In [52]: result = cr.next()&lt;/span&gt;&lt;type dict=""&gt;&lt;br /&gt;&lt;br /&gt;Guess what, your limit will still apply so if you want to clear it you can do a cr.rewind() and cr.limit(0) and then you can manually iterate through with cr.next()&lt;br /&gt;&lt;br /&gt;&lt;/type&gt;&lt;/pymongo.cursor.cursor&gt;&lt;/pymongo.cursor.cursor&gt;&lt;/ipython&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6479303586461053697?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6479303586461053697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6479303586461053697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6479303586461053697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6479303586461053697'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/pymongo-for-dummies-using-squid-logs.html' title='PyMongo for Dummies (using Squid logs, again)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1113874090010784880</id><published>2010-01-10T00:15:00.007-06:00</published><updated>2010-01-10T00:46:46.282-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><title type='text'>Dummies Guide to MongoDB Queries using Squid Logs (JavaScript Shell Edition)</title><content type='html'>So the &lt;a href="http://www.mongodb.org/display/DOCS/Developer+Zone"&gt;MongoDB develop documentation&lt;/a&gt; is actually pretty decent, but it doesn't really use examples with real data. For me, it made it more difficult for some of the API and shell commands to sink in.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So to generate some real world queries I created a &lt;a href="http://code.google.com/p/blogfranz/source/browse/trunk/mongosquid/mongsosquid.py"&gt;python script&lt;/a&gt; that parsed the access.log file[s] generated by squid. I'll follow this blog with one that covers pymongo but I think this will be helpful, and like most of the posts will provide a good reference because when you are rapidly approaching 40 not only your eyes go, but your memory. So here goes...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First of all this assumes you are running the mongo JavaScript shell and yeah I know running from root is a bad idea and not even necessary (I don't think) but sue me.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="font-style: italic;"&gt;root@opti620:~/mongodb# ./bin/mongo&lt;/div&gt;&lt;div style="font-style: italic;"&gt;MongoDB shell version: 1.2.1&lt;/div&gt;&lt;div style="font-style: italic;"&gt;url: test&lt;/div&gt;&lt;div style="font-style: italic;"&gt;connecting to: test&lt;/div&gt;&lt;div style="font-style: italic;"&gt;type "help" for help&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; show dbs   &lt;/div&gt;&lt;div style="font-style: italic;"&gt;admin&lt;/div&gt;&lt;div style="font-style: italic;"&gt;local&lt;/div&gt;&lt;div style="font-style: italic;"&gt;mongosquid&lt;/div&gt;&lt;div style="font-style: italic;"&gt;test&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; use mongosquid&lt;/div&gt;&lt;div style="font-style: italic;"&gt;switched to db mongosquid&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; show collections&lt;/div&gt;&lt;div style="font-style: italic;"&gt;raw&lt;/div&gt;&lt;div style="font-style: italic;"&gt;system.indexes&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Now let's have some fun. This was actually when I just imported a few lines in from the log file so there are a relatively small number of documents. A collection is essentially like a table but since this is #nosql it really isn't a table. It is just collection of documents. We'll see those next.&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="font-style: italic;"&gt;&gt; db.raw.find().count()&lt;/div&gt;&lt;div style="font-style: italic;"&gt;1029&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; db.raw.find()[1029]  &lt;/div&gt;&lt;div style="font-style: italic;"&gt;&gt; db.raw.find()[1028]&lt;/div&gt;&lt;div style="font-style: italic;"&gt;{&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"_id" : ObjectId("4b496cddb15cb004a4000404"),&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"squidcode" : "TCP_MISS/200",&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"source" : "192.168.1.254",&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"stamp" : 1263102993.841,&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"format" : "-",&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"url" : "agmoviecontrol.netflix.com:443",&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"method" : "CONNECT",&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"size" : 17499&lt;/div&gt;&lt;div style="font-style: italic;"&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The JSON above is the "document."  Something you'll notice is there are two different data types basically strings and floating points. The size field and timestamp are obviously floats. That hash looking thing is actually a hash or GUID that is supposedly unique.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;So one of the cool built in queries is to return only the unique values for a given field. This is handled by the distinct method.&lt;br /&gt;&lt;br /&gt;So we can see here that there were HTTP Posts.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-style: italic;"&gt;&lt;div&gt;&gt; db.raw.distinct("method")&lt;/div&gt;&lt;div&gt;[ "CONNECT", "GET" ]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;And because of my screwed up natting I can't tell which of my kids was going to netflix.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; db.raw.distinct("source")&lt;/div&gt;&lt;div&gt;[ "192.168.1.254" ]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; db.raw.distinct("url")&lt;/div&gt;&lt;div&gt;....&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"http://netflix086.as.nflximg.com.edgesuite.net/sa0/725/1985205725.wma/range/9247565-9735184?",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"http://netflix086.as.nflximg.com.edgesuite.net/sa0/725/1985205725.wma/range/9735185-10219794?",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"http://netflix086.as.nflximg.com.edgesuite.net/sa0/725/1985205725.wma/range/985115-1469724?"&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;So remember when I discussed types above, if we wanted to retrieve all the transactions that were greater than 1MB we could do the following, but there are obviously &lt;a href="http://http//www.mongodb.org/display/DOCS/Advanced+Queries"&gt;more to it&lt;/a&gt; than that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt; db.raw.find( {size: { $gt:1000000}} )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{ "_id" : ObjectId("4b496cddb15cb004a4000162"), "squidcode" : "TCP_MISS/200", "source" : "192.168.1.254", "stamp" : 1263097489.996, "format" : "-", "url" : "http://netflix086.as.nflximg.com.edgesuite.net/sa0/166/1680180166.wmv/range/143155845-144163844?", "method" : "GET", "size" : 1008478 }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{ "_id" : ObjectId("4b496cddb15cb004a40003b0"), "squidcode" : "TCP_MISS/200", "source" : "192.168.1.254", "stamp" : 1263099100.207, "format" : "-", "url" : "http://netflix086.as.nflximg.com.edgesuite.net/sa0/166/1680180166.wmv/range/400771845-401779844?", "method" : "GET", "size" : 1008478 }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was pleased to find that you can use regular expressions. The first query tells me there are 3199 documents that have port 443 in them and the 2nd query returns the first document. One of the things I noticed is that retrieving the document based on the "index" is really really slow. But I believe that is because it isn't really an index, but we'll get to them later.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt; db.raw.find ( { url: /:443/ }).count()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;3199&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt; db.raw.find ( { url: /:443/ })[0]     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "_id" : ObjectId("4b496cddb15cb004a4000093"),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "squidcode" : "TCP_MISS/200",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "source" : "192.168.1.254",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "stamp" : 1263096929.091,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "format" : "-",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "url" : "agmoviecontrol.netflix.com:443",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "method" : "CONNECT",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    "size" : 96222&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt; db.raw.find ( { url: /:443/ })[0:3]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun Jan 10 01:16:11 JS Error: SyntaxError: missing ] in index expression (shell):0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll notice that array slices don't work, but they do in Python, obviously which I'll blog on next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1113874090010784880?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1113874090010784880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1113874090010784880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1113874090010784880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1113874090010784880'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/dummies-guide-to-mongodb-queries-using.html' title='Dummies Guide to MongoDB Queries using Squid Logs (JavaScript Shell Edition)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-158999923335810112</id><published>2010-01-09T13:44:00.004-06:00</published><updated>2010-01-09T14:04:53.300-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSD'/><title type='text'>FreeBSD 8.0 with rum0 and wpa_supplicant on Lenovo S10-2</title><content type='html'>It looks like the driver for &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=rum&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+8.0-RELEASE&amp;amp;format=html"&gt;rum&lt;/a&gt; has changed slightly in FreeBSD 8.0 from FreeBSD 7.2 because I was not able to use the same command-line syntax as I did previously. Basically the only thing different I did was the &lt;b&gt;ifconfig wlan create...&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;I had this card running on old Dell Optiplex acting as a bridge for my kids network (and they were watching a lot of streaming media) and I was surprisingly impressed with it. Decent performance.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre; "&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;mfranz-bsd8#&lt;br /&gt;ugen4.3: &lt;cisco-linksys&gt; at usbus4&lt;br /&gt;rum0: &lt;cisco-linksys compact="" g="" usb="" class="" 0="" rev="" 00="" addr="" 3=""&gt; on usbus4&lt;br /&gt;rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528&lt;br /&gt;&lt;br /&gt;mfranz-bsd8# cat /etc/wpa_supplicant.conf&lt;br /&gt;network={&lt;br /&gt; ssid="xxx"&lt;br /&gt; psk="xxxx"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;mfranz-bsd8# ifconfig wlan create wlandev rum0&lt;br /&gt;wlan0&lt;br /&gt;mfranz-bsd8# ifconfig wlan0&lt;br /&gt;wlan0: flags=8802&lt;broadcast,simplex,multicast&gt; metric 0 mtu 1500&lt;br /&gt; ether 00:1c:10:e6:1a:02&lt;br /&gt; media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)&lt;br /&gt; status: no carrier&lt;br /&gt; ssid "" channel 1 (2412 Mhz 11b)&lt;br /&gt; country US authmode OPEN privacy OFF txpower 0 bmiss 7 scanvalid 60&lt;br /&gt; bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 1&lt;br /&gt; bintval 0&lt;br /&gt;mfranz-bsd8#&lt;br /&gt;&lt;br /&gt;mfranz-bsd8# wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0&lt;br /&gt;CTRL-EVENT-SCAN-RESULTS&lt;br /&gt;Trying to associate with xxxxxxxxxx (SSID='xxxxxxxx' freq=2437 MHz)&lt;br /&gt;Associated with xxxxxxxxxxx&lt;br /&gt;WPA: Key negotiation completed with xxxxxxxxxxx [PTK=CCMP GTK=TKIP]&lt;br /&gt;CTRL-EVENT-CONNECTED - Connection to xxxxxxxxxx completed (auth) [id=0 id_str=]&lt;/broadcast,simplex,multicast&gt;&lt;/cisco-linksys&gt;&lt;/cisco-linksys&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And while I'm at it, I hadn't seen any who actually installed 8.0 on a Lenovo Netbook but so far so good. I've got X working (I'll blog on that later) and &lt;a href="http://www.freebsd.org/cgi/man.cgi?query=re&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+8.0-RELEASE&amp;amp;format=html"&gt;re&lt;/a&gt; seems to work well enough. Obviously the Broadcom 4312's aren't going to work, but if you have USB  wifi card or a &lt;a href="http://blogfranz.blogspot.com/2009/12/linux-netbook-use-case-evdowifi.html"&gt;tether&lt;/a&gt; you will be ok. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next step see if I can get my Novatel u727 card working. I suspect it should work just fine, because it worked well on OpenBSD, but you never know...&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Copyright (c) 1992-2009 The FreeBSD Project.&lt;br /&gt;Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994&lt;br /&gt;       The Regents of the University of California. All rights reserved.&lt;br /&gt;FreeBSD is a registered trademark of The FreeBSD Foundation.&lt;br /&gt;FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009&lt;br /&gt;   root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC&lt;br /&gt;Timecounter "i8254" frequency 1193182 Hz quality 0&lt;br /&gt;CPU: Intel(R) Atom(TM) CPU N270   @ 1.60GHz (1602.40-MHz 686-class CPU)&lt;br /&gt; Origin = "GenuineIntel"  Id = 0x106c2  Stepping = 2&lt;br /&gt; Features=0xbfe9fbff&lt;fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,htt pbe=""&gt;&lt;br /&gt; Features2=0x40c39d&lt;sse3,dtes64,mon,ds_cpl,est,tm2,ssse3,xtpr,pdcm,&gt;&lt;b22&gt;&gt;&lt;br /&gt; AMD Features2=0x1&lt;lahf&gt;&lt;br /&gt; TSC: P-state invariant&lt;br /&gt;real memory  = 1073741824 (1024 MB)&lt;br /&gt;avail memory = 1026433024 (978 MB)&lt;br /&gt;ACPI APIC Table: &lt;intel napa=""&gt;&lt;br /&gt;FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs&lt;br /&gt;FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads&lt;br /&gt;cpu0 (BSP): APIC ID:  0&lt;br /&gt;cpu1 (AP/HT): APIC ID:  1&lt;br /&gt;ioapic0: Changing APIC ID to 4&lt;br /&gt;ioapic0 &lt;version 0=""&gt; irqs 0-23 on motherboard&lt;br /&gt;kbd1 at kbdmux0&lt;br /&gt;acpi0: &lt;lenovo 01=""&gt; on motherboard&lt;br /&gt;acpi0: [ITHREAD]&lt;br /&gt;acpi0: Power Button (fixed)&lt;br /&gt;Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000&lt;br /&gt;acpi_timer0: &lt;24-bit&gt; port 0x408-0x40b on acpi0&lt;br /&gt;acpi_ec0: &lt;embedded gpe="" 0x19=""&gt; port 0x62,0x66 on acpi0&lt;br /&gt;acpi_hpet0: &lt;high precision="" event="" timer=""&gt; iomem 0xfed00000-0xfed003ff on acpi0&lt;br /&gt;Timecounter "HPET" frequency 14318180 Hz quality 900&lt;br /&gt;acpi_button0: &lt;power button=""&gt; on acpi0&lt;br /&gt;acpi_lid0: &lt;control method="" lid="" switch=""&gt; on acpi0&lt;br /&gt;acpi_button1: &lt;sleep button=""&gt; on acpi0&lt;br /&gt;pcib0: &lt;acpi pci="" bridge=""&gt; port 0xcf8-0xcff on acpi0&lt;br /&gt;pci0: &lt;acpi pci="" bus=""&gt; on pcib0&lt;br /&gt;vgapci0: &lt;vga-compatible display=""&gt; port 0x60f0-0x60f7 mem 0x58280000-0x582fffff,0x40000000-0x4fffffff,0x58300000-0x5833ffff irq 16&lt;br /&gt;at device 2.0 on pci0&lt;br /&gt;agp0: &lt;intel 945gme="" svga="" controller=""&gt; on vgapci0&lt;br /&gt;agp0: detected 7932k stolen memory&lt;br /&gt;agp0: aperture size is 256M&lt;br /&gt;vgapci1: &lt;vga-compatible display=""&gt; mem 0x58200000-0x5827ffff at device 2.1 on pci0&lt;br /&gt;pci0: &lt;multimedia, hda=""&gt; at device 27.0 (no driver attached)&lt;br /&gt;pcib1: &lt;acpi pci="" bridge=""&gt; at device 28.0 on pci0&lt;br /&gt;pci1: &lt;acpi pci="" bus=""&gt; on pcib1&lt;br /&gt;pcib2: &lt;acpi pci="" bridge=""&gt; at device 28.1 on pci0&lt;br /&gt;pci2: &lt;acpi pci="" bus=""&gt; on pcib2&lt;br /&gt;pci2: &lt;network&gt; at device 0.0 (no driver attached)&lt;br /&gt;pcib3: &lt;acpi pci="" bridge=""&gt; at device 28.2 on pci0&lt;br /&gt;pci3: &lt;acpi pci="" bus=""&gt; on pcib3&lt;br /&gt;re0: &lt;realtek 8101e="" 8102e="" 8102el="" pcie="" 10="" 100basetx=""&gt; port 0x2000-0x20ff mem 0x52010000-0x52010fff,0x52000000-0x5200ffff irq 18 at&lt;br /&gt;device 0.0 on pci3&lt;br /&gt;re0: Using 1 MSI messages&lt;br /&gt;re0: Chip rev. 0x24800000&lt;br /&gt;re0: MAC rev. 0x00400000&lt;br /&gt;miibus0: &lt;mii bus=""&gt; on re0&lt;br /&gt;rlphy0: &lt;rtl8201l 10="" 100="" media="" interface=""&gt; PHY 1 on miibus0&lt;br /&gt;rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto&lt;br /&gt;re0: Ethernet address: 00:26:22:0b:07:28&lt;br /&gt;re0: [FILTER]&lt;br /&gt;pcib4: &lt;acpi pci="" bridge=""&gt; at device 28.3 on pci0&lt;br /&gt;pci4: &lt;acpi pci="" bus=""&gt; on pcib4&lt;br /&gt;uhci0: &lt;intel 82801g="" usb="" controller="" a=""&gt; port 0x60a0-0x60bf irq 16 at device 29.0 on pci0&lt;br /&gt;uhci0: [ITHREAD]&lt;br /&gt;uhci0: LegSup = 0x0f00&lt;br /&gt;usbus0: &lt;intel 82801g="" usb="" controller="" a=""&gt; on uhci0&lt;br /&gt;uhci1: &lt;intel 82801g="" usb="" controller="" b=""&gt; port 0x6080-0x609f irq 17 at device 29.1 on pci0&lt;br /&gt;uhci1: [ITHREAD]&lt;br /&gt;uhci1: LegSup = 0x0f00&lt;br /&gt;usbus1: &lt;intel 82801g="" usb="" controller="" b=""&gt; on uhci1&lt;br /&gt;uhci2: &lt;intel 82801g="" usb="" controller="" c=""&gt; port 0x6060-0x607f irq 18 at device 29.2 on pci0&lt;br /&gt;uhci2: [ITHREAD]&lt;br /&gt;uhci2: LegSup = 0x0f00&lt;br /&gt;usbus2: &lt;intel 82801g="" usb="" controller="" c=""&gt; on uhci2&lt;br /&gt;uhci3: &lt;intel 82801g="" usb="" controller="" d=""&gt; port 0x6040-0x605f irq 19 at device 29.3 on pci0&lt;br /&gt;uhci3: [ITHREAD]&lt;br /&gt;uhci3: LegSup = 0x0f00&lt;br /&gt;usbus3: &lt;intel 82801g="" usb="" controller="" d=""&gt; on uhci3&lt;br /&gt;ehci0: &lt;intel 82801gb="" r="" usb="" 0="" controller=""&gt; mem 0x58344400-0x583447ff irq 16 at device 29.7 on pci0&lt;br /&gt;ehci0: [ITHREAD]&lt;br /&gt;usbus4: EHCI version 1.0&lt;br /&gt;usbus4: &lt;intel 82801gb="" r="" usb="" 0="" controller=""&gt; on ehci0&lt;br /&gt;pcib5: &lt;acpi pci="" bridge=""&gt; at device 30.0 on pci0&lt;br /&gt;pci5: &lt;acpi pci="" bus=""&gt; on pcib5&lt;br /&gt;isab0: &lt;pci-isa bridge=""&gt; at device 31.0 on pci0&lt;br /&gt;isa0: &lt;isa bus=""&gt; on isab0&lt;br /&gt;atapci0: &lt;intel ich7="" udma100="" controller=""&gt; port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x60c0-0x60cf irq 16 at device 31.1 on pci0&lt;br /&gt;ata0: &lt;ata channel="" 0=""&gt; on atapci0&lt;br /&gt;ata0: [ITHREAD]&lt;br /&gt;atapci1: &lt;intel ich7m="" sata150="" controller=""&gt; port 0x60d8-0x60df,0x60fc-0x60ff,0x60d0-0x60d7,0x60f8-0x60fb,0x6020-0x602f mem 0x583440&lt;br /&gt;00-0x583443ff irq 17 at device 31.2 on pci0&lt;br /&gt;atapci1: [ITHREAD]&lt;br /&gt;atapci1: AHCI called from vendor specific driver&lt;br /&gt;atapci1: AHCI v1.10 controller with 4 1.5Gbps ports, PM not supported&lt;br /&gt;ata2: &lt;ata channel="" 0=""&gt; on atapci1&lt;br /&gt;ata2: [ITHREAD]&lt;br /&gt;ata3: &lt;ata channel="" 2=""&gt; on atapci1&lt;br /&gt;ata3sm0: &lt;ps/2 mouse=""&gt; irq 12 on atkbdc0&lt;br /&gt;psm0: [GIANT-LOCKED]&lt;br /&gt;psm0: [ITHREAD]&lt;br /&gt;psm0: model Generic PS/2 mouse, device ID 0&lt;br /&gt;cpu0: &lt;acpi cpu=""&gt; on acpi0&lt;br /&gt;est0: &lt;enhanced speedstep="" frequency="" control=""&gt; on cpu0&lt;br /&gt;p4tcc0: &lt;cpu frequency="" thermal="" control=""&gt; on cpu0&lt;br /&gt;cpu1: &lt;acpi cpu=""&gt; on acpi0&lt;br /&gt;est1: &lt;enhanced speedstep="" frequency="" control=""&gt; on cpu1&lt;br /&gt;p4tcc1: &lt;cpu frequency="" thermal="" control=""&gt; on cpu1&lt;br /&gt;pmtimer0 on isa0&lt;br /&gt;orm0: &lt;isa option="" rom=""&gt; at iomem 0xcf000-0xcffff pnpid ORM0000 on isa0&lt;br /&gt;sc0: &lt;system console=""&gt; at flags 0x100 on isa0&lt;br /&gt;sc0: VGA &lt;16 flags="0x300"&gt;&lt;br /&gt;vga0: &lt;generic isa="" vga=""&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0&lt;br /&gt;ppc0: parallel port not found.&lt;br /&gt;Timecounters tick every 1.000 msec&lt;br /&gt;usbus0: 12Mbps Full Speed USB v1.0&lt;br /&gt;usbus1: 12Mbps Full Speed USB v1.0&lt;br /&gt;usbus2: 12Mbps Full Speed USB v1.0&lt;br /&gt;usbus3: 12Mbps Full Speed USB v1.0&lt;br /&gt;usbus4: 480Mbps High Speed USB v2.0&lt;br /&gt;ad4: 152627MB &lt;wdc 22zct0="" 01a11=""&gt; at ata2-master SATA150&lt;br /&gt;ugen0.1: &lt;intel&gt; at usbus0&lt;br /&gt;uhub0: &lt;intel uhci="" root="" class="" 9="" rev="" 00="" addr="" 1=""&gt; on usbus0&lt;br /&gt;ugen1.1: &lt;intel&gt; at usbus1&lt;br /&gt;uhub1: &lt;intel uhci="" root="" class="" 9="" rev="" 00="" addr="" 1=""&gt; on usbus1&lt;br /&gt;ugen2.1: &lt;intel&gt; at usbus2&lt;br /&gt;uhub2: &lt;intel uhci="" root="" class="" 9="" rev="" 00="" addr="" 1=""&gt; on usbus2&lt;br /&gt;ugen3.1: &lt;intel&gt; at usbus3&lt;br /&gt;uhub3: &lt;intel uhci="" root="" class="" 9="" rev="" 00="" addr="" 1=""&gt; on usbus3&lt;br /&gt;ugen4.1: &lt;intel&gt; at usbus4&lt;br /&gt;uhub4: &lt;intel ehci="" root="" class="" 9="" rev="" 00="" addr="" 1=""&gt; on usbus4&lt;br /&gt;: [ITHREAD]&lt;br /&gt;GEOM: ad4: partition 1 does not start on a track boundary.&lt;br /&gt;GEOM: ad4: partition 1 does not end on a track boundary.&lt;br /&gt;uhub0: 2 ports with 2 removable, self powered&lt;br /&gt;uhub1: 2 ports with 2 removable, self powered&lt;br /&gt;uhub2: 2 ports with 2 removable, self powered&lt;br /&gt;uhub3: 2 ports with 2 removable, self powered&lt;br /&gt;Root mount waiting for: usbus4&lt;br /&gt;Root mount waiting for: usbus4&lt;br /&gt;Root mount waiting for: usbus4&lt;br /&gt;uhub4: 8 ports with 8 removable, self powered&lt;br /&gt;Root mount waiting for: usbus4&lt;br /&gt;Root mount waiting for: usbus4&lt;br /&gt;ugen4.2: &lt;bison corporation=""&gt; at usbus4&lt;br /&gt;Trying to mount root from ufs:/dev/ad4s2a&lt;br /&gt;ugen0.2: &lt;logitech&gt; at usbus0&lt;br /&gt;ums0: &lt;logitech class="" 0="" rev="" 10="" addr="" 2=""&gt; on usbus0&lt;br /&gt;ums0: 2 buttons and [XY] coordinates ID=0&lt;br /&gt;drm0: &lt;intel i945gme=""&gt; on vgapci0&lt;br /&gt;vgapci0: child drm0 requested pci_enable_busmaster&lt;br /&gt;info: [drm] AGP at 0x40000000 256MB&lt;br /&gt;info: [drm] Initialized i915 1.6.0 20080730&lt;br /&gt;&lt;/intel&gt;&lt;/logitech&gt;&lt;/logitech&gt;&lt;/bison&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/wdc&gt;&lt;/generic&gt;&lt;/system&gt;&lt;/isa&gt;&lt;/cpu&gt;&lt;/enhanced&gt;&lt;/acpi&gt;&lt;/cpu&gt;&lt;/enhanced&gt;&lt;/acpi&gt;&lt;/ps/2&gt;&lt;/ata&gt;&lt;/ata&gt;&lt;/intel&gt;&lt;/ata&gt;&lt;/intel&gt;&lt;/isa&gt;&lt;/pci-isa&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/intel&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/rtl8201l&gt;&lt;/mii&gt;&lt;/realtek&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/network&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/multimedia,&gt;&lt;/vga-compatible&gt;&lt;/intel&gt;&lt;/vga-compatible&gt;&lt;/acpi&gt;&lt;/acpi&gt;&lt;/sleep&gt;&lt;/control&gt;&lt;/power&gt;&lt;/high&gt;&lt;/embedded&gt;&lt;/lenovo&gt;&lt;/version&gt;&lt;/intel&gt;&lt;/lahf&gt;&lt;/b22&gt;&lt;/sse3,dtes64,mon,ds_cpl,est,tm2,ssse3,xtpr,pdcm,&gt;&lt;/fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,htt&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-158999923335810112?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/158999923335810112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=158999923335810112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/158999923335810112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/158999923335810112'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/freebsd-80-with-rum0-and-wpasupplicant.html' title='FreeBSD 8.0 with rum0 and wpa_supplicant on Lenovo S10-2'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7244150015890560875</id><published>2010-01-07T20:34:00.006-06:00</published><updated>2010-01-07T20:51:22.486-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongo'/><title type='text'>Some Shallow &amp; Superficial Reasons for Picking MongoDB for your [web]app</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/S0adglzdnOI/AAAAAAAABoA/OIqogGHelsY/s1600-h/mongo_3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 221px; height: 94px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/S0adglzdnOI/AAAAAAAABoA/OIqogGHelsY/s400/mongo_3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5424195984443677922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So first got turned on to #nosql databases a little over (or under) a year ago with &lt;a href="http://couchdb.apache.org/"&gt;CouchDB&lt;/a&gt; but lately I've been quite enamored with &lt;a href="http://mongodb.org"&gt;MongoDB&lt;/a&gt; as of late. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So forgot about deep architectural reasons for using it. Here are some quite practical some practical reasons, when you are a not full-time developer (or database guru) but you find yourself doing development that involves a data store and the thought of using MySQL (so like 2000s) in your app:&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Abhorrence for schemas, ORMs, and migrations&lt;/b&gt; - this is basically the laziness argument.  Basically I want/need to store stuff. And the stuff I want to store might change and I don't want to have to deal with changing the schema (and my) app to adapt to those changes. This was document oriented databases like CouchDB and MySQL rule. If everything is a JSON object it finds a great place for you to store stuff.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Ease of Installation &amp;amp; Compilation&lt;/b&gt; -- yep CouchDB has been in the latest Ubuntu repos for a while, but I use Lenny/Hardy server side, so forget about it. Dealing with Erlang (and finding all the dependencies to build SpiderMonkey was a big pain) the ass. Beam, what the hell is beam? Mongo has 32/64 bit Linux binaries that just work and a briefly managed to get it to compile on FreeBSD 7.2. And unlike some of the others out there it doesn't require require a JRE.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Map/Reduce hurts my head&lt;/b&gt; - ease of use is one of the key differentiators between Mongo and CouchDB is that is the simplicity of queries. I'm not an expert yet, but having to create Map/Reduce functions to create views to get at your data, it was a slippery concept for me.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Non-HTTP Transport&lt;/b&gt; -- unlike CouchDB, Mongo has a binary client/server protocol and doesn't used HTTP.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;There are also some really cool features like capped collection that should be useful for the app I'm working on, but these were some of the reasons why I went with Mongo. Back to coding...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7244150015890560875?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7244150015890560875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7244150015890560875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7244150015890560875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7244150015890560875'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/some-shallow-superficial-reasons-for.html' title='Some Shallow &amp; Superficial Reasons for Picking MongoDB for your [web]app'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MPIoEEC-IC0/S0adglzdnOI/AAAAAAAABoA/OIqogGHelsY/s72-c/mongo_3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1786049409824599163</id><published>2010-01-05T20:49:00.004-06:00</published><updated>2010-01-05T20:58:21.816-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgia'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Austin-Skokie'/><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Pansy or Victim?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/S0P6Zy2xclI/AAAAAAAABn4/vwUMEx-SxOU/s1600-h/pansy.png"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/S0P6Zy2xclI/AAAAAAAABn4/vwUMEx-SxOU/s1600-h/pansy.png"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " src="http://2.bp.blogspot.com/_MPIoEEC-IC0/S0P6Zy2xclI/AAAAAAAABn4/vwUMEx-SxOU/s400/pansy.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5423453697339388498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So unfortunately some who I [used to] follow over on @frednecksec cited an article over on &lt;a href="http://www.prisonplanet.com"&gt;prisonplanet.com&lt;/a&gt; which allowed me to check out the cool sponsors such as the one pictured above but don't forget &lt;a href="http://www.silverlungs.com/"&gt;Silverlungs&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To each his own, I inhaling  gaseous gold myself. Much better preparation for the "End Times," the "New World" or whatever the "elites" have in store for us.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1786049409824599163?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1786049409824599163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1786049409824599163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1786049409824599163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1786049409824599163'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2010/01/pansy-or-victim.html' title='Pansy or Victim?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/S0P6Zy2xclI/AAAAAAAABn4/vwUMEx-SxOU/s72-c/pansy.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4202022880665396459</id><published>2009-12-25T10:47:00.008-06:00</published><updated>2009-12-25T11:54:04.835-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Installing Redmine on Debian Etch</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SzT23f3Tv-I/AAAAAAAABnw/MHpD8E0UGBQ/s1600-h/redmine.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 110px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SzT23f3Tv-I/AAAAAAAABnw/MHpD8E0UGBQ/s200/redmine.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5419227684940267490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a step by step summary of what I did to get to get &lt;a href="http://www.redmin.org/"&gt;Redmine&lt;/a&gt; up and running on Debian 5.x (Linux etch55 2.6.24-24-openvz #1 SMP Fri Sep 18 19:57:34 UTC 2009 i686 GNU/Linux) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you don't know what Redmine is, it is like &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;, but better and on Rails. If you don't know what Trac is you probably wouldn't be interested in Redmine, so you can stop reading.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What it took?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;1. Review &lt;a href="http://www.debian-administration.org/articles/329"&gt;this&lt;/a&gt; Rails on Debian guide. I'm sure there are others, but this is was a good starting point to get the nuances of running Rails apps on Debian, which can be a bit of pain if you are relying on packages. I know real rails folks use OSX but I'm not a real rails guy.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Install the necessary Debian packages. This is what I had to do on an OpenVZ VE, so you your packages may differ slightly: &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;ruby ruby-dev irb sqlite3 ri libzlib-ruby libsqlite3-ruby libmysql-ruby mysql-serer mysql-client libopenssl-ruby&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Install Rubygems the normal way. I installed 1.3.5. I created a symlink for gem1.8  just because.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Read the &lt;a href="http://www.redmine.org/wiki/redmine/RedmineInstall"&gt;Redmine Installation Guide&lt;/a&gt;. Most of what you need to know is there, and I'm not going to repeat what it is there because it should just work, especially if you are familiar with rails or the configuration of rails apps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Install rails and rake. I installed rails 2.1.2 based on the minimum for the 0.8x of redmine. I assume more recent versions of rails will work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Download the &lt;a href="http://www.redmine.org/wiki/redmine/Download"&gt;stable release&lt;/a&gt; of Redmine. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. You should have already configured mysql-server during the install, but make sure you put your password in the database.yml.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8. Create your database.yml, the session key and run the various rake scripts in the installation guide.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;9. Fire up with webrick and login with admin/admin.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What went Wrong?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;The main issues I had were related to not installing the right Debian packages. For example you definitely need libopenssl-ruby or the startup scripts will fail. I also screwed up the database.yml.&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What Next?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Get git working following the instructions &lt;a href="http://www.redmine.org/wiki/redmine/RedmineRepositories"&gt;here&lt;/a&gt;. But first I need to work on my git skills, since I mostly have used subversion.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4202022880665396459?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4202022880665396459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4202022880665396459' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4202022880665396459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4202022880665396459'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/12/installing-redmine-on-debian-etch.html' title='Installing Redmine on Debian Etch'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/SzT23f3Tv-I/AAAAAAAABnw/MHpD8E0UGBQ/s72-c/redmine.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5755370802644601238</id><published>2009-12-19T20:36:00.008-06:00</published><updated>2009-12-19T21:22:57.964-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Sexing Up Your Boring Hardy Desktop to thwart Mac-Envy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/Sy2UaXsMm7I/AAAAAAAABmU/XYY7B8m1syU/s1600-h/Screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/Sy2UaXsMm7I/AAAAAAAABmU/XYY7B8m1syU/s320/Screenshot.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5417149107553475506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So image is important. I get that. That is why so many security folks like Mac's these days. It certainly isn't because they are more reliable, but I digress.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Karmic has decent themes and wallpapers, but 8.04LTS is bloody awful. And you can't go onsite somewhere with a bunch of non-IT folks that will already be looking over you shoulder with ugly Ubuntu brown. It is bad enough that I have to use an older Dell D630, which of course runs faster than my E6400 with XP. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the &lt;a href="http://www.bisigi-project.org/?page_id=8"&gt;Bisigi Project&lt;/a&gt; has some pretty cool themes. I picked &lt;a href="http://www.bisigi-project.org/?p=65"&gt;Showtime&lt;/a&gt;, a nice monochrome, almost but no completely OSX like theme. Next you need a simple monochrome theme for Firefox. If you have to use Firefox, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6971"&gt;Full Flat&lt;/a&gt; kicks ass, especially on Netbooks with limited resolution, but I swear it is faster. Lastly you need a nice monochrome wallpaper like &lt;a href="http://gnome-look.org/content/preview.php?preview=1&amp;amp;id=71346&amp;amp;file1=71346-1.png&amp;amp;file2=&amp;amp;file3=&amp;amp;name=Dark+Times"&gt;Dark Times&lt;/a&gt; (after all it &lt;i&gt;is&lt;/i&gt; Advent remember) from &lt;a href="http://gnome-look.org/"&gt;gnome-look.org&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And this just in, a monochrome &lt;a href="https://tools.google.com/chrome/intl/en/themes/theme_greyscale.html"&gt;Chrome theme&lt;/a&gt; to match.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5755370802644601238?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5755370802644601238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5755370802644601238' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5755370802644601238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5755370802644601238'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/12/sexing-up-your-boring-hardy-desktop-to.html' title='Sexing Up Your Boring Hardy Desktop to thwart Mac-Envy'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/Sy2UaXsMm7I/AAAAAAAABmU/XYY7B8m1syU/s72-c/Screenshot.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2148376933539919384</id><published>2009-12-19T17:53:00.009-06:00</published><updated>2009-12-19T18:24:24.118-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Linux Netbook Use Case: EVDO/Wifi Firewall to protect your "Big Company" XP Laptop</title><content type='html'>So if you've used any large enterprise XP image you know they are awful.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The larger the company, the worse the build. They are slow. They crash all the time. They have a zillion agents running doing God knows what and they probably have the firewall disabled. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But you want to do the "right thing" and actually follow policy and NOT put Linux on the lovely Dell hardware they give like you used to do "back in the day."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And you don't want to run these in a coffee shop or an untrusted network.  But I feel reasonably safe about running my Ubuntu S10-2 in relatively hostile environments.&lt;br /&gt;&lt;br /&gt;Because most modern NICs (including the Broadcom's in most Atom-based netbooks) have auto-MDX so you can just directly plug in your laptop into the unused Ethernet on your Netbook after doing the following:&lt;br /&gt;&lt;br /&gt;1) Configure a static address on the eth0 in (/etc/network/interfaces) making sure it is not an network you actually use (DOH!)&lt;/div&gt;&lt;div&gt;2) Make the appropriate change to sysctl.conf (if you have to ask...)&lt;br /&gt;3) Install dnsmasq for DNS and DHCP (an apt-get away)&lt;br /&gt;4) Add whatever iptables rules you want to rc.local (or run manually because if the ppp0 interface is not up it may not work)&lt;br /&gt;&lt;br /&gt;Sometimes I share over the Wifi others I use my EVDO card. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bottom line: it just works.&lt;br /&gt;&lt;br /&gt;Bonus: you get to see whatever the hell all those pesky agents are doing when they phone home to your corporate network over the Internet.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2148376933539919384?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2148376933539919384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2148376933539919384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2148376933539919384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2148376933539919384'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/12/linux-netbook-use-case-evdowifi.html' title='Linux Netbook Use Case: EVDO/Wifi Firewall to protect your &quot;Big Company&quot; XP Laptop'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3399550320405817817</id><published>2009-12-19T06:59:00.001-06:00</published><updated>2009-12-19T07:01:06.407-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Back East'/><title type='text'>Snow Photos and More</title><content type='html'>In lieu of Facebook. Recent birthday party, lego club, and more!&lt;br /&gt;&lt;br /&gt;&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.com/mdfranz/Blizzard09?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_MPIoEEC-IC0/SyzNubUfarE/AAAAAAAABmM/3T5sdYUgYJU/s160-c/Blizzard09.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.com/mdfranz/Blizzard09?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;blizzard09&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3399550320405817817?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3399550320405817817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3399550320405817817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3399550320405817817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3399550320405817817'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/12/snow-photos-and-more.html' title='Snow Photos and More'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_MPIoEEC-IC0/SyzNubUfarE/AAAAAAAABmM/3T5sdYUgYJU/s72-c/Blizzard09.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7856483134864567185</id><published>2009-12-09T19:39:00.006-06:00</published><updated>2009-12-09T20:44:40.915-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><title type='text'>WebSocket Service Fingerprinting with Curl</title><content type='html'>&lt;div&gt;Fingerprinting is probably a bit of a stretch, but at least I didn't use the "h" word, but using &lt;a href="http://code.google.com/p/pywebsocket/"&gt;pywebsocket&lt;/a&gt; is probably the easiest way to learn about the &lt;a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-66"&gt;protocol&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Startup the server....&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;franz@mfranz-s10-2:~/Documents/pywebsocket-read-only/src/mod_pywebsocket$ python standalone.py -p 8888 -w ../example/&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Then the client...&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;mfranz@mfranz-s10-2:~/Documents/pywebsocket-read-only/src/example$ python echo_client.py -s 127.0.0.1 -p 8888&lt;/span&gt;&lt;br /&gt;Send: Hello&lt;br /&gt;Recv: Hello&lt;br /&gt;Send: 日本&lt;br /&gt;Recv: 日本&lt;br /&gt;Send: Goodbye&lt;br /&gt;Recv: Goodbye&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Look at the traffic on the wire with ngrep.&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre;font-size:13px;"&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, serif;font-size:130%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: normal;font-size:16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;interface: lo (127.0.0.0/255.0.0.0)&lt;br /&gt;####&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;GET /echo HTTP/1.1..                                              &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;Upgrade: WebSocket..                                              &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;Connection: Upgrade..                                             &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;Host: 127.0.0.1:8888..                                            &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;Origin: http://localhost/..                                       &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;..                                                                &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;HTTP/1.1 101 Web Socket Protocol Handshake..                      &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;Upgrade: WebSocket..                                              &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;Connection: Upgrade..                                             &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;WebSocket-Origin:                                                 &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;http://localhost/                                                 &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;..                                                                &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;WebSocket-Location:                                               &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;ws://127.0.0.1:8888/echo                                          &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;..                                                                &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;..                                                                &lt;br /&gt;##&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;.Hello.                                                           &lt;br /&gt;#&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;.Hello.                                                           &lt;br /&gt;#&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;........                                                          &lt;br /&gt;#&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;........                                                          &lt;br /&gt;#&lt;br /&gt;T 127.0.0.1:44284 -&gt; 127.0.0.1:8888 [AP]&lt;br /&gt;.Goodbye.                                                         &lt;br /&gt;#&lt;br /&gt;T 127.0.0.1:8888 -&gt; 127.0.0.1:44284 [AP]&lt;br /&gt;.Goodbye.                                                         &lt;br /&gt;###&lt;/pre&gt;&lt;br /&gt;Now with curl, notice the headers that you have to add to get a response. With anything less I got a 404. The origin header can be anything.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;mfranz@mfranz-s10-2:~$ curl -v http://127.0.0.1:8888/echo -H "Upgrade: WebSocket" -H "Connection: Upgrade" -H "Origin: http://localhost"&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;* About to connect() to 127.0.0.1 port 8888 (#0)&lt;br /&gt;*   Trying 127.0.0.1... connected&lt;br /&gt;* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)&lt;br /&gt;&gt; GET /echo HTTP/1.1&lt;br /&gt;&gt; User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15&lt;br /&gt;&gt; Host: 127.0.0.1:8888&lt;br /&gt;&gt; Accept: */*&lt;br /&gt;&gt; Upgrade: WebSocket&lt;br /&gt;&gt; Connection: Upgrade&lt;br /&gt;&gt; Origin: http://localhost&lt;br /&gt;&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;But if the URI doesn't match you get&lt;br /&gt;&lt;i&gt;&lt;br /&gt;mfranz@mfranz-s10-2:~$ curl -v http://127.0.0.1:8888/ -H "Upgrade: WebSocket" -H "Connection: Upgrade" -H "Origin: http://localhost"&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;* About to connect() to 127.0.0.1 port 8888 (#0)&lt;br /&gt;*   Trying 127.0.0.1... connected&lt;br /&gt;* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)&lt;br /&gt;&gt; GET / HTTP/1.1&lt;br /&gt;&gt; User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15&lt;br /&gt;&gt; Host: 127.0.0.1:8888&lt;br /&gt;&gt; Accept: */*&lt;br /&gt;&gt; Upgrade: WebSocket&lt;br /&gt;&gt; Connection: Upgrade&lt;br /&gt;&gt; Origin: http://localhost&lt;br /&gt;&gt;&lt;br /&gt;* Empty reply from server&lt;br /&gt;* Connection #0 to host 127.0.0.1 left intact&lt;br /&gt;curl: (52) Empty reply from server&lt;br /&gt;* Closing connection #0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7856483134864567185?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7856483134864567185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7856483134864567185' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7856483134864567185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7856483134864567185'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/12/hello-websockets-via-pywebsockets.html' title='WebSocket Service Fingerprinting with Curl'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4262199318345206</id><published>2009-11-26T21:53:00.005-06:00</published><updated>2009-11-26T22:20:08.620-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><title type='text'>Generating SVG Output (from Graphviz) in your Django App</title><content type='html'>So accomplishing new coding tasks can be a challenge with interruptions and I've had a lot of interruptions this week but I finally got there. And I'm thankful!&lt;br /&gt;&lt;br /&gt;I have an app that is storing data, meaning Django models for the uninitiated. What is in there doesn't matter, but it is something that is conducive to plotting with &lt;a href="http://graphviz.org"&gt;graphviz&lt;/a&gt;. So the starting point is a string that is in the &lt;a href="http://graphviz.org/Gallery/directed/unix.gv.txt"&gt;.dot format&lt;/a&gt;. I have some code that makes queries to the database and I end up with a string.&lt;br /&gt;&lt;br /&gt;So there is a utility function that creates this string...&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def make_svg_str:&lt;br /&gt; #blah blah blah snip&lt;br /&gt; dot_string += "}"&lt;br /&gt; p = subprocess.Popen('/usr/bin/dot -Tsvg', shell=True,\&lt;br /&gt; stdin=subprocess.PIPE, stdout=subprocess.PIPE)&lt;br /&gt; (stdout,stderr) = p.communicate(dot_string)&lt;br /&gt; return stdout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So I &lt;i&gt;almost&lt;/i&gt; got this right the first time except that I forgot the stdout in Popen() which caused the output to go to stdout (and not be assigned to the string) so I saw the .xml in the dev web server logs.&lt;br /&gt;&lt;br /&gt;The graphviz string (dot_string) is being piped to the dot executable and then the function is returning the XML SVG as a string, and is obviously assigned to the stdout variable in the tuple.&lt;br /&gt;&lt;br /&gt;Now the tricky part within my views.py.&lt;br /&gt;&lt;br /&gt;My first mistake was using the &lt;a href="http://docs.djangoproject.com/en/dev/howto/outputting-csv/"&gt;Django CSV&lt;/a&gt; docs instead of the &lt;a href="http://docs.djangoproject.com/en/dev/howto/outputting-pdf/#howto-outputting-pdf"&gt;PDF docs&lt;/a&gt; because the latter is what we need. I also didn't remember that HttpResponse is a file-like object so we can can just write to it once we have the SVG text.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def svg(request):&lt;br /&gt;f = Foo.objects.all()&lt;br /&gt;response = HttpResponse(mimetype='image/svg+xml')&lt;br /&gt;response['Content-Disposition'] = 'filename=somefilename.svg'&lt;br /&gt;response.write(make_svg_str(f))&lt;br /&gt;return response&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So this will display your image within your browser (which is what I wanted) instead of downloading file if you the use the "attachment" in the Content-Disposition key.&lt;br /&gt;&lt;br /&gt;The name of the game is taking shortcuts that get the job done. I'm using the admin interface to provide a good-enough UI to enter the data and now I'm using Graphviz to visualize that data without having to spend a lot of time writing UIs or nasty JavaScript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4262199318345206?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4262199318345206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4262199318345206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4262199318345206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4262199318345206'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/11/generating-svg-output-from-graphviz-in.html' title='Generating SVG Output (from Graphviz) in your Django App'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8661138213019237192</id><published>2009-11-24T19:59:00.007-06:00</published><updated>2009-11-24T20:46:46.113-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>Where's the Controversy about Shodan?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://shodan.surtri.com/images/shodan_large.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 40px;" src="http://shodan.surtri.com/images/shodan_large.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So like a lot of folks I spent no more than 15 minutes this morning googling &lt;a href="http://shodan.surtri.com/"&gt;Shodan&lt;/a&gt; for anything interesting. I looked for SCADA protocols (there were none that I could easily find) or obvious field automation devices, so I went back to work. At best I found a bunch of VxWorks systems (and whole lot of ESX servers, shiver) and others like &lt;a href="http://twitter.com/chrisjager"&gt;@chrisjager&lt;/a&gt; have also commented about the large number of embedded devices directly connected to the Internet, which is, indeed, frightening.&lt;br /&gt;&lt;br /&gt;But &lt;a href="http://twitter.com/taosecurity"&gt;@taosecurity&lt;/a&gt; just made some interesting comments, questioning how long the site will be up and hit upon in the ethical issues of a site which so obviously allows easy amplification of vulnerable systems. This was the first I've seen that even considers this angle. I'm not sure if everybody is getting ready for the holidays, trying to get the last bit of work done, or already gone but at least on the 300+ plus folks I follow on Twitter there were absolutely no questions about the site, and whether or not such as site was appropriate, ethical, etc. Just to be clear, I'm not claiming it is or is not, I'm just surprised it hasn't come up yet either way. Now if and when this happens (perhaps everyone else is so jaded and just does not want to &lt;span style="font-style: italic;"&gt;go there&lt;/span&gt;) I'm sure the arguments will quickly fall into the typical cliched responses around disclosure:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The site is raising awareness so is a good thing. Administrators can actually find and fix their systems.&lt;/li&gt;&lt;li&gt;Anyone who has systems directly connected to the Internet with systems  &lt;span style="font-style: italic;"&gt;that &lt;/span&gt;vulnerable deserves to be compromised.&lt;/li&gt;&lt;li&gt;The site is irresponsible and we should immediately DDoS it&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;And so on...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I don't actually believe any of those arguments. I'm not sure what to think. And I find that troubling. After nearly a decade in information security, I've become weary of all the arguments on either side of these sorts disclosure issue so I resort to know opinion because my opinion doesn't really matter and folks will release 0-days (or not) or more interesting sites like this (or not) and what will happen will happen regardless of any international standards or documented best practice working groups.&lt;br /&gt;&lt;br /&gt;So back to trying to find a way to graphviz to generate SVG images within a Django app. That is at least a problem I can solve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8661138213019237192?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8661138213019237192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8661138213019237192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8661138213019237192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8661138213019237192'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/11/wheres-controversy-about-shodan.html' title='Where&apos;s the Controversy about Shodan?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7252360458198606858</id><published>2009-10-18T18:57:00.008-06:00</published><updated>2009-10-18T19:24:31.363-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>And what exactly would we be doing differently?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/Stu5tbl-9MI/AAAAAAAABiY/9EIH_eWVZBY/s1600-h/i_want_to_believe.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 255px; height: 320px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/Stu5tbl-9MI/AAAAAAAABiY/9EIH_eWVZBY/s320/i_want_to_believe.jpg" alt="" id="BLOGGER_PHOTO_ID_5394109168858625218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A blackout caused by hackers is the holy grail, the proof that extra terrestrials exist, the debunking of the Warren Commission, the final evidence that &lt;a href="http://www.fox.com/fringe/recaps/s2_e4.htm"&gt;we are truly headed toward conflict with a parallel universe and shape-shifting mercury-blooded agents are among us.&lt;/a&gt; After &lt;a href="http://en.wikipedia.org/wiki/Eligible_Receiver_97"&gt;Eligible Receiver&lt;/a&gt; after &lt;a href="http://online.wsj.com/article/SB123914805204099085.html"&gt;Cyber Spies Penetrated the Grid&lt;/a&gt; (and don't forget Aurora) after all the incidents cited in every SCADA security presentation, the hunger for &lt;a href="http://www.digitalbond.com/index.php/2009/09/23/what-is-the-meaning-of-one-documented-attack/"&gt;one documented incident&lt;/a&gt; is still so strong that &lt;a href="http://community.controlglobal.com/content/why-acs-conference-doesn%E2%80%99t-allow-remote-attendance"&gt;remote attendance won't be allowed at an upcoming SCADA Cyber Security Conference&lt;/a&gt;. And you can taste in the latest &lt;a href="http://intelfusion.net/wordpress/?p=669"&gt;Call for SCADA Security Researchers from Project Grey Goose&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I challenge you to try to get an answer to that question. I spent the last few weeks doing just that and ran into one brick wall after another, and I have some pretty decent connections to fall back on. It turns out that private industry, which essentially owns the U.S. power grid, enjoys a protection from public scrutiny that extends even to Freedom of Information Act (FOIA) requests, and they get to decide what falls under that protection and what does not. So who does this secrecy benefit?&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7252360458198606858?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7252360458198606858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7252360458198606858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7252360458198606858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7252360458198606858'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/10/and-what-would-we-be-doing-differently.html' title='And what exactly would we be doing differently?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/Stu5tbl-9MI/AAAAAAAABiY/9EIH_eWVZBY/s72-c/i_want_to_believe.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8283568363702377670</id><published>2009-10-03T19:34:00.012-06:00</published><updated>2009-10-03T20:38:02.008-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><title type='text'>Walking through .nessus files with Python xml.etree.ElementTree</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/Ssf9Dhja9LI/AAAAAAAABiQ/AHpEWuIaq-U/s1600-h/walk.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 233px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/Ssf9Dhja9LI/AAAAAAAABiQ/AHpEWuIaq-U/s400/walk.png" alt="" id="BLOGGER_PHOTO_ID_5388553716160459954" border="0" /&gt;&lt;/a&gt;  &lt;span style="font-family:times new roman;"&gt;Back when I used to teach &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://www.tenablesecurity.com/training/index.php?view=nessus"&gt;Tenable's Nessus course&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; I was always surprised how most folks, if to perform additional analysis or manipulation scan results, used Excel to process NBE/NSR files rather than using XML. So I added some simple examples of how to use Python and Ruby to the course and how easy it is you write a simple parser.&lt;/span&gt;  &lt;span style="font-family:times new roman;"&gt;In my slides I believe I used &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://docs.python.org/library/pyexpat.html"&gt;expat&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; which requires you to build a list/hash of the data you extract as you encounter the start or end of the element. This works and expat or &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://docs.python.org/library/xml.sax.html"&gt;Sax&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; are the primary parsers I've used over the years, although I did recently discover &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://docs.python.org/library/xml.dom.minidom.html"&gt;minidom.&lt;/a&gt;&lt;div style="font-family: times new roman;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:times new roman;"&gt;If you click on the capture above (blogger doesn't handle XML or code that well) you'll see that after parsing the .nessus file and starting with the top node (I'm not sure why I had to call&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;getroot())&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;I navigated through the different nodes within the .nessus file starting with Report, ReportHost, and ending with ReportItem where I extracted the port, and plugin id so that when you run the script you get this for all the&lt;br /&gt;&lt;br /&gt;192.168.20.3&lt;br /&gt;- 22/tcp|0&lt;br /&gt;- 1241/tcp|0&lt;br /&gt;- 111/tcp|0&lt;br /&gt;- 1243/tcp|0&lt;br /&gt;- 111/tcp|10223&lt;br /&gt;- 59370/tcp|11111&lt;br /&gt;- 111/tcp|11111&lt;br /&gt;- 33145/udp|11111&lt;br /&gt;- 111/udp|11111&lt;br /&gt;- 1241/tcp|22964&lt;br /&gt;- 22/tcp|22964&lt;br /&gt;- 1241/tcp|10863&lt;br /&gt;- 1241/tcp|35291&lt;br /&gt;- general/tcp|12634&lt;br /&gt;- general/tcp|22869&lt;br /&gt;- 59370/tcp|25221&lt;br /&gt;&lt;br /&gt;This code snippet isn't terribly useful but it illustrates the API and how it is very straightforward to parse .nessus files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Some Benchmarks&lt;/span&gt;&lt;br /&gt;Besides being much cleaner (IMHO) the nice thing about &lt;a href="http://docs.python.org/library/xml.etree.elementtree.html"&gt;ElementTree&lt;/a&gt; is that there is a C implementation. This is a 2.0 MB file that consists of 4 scans and the scans include the results from only a handful of targets.&lt;br /&gt;&lt;br /&gt;On Python 2.5 / Cygwin  on my Ideapad S10-2  (Windows XP SP3)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Pure Python&lt;/span&gt;&lt;br /&gt;real    0m4.250s&lt;br /&gt;user    0m3.155s&lt;br /&gt;sys     0m0.357s&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;C Version&lt;/span&gt;&lt;br /&gt;real    0m1.422s&lt;br /&gt;user    0m0.405s&lt;br /&gt;sys     0m0.374s&lt;br /&gt;&lt;br /&gt;I wanted to do a comparison with Win32 on Python 2.6 on the same system but I was unable to get timeit.exe working from the Windows 2003 Resource Kit.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;&lt;span style="font-weight: bold;"&gt;NOTE:&lt;/span&gt; ElementTree is available in Python 2.5 and later and you should be ashamed if you are using anything older than that.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8283568363702377670?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8283568363702377670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8283568363702377670' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8283568363702377670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8283568363702377670'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/10/walking-through-nessus-files-with.html' title='Walking through .nessus files with Python xml.etree.ElementTree'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/Ssf9Dhja9LI/AAAAAAAABiQ/AHpEWuIaq-U/s72-c/walk.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6931036234592019880</id><published>2009-09-11T17:06:00.004-06:00</published><updated>2009-09-11T17:36:15.109-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideapad'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Mortal Netbook Sins (or, why is it impossible for vendors to get it right?)</title><content type='html'>So I'm typing this on my (well, actually my wife's) Lenovo S-10, who I admit that I covet. She inherited it after her Powerbook G4 12" (actually my favorite laptop of all time) suffered at the hands (or paws) that typically does in laptops in our household.&lt;br /&gt;&lt;br /&gt;Even though my two main laptops (a T-61 and a Dell E6400) are both 14.1" and smallish, I still miss the two pound form-factor and the small screen/keyboard, so I've been agonizing for a while whether or not and which one should be my 2nd Netbook purchase. It should be easy, since there are literally around 50 different models on the market. But it isn't.&lt;br /&gt;&lt;br /&gt;The Ideapad S-10 is by no means perfect (the keyboard is too small, it only has 2 USB ports and I don't use the express card slot) but compared to what is available at Best Buy, it is hard to beat. But as I've been comtemplating getting another Netbook that I want but really don't need, here is the dogma:&lt;br /&gt;&lt;br /&gt;By far the most damning flaw, the one that cannot be reconciled ever, is &lt;span style="font-weight: bold;"&gt;an unusable touchpad and buttons&lt;/span&gt;. This basically removes any of Dell's offerings because they cut corners and implemented a single, rocker-style button, and the touchpad itself is awful, jumpy, and could. I actually. The Asus 1005HA is not terrible but not great either.&lt;br /&gt;&lt;br /&gt;The second abomination is the &lt;span style="font-weight: bold;"&gt;battery bulge&lt;/span&gt;. As Netbooks have added 6 and 9 cell battries they have added a rear bulge that sticks straight out to the rear of the laptop. The S12 and S10-2 with the larger capacities succumb to this temptation. As well as many others.&lt;br /&gt;&lt;br /&gt;The third sin is the &lt;span style="font-weight: bold;"&gt;appearance of cheapness&lt;/span&gt;. All of these systems are cheap but they should appear so. The Gateway 3103 falls prey to this. It also runs Vista and is not Linux friendly, taking it out of consideration.&lt;br /&gt;&lt;br /&gt;A last fatal flaw is &lt;span style="font-weight: bold;"&gt;price&lt;/span&gt;. It should be below $350. Period. A $400 netbook makes no sense given their underpowered components, especially since I can get a T400 for right around $750, as my total credit card bill reaches $500 it makes no sense to considor an Atom processor when I can get the real thing for a few hundred dollars more. this rules out the Sony and Toshiba models&lt;br /&gt;&lt;br /&gt;Not a showstopper, but definitely a flaw, is the &lt;span style="font-weight: bold;"&gt;inability to customize&lt;/span&gt; and lack of &lt;span style="font-weight: bold;"&gt;a two year warranty&lt;/span&gt;. Basically this means you are left with Lenovo or HP, since to the vast majority of vendors do not allow you to build custom systems with only the size of the battery.&lt;br /&gt;&lt;br /&gt;Notice what I left out: sound, keyboard, screen, ports, ease of upgrade. None of these really matter if the essentials are met.&lt;br /&gt;&lt;br /&gt;So right now I'm not sure, but the two choices I'm considering is a 3-Cell, Lenovo S-10-2 and an HP Mini XP with the higher resolutions 1366x768 display. Both meet all these criteria, so we'll see if I give in to temptation and place an order this weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6931036234592019880?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6931036234592019880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6931036234592019880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6931036234592019880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6931036234592019880'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/09/mortal-netbook-sins-or-why-is-it.html' title='Mortal Netbook Sins (or, why is it impossible for vendors to get it right?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3124127338786433945</id><published>2009-08-30T20:06:00.003-06:00</published><updated>2009-08-30T20:44:52.061-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>Why must I be Unnerved? (#25 from Brand You 50)</title><content type='html'>About &lt;a href="http://blogfranz.blogspot.com/2008/03/talent-retention-and-18-month-window.html"&gt;18 Months Ago I blogged&lt;/a&gt; about a conversation I had with a friend and how we both were stuck in an 18 month job cycle. Several months ago (besides worrying that my 18 month clock was ticking, and for those that follow my personal twitter feed, know the egg timer rang and I'm starting a new job tomorrow) I ordered another copy of the &lt;span style="font-style: italic;"&gt;must hav&lt;/span&gt;e &lt;a href="http://www.amazon.com/Brand-You-Transform-Distinction-Commitment/dp/0375407723"&gt;Brand You 50&lt;/a&gt; and started reading it again.&lt;br /&gt;&lt;br /&gt;This was something I hadn't done for a while, but something I highly recommend.&lt;br /&gt;&lt;br /&gt;So tonight I read #27 (TO STEER ME INC THROUGH THE WHITE WATER OF CHANGE IS TO DARE, DAILY) contained some clues to decipher my (and I assume, others) 18 month curse.&lt;br /&gt;&lt;br /&gt;From the T.T.D. at the end of the chapter, I ran across the question &lt;span style="font-style: italic;"&gt;"does my current project scare me shitless?"&lt;/span&gt; and I think Tom is really on to something here. Believe it or not I think it is possible to be confident on your abilities and experience, yet still be unnerved about the leap you are taking. If you aren't a little bit scared about what is before you, how could you possibly grow from the experiences around the corner. I can definitely remember this anxiety about various projects at past employers and unfortunately this often occurs only in the beginning of the job. Near the middle and the end things become repetitive and it becomes increasingly difficult to maintain a steep learning curve.&lt;br /&gt;&lt;br /&gt;I'll return to the topic in 18 months to see where I'm at!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTE&lt;/span&gt;: This topic is not unrelated to the survey a month or so back that &lt;a href="http://www.darkreading.com/security/management/showArticle.jhtml?articleID=218600434"&gt;One in Two Security Pros are Unhappy in Their Job&lt;/a&gt; tp which my wife cynically responded that this is only because the security job market is so strong and you can bounce around...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3124127338786433945?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3124127338786433945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3124127338786433945' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3124127338786433945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3124127338786433945'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/why-must-i-be-unnerved-25-from-brand.html' title='Why must I be Unnerved? (#25 from Brand You 50)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2898318989543293223</id><published>2009-08-10T19:44:00.003-06:00</published><updated>2009-08-10T19:53:11.599-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Some Gems (however heavy) from Peter Rollins</title><content type='html'>I'll take slice and dice some memorable statements from &lt;a href="http://peterrollins.net/blog/?p=280"&gt;‘Why Do I Do What I Do’, or ‘The Horror of Relationships’&lt;/a&gt; (focusing more on the why do I do what I do what I do, than the relationship part, although my wife and I just celebrated our 16th anniversary this weekend) from the end:&lt;br /&gt;&lt;blockquote&gt;It is today very common to see reason opposed to faith in popular literature (with reason or faith being the better depending on which side the apologist sits). The point is not that they are opposed but rather that reason is saturated with faith. In other words, all real decisions, no matter how reasonable, involve a faith act. Neither the facile liberal nor the crude fundamentalist examples mentioned above allow for the anxiety of making a real decision about love, politics or prayer. While the former only ever minimally commits (not making a full blooded decision), the latter knows what to commit to in advance of doing it (thus not making a real decision, as one can only ever make a decision when one does not know what needs to be done – thus making a choice).&lt;br /&gt;&lt;/blockquote&gt;Which is teed up near the beginning&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;The question ‘Why do I do what I do’ disturbs the smooth running of our lives because it involves a certain amount of anxiety. Yet, far from seeing its manifestation as a minor disturbance in our ongoing life, perhaps we should see it as a site of truth. As a moment in which the foundations of our decisions are momentarily manifested to us in their underlying contingency.&lt;/p&gt; &lt;p&gt;Most of us do not feel the full force of this question either because we never fully commit to a cause (choosing to travel through life without real investment – allowing the TV we watch and papers we read to experience life on our behalf) or because we attempt to ground our theological/philosophical/political projects, or romantic ones, in some absolute (God, Reason, Destiny, Historical Necessity etc.). In the former we never truly make a radical commitment to some cause, while in the latter we never experience the fear and trembling which such a commitment should engender.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Yep, "sites of truth." I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2898318989543293223?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2898318989543293223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2898318989543293223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2898318989543293223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2898318989543293223'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/some-gems-however-heavy-from-peter.html' title='Some Gems (however heavy) from Peter Rollins'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2996468691827569536</id><published>2009-08-10T18:51:00.004-06:00</published><updated>2009-08-10T19:17:15.597-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>Lessons from Netflix Culture: The 9 Behaviors &amp; Skills</title><content type='html'>&lt;div style="width: 425px; text-align: left;" id="__ss_1798664"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/reed2001/culture-1798664" title="Culture"&gt;Culture&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=culture9-090801103430-phpapp02&amp;amp;stripped_title=culture-1798664"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=culture9-090801103430-phpapp02&amp;amp;stripped_title=culture-1798664" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/reed2001"&gt;reed2001&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;While some folks were making a big deal about the fact that Netflix doesn't have a formal vacation/time off program (and I've actually worked at a place like that before) what caught me eye from the presentation was the 9 behaviors and skills.&lt;br /&gt;&lt;br /&gt;Notice they don't use the term "values," probably because values seem to imply things that you just have (or are) vs. things you can learn or be taught.&lt;br /&gt;&lt;br /&gt;The 9 values they define are judgment, communication, impact, curiosity, innovation, courage, passion, honesty, and selflessness.&lt;br /&gt;&lt;br /&gt;I really encourage you to drill down and look at the bullet points. I'm sure you'll find some you do well at and others where you need some work. I know I did.&lt;br /&gt;&lt;br /&gt;I picked 9 of the ones I found the most interesting and important. And folks that have worked with me before know that some of these I'm pretty good at, while others continue to be a work in progress:&lt;br /&gt;&lt;br /&gt;&lt;li&gt;You exhibit bias-to-action, and avoid analysis paralysis.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You listen well, instead of reacting fast, so you can better understand.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You make tough decisions without excessive agonizing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You say what you think even if it is controversial.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You contribute effectively outside your specialty.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You smartly separate what must be done well now, and what can be improved later.&lt;/li&gt;&lt;li&gt;You make time to help colleagues.&lt;/li&gt;&lt;li&gt;You think strategically, and can articulate, what you are, and are not, trying to do&lt;/li&gt;&lt;li&gt;You treat people with respect independently of their status or disagreement with you.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Yep, there are some tough ones in there and there is a lot more gold these 128 slides that reinforced by my experience in small and large companies alike.&lt;br /&gt;&lt;br /&gt;(NOTE: If you register for a slideshare account you can download a .pptx version and print them out for you cube/office wall like I did.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2996468691827569536?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2996468691827569536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2996468691827569536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2996468691827569536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2996468691827569536'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/lessons-from-netflix-culture-9.html' title='Lessons from Netflix Culture: The 9 Behaviors &amp; Skills'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4989373160715623564</id><published>2009-08-05T10:29:00.007-06:00</published><updated>2009-08-05T10:40:41.146-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>CyberSpies: They are back (and we have the logs to show it!)</title><content type='html'>From &lt;a href="http://www.net-security.org/secworld.php?id=7838"&gt;Cyber attacks at U.S. energy companies&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;From the &lt;a href="http://www.loglogic.com/resources/white-papers/securing-critical-infrastructure/"&gt;Loglogic Department of Statistics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;“Ever since cyberspies hacked the U.S. electrical grid earlier this year, businesses have become increasingly aware that a security breach at an energy company that results in a major blackout has the potential to wreak havoc,” said Pat Sueltz, CEO at LogLogic. “We talked to leading information security professionals in the energy sector to find out how they determine the level of risk they carry and architect their security infrastructures to fortify against both internal and external attacks.”&lt;br /&gt;&lt;br /&gt;The study surveyed information security professionals from a broad spectrum of energy corporations and government organizations ranging from less than $99 million to more than $1 billion in annual revenue. Of the respondents, two-thirds field more than 75 serious security vulnerabilities each week, with half resolving more than 150 attacks per week.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;How can someone use the phrase, "Ever since cyberspies hacked the U.S. electrical grid earlier" without cracking up?&lt;br /&gt;&lt;br /&gt;Who doesn't have 75 severe vulnerabilities a week? 75 seems a bit low, actually?&lt;br /&gt;&lt;br /&gt;What does "resolving 150 attacks a week" even mean?&lt;br /&gt;&lt;br /&gt;Loglogic gets the award for this one.&lt;br /&gt;&lt;br /&gt;(CAVEAT: Loglogic is sort of a competitor of my employer, but this has nothing to do with that)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4989373160715623564?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4989373160715623564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4989373160715623564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4989373160715623564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4989373160715623564'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/cyberspies-they-are-back-and-we-have.html' title='CyberSpies: They are back (and we have the logs to show it!)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3807524013409797767</id><published>2009-08-05T04:54:00.001-06:00</published><updated>2009-08-05T04:54:37.099-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Back East'/><title type='text'>Choose Civility?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SnljJ8CE28I/AAAAAAAABhQ/kA-RC0H2RII/s1600-h/2324464473_bc687ab647.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 274px; height: 320px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SnljJ8CE28I/AAAAAAAABhQ/kA-RC0H2RII/s320/2324464473_bc687ab647.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366429453373463490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once in Austin we had a Great Horned Owl in the large Elm in our back yard. As I was watching it, my wife walked up behind me and scared me. We have a running joke about being scared of owls and birds of prey carrying off pets and small children. So last night during supper when I saw the flash of large wings through the side window and I rushed outside and brought our overweight Boston Terrier inside to spare her from this unknown bird of prey.&lt;br /&gt;&lt;br /&gt;On our front lawn all of us (including Sam, our 20 mo old) watched as a large vulture tore up an unidentified creature into pieces no larger than a small child's fist. &lt;br /&gt;&lt;br /&gt;It turned out to be a possum. I and the two oldest walked over to investigate, or as close as the flies would let us.&lt;br /&gt;&lt;br /&gt;Then we went to Rita's to wash the taste of buzzard out of our mouth.&lt;br /&gt;&lt;br /&gt;Choose Civility&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3807524013409797767?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3807524013409797767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3807524013409797767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3807524013409797767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3807524013409797767'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/choose-civility.html' title='Choose Civility?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/SnljJ8CE28I/AAAAAAAABhQ/kA-RC0H2RII/s72-c/2324464473_bc687ab647.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5491333387176399916</id><published>2009-08-04T04:48:00.004-06:00</published><updated>2009-08-04T04:56:58.426-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Best firmware choice for WGR614L?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SngTdg-u0pI/AAAAAAAABhI/OF8LoUqLD5U/s1600-h/netgear-wgr614l-inside.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 295px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SngTdg-u0pI/AAAAAAAABhI/OF8LoUqLD5U/s320/netgear-wgr614l-inside.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366060353802130066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So my &lt;a href="http://www.myopenrouter.com/category/14/WGR614L-Open-Source-Router"&gt;WGR614L&lt;/a&gt; arrived yesterday and I have it running with the built-in firmware but I'd obviously let to get something new on on there that gives me a command line. I used OpenWRT a while back and definitely liked the ipkg's but am wondering what the best/most actively maintained Broadcom distro that runs well on the WGR614L these days?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5491333387176399916?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5491333387176399916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5491333387176399916' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5491333387176399916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5491333387176399916'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/08/best-firmware-choice-for-wgr614l.html' title='Best firmware choice for WGR614L?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/SngTdg-u0pI/AAAAAAAABhI/OF8LoUqLD5U/s72-c/netgear-wgr614l-inside.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2473587965119105650</id><published>2009-07-30T12:24:00.003-06:00</published><updated>2009-07-30T12:29:34.715-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NSM'/><title type='text'>Squid v. DDoS</title><content type='html'>This is hardly more than worth a tweet but longer than 140 chars but &lt;a href="http://threatchaos.com/2009/07/squid-defense-against-ddos/"&gt;Squid Defense against DDoS&lt;/a&gt; caught my eye. &lt;br /&gt;&lt;br /&gt;I see two lessons here:&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Using Open Source tools to respond to an incident is a crude but powerful technique that can  get the job done. Try doing this with commercial products.&lt;br /&gt;&lt;li&gt;Environments that were properly engineered with caching and load balancing and could respond to DDoS wouldn't have to worry about the attacks in the first place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2473587965119105650?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2473587965119105650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2473587965119105650' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2473587965119105650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2473587965119105650'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/07/squid-v-ddos.html' title='Squid v. DDoS'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3321468085917436037</id><published>2009-07-14T13:46:00.004-06:00</published><updated>2009-07-14T13:53:55.015-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>CyberSecurity isn't new and needs domain knowledge</title><content type='html'>I &lt;a href="http://community.controlglobal.com/content/smart-grid-isnt-new-and-needs-domain-knowledge"&gt;agree with Joe&lt;/a&gt; 100% on this. So much so that if you replace "Smart Grid" with "Cyber Security" everything is also true.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If all one had to draw from was the flood of conferences, webinars, and advertisements, it would appear that CyberSecurity is a very recent invention that will be achived en-masse in the near future. In reality, elements of  CyberSecurity first appeared in the 1998-2000 time-frame. Additionally, decades old best practices will continue to be used in "CyberSecurity" for at least the next 5-10 years. Until about 6-8 months ago, domain knowledge was a given for those participating in the "CyberSecurity." Now, domain knowledge doesn’t seem to be a requirement. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3321468085917436037?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3321468085917436037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3321468085917436037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3321468085917436037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3321468085917436037'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/07/cybersecurity-isnt-new-and-needs-domain.html' title='CyberSecurity isn&apos;t new and needs domain knowledge'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-875819155018544839</id><published>2009-07-11T20:12:00.003-06:00</published><updated>2009-07-12T19:53:42.419-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>How Chinese CyberSpies Really Compromised the Grid</title><content type='html'>&lt;img src="http://www.threatmind.net/tricks/dgmail.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now that I've got your attention. Honestly, I have no idea, but it will be really amusing to see my google analytics stats on this one, I wonder how much malware gets spread through typos in the most popular web sites. Maybe everybody else allows their browser to get them to the right place, but not me. I end up at some weird sites, or at least sites that people in Frederick, Maryland would consider weird. &lt;/p&gt;&lt;p&gt;BTW, the site above is from &lt;a href="http://dgmail.com/"&gt;dgmail.com&lt;/a&gt; but it would be an interesting research project to analyze the content of fat-fingered sites. Sure, most are probably ads, but may be some goodies lurking in there.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-875819155018544839?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/875819155018544839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=875819155018544839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/875819155018544839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/875819155018544839'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/07/how-chinese-cyberspies-really.html' title='How Chinese CyberSpies Really Compromised the Grid'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3738886929457014644</id><published>2009-06-22T18:40:00.003-06:00</published><updated>2009-06-22T19:13:18.252-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>First Impressions: HP Mini (Best Buy Style) vs. Lenovo S10</title><content type='html'>So I picked up whatever the model of the HP Mini that they sell at Best Buy for $329 (the 10.1 model with a 16GB flash drive) for my mother with the goal of installing Ubuntu, since she the one family member that I've successfully converted from Windows.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Keyboard&lt;/span&gt; - the larger keyboard of the HP Mini's are well known. You can definitely tell the difference with the larger keys in that it allows more natural touch typing but the feel is spongier. About what you'd expect from a consumer laptop. The arrow keys are smaller size that all the other keys which is very annoying. It is difficult to see the special keys since they are light grey. On my white Lenovo they are blue so it is much easier. Overall the action is much crisper on the Lnovo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ubuntu Netbook Remix 9.04 installation&lt;/span&gt; - Installation took slightly longer, I assume due to the flash drive, but the OS upgrade too so longer (scrollkeeper was pegged at 100%) I killed gdm and went into the console and did the apt upgrade's there which seemed to work better. Still really slow. Hangups at upgrade of synpatic and other packages. I assume this is all do to the flash drive. There is also a known bug in the sound support. No sound through the speakers. Haven't tried a headphone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wireless&lt;/span&gt; - Even though both use the same Broadcom chipset I had more problem with the Mini. It connected to 1/3 of the networks I tried (a WPA2 for my Verizon Westell DSL modem) but not successfully with an HP 420 WPA access point or a Cisco 851W that was wide open. Perhaps I had L2 ACLs on the latter, not sure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ethernet&lt;/span&gt; - the RJ-45 port is plugged by default. The Mini appears to use a Marvell driver (as opposed to the Reatek used most other Netbooks). I could not get a lease and was getting PHY errors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Touchpad&lt;/span&gt; - the buttons are on the side which are really annoying but I could probably get used to them. But the touchpad is definintely better than the Dell Mini 10. I prefer the buttons on the buttom that are much crsiper.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Screen&lt;/span&gt; - the 576 vertical resolution is definitely a pain since 600 of most Netbooks is too small. The screen seems somewhat brighter than the Lenovo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ports &amp;amp; Form Factor&lt;/span&gt; - these I knew about so wasn't suprised. No VGA. Ethernet is plugged. Two USBs (like the Lenovo). It is too narrow, IMHO.  Sitting side by side the top of the screen is a full 3/4" shorter than the Ideapad. These sacrifices are needless in my opnion because it makes the form factor too small and thin.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Upgradeability&lt;/span&gt; - RAM bay is easy on the back, takes up to 2GB but you have to remove the keyboard to upgrade the drive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Noise:&lt;/span&gt; It is definitely seems quieter that the Lenovo. Not sure whether it is the driver or the fan.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bottom line:&lt;/span&gt; I've very happy with my Lenovo even though it hurts my hands and the keyboard is small. Overall Linux runs much better. I don't see the need for a slow (if quiet) flash drive. The form factor of the Mini is just too weird for me. The Ideapad feels like a small version of a real laptop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3738886929457014644?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3738886929457014644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3738886929457014644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3738886929457014644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3738886929457014644'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/06/first-impressions-hp-mini-best-buy.html' title='First Impressions: HP Mini (Best Buy Style) vs. Lenovo S10'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7755664979307826886</id><published>2009-06-11T19:00:00.004-06:00</published><updated>2009-06-11T19:10:51.836-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Are 6 cell batteries ruining Netbooks (or why you should return your Dell Mini 10)</title><content type='html'>So based on &lt;a href="http://ivoidwarranties.blogspot.com/2009/06/lenovo-s10-2-in-da-house.html"&gt;these pictures of the new Lenovo&lt;/a&gt; S-10-2 it looks like the S-10-2 which otherwise looks like a winner, has the same ugly, bulky, downward-extending battery as the Dell Mini-10, which my parents ended up not liking (and hopefully will be able to return)&lt;br /&gt;&lt;br /&gt;Here are my beefs on the Dell Mini-10 (with Ubuntu) most which relate to the touchpad:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Given that it is Ubuntu 8.04 the Xorg (synaptics) touchpad driver is not the same as in 9.04 and it is impossible to make the touchpad usable, despite all the  tweaking of the mouse settings. This may be both a software as well as a hardware issue but it is does not bode well for Linux.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The touch pad and mouse buttons are all-in-one. It is nearly impossible to click.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As I would expect from Dell, sloppy engineering shortcuts, both in hardware and software.&lt;br /&gt;&lt;br /&gt;And now Lenovo only sells the S10-2 with these bulky 6-cell monsters and has the ugly shiny finish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7755664979307826886?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7755664979307826886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7755664979307826886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7755664979307826886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7755664979307826886'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/06/are-6-cell-batteries-ruining-netbooks.html' title='Are 6 cell batteries ruining Netbooks (or why you should return your Dell Mini 10)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4944166162740716706</id><published>2009-06-06T16:16:00.006-06:00</published><updated>2009-06-06T17:46:13.533-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Netbook Broadcom (43xx) Cards with Debian Lenny</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img02.taobaocdn.com/bao/uploaded/i2/T1mLBbXmRi6Zz0JV6a_120100.jpg_310x310.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 310px; height: 262px;" src="http://img02.taobaocdn.com/bao/uploaded/i2/T1mLBbXmRi6Zz0JV6a_120100.jpg_310x310.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So with Ubuntu 9.04 (and possibly earlier) the Broadcom Wireless NIC in your Netbook (mine happens to be a Lenovo Ideapad S10) should &lt;span style="font-style: italic;"&gt;just work&lt;/span&gt;. But obviously this will not happen with Debian 5.0. Because very little in Debian just works.&lt;br /&gt;&lt;br /&gt;So the first thing to know is to ignore an articles such as &lt;a href="http://www.linuxquestions.org/linux/answers/Networking/HOW_TO_install_the_Broadcom_bcm43xx_Driver_in_Debian_Linux_and_enable_WPA_Encryption"&gt;these &lt;/a&gt;that tell you to mess with firmware. Also ignore whatever is on the Debian.&lt;br /&gt;&lt;br /&gt;You do NOT have to use the fwcutter tools. Do it this way.&lt;br /&gt;&lt;br /&gt;First, install your kernel headers (I use an OpenVZ kernel)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# apt-get install linux-headers-`uname -r`&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Download the &lt;a href="http://www.broadcom.com/support/802.11/linux_sta.php"&gt;module source&lt;/a&gt; for the Linux STA driver from Broadcom.&lt;br /&gt;&lt;br /&gt;Create a directory and uncompress the tarball (mine was hybrid-portsrc-x86_32-v5_10_91_9.tar.gz)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;debian-s10:~/bc# pwd&lt;br /&gt;/root/bc&lt;br /&gt;debian-s10:~/bc# ls&lt;br /&gt;built-in.o                 Makefile     src       wl.mod.o&lt;br /&gt;hybrid-portsrc-x86_32-v5_10_91_9.tar.gz  modules.order     wl.ko       wl.o&lt;br /&gt;lib                     Module.symvers  wl.mod.c&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The above is what you should see when you after you compile the module using the step below. Execute the command below from wihtin the directory that has the Makefile&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# make -C /lib/modules/`uname -r`/build/ M=`pwd`&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The resulting module you care about is wl.ko (assuming you have the ieee80211 module installed you will be able to insmod this and see the following in dmesg)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[  922.523743] ACPI: PCI Interrupt 0000:05:00.0[A] -&gt; GSI 18 (level, low) -&gt; IRQ 18&lt;br /&gt;[  922.523997] PCI: Setting latency timer of device 0000:05:00.0 to 64&lt;br /&gt;[  922.622849] ieee80211_crypt: registered algorithm 'TKIP'&lt;br /&gt;[  922.623123] eth1: Broadcom BCM4315 802.11 Wireless Controller 5.10.91.9&lt;br /&gt;&lt;/pre&gt;and with a lshw&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;description: Wireless interface&lt;br /&gt;product: BCM4312 802.11b/g&lt;br /&gt;vendor: Broadcom Corporation&lt;br /&gt;physical id: 0&lt;br /&gt;bus info: pci@0000:05:00.0&lt;br /&gt;logical name: eth1&lt;br /&gt;version: 01&lt;br /&gt;serial: 00:21:00:7e:7a:7d&lt;br /&gt;width: 64 bits&lt;br /&gt;clock: 33MHz&lt;br /&gt;capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless&lt;br /&gt;configuration: broadcast=yes driver=wl0 driverversion=5.10.91.9 ip=192.168.1.24 latency=0 module=wl multicast=yes wireless=IEEE 802.11bg&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;so I modified /etc/modules so that it looks like&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# /etc/modules: kernel modules to load at boot time.&lt;br /&gt;#&lt;br /&gt;# This file contains the names of kernel modules that should be loaded&lt;br /&gt;# at boot time, one per line. Lines beginning with "#" are ignored.&lt;br /&gt;# Parameters can be specified after the module name.&lt;br /&gt;loop&lt;br /&gt;ieee80211&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So that ieee80211 gets loaded and then added the following line to my rc.local file (before the exit 0, obviously)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;insmod /usr/local/lib/modules/`uname -r`/wl.ko&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After copying the module there and creating the directory (remember mkdir -p is your friend)&lt;br /&gt;&lt;br /&gt;Now NetworkManager should work just fine. And WPA2 worked just fine with my crappy Westell AP.&lt;br /&gt;&lt;br /&gt;I tried putting in somewhere in lib/modules/`uname -r` with no luck, but this works for me...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;* * *&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;NOTE: Don't click on the image PCI Express Card image. It contains Chinese Ghostnet Malware that will turn your Mac (and only your Mac) into a Zombie botnet enabling a complete blackout or extortion of the power grid.&lt;br /&gt;&lt;br /&gt;Additional keywords: NERC, FERC. SCADA. Project Grey Goose. Cyberwar. ISN. TASE.2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4944166162740716706?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4944166162740716706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4944166162740716706' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4944166162740716706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4944166162740716706'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/06/netbook-broadcom-43xx-cards-with-debian.html' title='Netbook Broadcom (43xx) Cards with Debian Lenny'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4541765789952425981</id><published>2009-06-06T09:48:00.005-06:00</published><updated>2009-06-06T10:37:13.656-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Best Linux Virtualization for Netbooks?</title><content type='html'>So I use my Lenovo Ideapad S10 as my main Linux box nearly 40% of the time. I've 1.5GB of RAM and 120GB drive so this a decent machine. My current setup is two Linux partitions, one for Ubuntu 9.04 and the other for Debian 5.0. Ubuntu is my production distro and Debian is for bleeding edge stuff. My main requirement is to run Linux VM's (of other distros than what I run on the host) because if I need to run Windows or Solaris or whatever I can connect to a remote system. For Linux systems I want "server virtualization" meaning I don't have to have a console up. Realistically there is no single solution that will meet my requirements, but here are my thoughts on the alteratives for running on a Linux Atom-based Netbook.&lt;br /&gt;&lt;br /&gt;1) OpenVZ - this would be my first choice. Unfortunately there are only kernel for Ubuntu 8.04 LTS and Debian for the these and Ubuntu LTS is too old to work well for a desktop on netbooks. I have yet to get the Broadcom drivers working yet on Debian and the latest stable OpenVZ kernel patches are 2.6.18. I guess the real issue is if I could get the Broadcom drivers working on the stock kernel that would be the way to go.&lt;br /&gt;&lt;br /&gt;2) VMware Player - I don't want to put VMWare Server 2.x on my laptop and this seems like the logical choice. I already have this for BSD or Windows.&lt;br /&gt;&lt;br /&gt;3) &lt;a href="http://lguest.ozlabs.org/"&gt;lguest&lt;/a&gt; - this is something new that I've just discovered. Can I run a CentOS VM under this. Not sure.&lt;br /&gt;&lt;br /&gt;I don't care for VirtualBox and Qemu is too damn slow. Is there anything else I'm missing?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4541765789952425981?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4541765789952425981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4541765789952425981' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4541765789952425981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4541765789952425981'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/06/best-linux-virtualization-for-netbooks.html' title='Best Linux Virtualization for Netbooks?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5969995433081929673</id><published>2009-04-12T17:07:00.008-06:00</published><updated>2009-04-12T17:43:47.589-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eLearning'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Cisco'/><title type='text'>Painless, Distro-Agnostic Cisco Webex on Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SeJ4dyzvx5I/AAAAAAAABZA/tJkzVTmckuI/s1600-h/webex.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SeJ4dyzvx5I/AAAAAAAABZA/tJkzVTmckuI/s200/webex.png" alt="" id="BLOGGER_PHOTO_ID_5323950162755700626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For true cross-platform web conferencing, Cisco Webex is the only way to go. GotoMeeting only recently added OSX support, and Linux, forget about it?&lt;br /&gt;&lt;br /&gt;My experience on getting it work with the built-in components on my Thinkpad... forget about it!&lt;br /&gt;&lt;br /&gt;Ubuntu 8.0.4 worked sporadically and and on 8.10 Firefox crashed. Hard.&lt;br /&gt;&lt;br /&gt;I Googled a bit and didn't find any quick workarounds, so I decided to try it the old fashioned way. So here is what I came up with to get it working reliably. I assume this works on other distros as well.&lt;br /&gt;&lt;br /&gt;(All of this assumes you create another user for just webex so you don't corrupt your local .mozilla and .adobe files etc.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download Components&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Get the tarball of Adobe Flash (10.0.22.87 tested)&lt;br /&gt;2. Download Firefox 3.x (3.0.8 tested)&lt;br /&gt;3. Download JRE .bin installer (jre6u13-linux-i586.bin used)&lt;br /&gt;4. Create a webex directory and move all of these to it&lt;br /&gt;5. Uncompress them there&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Remove  ~/.mozilla and ~/.adobe&lt;br /&gt;2. Run ~/webex-local/firefox/firefox then quit&lt;br /&gt;3. Run the ./flashplayer-installer script&lt;br /&gt;4. Run the java installer binary&lt;br /&gt;5. Create the symlink for the java plugin within $HOME&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ln -s ../../webex-local/jre1.6.0_13/plugin/i386/ns7/libjavaplugin_oji.so&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testing Webex&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Run your local firefox&lt;br /&gt;2. Confirm you can execute java applets by visiting &lt;a href="http://java.sun.com/applets/jdk/1.4/demo/applets/Clock/example1.html"&gt;http://java.sun.com/applets/jdk/1.4/demo/applets/Clock/example1.html&lt;/a&gt;&lt;br /&gt;3. Click on the test meeting &lt;a href="http://support.webex.com/support/support-overview.html"&gt;http://support.webex.com/support/support-overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5969995433081929673?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5969995433081929673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5969995433081929673' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5969995433081929673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5969995433081929673'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/04/painless-distro-agnostic-cisco-webex-on.html' title='Painless, Distro-Agnostic Cisco Webex on Linux'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/SeJ4dyzvx5I/AAAAAAAABZA/tJkzVTmckuI/s72-c/webex.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4204063325074534083</id><published>2009-04-09T04:05:00.006-06:00</published><updated>2009-04-09T04:43:04.389-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><title type='text'>SCADA CyberSpy Reverse Forensics Contest</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/Sd3JSFajFpI/AAAAAAAABY4/SnhTPy0QR9s/s1600-h/BuildABear1207.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 203px; height: 320px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/Sd3JSFajFpI/AAAAAAAABY4/SnhTPy0QR9s/s320/BuildABear1207.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5322631647150151314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So given the hoopla on &lt;a href="http://www.liquidmatrix.org/blog/2009/04/08/omg-cyberspies-run-screaming/"&gt;Chinese/Russian &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CyberSpy&lt;/span&gt; Hacking the Power Grid Story&lt;/a&gt; I figured it was time to break Blog-silence. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had the misfortune of hearing &lt;a href="http://www.npr.org/templates/story/story.php?storyId=102887291"&gt;Siobhan &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Gorman&lt;/span&gt;  on NPR yesterday&lt;/a&gt; on my commute so I was still fuming yesterday about the vermin in the Intelligence Community that leak classified threat data on "background" to reporters to influence policy. This data cannot be repudiated not only because most journalists don't have the technical &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;wherewith all&lt;/span&gt; to know better but because the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;leakers&lt;/span&gt; cannot be held accountable. The "good guys" in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;IC&lt;/span&gt; (those that follow the rules and don't disclose secrets) cannot challenge (or confirm) it. It is a one-sided game that leads to bad policy, scaring the public, and bad legislation. Does anyone not remember Iraq and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;WMDs&lt;/span&gt;?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But I digress.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What was interesting about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Gorman&lt;/span&gt; interview was that she mentioned network forensic data that showed how control systems not only had been penetrated and were being remotely monitored and possibly controlled.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So some readers may remember the &lt;a href="http://old.honeynet.org/reverse/results/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;HoneyNet&lt;/span&gt; Projects Reverse Challenge&lt;/a&gt;. Basically a contest to analyze &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;malware&lt;/span&gt;, if you never heard of it&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I think would be cool is some aspiring folks with the skills and time (I have some of the former but none of the latter) to basically create some forensic data, let's say packet captures that show the power grid being mapped, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;HMI's&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;PLCs&lt;/span&gt; being monitored, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ICCP&lt;/span&gt; traffic being captured and retransmitted back to our Chinese and Russian masters so they can "monitor power flows" like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Gorman&lt;/span&gt; mentioned in her interview. Remember be sure to visit &lt;a href="http://www.apnic.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;APNIC&lt;/span&gt;&lt;/a&gt; and pick your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;IPs&lt;/span&gt; to spoof wisely.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The minimum entry can just be some packet captures, but you are guaranteed to at least place if you release actual tools used by our Chinese and Russian overlords to blackmail us at will and cause us to &lt;a href="http://blogfranz.blogspot.com/2007/10/only-2-3-weeks-from-cannibalism.html"&gt;resort to cannibalism&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You get bonus points if you actually show some slight knowledge of Mandarin or Russian.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But here's the rub, don't release it on your blog don't talk about it at the next Con because there will inevitably be lots of presentations on the topic. Silently release your own "evidence of Chinese Russian control over the power grid" into a P2P network, or better yet let your laptop get stolen in an airport (make sure you have the right colored &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;classification&lt;/span&gt; stickers on your laptop) and wait for your "data" to make the news.&lt;/div&gt;&lt;a href="http://www.npr.org/templates/story/story.php?storyId=102887291"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4204063325074534083?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4204063325074534083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4204063325074534083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4204063325074534083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4204063325074534083'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/04/scada-cyberspy-reverse-forensics.html' title='SCADA CyberSpy Reverse Forensics Contest'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/Sd3JSFajFpI/AAAAAAAABY4/SnhTPy0QR9s/s72-c/BuildABear1207.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4040199652915255252</id><published>2009-03-10T05:38:00.003-06:00</published><updated>2009-03-10T05:45:02.138-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgia'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Cisco'/><title type='text'>An Oldie But a Goodie</title><content type='html'>Yeah, back during the 01 layoffs at Cisco (or was it afterwards, during one of the never-ending reorgs can't recall) I had a DIVX of Office Space that I would watch while I worked to remain productive and we'd take lots of orbits around the parking lot and watch for this old guy with a beard down to his knees that would get off his shift at 3:30 at the Tyco fab next door and walk to his Corvette. Happy days!&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Lwcz6HBNJl8&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Lwcz6HBNJl8&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Time to leave the SBUX and get to work...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4040199652915255252?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4040199652915255252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4040199652915255252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4040199652915255252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4040199652915255252'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/03/oldie-but-goodie.html' title='An Oldie But a Goodie'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4490914208885193580</id><published>2009-03-04T20:03:00.006-06:00</published><updated>2009-03-04T20:17:09.623-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>"Cyber Katrina" or "Digital Pearl Harbor" (which is a more loathsome term?)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/Sa82GA1fBrI/AAAAAAAABTA/lytCzjNC87c/s1600-h/katrina_satir0829050545.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/Sa82GA1fBrI/AAAAAAAABTA/lytCzjNC87c/s320/katrina_satir0829050545.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5309521962624550578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Every time you hear 9/11 or &lt;a href="http://intelfusion.net/wordpress/?p=543"&gt;Cyber Katrina&lt;/a&gt; you should reach for your wallet.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Does anyone find this sort of hyperbole rhetorically effective?&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Chairperson&lt;br /&gt;&lt;br /&gt;House Permanent Select Committee on Intelligence&lt;br /&gt;&lt;br /&gt;Washington, D.C.&lt;br /&gt;&lt;br /&gt;RE: Establishment of North American Urgent Radiological Information Exchange&lt;br /&gt;&lt;br /&gt;Madame Chairperson:&lt;br /&gt;&lt;br /&gt;While we do not believe that this is a matter that rightfully falls under the province of your Committee, in the interest of cooperation, this letter will address the events leading up to the establishment of the North American Urgent Radiological Information Exchange (NAURIE).&lt;br /&gt;&lt;br /&gt;As you know, on the 10th year anniversary of 9/11, all of our nation’s nuclear power plants were targeted in a massive distributed denial of service attack orchestrated by the Conficker III botnet which had grown to a heretofore unheard of 30,000,000+ infected PCs.&lt;br /&gt;&lt;br /&gt;While US CERT teams as well as regional DOE cyber security personnel were focused on combating this external threat, each plant’s internal firewall separating the Command and Safety System Networks from the Site Local Area Network was breached from the inside due to the use of pirated hardware with malicious embedded code that passed server control to external users.&lt;br /&gt;&lt;br /&gt;Of even more concern is the fact that all of these plants were targets of a carefully planned, longterm social engineering attack which relied on human error and the broad-based appeal of Social Network sites. As DOE employees broke protocol and downloaded phony social software apps, malicious code worked its way into secure networks and lay dormant until activated by the attacking force.&lt;br /&gt;&lt;br /&gt;This led to a number of consecutive failures in our safety mechanisms resulting in partial to complete core meltdowns at 70% of our plants. When these plants went offline, the nation’s power requirements couldn’t be met. Grids were overwhelmed and blackouts began occurring in our most heavily populated urban areas. Once criminal gangs realized that overburdened police departments were unable to respond to every 911 call, looting of businesses began in earnest as did home invasions in the wealthier neighborhoods.&lt;br /&gt;&lt;br /&gt;One year later, we still do not have a final count on the number of deaths and casualties but most responsible estimates place them in the tens of thousands. If we extrapolate out for the as yet unknown future effects of radiation poisoning on the victims, the count goes into six figures.&lt;br /&gt;&lt;br /&gt;While this is clearly a tragedy on every level, I feel I must point out that the NNSA, as late as 2009, in a letter to the Los Alamos National Laboratory, did our part in improving security by determining that the loss of 83 LANL laptops should no longer be considered just a “property management” issue, but a cyber security issue as well.&lt;br /&gt;&lt;br /&gt;Also, that our G3 physical security model (Gates, Guards, Guns) was not compromised, and that cyber security compliance has never been a mandatory policy; that instead it was an ongoing negotiation among various other considerations.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;&lt;br /&gt;Director, National Nuclear Security Agency&lt;/blockquote&gt;(BTW, this is far less salacious than the scenario we came up with for CyberStorm 2005 in the Energy sector)&lt;br /&gt;&lt;br /&gt;So. Am I just a reactionary? Is this sort of FUD a necessary evil to make "progress on cybersecurity" or just another boondoggle.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4490914208885193580?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4490914208885193580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4490914208885193580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4490914208885193580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4490914208885193580'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/03/cyber-katrina-or-digital-pearl-harbor.html' title='&quot;Cyber Katrina&quot; or &quot;Digital Pearl Harbor&quot; (which is a more loathsome term?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/Sa82GA1fBrI/AAAAAAAABTA/lytCzjNC87c/s72-c/katrina_satir0829050545.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2200833338495536126</id><published>2009-03-01T07:30:00.004-06:00</published><updated>2009-03-01T07:52:41.645-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cisco'/><title type='text'>ASA5505 SSLVPN Port Forwarding</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/SaqON9eNigI/AAAAAAAABSI/O3IIfQSq6LY/s1600-h/Screenshot-Application+Access+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 282px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/SaqON9eNigI/AAAAAAAABSI/O3IIfQSq6LY/s320/Screenshot-Application+Access+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5308211481300273666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So as I've been chronicling over on &lt;a href="http://twitter.com/frednecksec/"&gt;@frednecksec&lt;/a&gt; I've been pleasantly surprised with the new ASA5505 I got for my classroom network. Although I'm looking forward to replacing iptables the main reason for the purchase was the &lt;a href="http://www.cisco.com/en/US/docs/security/asa/asa72/configuration/guide/webvpn.html"&gt;WebVpn&lt;/a&gt;. In particular the ability to do port forwarding. Yes this is just like SSH local port forwarding.&lt;br /&gt;&lt;br /&gt;Here is config snippet for ASA 7.2(4) to allow you to get port forwarding working.&lt;br /&gt;&lt;br /&gt;Enable WebVPN&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;webvpn                                                                   &lt;br /&gt; enable outside&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Actually if you stop here you would be able to do URL redirection and get to web servers behind the ASA, although this doesn't show up anymore now that port forwarding is setup.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; port-forward SSH 2223 192.168.55.100 ssh     &lt;br /&gt;&lt;br /&gt;group-policy first internal                                                  &lt;br /&gt;group-policy first attributes&lt;br /&gt; vpn-tunnel-protocol webvpn&lt;br /&gt; webvpn                                                                      &lt;br /&gt;  functions port-forward auto-download                                       &lt;br /&gt;  port-forward value SSH&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some gotchas here. "port-forward" and "auto-download" have to be on the same line together.  It wasn't immediately obvious to me that I had to do the "port-forward value" line. My general approach for Cisco CLI work is to just brute force it to find the minimal config. But this was the key thing I ran across. Unless you had this line, the session won't show up in the UI (see above) although the applet will download.&lt;br /&gt;&lt;br /&gt;The steps below are pretty straightforward once you have the group-policy created (above)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;username vpnuser password ... encrypted                         &lt;br /&gt;username vpnuser attributes                                                  &lt;br /&gt; vpn-group-policy first                                                      &lt;br /&gt;tunnel-group test type webvpn                                                &lt;br /&gt;tunnel-group test general-attributes                                         &lt;br /&gt; default-group-policy first&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This works on Ubuntu 8.10 (Java6) and Firefox 3.x, OSX 10.4 with Safari 3, and Windows XPSP3 both Firefox 3.x and IE (who knows what versions).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2200833338495536126?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2200833338495536126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2200833338495536126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2200833338495536126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2200833338495536126'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/03/asa5505-sslvpn-port-forwarding.html' title='ASA5505 SSLVPN Port Forwarding'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/SaqON9eNigI/AAAAAAAABSI/O3IIfQSq6LY/s72-c/Screenshot-Application+Access+-+Mozilla+Firefox.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8974597084256784447</id><published>2009-02-22T13:28:00.007-06:00</published><updated>2009-02-22T14:20:44.468-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><title type='text'>Personal or Professional (or, why one Twitter account is Not Enough?)</title><content type='html'>So I just hit my 400&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;th&lt;/span&gt; tweet on &lt;a href="http://twitter.com/mdfranz/"&gt;@&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mdfranz&lt;/span&gt;&lt;/a&gt; but am scarcely up to 20 &lt;a href="http://twitter.com/frednecksec/"&gt;@&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;frednecksec&lt;/span&gt;&lt;/a&gt; and I've learned a few things about how I like to use this addictive service in the past few months. And yeah (if you went there) my updates are protected, but more or that later.&lt;br /&gt;&lt;br /&gt;When I was first started following people, I was annoyed by technical people (whose blogs I read or knew personally) that only tweeted about personal stuff, so I didn't follow them. I could give a shit about what what sort of decadent food they were cooking, what they were doing with their wife, or their kids accomplishments. But I &lt;span style="font-style: italic;"&gt;was&lt;/span&gt; interested in 140 characters of wisdom on some technical/technology topic. If there was at least a 50:50 ratio of personal to professional context I kept following, otherwise I dropped them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Personal Branding&lt;/b&gt;&lt;br /&gt;As Tom Peters would say,  "you are your customers." Your personal brand is reflected in the those that you do business with and those that do business with you. The same applies to you twitter followers and folks you tweet with. If people that follow you tweet about stupid shit (to put it crudely, but probably characterizes some large % of tweets) that reflects poorly on you, since one of the first things I do when I follow someone (or someone follows me) is I check out the people they follow and their followers. It is the same principle as only connecting with "people you trust" on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;LinkedIn&lt;/span&gt;. On my public account I'm more open to follow somebody I don't know well enough or let anybody follow me, including &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;spambots&lt;/span&gt;. But on my private account I approve all followers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Privacy&lt;/b&gt;&lt;br /&gt;Frankly, a lot of stuff you tweet on has no business on public Internet (and all the various bots that follow you) where you shop, what you eat, the activities you do with your family, where you are geographically is none of the damn business of people that you don't really know, let alone &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;twitter's&lt;/span&gt; &lt;a href="http://twitter.com/public_timeline"&gt;public timeline&lt;/a&gt;. This is why I protect my updates on @&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;mdfranz&lt;/span&gt; but don't on @&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;frednecksec&lt;/span&gt;. Several weeks ago I registered for a demo version of some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;webapp&lt;/span&gt; and a product manager/sales person started following me. Creepy. I don't want sales people following me. And during the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;inauguration&lt;/span&gt; I wondered about how well Sprint's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;EVDO&lt;/span&gt; network would hold up and I had somebody in customer server ping me. She was nice/professional enough but I don't want that sort of interaction. I also don't want people I don't know to where I frequent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Different Media for Different Messages&lt;/span&gt;&lt;br /&gt;I've found that there are also two kinds of tweets: those personal, biased observations, and more objective factual statements that answer the original twitter question, "what are you doing?" More specifically what I'm am I reading that might be of interest to my readers. More reflective, opinionated tweets go on my personal account while the others (especially that are narrowly security related) go on my public account. This is the reason I've moved most of my high volume twitter lists (that mostly shared links and article) over to my public account. Public content stays public, private content stays private and I can also see on my public account when something I've read about, seen has already been tweeted on. I think RT is lame since the whole point is to post original content or content that reflects a certain perspective or range of interests.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;So what Twitter client allows you to use multiple accounts at once, &lt;a href="http://www.twhirl.org/"&gt;twhirl&lt;/a&gt;. Or use multiple browsers which is generally a good idea.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8974597084256784447?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8974597084256784447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8974597084256784447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8974597084256784447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8974597084256784447'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/02/personal-or-professional-or-why-one.html' title='Personal or Professional (or, why one Twitter account is Not Enough?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2696760421634103053</id><published>2009-02-19T21:04:00.003-06:00</published><updated>2009-02-19T21:09:21.084-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSolaris'/><title type='text'>Installing OpenSolaris on Lenny dom0 (sort of)</title><content type='html'>Here is my domain config file (open1.py)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz-61lenny:/alt/xen/domains/opensol# cat open1.py &lt;br /&gt;name = "solaris"&lt;br /&gt;memory = "1024"&lt;br /&gt;disk = [ 'file:/alt/isos/osol-0811.iso,6:cdrom,r', 'file:/alt/xen/domains/opensol/disk.img,0,w' ]&lt;br /&gt;vif = [ '' ]&lt;br /&gt;bootloader = '/usr/lib/xen-3.2-1/bin/pygrub'&lt;br /&gt;kernel = '/platform/i86xpv/kernel/unix'&lt;br /&gt;ramdisk = '/boot/x86.microroot'&lt;br /&gt;extra = '/platform/i86xpv/kernel/unix - nowin -B install_media=cdrom'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And here is proof that I did it&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz-61lenny:/alt/xen/domains/opensol# xm create -c open1.py &lt;br /&gt;Using config file "./open1.py".&lt;br /&gt;Started domain solaris&lt;br /&gt;                      v3.2-1 chgset 'unavailable'&lt;br /&gt;SunOS Release 5.11 Version snv_101b 32-bit&lt;br /&gt;Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;Use is subject to license terms.&lt;br /&gt;Hostname: opensolaris&lt;br /&gt;Remounting root read/write&lt;br /&gt;Probing for device nodes ...&lt;br /&gt;Preparing live image for use&lt;br /&gt;Done mounting Live image&lt;br /&gt;USB keyboard&lt;br /&gt; 1. Albanian                      22. Latvian                       &lt;br /&gt; 2. Belarusian                    23. Macedonian                    &lt;br /&gt; 3. Belgian                       24. Malta_UK                      &lt;br /&gt; 4. Bulgarian                     25. Malta_US                      &lt;br /&gt; 5. Croatian                      26. Norwegian                     &lt;br /&gt; 6. Czech                         27. Polish                        &lt;br /&gt; 7. Danish                        28. Portuguese                    &lt;br /&gt; 8. Dutch                         29. Russian                       &lt;br /&gt; 9. Finnish                       30. Serbia-And-Montenegro         &lt;br /&gt;10. French                        31. Slovenian                     &lt;br /&gt;11. French-Canadian               32. Slovakian                     &lt;br /&gt;12. Hungarian                     33. Spanish                       &lt;br /&gt;13. German                        34. Swedish                       &lt;br /&gt;14. Greek                         35. Swiss-French                  &lt;br /&gt;15. Icelandic                     36. Swiss-German                  &lt;br /&gt;16. Italian                       37. Traditional-Chinese           &lt;br /&gt;17. Japanese-type6                38. TurkishQ                      &lt;br /&gt;18. Japanese                      39. TurkishF                      &lt;br /&gt;19. Korean                        40. UK-English                    &lt;br /&gt;20. Latin-American                41. US-English                    &lt;br /&gt;21. Lithuanian                    &lt;br /&gt;To select the keyboard layout, enter a number [default 41]:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;[snip]&lt;br /&gt;&lt;pre&gt;User selected: English&lt;br /&gt;Configuring devices.&lt;br /&gt;Mounting cdroms&lt;br /&gt;Reading ZFS config: done.&lt;br /&gt;&lt;br /&gt;opensolaris console login: root&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now what do i do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2696760421634103053?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2696760421634103053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2696760421634103053' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2696760421634103053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2696760421634103053'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/02/installing-opensolaris-on-lenny-dom0.html' title='Installing OpenSolaris on Lenny dom0 (sort of)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2607102689658179826</id><published>2009-02-15T19:37:00.013-06:00</published><updated>2009-02-15T22:40:55.710-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgia'/><category scheme='http://www.blogger.com/atom/ns#' term='Back East'/><category scheme='http://www.blogger.com/atom/ns#' term='Austin-Skokie'/><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Grampa, where did you live during the "Long Depression" that started in 2008?</title><content type='html'>Richard Florida's article &lt;a href="http://www.theatlantic.com/doc/200903/meltdown-geography"&gt;How the Crash Will Reshape America&lt;/a&gt; captures a lot of what has been on my mind (and occasionally blogged about) since we &lt;a href="http://blogfranz.blogspot.com/2008/06/leaving-skokie.html"&gt;left Skokie&lt;/a&gt; last June. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From the packing up and &lt;a href="http://blogfranz.blogspot.com/2008/06/leaving-skokie.html"&gt;leaving&lt;/a&gt; what my son called "&lt;a href="http://www.youtube.com/watch?v=NzNsjcX25l4"&gt;best house ever&lt;/a&gt;" (the shaky footage is his) without a sold sign out front to &lt;a href="http://blogfranz.blogspot.com/2008/06/should-you-work-where-you-want-to-live.html"&gt;some motel thoughts on the trip&lt;/a&gt; to &lt;a href="http://blogfranz.blogspot.com/2008/07/obamas-patriotism-speech-and-call-to.html"&gt;premonitions of the impending collapse&lt;/a&gt; back to July (more specifically the non-sustainability of suburban sprawl) to the "discussions" my wife share on how long we should rent and when and where we should buy a common thread is &lt;span class="Apple-style-span" style="font-style: italic;"&gt;that &lt;/span&gt;&lt;i&gt;where you live matters.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It matters a lot. A hell of a lot. Your future may depend on it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;In October, less than a month after the financial markets began to melt down, Moody’s Investor Services published an assessment of recent economic activity within 381 U.S. metropolitan areas. Three hundred and two were already in deep recession, and 64 more were at risk. Only 15 areas were still expanding. Notable among them were the oil- and natural-resource-rich regions of Texas and Oklahoma, buoyed by energy prices that have since fallen; and the Greater Washington, D.C., region, where government bailouts, the nationalization of financial companies, and fiscal expansion are creating work for lawyers, lobbyists, political scientists, and government contractors.&lt;br /&gt;&lt;/blockquote&gt;Back in September, in the early days of the of the financial crisis, I thought about it a lot as I would look out into the Catoctins from the little park in our subdivision while my kids played (oblivous to what was on the radio) and I started to feel the first hint of Fall, that reminded me of 1987, my first Fall back in the states after living in Malaysia for 2 years. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was scary. With dozens of showings since our house went on the market on April 15th, 2008 yet not a single offer the constant talk of the forelosure crisis on the NPR, to say that it was stressful, it was an understatement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why did we buy in Chicago when we did? Why did we buy in one of the most overpriced suburbs on the Chicago North side? Well, because we couldn't afford Evanston or Winnetka and because of Skokie's diversity. We did not want our adopted Chinese daughter to be "the Chinese girl" in her pre-school class. Yes the schools were full of industrious recent immigrants. Immigrants that didn't care for the red brick Cape Code with the master bedroom where I sometimes bumped my head on the ceiling or the hardwood floors. All they wanted was space.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Multiple generations would fill the ugliest split level boxes you can imagine adjacent Crawford or Dempster. We heard from our realtor only the split levels were selling and how the demographics of the visitors were "different" (she was trying to abide by some regulations)  between our house and the those on nearby streets. Yes, so much was different between &lt;a href="http://blogfranz.blogspot.com/search/label/Austin-Skokie"&gt;Austin and Skokie&lt;/a&gt;. Our first house two blocks from North Lamar (and where you could hear the music from &lt;a href="http://threadgills.com/"&gt;Threadgills&lt;/a&gt;) sold on the first day. Those were different times and different places. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mostly white folks in their late 20s and early 30s. The hint of pot when you walked down the streets, some which had sidewalks some that did not. Certainly a larger percentage of Gay/Lesbian couples than in our previous neighborhood in San Antonio. Small three bedroom houses (if you were lucky) built in the late 40s and early 50s during the postwar boom. Aging water mains under streets and periodic electric outages. DSL was just starting to roll out. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I remember seeing the street literally explode in front of our house on Brentwood: the last affordable neighborhood south of Anderson lane. Stay at home moms with graduate degrees. At the Elementary School meetings I felt out of place because I was sans tattoo. If I recall, our first night in Austin was on Halloween of 1999. The dotcom boom was in still in full swing and drcoop.com still held prime real estate overlooking MOPAC. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We sat in the swings in Pease park that Thanksgiving, childless, awaiting what would be our final referral from Russia that would arrive in a matter of weeks and we would discuss it at the &lt;a href="http://www.littledeli.com/"&gt;Little Deli&lt;/a&gt; on my lunchbreak, short 5 minute drive from the Southwestern Bell office on Huntland, adjacent to I-35. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And all that we now know was still ahead of us: the letdown of Y2K, the NASDAQ crash in the Spring (I remember a day-trading colleague who had just joined from Dell) losing a lot that spring. I joined Cisco right after the last stock split in May 20o0 and I remember someone from SBC saying something about how I "was set" and could "retire." &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yes, Austin is/was one of Florida's poster children for these new creative cities.&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Thirty years ago, educational attainment was spread relatively uniformly throughout the country, but that’s no longer the case.&lt;i&gt; &lt;/i&gt;Cities like Seattle, San Francisco, Austin, Raleigh, and Boston now have two or three times the concentration of college graduates of Akron or Buffalo.&lt;i&gt; &lt;/i&gt;Among people with postgraduate degrees, the disparities are wider still.&lt;i&gt; &lt;/i&gt;The geographic sorting of people by ability and educational attainment, on this scale, is unprecedented.&lt;/blockquote&gt;&lt;blockquote&gt;The University of Chicago economist and Nobel laureate Robert Lucas declared that the spillovers in knowledge that result from talent-clustering are the main cause of economic growth. Well-educated professionals and creative workers who live together in dense ecosystems, interacting directly, generate ideas and turn them into products and services faster than talented people in other places can. There is no evidence that globalization or the Internet has changed that. Indeed, as globalization has increased the financial return on innovation by widening the consumer market, the pull of innovative places, already dense with highly talented workers, has only grown stronger, creating a snowball effect. Talent-rich ecosystems are not easy to replicate, and to realize their full economic value, talented and ambitious people increasingly need to live within them&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Returning home right before noon on that fateful blue September morning in 2001 after we watched both towers Fall live in the conference room. Watching the Reserve and National Guard Intelligence units gradually get activated and a getting a call from my XO down in San Antonio saying my name was on the list to deploy to Fort Belvoir. Packing my duffel bag, sitting around the table of our retro kitchen table and trying to explain to a toddler that Dada was going to go away for a while. Of course the orders were rescinded but my son and I were baptised in the Episcopal church anyway that Fall. There was more to it than that of course, but that was Austin. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Years later I would grow restless and leave Cisco and work (virtually) from coffee shops on Lamar, Burnet, and Anderson and from my hot home office that used to be a kitchen and where supposedly a previous resident had died.  From the heat and the solitude I would slowly go crazy and would start looking to find a new job where I could work in an office again. I would &lt;a href="http://blogfranz.blogspot.com/2006/08/lenten-summers-end-what-week-first.html"&gt;strike out in Seattle &lt;/a&gt;(yeah I wrote that after bombing my AMZN interview, badly) but cool clarity &lt;span class="Apple-style-span" style="font-style: italic;"&gt;would&lt;/span&gt; come soon. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Giving up on big West coast software companies, I dug into the &lt;a href="http://www.digitalbond.com/index.php/2006/12/12/scada-plugins-for-nessus-are-released/"&gt;SCADA Plugins&lt;/a&gt; and a recruiter from Hewitt called, offering crazy money, a chance to run/develop Open Source security boxes in a large company and not do vuln work which I'd grown, a sweet relocation package,  and a way to escape the Texas heat. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;* * *&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will see if it is true but one of the more important (and troubling) charactization of our current malaise, elswhere Florida says our depression has more in common with the "Long Depression" of the late 19th century than the Great Depression:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Economic crises tend to reinforce and accelerate the underlying, long-term trends within an economy. Our economy is in the midst of a fundamental long-term transformation—similar to that of the late 19th century, when people streamed off farms and into new and rising industrial cities. In this case, the economy is shifting away from manufacturing and toward idea-driven creative industries—and that, too, favors America’s talent-rich, fast-metabolizing places.&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;And on the importance of geography:&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;To a surprising degree, the causes of this crash are geographic in nature, and they point out a whole system of economic organization and growth that has reached its limit. Positioning the economy to grow strongly in the coming decades will require not just fiscal stimulus or industrial reform; it will require a new kind of geography as well, a new spatial fix for the next chapter of American economic history. &lt;/p&gt;  &lt;p&gt;Suburbanization was the spatial fix for the industrial age—the geographic expression of mass production and the early credit economy. Henry Ford’s automobiles had been rolling off assembly lines since 1913, but “Fordism,” the combination of mass production and mass consumption to create national prosperity, didn’t emerge as a full-blown economic and social model until the 1930s and the advent of Roosevelt’s New Deal programs. &lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;And, among other things, the foolishness of the American Dream of owning your own house. &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Thank God we're still renting.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;On one level, the crisis has demonstrated what everyone has known for a long time: Americans have been living beyond their means, using illusory housing wealth and huge slugs of foreign capital to consume far more than we’ve produced. The crash surely signals the end to that; the adjustment, while painful, is necessary. &lt;/p&gt;  &lt;p&gt;But another crucial aspect of the crisis has been largely overlooked, and it might ultimately prove more important. Because America’s tendency to overconsume and under-save has been intimately intertwined with our postwar spatial fix—that is, with housing and suburbanization—the shape of the economy has been badly distorted, from where people live, to where investment flows, to what’s produced. Unless we make fundamental policy changes to eliminate these distortions, the economy is likely to face worsening handicaps in the years ahead.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Suburbanization—and the sprawling growth it propelled—made sense for a time. The cities of the early and mid-20th century were dirty, sooty, smelly, and crowded, and commuting from the first, close-in suburbs was fast and easy. And as manufacturing became more technologically stable and product lines matured during the postwar boom, suburban growth dovetailed nicely with the pattern of industrial growth. Businesses began opening new plants in green-field locations that featured cheaper land and labor; management saw no reason to continue making now-standardized products in the expensive urban locations where they’d first been developed and sold. Work was outsourced to then-new suburbs and the emerging areas of the Sun Belt, whose connections to bigger cities by the highway system afforded rapid, low-cost distribution. This process brought the Sun Belt economies (which had lagged since the Civil War) into modern times, and sustained a long boom for the United States as a whole. &lt;/p&gt;  &lt;p&gt;But that was then; the economy is different now. It no longer revolves around simply making and moving things. Instead, it depends on generating and transporting ideas. The places that thrive today are those with the highest velocity of ideas, the highest density of talented and creative people, the highest rate of metabolism. &lt;i&gt;Velocity&lt;/i&gt; and &lt;i&gt;density&lt;/i&gt; are not words that many people use when describing the suburbs. The economy is driven by key urban areas; a different geography is required&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Of course a lot of this (as well as the stimulus package) hinges on whether or not the era of manufacturing jobs is truly gone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2607102689658179826?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2607102689658179826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2607102689658179826' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2607102689658179826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2607102689658179826'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/02/grampa-where-did-you-live-during-long.html' title='Grampa, where did you live during the &quot;Long Depression&quot; that started in 2008?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3850516408110836653</id><published>2009-02-15T12:27:00.003-06:00</published><updated>2009-02-15T12:38:36.167-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><title type='text'>Twitter / FredneckSec Updates</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/SZhg72X-d0I/AAAAAAAABO4/bIIIsLwdMNQ/s1600-h/frednecksec.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 179px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/SZhg72X-d0I/AAAAAAAABO4/bIIIsLwdMNQ/s320/frednecksec.png" alt="" id="BLOGGER_PHOTO_ID_5303095142553384770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For better or worse, I'm now up to 2 twitter accounts, having created &lt;a href="http://twitter.com/frednecksec"&gt;@frednecksec&lt;/a&gt; with the goal of trying (once again) to form a Security networking group in the Frederick area along the lines of &lt;a href="http://electricfork.com/charmsec"&gt;CharmSec&lt;/a&gt; or &lt;a href="http://novasec.blogspot.com/"&gt;NoVA Sec&lt;/a&gt; except for us country folks that live too far out to make it into (or stick around after work) to the DC/Baltimore area.&lt;br /&gt;&lt;br /&gt;Yeah, so this is definitely cutting into my blogging. Apart from a regional focus I hope to tweet on stuff you won't see elsewhere on any of the twitter, even if it tends to border on the obscure.&lt;br /&gt;&lt;br /&gt;FredneckSec was something a couple of us (unsuccessfully) tried to do &lt;a href="http://blogfranz.blogspot.com/2008/07/frednecksec-1-next-thursday.html"&gt;last Summer&lt;/a&gt; but am hoping with power of twitter and some new folks I've met here in the New Market area to tried to get this rolling again real soon now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3850516408110836653?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3850516408110836653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3850516408110836653' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3850516408110836653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3850516408110836653'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/02/twitter-frednecksec-updates.html' title='Twitter / FredneckSec Updates'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MPIoEEC-IC0/SZhg72X-d0I/AAAAAAAABO4/bIIIsLwdMNQ/s72-c/frednecksec.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1354131282370006535</id><published>2009-01-29T06:43:00.003-06:00</published><updated>2009-01-29T06:47:34.045-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><title type='text'>Twitter Starts to Grow Up</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SYGksadVKTI/AAAAAAAABKI/cApMUIoP6dU/s1600-h/who.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SYGksadVKTI/AAAAAAAABKI/cApMUIoP6dU/s320/who.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5296695719687956786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks like they are actually starting to address twamming or or whatever (tweet-spam) is called. Cause I went to block &lt;a href="http://twitter.com/urgentSSD"&gt;JENNY&lt;/a&gt; and got this image. &lt;br /&gt;&lt;br /&gt;Good for them. About time.&lt;br /&gt;&lt;br /&gt;How long until they get non-Base64 authentication?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1354131282370006535?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1354131282370006535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1354131282370006535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1354131282370006535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1354131282370006535'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/twitter-starts-to-grow-up.html' title='Twitter Starts to Grow Up'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/SYGksadVKTI/AAAAAAAABKI/cApMUIoP6dU/s72-c/who.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8380389833690993352</id><published>2009-01-27T20:45:00.009-06:00</published><updated>2009-01-27T21:14:25.622-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><title type='text'>Is jennydddggeee too hot for you? (or, Automated Twitter Spam Blocking?)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/SX_H4-coPSI/AAAAAAAABKA/7qFvWXn-jbw/s1600-h/blah.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 73px; height: 73px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/SX_H4-coPSI/AAAAAAAABKA/7qFvWXn-jbw/s200/blah.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5296171468460670242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are reading this blog, you don't know anyone like &lt;a href="http://twitter.com/jennydddggeee"&gt;this&lt;/a&gt;, don't &lt;i&gt;want&lt;/i&gt; to know anyone that looks like &lt;a href="http://twitter.com/whoiammmmmmmm"&gt;that&lt;/a&gt; -- and certainly don't want either of them following your every move. &lt;br /&gt;&lt;br /&gt;So it should be pretty easy to write less than 25 lines of Python using &lt;a href="http://andrewprice.me.uk/projects/twyt/"&gt;Twyt&lt;/a&gt; that automatically removes any followers that have a single post.&lt;br /&gt;&lt;br /&gt;But there have to be tools that already do this. Or any Twitter clients that will automatically block spam followers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8380389833690993352?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8380389833690993352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8380389833690993352' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8380389833690993352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8380389833690993352'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/is-jennydddggeee-too-hot-for-you-or.html' title='Is jennydddggeee too hot for you? (or, Automated Twitter Spam Blocking?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/SX_H4-coPSI/AAAAAAAABKA/7qFvWXn-jbw/s72-c/blah.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8289348265094784549</id><published>2009-01-25T18:44:00.005-06:00</published><updated>2009-01-25T18:57:32.471-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Another Post-Twitter Poor Excuse for a Blog Entry</title><content type='html'>After getting hooked on Twitter, I really don't blog anymore (but in the tradition of &lt;a href="http://blogfranz.blogspot.com/2008/03/luv-them-firewalls.html"&gt;Luv Them Firewalls&lt;/a&gt;, another picture of my my daughter on our now defunct Macbook) here was a picture tonight. Was barely able to get her unglued from &lt;a href="http://gcompris.net/"&gt;Gcompris&lt;/a&gt;. It is funny how kids get attached to certain items of clothing. This year it was this Santa hat. Back in Austin it was this pink pair of snow boots.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SX0HyQuBB_I/AAAAAAAABJs/Wgp0Q8eyqpc/s1600-h/img_1105.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SX0HyQuBB_I/AAAAAAAABJs/Wgp0Q8eyqpc/s320/img_1105.jpg" alt="" id="BLOGGER_PHOTO_ID_5295397296920397810" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8289348265094784549?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8289348265094784549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8289348265094784549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8289348265094784549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8289348265094784549'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/another-post-twitter-poor-excuse-for.html' title='Another Post-Twitter Poor Excuse for a Blog Entry'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/SX0HyQuBB_I/AAAAAAAABJs/Wgp0Q8eyqpc/s72-c/img_1105.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3369914742582684654</id><published>2009-01-20T20:41:00.002-06:00</published><updated>2009-01-20T20:45:09.209-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Khe Sanh?</title><content type='html'>Yep, that stood out for me as well, but this is as good as an exchange as I heard/read today.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/28755242#28755242" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;style type="text/css"&gt;.msnbcLinks {font-size:11px; font-family:Arial, Helvetica, sans-serif; color: #999; margin-top: 5px; background: transparent; text-align: center; width: 425px;} .msnbcLinks a {text-decoration:none !important; border-bottom: 1px dotted #999 !important; font-weight:normal !important; height: 13px;} .msnbcLinks a:link, .msnbcLinks a:visited {color: #5799db !important;} .msnbcLinks a:hover, .msnbcLinks a:active {color:#CC0000 !important;} &lt;/style&gt;&lt;p class="msnbcLinks"&gt;Visit msnbc.com for &lt;a href="http://www.msnbc.msn.com/"&gt;Breaking News&lt;/a&gt;, &lt;a href="http://www.msnbc.msn.com/id/3032507"&gt;World News&lt;/a&gt;, and &lt;a href="http://www.msnbc.msn.com/id/3032072"&gt;News about the Economy&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3369914742582684654?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3369914742582684654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3369914742582684654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3369914742582684654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3369914742582684654'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/khe-sanh.html' title='Khe Sanh?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-476486242887858303</id><published>2009-01-20T20:04:00.005-06:00</published><updated>2009-01-20T20:30:14.805-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><title type='text'>Childish Things and Hand Me Downs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/SXaC_YdWiXI/AAAAAAAABJA/3W-XFXdlaGM/s1600-h/IMG_1084.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/SXaC_YdWiXI/AAAAAAAABJA/3W-XFXdlaGM/s320/IMG_1084.JPG" alt="" id="BLOGGER_PHOTO_ID_5293562437429528946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I really wanted to blog on our new President's comments about "putting away childish things" behind us, but I'm too tired. I woke up 4-ish again, and made the drive in at 6:15 to avoid the traffic that never came. So instead I'll post a picture of  my youngest child.&lt;br /&gt;&lt;br /&gt;Appropriate, since my wife has some new project where she is rifling through old &lt;i&gt;physical&lt;/i&gt; photos in plastic tubs.&lt;br /&gt;&lt;br /&gt;Slightly more than nine years ago, my oldest son wore this same snowsuit in Samara and Moscow (yes, both are in Russia) but he never got played in the snow.&lt;br /&gt;&lt;br /&gt;We returned home with him in the 2nd week of February in 2000 to our 1st "Green House" in Austin and Spring had sprung. This snowsuit was not worn again. At three months older and barely walking, my Chinese daughter, in March of 2005, was too small to wear this snowsuit on a ski trip to Utah.&lt;br /&gt;&lt;br /&gt;But we kept it. And I remember packing it up in June, when I was single-handedly packed our 4 bedroom house in Skokie.&lt;br /&gt;&lt;br /&gt;Yesterday, we had the first decent snow here in New Market (but not nearly as much as &lt;a href="http://blogfranz.blogspot.com/2007/12/into-world.html"&gt;when his was born&lt;/a&gt;) but it was enough.&lt;br /&gt;&lt;br /&gt;My wife found the snow suit and Sam wore it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-476486242887858303?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/476486242887858303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=476486242887858303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/476486242887858303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/476486242887858303'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/childish-things-and-hand-me-downs.html' title='Childish Things and Hand Me Downs'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MPIoEEC-IC0/SXaC_YdWiXI/AAAAAAAABJA/3W-XFXdlaGM/s72-c/IMG_1084.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5351701570093013978</id><published>2009-01-14T20:09:00.003-06:00</published><updated>2009-01-14T20:23:27.137-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Protocols'/><title type='text'>Inside the Gmail Login Sequence (or, has anyone documented all the parameters and JSON response codes)</title><content type='html'>I generally don't like Wiley books, but near the end of &lt;a href="http://media.wiley.com/product_data/excerpt/1X/07645961/076459611X.pdf"&gt;a chapter on how Gmail works&lt;/a&gt; actually isn't that bad.&lt;br /&gt;&lt;br /&gt;I'm sure there has to be more stuff like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/gmail?&lt;br /&gt;ik=344af70c5d&lt;br /&gt;&amp;amp;view=cv&lt;br /&gt;&amp;amp;search=inbox&lt;br /&gt;&amp;amp;th=101865c04ac2427f&lt;br /&gt;&amp;amp;lvp=-1&lt;br /&gt;&amp;amp;cvp=0&lt;br /&gt;&amp;amp;zx=9m4966e44e98uu&lt;br /&gt;&lt;br /&gt;As you can see, this the message ID of the message I clicked on.&lt;br /&gt;But the others are mysterious at the moment. At this point in the&lt;br /&gt;proceedings, alarms went off in my head.Why, I was thinking, is&lt;br /&gt;the variable for message ID th—when that probably stands for thread.&lt;br /&gt;So, I sent a few mails back and forth to create a thread, and loaded&lt;br /&gt;the Inbox and the message back up&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;elsewhere dissecting the URL parameters, but I haven't found it apart from looking at the &lt;a href="http://libgmail.sourceforge.net/"&gt;libgmail&lt;/a&gt; source, the constants file in particular. Has nobody documented this stuff or is google burying any documentation on reverse engineering Gmail?&lt;br /&gt;&lt;br /&gt;It is sort of curious that the author is using tcpflow. Fine tool, but using an interceptor proxy like paros or something like firebug is a hell of a lot more efficient than sniffing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5351701570093013978?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5351701570093013978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5351701570093013978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5351701570093013978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5351701570093013978'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/inside-gmail-login-sequence-or-has.html' title='Inside the Gmail Login Sequence (or, has anyone documented all the parameters and JSON response codes)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-683913475187607765</id><published>2009-01-12T19:17:00.006-06:00</published><updated>2009-01-12T20:35:01.844-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><category scheme='http://www.blogger.com/atom/ns#' term='The Wire'/><title type='text'>Another word for stakeholders</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pso4oVc5fHk&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pso4oVc5fHk&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This is probably more worthy of a tweet (funny how tweeting has cut down on my blogging) but &lt;a href="http://al3x.net/2009/01/12/the-thing-about-security.html"&gt;Alex Payne writes about the challenges of securing twitter&lt;/a&gt; (a relevant topic given my Twitter usage lately)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The thing about security is that it requires stakeholders. I have a security background, but Twitter’s security isn’t my job. In fact, my job is pretty much the opposite: I open up as much of Twitter’s functionality as I can without (hopefully) making the system insecure. So while I’ve usually been a “first responder” to security incidents because of my background, it requires a major mental context switch from the work I normally do.&lt;br /&gt;&lt;br /&gt;Several months after I joined Twitter in early 2007, I suggested to the team that we do a full internal security audit. Stop all work, context switch to Bad Guy Mode, find issues, fix them. I wish I could say that we’ve done that audit in its entirety, but the demands of a growing product supported by a tiny team overshadowed its priority. Now we‘re in an unwelcome position that many technical organizations get into: so far into a big code-base that’s never seen any substantial periodic audits that the only way to really find all the issues is to bring in some outside help – something I sincerely hope we end up doing, but is not my call.&lt;br /&gt;&lt;/blockquote&gt;This post is depressing on a number of levels, mainly because it reminds me of the attitudes (and my own personal frustrations) from back in the early years of doing product security at Cisco.&lt;br /&gt;&lt;br /&gt;I hear thing have actually have improved (however slowly) there, but obviously in the supercool world of 2.0 and social networking, they are still pre-2001.&lt;br /&gt;&lt;br /&gt;Stakeholders, yeah I'll tell you another word for stakeholders: &lt;i&gt;people that give a shit.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I remember a certain Director of Marketing in the Security &amp;amp; VPN BU. These guys have long since cashed out their options (and the product is killed off), so I don't feel any reservations about blogging about it. Yeah, he was a stakeholder all right, he told us (a small, understaffed, security testing team with no power or authority) that his remote access VPN product was a communication product so security didn't really apply. (Leaving out the far more interesting &amp; cynical quote from a GSR Director of Marketing)&lt;br /&gt;&lt;br /&gt;So I understand the frustration, but the idea (that even even if you are a developer, product manager, system administrator) that suddenly you put on your security security hat, stop the presses, fix everything is a quaint notion alongside that 20th century concept that your application, device, or TCP/IP enabled Kleenex box (a big shout out to the Hewitt appsec crew!) is behind a firewall (or not on the Internet) so therefore security isn't a big deal.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-style: italic;"&gt;You&lt;/span&gt; are the stakeholder.  And to paraphrase &lt;span style="font-style: italic;"&gt;The Wire&lt;/span&gt;, "Is you up or is you not?"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Security is not about losing the big battles. It is about winning the small ones. The one's you can win. You do what you can and don't whine about it. If it is not your call, then it is not your problem. Worry about what is your call. That is all you can do.&lt;br /&gt;&lt;br /&gt;Been there and done that, you are wasting a lot of time and energy. Trust me. &lt;br /&gt;If you don't believe me, read &lt;a href="http://community.controlglobal.com/unfettered"&gt;Unfettered&lt;/a&gt;. Bless his heart, Joe is still preaching (nobody gets it, nothing is being done, etc.) the same way he did the first conference of his I attended on SCADA security back in 2003.&lt;br /&gt;&lt;br /&gt;Either they get it or they don't and maybe if they don't appear to get it, it is because it really isn't that important in the grand scheme of things. Or maybe you aren't explaining it well enough. If it is really important it work itself out in the long run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-683913475187607765?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/683913475187607765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=683913475187607765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/683913475187607765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/683913475187607765'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/another-word-for-stakeholders.html' title='Another word for stakeholders'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8463091499579903111</id><published>2009-01-07T05:10:00.004-06:00</published><updated>2009-01-08T04:48:26.927-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>Verisign's Big Takeaway (And Pigs Need Wings, Too)</title><content type='html'>How unsuprising is &lt;a href="https://blogs.verisign.com/ssl-blog/2009/01/update_from_alexander_sotirov.php"&gt;Tim Callan's "big takeway"&lt;/a&gt; for anyone that has had experience on the disclosure front either inside a vendor or as a finder:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;The big takeaway for me from this incident is that we need an environment where researchers and security vendors can trust each other. Alexander has explained why his team did not feel they could place that trust in VeriSign. I have explained why I feel they could have. We at VeriSign would like to see an environment where researchers need not mistrust security vendors and vice versa. We're committed to doing our part to bring back that environment, and we encourage security researchers in the future to reach out directly to us. We promise to treat you fairly and respectfully.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Yup, we'll see when that happens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8463091499579903111?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8463091499579903111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8463091499579903111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8463091499579903111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8463091499579903111'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/verisigns-big-takeaway-and-pigs-need.html' title='Verisign&apos;s Big Takeaway (And Pigs Need Wings, Too)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-738248516848141779</id><published>2009-01-06T11:48:00.002-06:00</published><updated>2009-01-06T11:51:00.390-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='moodle'/><title type='text'>Moodle External-Internal Authentication/Enrollment Synchronication</title><content type='html'>This is something I'd wish I'd blogged about because I wasted time remembering how to do this.&lt;br /&gt;&lt;br /&gt;This assumes an Ubuntu 8.10 install&lt;br /&gt;&lt;br /&gt;First you must sync up the users:&lt;br /&gt;&lt;br /&gt;php -c /etc/php5/apache2/php.ini /var/www/moodle/auth/db/auth_db_sync_users.php&lt;br /&gt;&lt;br /&gt;Then your must sync up the enrollments&lt;br /&gt;&lt;br /&gt;php -c /etc/php5/apache2/php.ini /var/www/moodle/enrol/database/enrol_database_sync.php &lt;br /&gt;&lt;br /&gt;Will flesh this out later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-738248516848141779?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/738248516848141779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=738248516848141779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/738248516848141779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/738248516848141779'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/moodle-external-internal.html' title='Moodle External-Internal Authentication/Enrollment Synchronication'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5914603097643892534</id><published>2009-01-03T18:45:00.006-06:00</published><updated>2009-01-03T20:03:38.985-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Two-O'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Hello CouchDB (or, does Erlang make it Cool?)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/SWAKKKv6WHI/AAAAAAAABF8/do6qlDaNlHM/s1600-h/couchdb-logo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 88px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/SWAKKKv6WHI/AAAAAAAABF8/do6qlDaNlHM/s320/couchdb-logo.png" alt="" id="BLOGGER_PHOTO_ID_5287237132333242482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Today I ran across &lt;a href="http://couchdb.apache.org/"&gt;CouchDB&lt;/a&gt; in &lt;a href="http://pylab.blogspot.com/2009/01/ten-reasons-why-couchdb-is-better-than.html"&gt;Ten reasons why CouchDB is better than MySQL&lt;/a&gt; (provides a high level overview but not terribly interesting) and a &lt;a href="http://blog.leetsoft.com/2007/9/2/futuretalk-couchdb"&gt;more interesting discussion among a bunch of database guys&lt;/a&gt; (which I'm obviously not,) about what sort of problems this (and similar approaches) are most suited for. I must say after having played around with ORM (ActiveRecord, Django, Hibernate) over the years and more recently had my nose is Moodle databases I'm sympathetic to the idea that maybe not everything should be stored in tables, rows, and fields and having to design (or discern) the relations. There is just something sort of contorted about the process of viewing the world (or the data we are trying to capture in the world) this way. I have also definitely felt the pain of having to adjust your schema (as you realize new requirements) and perform "migrations" so there is definitely something intriguing about CouchDB.&lt;br /&gt;&lt;br /&gt;Some of the aspects I found interesting&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;In an SQL database, as needs evolve the schema and storage of the existing data must be updated. This often causes problems as new needs arise that simply weren’t anticipated in the initial database designs, and makes distributed “upgrades” a problem for every host that needs to go through a schema update.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;CouchDB is a peer based distributed database system. Any number of CouchDB hosts (servers and offline-clients) can have independent “replica copies” of the same database, where applications have full database interactivity (query, add, edit, delete). When back online or on a schedule, database changes are replicated bi-directionally.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And there is also &lt;a href="http://books.couchdb.org/relax/why-couchdb"&gt;OReilly book&lt;/a&gt; in progress that provides a much more readable introduction and &lt;a href="http://jchris.mfdz.com/posts/128"&gt;Standalone Applications with CouchDB&lt;/a&gt; is also definitely worth reading.&lt;br /&gt;&lt;br /&gt;(Oh and on Ubuntu 8.10 it is in the repo so it is an "apt"-get away)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5914603097643892534?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5914603097643892534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5914603097643892534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5914603097643892534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5914603097643892534'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/hello-couchdb-or-does-erlang-make-it.html' title='Hello CouchDB (or, does Erlang make it Cool?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/SWAKKKv6WHI/AAAAAAAABF8/do6qlDaNlHM/s72-c/couchdb-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4601827411765480053</id><published>2009-01-03T11:32:00.003-06:00</published><updated>2009-01-03T11:36:30.096-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>start-stop-daemon on CentOS/RHEL5 (and probably other RedHat derivatives)</title><content type='html'>Some packages depend on the start-stop-daemon command which is not available in CentOS (or the dag repositories, AFAIK) but the solution is to pull down the source for &lt;a href="http://packages.debian.org/etch/dpkg"&gt;dpkg&lt;/a&gt; and compile it. Basically do a ./configure at the top level of the package and then do a make, make install the utils directory&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[root@moodle_dev utils]# make&lt;br /&gt;gcc -std=gnu99  -g -O2  -Wl,-O1 -o start-stop-daemon  start-stop-daemon.o ../get&lt;br /&gt;opt/libopt.a&lt;br /&gt;[root@moodle_dev utils]# ls&lt;br /&gt;enoent    enoent.o  Makefile.am  start-stop-daemon    start-stop-daemon.o&lt;br /&gt;enoent.c  Makefile  Makefile.in  start-stop-daemon.c&lt;br /&gt;[root@moodle_dev utils]# make install&lt;br /&gt;make[1]: Entering directory `/root/dpkg-1.13.26/utils'&lt;br /&gt;test -z "/usr/local/lib/dpkg" || mkdir -p -- "/usr/local/lib/dpkg"&lt;br /&gt; /usr/bin/install -c 'enoent' '/usr/local/lib/dpkg/enoent'&lt;br /&gt;test -z "/usr/local/sbin" || mkdir -p -- "/usr/local/sbin"&lt;br /&gt; /usr/bin/install -c 'start-stop-daemon' '/usr/local/sbin/start-stop-daemon'&lt;br /&gt;make[1]: Nothing to be done for `install-data-am'.&lt;br /&gt;make[1]: Leaving directory `/root/dpkg-1.13.26/utils'&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4601827411765480053?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4601827411765480053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4601827411765480053' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4601827411765480053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4601827411765480053'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2009/01/start-stop-daemon-on-centosrhel5-and.html' title='start-stop-daemon on CentOS/RHEL5 (and probably other RedHat derivatives)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3404799697575160848</id><published>2008-12-31T07:38:00.014-06:00</published><updated>2008-12-31T08:25:29.149-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='moodle'/><title type='text'>Unmasking the Mysteries of the Moodle User/Course Database: Part I</title><content type='html'>&lt;b&gt;CAVEAT:&lt;/b&gt; From this blog post you'll [correctly] conclude I have way too much time on my /hands, but heh, when you work on your day off you can be as inefficient as you like! &lt;br /&gt;&lt;br /&gt;(Oh yeah and all of this, running moodle, mysql, mysql GUI tools, gimp, etc. was all done on my Netbook. These are decent little machines. I'm glad I bought a hard drive instead of a flash because you can use them for real apps. All in a 2 pound package. I would recommend an external mouse/trackball if you want to save you thumbs). A bit hotter than &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz@mfranz-s10:~$ uptime&lt;br /&gt; 09:23:44 up 15:39,  4 users,  load average: 0.53, 0.63, 0.59&lt;br /&gt;&lt;br /&gt;mfranz@mfranz-s10:~$ free&lt;br /&gt;             total       used       free     shared    buffers     cached&lt;br /&gt;Mem:       1543920    1505324      38596          0     106532     571888&lt;br /&gt;-/+ buffers/cache:     826904     717016&lt;br /&gt;Swap:      1983988        668    1983320&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A bit hotter (CPU-wise) than I'd like but Opera was the only thing that bogged down a bit.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Problem&lt;/b&gt;: How do you programmatically find out which students are enrolled in a given moodle course? Since the new authorization/enrollment model implemented in Moodle 1.7 (IIRC) this becomes a little more difficult because the data is spread across a number of tables in the moodle database&lt;br /&gt;&lt;br /&gt;Basically you want to find out something like this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SVt25I4RytI/AAAAAAAABEc/qcmgxGQsAsg/s1600-h/web_cf102.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 102px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SVt25I4RytI/AAAAAAAABEc/qcmgxGQsAsg/s200/web_cf102.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285949311657560786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm the only student in CF102.&lt;br /&gt;&lt;br /&gt;So we start with mdl_user (the table we retreived the metadata on in &lt;a href="http://blogfranz.blogspot.com/2008/12/why-use-python-to-access-your-moodle.html"&gt;a previous blog&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MPIoEEC-IC0/SVt3_mE7eUI/AAAAAAAABEk/RwIHB3ktWvk/s1600-h/mdl_user.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 81px;" src="http://3.bp.blogspot.com/_MPIoEEC-IC0/SVt3_mE7eUI/AAAAAAAABEk/RwIHB3ktWvk/s400/mdl_user.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285950522086095170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remember, my id is &lt;b&gt;3&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now to look at the courses (mdl_course)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVt4lFuio5I/AAAAAAAABEs/a7oBgL4doAM/s1600-h/mdl_course.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 83px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVt4lFuio5I/AAAAAAAABEs/a7oBgL4doAM/s400/mdl_course.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285951166237287314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remember that CF102 has an id of &lt;b&gt;3&lt;/b&gt; as well.&lt;br /&gt;&lt;br /&gt;Here is where it starts to get interesting. The role_assignment table shows that my user has a roleid of 5 and a contextid of 11. Both of these are necessary to understand what a given use can or cannot do/view in terms of course content.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/SVt7KZ6eHYI/AAAAAAAABE0/RqG7KzUP3uI/s1600-h/role_assignment.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 58px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/SVt7KZ6eHYI/AAAAAAAABE0/RqG7KzUP3uI/s400/role_assignment.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285954006334446978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The role_capabilities table defines what roleid 5 is.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SVt71YwjdaI/AAAAAAAABE8/xcpdVQ_oSp0/s1600-h/role_capabilities.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 88px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SVt71YwjdaI/AAAAAAAABE8/xcpdVQ_oSp0/s400/role_capabilities.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285954744758793634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The roleid of 5 corresponds to a student and and the capability is self-explanatory.&lt;br /&gt;&lt;br /&gt;Now back to the contextid (from the role_capabilities table), which is the indirect link to the course through the mdl_context table. For once I actually highlighted the correct row. In this case we are interested in a contextid of 11.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVt9C5E3aKI/AAAAAAAABFE/MF5sgi4Syi0/s1600-h/mdl_context.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 86px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVt9C5E3aKI/AAAAAAAABFE/MF5sgi4Syi0/s400/mdl_context.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5285956076283848866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I cut the field names off, but the third field is instanceid (which is 3) and points us back to the courseid which corresponds to CF102.&lt;br /&gt;&lt;br /&gt;Simple, eh?&lt;br /&gt;&lt;br /&gt;In the next blog post on this topic I'll write some Python/SQLAlchemy code to retreive a list of users that are enrolled in a given course or which courses a student is enrolled in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3404799697575160848?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3404799697575160848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3404799697575160848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3404799697575160848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3404799697575160848'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/unmasking-mysteries-of-moodle.html' title='Unmasking the Mysteries of the Moodle User/Course Database: Part I'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MPIoEEC-IC0/SVt25I4RytI/AAAAAAAABEc/qcmgxGQsAsg/s72-c/web_cf102.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5934763824623663673</id><published>2008-12-30T19:37:00.005-06:00</published><updated>2008-12-31T06:09:27.902-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='moodle'/><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><title type='text'>Why use Python to access your Moodle User Database?</title><content type='html'>Well, besides that PHP is an absolute shit for brains language and basic stuff like yaml, displaying syntax errors in imported modules and other sane things you would expect after using Python or Ruby just ain't there.&lt;br /&gt;&lt;br /&gt;And oh yeah, and it is is butt ugly ($, -&gt;, ::, ?&gt; etc.)&lt;br /&gt;&lt;br /&gt;Not only that because because I was able to whip this up cool script with &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt; (no I'm not using the ORM, just want to avoid MysqlDB)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mfranz@mfranz-s10:~/crap$ cat alctest.py &lt;br /&gt;#!/usr/bin/env python&lt;br /&gt;from sqlalchemy import *&lt;br /&gt;from pprint import pprint&lt;br /&gt;e = create_engine("mysql://moodle:blackboard@127.0.0.1/moodle")&lt;br /&gt;m = MetaData(e)&lt;br /&gt;user_table = Table('mdl_user',m,autoload=True,autoload_with=e)&lt;br /&gt;pprint(user_table.columns.keys())&lt;br /&gt;mfranz@mfranz-s10:~/crap$ ./alctest.py &lt;br /&gt;[u'id',&lt;br /&gt; u'auth',&lt;br /&gt; u'confirmed',&lt;br /&gt; u'policyagreed',&lt;br /&gt; u'deleted',&lt;br /&gt; u'mnethostid',&lt;br /&gt; u'username',&lt;br /&gt; u'password',&lt;br /&gt; u'idnumber',&lt;br /&gt; u'firstname',&lt;br /&gt; u'lastname',&lt;br /&gt; u'email',&lt;br /&gt; u'emailstop',&lt;br /&gt; u'icq',&lt;br /&gt; u'skype',&lt;br /&gt; u'yahoo',&lt;br /&gt; u'aim',&lt;br /&gt; u'msn',&lt;br /&gt; u'phone1',&lt;br /&gt; u'phone2',&lt;br /&gt; u'institution',&lt;br /&gt; u'department',&lt;br /&gt; u'address',&lt;br /&gt; u'city',&lt;br /&gt; u'country',&lt;br /&gt; u'lang',&lt;br /&gt; u'theme',&lt;br /&gt; u'timezone',&lt;br /&gt; u'firstaccess',&lt;br /&gt; u'lastaccess',&lt;br /&gt; u'lastlogin',&lt;br /&gt; u'currentlogin',&lt;br /&gt; u'lastip',&lt;br /&gt; u'secret',&lt;br /&gt; u'picture',&lt;br /&gt; u'url',&lt;br /&gt; u'description',&lt;br /&gt; u'mailformat',&lt;br /&gt; u'maildigest',&lt;br /&gt; u'maildisplay',&lt;br /&gt; u'htmleditor',&lt;br /&gt; u'ajax',&lt;br /&gt; u'autosubscribe',&lt;br /&gt; u'trackforums',&lt;br /&gt; u'timemodified',&lt;br /&gt; u'trustbitmask',&lt;br /&gt; u'imagealt',&lt;br /&gt; u'screenreader']&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now that I've got that off my chest.&lt;br /&gt;&lt;br /&gt;So what I was trying to do, since Moodle is PHP (and I'm stuck with Moodle) and we are a PHP shop and I thought I would do the right thing and try to use PHP even though I hate it, know it is evil, etc.&lt;br /&gt;&lt;br /&gt;The app is in PHP and there are obviously some higher-level APIs/ for accessing Moodle tables, so it makes sense I should write my scripts in PHP?&lt;br /&gt;&lt;br /&gt;And there were.So I started using &lt;a href="http://docs.moodle.org/en/Development:DML_functions"&gt;DML&lt;/a&gt; (although I was using Pre-2.0 has awful documentation on the wiki, so I basically had to look at the source, which at least has decent internal documentation) to provide external (meaning not through the Moodle web UI) to the Moodle user database.&lt;br /&gt;&lt;br /&gt;But that took way too long. Of course it has been years since I've touched any PHP, so I'll admit that was part of the problem. Mainly, forgetting semi-colons. What kind of insane language requires semi-colons as statement separators?&lt;br /&gt;&lt;br /&gt;I was contemplating some a weird hack (which I know works just fine, because I've done it before) of sending YAML over SSH (in lieu of XMLRPC, which is a pain in the ass to secure) but  php-syck is completely broken with CentOS and I wasn't able to build the PHP module manually, which I shouldn't have to, anyway.&lt;br /&gt;&lt;br /&gt;So the long and short of it. I completed in Python (and my Python is rusty) in an hour what took me 3-4 in PHP so Python it is. Honestly, much of the time could have been saved If PHP had an interactive interpreter like Ruby or Python so could quickly test out the new APIs I was learning, inspect objects, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5934763824623663673?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5934763824623663673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5934763824623663673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5934763824623663673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5934763824623663673'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/why-use-python-to-access-your-moodle.html' title='Why use Python to access your Moodle User Database?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2702211286516219869</id><published>2008-12-30T18:52:00.008-06:00</published><updated>2008-12-30T19:08:39.670-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>Verisign: Hardly (or, do we have a new disclosure model here?)</title><content type='html'>Now I only caught that last 5-10 minutes of the Q&amp;A from the big talk this morning and what I heard (especially about the differences among browser implementations) was pretty interesting. Wish I would have heard the whole thing. &lt;br /&gt;&lt;br /&gt;The whining form vendors  (or so it is said in the blogs) about "wish they had been told earlier" has been amusing. Waaah.&lt;br /&gt;&lt;br /&gt;And I like this new disclosure model (which turns the existing model upside down, vendors have to sign NDAs instead of the the researchers, brilliant!) end the fact that there is a real exploitation (however limited) prior to a fix which brings the end-user community into the disclosure dance.&lt;br /&gt;&lt;br /&gt;However, I can't help but think this was sort of a letdown (and I don't think it is just because crypto puts me to sleep) and I liked this summary from &lt;a href="https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php"&gt;This morning's MD5 attack - resolved&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Q: Is Internet security broken?&lt;br /&gt;A: Hardly. The presenters of this morning's paper stressed that it took them a long time and a great deal of computational power to succeed in their collision attack. VeriSign has already eliminated the attack as a possibility.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It bothered me that this was positioned as "critical internet infrastructure" attack/vulnerability/compromise to me which pretty much means routing or nameservice or some other collosal failure in the transport layer or below. Which this was not. Web security completely broken I could buy but Internet security, let alone Critical Internet Infrastructure security.&lt;br /&gt;&lt;br /&gt;Hardly is a pretty good summary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2702211286516219869?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2702211286516219869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2702211286516219869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2702211286516219869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2702211286516219869'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/hardly-or-do-we-have-new-disclosure.html' title='Verisign: Hardly (or, do we have a new disclosure model here?)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-164378061237417267</id><published>2008-12-29T17:55:00.009-06:00</published><updated>2008-12-30T06:20:53.943-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>Some Non-Speculation on the CCC Breaking the CII Talk Tomorrow</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVltU67VuuI/AAAAAAAABEU/xZly9_fdqTc/s1600-h/woman_with_opera_glasses3.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 154px; height: 200px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/SVltU67VuuI/AAAAAAAABEU/xZly9_fdqTc/s200/woman_with_opera_glasses3.jpg" alt="" id="BLOGGER_PHOTO_ID_5285375843878943458" border="0" /&gt;&lt;/a&gt;I'll fess up right away. I have no interest in playing hermenuetical games with redacted texts or trying to divine the  flaws that will be released tomorrow.  &lt;/p&gt;&lt;p&gt;And the first time I read the &lt;a href="http://events.ccc.de/congress/2008/Fahrplan/events/3023.en.html"&gt;talk writeup&lt;/a&gt; I thought, "Oh, God, here we go again... more preconference disclosure bullshit."  &lt;/p&gt;&lt;p&gt;And of course &lt;a href="http://lists.immunitysec.com/pipermail/dailydave/2008-December/005478.html"&gt;they were allready at it&lt;/a&gt; over on Dailydave. BGP. Crypto. &lt;em&gt;Everybody loves BGP and Crypto.&lt;/em&gt; Some new DoS? &lt;/p&gt;&lt;p&gt;Get ready for the FUD machines to start. Time to get ill. Get the bucket ready. But after reading &lt;a href="http://www.breakingpointsystems.com/community/blog/Attacking-Critical-Internet-Infrastructure"&gt;HD's blog &lt;/a&gt;(which was based on knowledge of the vulnerability) a second time (once wasn't enough) I'm thinking perhaps this one is different:&lt;/p&gt;&lt;blockquote&gt;Their research combined a known weakness in one area with a massive resource investment in another to show that a third party was vulnerable to a practical attack that affects the security of all Internet users. Security researchers often release code and technical documentation to demonstrate a flaw, but in this case, they went a step further and used the attack in the real world to obtain proof that it works.&lt;/blockquote&gt;&lt;p&gt;Not in terms of the vulnerability (or vulnerabilities) to be disclosed (although that very well be) but as way of disclosing critical vulnerabilities that does neither trivializes nor desensitizes flaws that need to be addressed by vendors and the end-user community. The current model isn't working so well.&lt;/p&gt;&lt;p&gt;As you can already see, if folks  &lt;a href="http://www.gnucitizen.org/blog/in-2008-hackers-broke-the-internet/"&gt;within the hacker/researcher community (who should know better)&lt;/a&gt; conflate all the scary Internet infrastructure vulnerabilities of course folks technology journalists will. &lt;/p&gt;&lt;p&gt;In the broader IT press,  Kaminsky's DNS will be treated the same as Watson's TCP as Gont's ICMP as Oulu's ASN.1/SNMP as Guardent's TCP as Lee' TCP, etc. &lt;em&gt;ad naeseum&lt;/em&gt;. &lt;/p&gt;&lt;p&gt;(If I weren't typing on this damn Netbook I'd add links but google them yourself if you are interested. But you get the point)&lt;/p&gt;&lt;p&gt;Within the mainstream media, each of these will be covered  with approximately the same number of words, the same oversimplification and carefully selected, out of context quotes, regardless of the technical merit of the research, regardless of the scope of the flaws, and the professionalism (or lack thereof) of the finders. &lt;/p&gt;&lt;p&gt;And each time there where will be the &lt;em&gt;Oh-My-God-the-Internet-is-Doomed-thank-God-for-the-Hackers-that-Saved-It&lt;/em&gt; narrative. &lt;/p&gt;&lt;p&gt;(Compare the recent wired article on Summer DNS flaws with the coverage of the 2003 TCP vulnerability discovered by Paul (Tony) Watson (aka the man that saved the Internet) and you will see an eerie similarity.)&lt;/p&gt;&lt;p&gt;Another wasted news cycle, and despite the claims of the finders, the security of th e Infrastructure is not improved. End users are either confused or cynical. &lt;em&gt;It is conference season again.&lt;/em&gt; It is just too easy to dimiss the research as an individual trying to make a name for themselves and climb the corporate security ladder, a consulting company marketing its services or a vendor hawking their wares in the guise of a BlackHat talk.&lt;/p&gt;&lt;p&gt;Unless there is proof. &lt;/p&gt;&lt;p&gt;And that is where it looks like this will be different. There is a huge difference between what you can prove with a few boxes in your basement, a one-rack testbed with 50-100k of gear, an ISP with live users, or the larger Internet. &lt;/p&gt;&lt;p&gt;Each environment to demonstrate attack vectors and vulnerabilities is increasingly less contrived and more and more like reality. Each is an environment less out of the control of the attacker/adversary/researcher which is where it starts to get interesting. Meaning attacks on an Internet scale. &lt;/p&gt;&lt;p&gt;That is why real incidents (i.e. the smurf attacks of 98, the DDoS of 2000, the worms) teach far better lessons. They provide real data. They impact the bottom lines of vendors and users and impact operational best practicies. &lt;/p&gt;&lt;p&gt;Compare that with flash in the pan vulnerability presentations and you'll see why in the long run I wish more researchers would go beyond proof of concept and operationalize their exploits and discovered vulnerabilities.&lt;/p&gt;&lt;p&gt;Regardless of the technical details of the disclosure, it will be interesting to watch what happens. Will this be more of the same or the start of something new?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-164378061237417267?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/164378061237417267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=164378061237417267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/164378061237417267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/164378061237417267'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/some-non-speculation-on-ccc-breaking.html' title='Some Non-Speculation on the CCC Breaking the CII Talk Tomorrow'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MPIoEEC-IC0/SVltU67VuuI/AAAAAAAABEU/xZly9_fdqTc/s72-c/woman_with_opera_glasses3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3883965127807264940</id><published>2008-12-28T19:08:00.003-06:00</published><updated>2008-12-28T19:25:54.312-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideapad'/><category scheme='http://www.blogger.com/atom/ns#' term='Meta'/><title type='text'>Libgmail, Twitter, Ideapad S10 Hardware Info on Linux</title><content type='html'>Not sure why but (under Ubuntu) the fan has been running nonstop for the past hour (not sure why, perhaps because the temperature is 61 C, who knows) even booted into fluxbox. I have a little project/tool involving gmail that I'm hoping to get done before the end of the year (not a vuln or anything, don't get too excited) that I've had my head in &lt;a href="http://libgmail.sourceforge.net/"&gt;libgmail&lt;/a&gt; for the past 24 hours as well as starting to sort of &lt;i&gt;get&lt;/i&gt; the point of Twitter (notice my tweets on the side) but I started poking around at /proc and lshw/dmidecode, etc on the S10. There is definitely something funky with power management. A couple of times (even under XP) the battery value doesn't show up properly and gnome-power-manager doesn't start up properly 20-25% of the time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;description: VGA compatible controller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;product: Mobile 945GME Express Integrated Graphics Controller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;vendor: Intel Corporation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;physical id: 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;description: Ethernet interface&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;product: NetLink BCM5906M Fast Ethernet PCI Express&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;vendor: Broadcom Corporation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;capabilities: pm vpd msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;configuration: autonegotiation=on broadcast=yes driver=tg3 drive rversion=3.94 latency=0 link=no module=tg3 multicast=yes port=twisted pair&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;description: Wireless interface&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;product: BCM4312 802.11b/g&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;vendor: Broadcom Corporation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;processor       : 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;vendor_id       : GenuineIntel&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cpu family      : 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;model           : 28&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;model name      : Intel(R) Atom(TM) CPU N270   @ 1.60GHz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;stepping        : 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cpu MHz         : 800.000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cache size      : 512 KB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;physical id     : 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;siblings        : 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;core id         : 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cpu cores       : 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;apicid          : 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;initial apicid  : 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;fdiv_bug        : no&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;hlt_bug         : no&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;f00f_bug        : no&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;coma_bug        : no&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;fpu             : yes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;fpu_exception   : yesflags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 xtpr lahf_lm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;bogomips        : 3191.95&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;clflush size    : 64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;power management:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cpuid level     : 10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;wp              : yes00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;05:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3883965127807264940?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3883965127807264940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3883965127807264940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3883965127807264940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3883965127807264940'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/libgmail-twitter-ideapad-s10-hardware.html' title='Libgmail, Twitter, Ideapad S10 Hardware Info on Linux'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6857455908903902509</id><published>2008-12-24T07:14:00.000-06:00</published><updated>2008-12-24T07:15:14.825-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Belief comes last</title><content type='html'>My wife turned me on to this...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WjYqyb-BYWI&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WjYqyb-BYWI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6857455908903902509?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6857455908903902509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6857455908903902509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6857455908903902509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6857455908903902509'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/belief-comes-last.html' title='Belief comes last'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1506894879699118673</id><published>2008-12-24T06:46:00.006-06:00</published><updated>2008-12-24T06:59:27.581-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NSM'/><category scheme='http://www.blogger.com/atom/ns#' term='Vuln'/><title type='text'>Are you down with OSCP?</title><content type='html'>I'm generally weary (not wary!) about anything related to SSL or MITM  (and particularly SSL MITM's) but &lt;a href="http://taosecurity.blogspot.com/2008/12/traffic-for-revoked-tlsv1-certificate.html"&gt;Traffic for Revoked TLSv1 Certificate&lt;/a&gt; is actually pretty interesting drink coffee while only the 1 year old is up and toddling around, catch up on blogs on your new Netbook activity. &lt;br /&gt;&lt;br /&gt;And Richard's traffic dissection, reminded its been weeks (months?) since I've fired up Wireshark. Tcpdump, every other day, but Wireshark, not so much lately.&lt;br /&gt;&lt;br /&gt;Merry Christmas!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1506894879699118673?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1506894879699118673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1506894879699118673' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1506894879699118673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1506894879699118673'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/are-you-down-with-ocsp.html' title='Are you down with OSCP?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7943135895350185795</id><published>2008-12-23T21:10:00.003-06:00</published><updated>2008-12-23T21:23:00.042-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideapad'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Ideapad S10 Upgrade Complete</title><content type='html'>So I only ended up working a half-day today, so this afternoon (in between watching the kids and doing some last minute shopping for Christmas) I put in my old 120GB drive from my wife's dead MacBook and started the arduous process of copying a drive image from the original 80GB drive that ships with it, to the new. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(The added bonus was that I Ubuntu automatically mounted the HFS+ so I was able to recover a bunch of picture from iPhoto and phone booth)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And none of this would have been possible without &lt;a href="http://unetbootin.sourceforge.net/"&gt;UNetbootin.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is definitely the hero of the day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the S10 has a weird partitioning layout. It only uses the first half of the drive (in my case 80GB) for the XP Home (FAT32) partition there are 3-4 other partitions, some more or less hidden for the backup features that I would know about if I had bothered to break the seals on the product documentaiton.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course dd|gzip (then back again)  on an Atom processer takes forever so there was a lot of downtime. 40 GB images. I think it compressed down to 7GB or so, but to and from an external USB drive. You get the point. Drive imaging is slow, but now I have a dual boot (8.10 and XP Home) S10. This is the 2nd time I installed 8.10 and the long and short of it it is supported pretty well. No more quirks than on other Laptop hardware.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7943135895350185795?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7943135895350185795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7943135895350185795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7943135895350185795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7943135895350185795'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/ideapad-s10-upgrade-complete.html' title='Ideapad S10 Upgrade Complete'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-7451854045948361852</id><published>2008-12-22T17:55:00.004-06:00</published><updated>2008-12-22T18:22:13.084-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ideapad'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>First Ideapad Blog</title><content type='html'>Well my Lenovo Ideapad S10 came today, several days ahead of schedule. I guess one of the benefits of a global economic downturn is fulfillment centers chock full of crap that people shouldn't be buying in the first place.&lt;br /&gt;&lt;br /&gt;It turns out I had ordered a white one. Oh well, couldn't remember. I thought that might be the case. That's OK need to find some small stickers (OpenBSD, not!) to put on it to look cool.&lt;br /&gt;&lt;br /&gt;Still running XP for now (will probably leave it on the 80GB that came with it) but I did boot off 8.10 from a USB key and the only thing that didn't appear to work was the batter life indicator. I didn't try WPA, only briefly hopped on a neighbor's open AP to test the browser because I couldn't remember my WPA2 key and haven't added the MAC to the router yet. Popped in the RAM from my wife's MacBook and up to 1.5.&lt;br /&gt;&lt;br /&gt;If you ordered the sleeve (and are a man who is not manly enough to not care if you had a pink notebook sleeve) it is reversible.&lt;br /&gt;&lt;br /&gt;So here are the first impressions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It is definitely smaller than I expected, and the keyboard is more cramped than I expected. TAB key is very tiny making shell expansion difficult under cygwin/remote system. But it is usable (typing on it now)&lt;/li&gt;&lt;li&gt;Performance is snappier than I thought, given the lousy benchmarks I read about. Chrome on Atom is a nice platform.&lt;/li&gt;&lt;li&gt;It definitely feels solid, not like a toy, as I envisioned the Dell Mini 9 to be. Hinges are nice and stiff.&lt;/li&gt;&lt;li&gt;Get rid of Norton and their stupid phishing toolbars which suck up screen geometry. Lots of apps barely fit.&lt;/li&gt;&lt;li&gt;The touchpad rocks. Hell of a lot better than crappy Dell touchpads (at least the ones I used on Latitude/Precision.&lt;/li&gt;&lt;li&gt;It is sort of tricky removing/putting the expansion cover (for HD and RAM) on and off. I was afraid I was going to break it.&lt;/li&gt;&lt;li&gt;The is a  noticible audible blowing sound (the fan I believe)&lt;/li&gt;&lt;li&gt;Speakers are about what I expect. Not great. Not terrible.&lt;/li&gt;&lt;li&gt;Watched the start of the latest episode of Chuck on Hulu and was decent.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-7451854045948361852?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/7451854045948361852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=7451854045948361852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7451854045948361852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/7451854045948361852'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/first-ideapad-blog.html' title='First Ideapad Blog'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5009320296083533516</id><published>2008-12-21T13:37:00.008-06:00</published><updated>2008-12-21T15:03:55.942-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Forget about OWASP, go for  Webkin Application Security!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SU6vNG7xoEI/AAAAAAAABCk/j0DObGvtlGE/s1600-h/webkin.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 243px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SU6vNG7xoEI/AAAAAAAABCk/j0DObGvtlGE/s320/webkin.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282352052686659650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So my daughter received an early Christmas present, a &lt;a href="http://www.webkins.com/"&gt;Webkins&lt;/a&gt; Clydesdale horse, and when I registered this "adopted" pet (as an adoptive parent, I'm always find stuff like this mildly offensive) I was shocked to see the number of disclaimers, guidance on passwords security, protecting your secret code, etc. during the initial registration far exceeds many security products and public web portals, online banking sites, etc.&lt;br /&gt;&lt;br /&gt;And most effective was the animated goose (with glasses propped down on her nose) scolding you about the dangers of a weak password or sharing your secret code.&lt;br /&gt;&lt;br /&gt;Of course coming up with the squid proxy whitelist was sort of painful because they use a lot hardcoded IP address in their app like below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;1229885588.050    117 192.168.10.103 TCP_MISS/200 1081 GET http://www.webkinz.com/XML/InstanceFactory/InstanceFactoryData.xml? - DIRECT/66.114.49.27 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885588.056    139 192.168.10.103 TCP_MISS/200 2406 GET http://www.webkinz.com/XML/L10N/TransList.xml? - DIRECT/66.114.49.27 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885615.945    136 192.168.10.103 TCP_MISS/200 851 GET http://www.webkinz.com/XML/WEBSTAT/call_config.xml? - DIRECT/66.114.49.27 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885615.977    953 192.168.10.103 TCP_MISS/200 6437 GET http://www.webkinz.com/XML/vnum_API.xml? - DIRECT/66.114.49.27 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885616.007    177 192.168.10.103 TCP_MISS/200 1713 POST http://66.48.69.99/sindex.php - DIRECT/66.48.69.99 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885617.630    101 192.168.10.103 TCP_MISS/200 359 POST http://66.48.69.99/getdate.php? - DIRECT/66.48.69.99 text/html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885617.647    116 192.168.10.103 TCP_MISS/200 672 POST http://66.48.69.99/sindex.php - DIRECT/66.48.69.99 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885617.656    136 192.168.10.103 TCP_MISS/200 374 POST http://66.48.69.123/sindex.php - DIRECT/66.48.69.123 text/xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885617.902    122 192.168.10.103 TCP_MISS/200 470 POST http://66.48.69.123/sindex.php - DIRECT/66.48.69.123 text/plain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1229885617.956    175 192.168.10.103 TCP_MISS/404 630 GET http://66.48.69.104/DAS/2008_12_21.xml? - DIRECT/66.48.69.104 text/html&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5009320296083533516?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5009320296083533516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5009320296083533516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5009320296083533516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5009320296083533516'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/forget-about-owasp-think-webkin.html' title='Forget about OWASP, go for  Webkin Application Security!'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/SU6vNG7xoEI/AAAAAAAABCk/j0DObGvtlGE/s72-c/webkin.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6664336678904025544</id><published>2008-12-19T17:42:00.012-06:00</published><updated>2008-12-20T21:00:27.601-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='BSD'/><title type='text'>Is conntrackd really pfsync+CARP for Linux?</title><content type='html'>Say it aint' so Joe, but &lt;a href="http://conntrack-tools.netfilter.org/about.html"&gt;conntrack-tools&lt;/a&gt; says it "provides and equivalent of OpenBSD's pfsync."&lt;br /&gt;&lt;blockquote&gt;What can do the conntrack-tools for me?&lt;br /&gt;&lt;br /&gt;Lots of cool things. conntrackd covers the specific aspects of stateful Linux firewalls to enable high availability solutions and it can be used as statistics collector of the firewall use as well. The command line interface conntrack provides an interface to add, delete and update flow entries, list current active flows in plain text/XML, current IPv4 NAT'ed flows, reset counters atomically, flush the connection tracking table and monitor connection tracking events among many other.&lt;br /&gt;&lt;/blockquote&gt;This is something I've been wondering about for a while and it looks like this project has been around since 2006.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://conntrack-tools.netfilter.org/files/conntrackd-nfws.pdf"&gt;Here&lt;/a&gt; is a presentation on the capabilities of this. There isn't much test data here, but based on the stats  in the talk, the performance of conntrackd (my testing/production observations was done on similar hardware DL-145G3) look a significantly worse than FreeBSD/OpenBSD with PF+pfsync+CARP. Note that the CARP/VRRP functionality is performed by &lt;a href="http://www.keepalived.org/"&gt;keepalived&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;*BSD can be used in the Enterprise for high availability gigabit packet filtering, but it would be interesting to see if anyone is using iptables+conntrackd+keepalived for this?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.openexpo.ch/fileadmin/documents/2007Zuerich/19_StephanRickauer.pdf"&gt;This presentation about a successful migration from Linux to OpenBSD&lt;/a&gt; confirmed my suspicions about conntrackd not being ready for prime time. And &lt;a href="http://www.usenix.org/publications/login/2005-12/pdfs/adamo.pdf"&gt;This USENIX article&lt;/a&gt; provided an interesting comparison between OpenBSD and Iptables.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Linux is, in general, more efficient than OpenBSD. In both router and bridge configurations, it spends less time forwarding packets. Furthermore, iptables filters packets more quickly than PF, with only one exception (in our testing): if the transport-layer protocol of the transit packet, say, UDP, differs from the specifiedtransport-protocol type of a sequence of rules—“protocol type” set to “TCP”in this example—PF ignores those rules and confronts the packet only with the rest of the set, acting more efficiently than Linux, which confronts the packet with all the rules in the set.&lt;br /&gt;&lt;br /&gt;This feature of PF is very interesting. UDP-based attacks are very insidious, and most firewalls have rules to prevent many types of UDP datagram from accessing the network. Nevertheless, most traffic from and to a protected network is made up of TCP streams (protocols such as HTTP, SMTP, and FTP all use TCP). In such a case, PF may be more effective: it does not spend processing time comparing TCP packets with the set of rules destined to block UDP datagrams, avoiding delay in processing legitimate packets. Finally, unlike iptables, PF performs automatic optimization of the rule set, processing it in multiple linked lists [7, 8]. A way to optimize the search on the rule set for iptables is to resort to the “jump” parameter [18] for jumping to a subset of rules (i.e., a chain) reserved for TCP or UDP packets, depending on protocol type.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Of course even discounting performance, the iptables rulesets are much less elegant than ipf/pf.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6664336678904025544?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6664336678904025544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6664336678904025544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6664336678904025544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6664336678904025544'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/is-conntrackd-really-pfsynccarp-for.html' title='Is conntrackd really pfsync+CARP for Linux?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8617410911093653259</id><published>2008-12-19T10:16:00.003-06:00</published><updated>2008-12-19T10:20:10.257-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Webjob</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SUvJte2_HNI/AAAAAAAABCU/FTDWua71VG0/s1600-h/WebJob-High-Level-Call-Flow.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SUvJte2_HNI/AAAAAAAABCU/FTDWua71VG0/s320/WebJob-High-Level-Call-Flow.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5281536771237027026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://webjob.sourceforge.net/WebJob/"&gt;WebJob&lt;/a&gt; looks more interesting that you would think from the description:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;WebJob downloads a program or script from a remote WebJob server and executes it in one unified operation. Any output produced by the program/script is packaged up and sent to a remote, possibly different, WebJob server. WebJob is useful because it provides a mechanism for running known good programs on damaged or potentially compromised systems. This makes it ideal for remote diagnostics, incident response, and evidence collection. WebJob also provides a framework that is conducive to centralized management. Therefore, it can support and help automate a large number of common administrative tasks and host-based monitoring scenarios such as periodic system checks, file updates, integrity monitoring, patch/package management, and so on. &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;When you look at the use cases:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; To date, WebJob has been successfully used to:&lt;br /&gt;&lt;br /&gt;    * Automatically harvest argus, ifconfig, lsof, netstat, ndd, patch, ps, tcpdump, (name your utility), etc. data&lt;br /&gt;    * Automatically update cron tabs, DNS records, password files, snort rules, web sites, (name your application), etc.&lt;br /&gt;    * Automatically update system binaries when their MD5s do not match expected values&lt;br /&gt;    * Conduct massive searches for credit card numbers, social security numbers, and suspect hashes&lt;br /&gt;    * Deploy FreeBSD, Linux, Solaris, and Windows packages&lt;br /&gt;    * Drive GUI-based Windows utilities via AutoIT scripts&lt;br /&gt;    * Harvest evidence and diagnostic information from hundreds (300+) of systems in parallel&lt;br /&gt;    * Harvest system information to perform security audits or compliance verification&lt;br /&gt;    * Implement a Virtual Evidence Locker (VEL)&lt;br /&gt;    * Implement and maintain a Poor Man's Compile Farm (PMCF)&lt;br /&gt;    * Implement and maintain a distributed malware test harness&lt;br /&gt;    * Perform integrity monitoring with FTimes&lt;br /&gt;    * Periodically perform administrative tasks on a 950+ node Content Delivery Network (CDN) and the list goes on and on...&lt;br /&gt;&lt;br /&gt;&lt;/blockqoute&gt;&lt;br /&gt;&lt;br /&gt;I haven't tried it (and it would be interesting to see if it really can scale) but I will!&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8617410911093653259?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8617410911093653259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8617410911093653259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8617410911093653259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8617410911093653259'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/webjob.html' title='Webjob'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/SUvJte2_HNI/AAAAAAAABCU/FTDWua71VG0/s72-c/WebJob-High-Level-Call-Flow.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4403709103372186643</id><published>2008-12-18T06:53:00.001-06:00</published><updated>2008-12-18T06:56:00.257-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bidness'/><title type='text'>Andy v. Alan: Two Man Enter</title><content type='html'>Having been on both sides of the fence &lt;a href="http://andyitguy.blogspot.com/2008/12/let-throw-down-begin.html"&gt;this&lt;/a&gt; is amusing.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Come with me on a little journey. What if she had convinced him to buy her product? Well, that would only happen in one of a couple of ways. First, he decided to make the decision on his own not knowing what the business requirements for this product are. He has no business being CIO. Second, he comes to me and tells me that he wants it and asks for my input. I tell him we don't need it at the moment, there are more pressing projects and I haven't decided on a vendor. He still buys it. He has no business being CIO. So we now have a product that we don't currently need, may not meet all of our requirements, may not be the best fit or the best value for us and I have another piece to force into my security program.&lt;br /&gt;Who wins?&lt;br /&gt;Not me. I've now got another product forced on me and I am learning that my input and opinion are not really valuable to the company so why not move on.&lt;br /&gt;Not my CIO. He has lost my respect and possibly my services. Now he has to find someone else to come in and learn the environment, business and everything else.&lt;br /&gt;Not my company. They just spend a lot of money that wasn't necessary and may not meet their needs.&lt;br /&gt;Not the sales person. She has damaged relationships with a potential customer down the road.&lt;br /&gt;Not the vendor. They have now sold a product that if it doesn't do as expected or doesn't meet the business requirements will only cause the customer to have a bad taste in their mouth.&lt;br /&gt;All of this could have been avoided if the sales person simply chose to wait until next year when a "real" decision could be made.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4403709103372186643?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4403709103372186643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4403709103372186643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4403709103372186643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4403709103372186643'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/andy-v-alan-two-man-enter.html' title='Andy v. Alan: Two Man Enter'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-3470888239667918006</id><published>2008-12-17T21:07:00.003-06:00</published><updated>2008-12-17T21:23:08.147-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Lenovo Ideapad S10 it is</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MPIoEEC-IC0/SUm-tCl6AVI/AAAAAAAABCM/PHiiE6bpDrg/s1600-h/lenovo_ideapad_s10_black.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;" src="http://2.bp.blogspot.com/_MPIoEEC-IC0/SUm-tCl6AVI/AAAAAAAABCM/PHiiE6bpDrg/s320/lenovo_ideapad_s10_black.jpg" alt="" id="BLOGGER_PHOTO_ID_5280961719067869522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well I did my small part in propping up post-late-capitalism-2.0 by purchasing necessary consumer electronics devices, by finally ordering an Ideapad S10 Netbook (512MB/80GB) I think it was a black one, can't remember.&lt;br /&gt;&lt;br /&gt;A number of stars aligned and it was a tossup at the end because there was Dell Mini-9 package for around $410 with 8GB SSD with Ubuntu and I really wanted to support a vendor that preinstalled Ubuntu (because I will be running it afterall) but here are the reasons I went with the Lenovo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I hate Dell Laptops, although the M4300 I'm using right now is tolerable but I love my Thinkpad T-61. I had positive experiences with Lenovo support, the unknown of Dell support scares me. They don't call it "Dell Hell" for nothing&lt;/li&gt;&lt;li&gt;Expandability - the Lenovo case is really easy to pop open and the drive is a SATA, so I can pop in the 120GB from my wife's dead MacBook. And I can wait until prices some down on SATA SSD's. I think the 1GB stick from the MacBook should work, too. Dell just has 1 SODIMM slot. PCI-Express port., probably more for a SSD than wifi since I have a USB, although the 2 USB ports could come back an bite me.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Price - with the Lenovo Corporate discount, it was $30-40 cheaper.&lt;/li&gt;&lt;li&gt;Aesthetics - Lenovo is boxy with a matte finish vs. rounded and shiny. Looks more professional&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OS/Storage - I can install my Own Damn Linux and it is not a bad thing to have another OS with XP on it. It will be interesting to see how lame the Atom is, but the larger hard has the potential of making it usable as a real computer (or so I think) vs. only as  Linux netbook. I will either dual boot or pop in a new drive.&lt;/li&gt;&lt;li&gt;Screen Size - 10" vs. 8.9 with my eyes really blurry right now I need every larger pixel I can get.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The battery life is going to suck compared to the Mini-9 but there is a 6-cell that is available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-3470888239667918006?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/3470888239667918006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=3470888239667918006' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3470888239667918006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/3470888239667918006'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/lenovo-ideapad-s10-it-is.html' title='Lenovo Ideapad S10 it is'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MPIoEEC-IC0/SUm-tCl6AVI/AAAAAAAABCM/PHiiE6bpDrg/s72-c/lenovo_ideapad_s10_black.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2131271583869490362</id><published>2008-12-16T01:25:00.004-06:00</published><updated>2008-12-16T01:35:40.349-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>OpenVZ Virtual Ethernet Devices</title><content type='html'>By default, OpenVZ uses the venet devices which on the network have the same mac address as the host (VE0/CT0). This actually proved to be a problem when I was trying to [Nessus] scan OpenVZ containers from the host. &lt;br /&gt;&lt;br /&gt;(Basically I'm trying to migrate Linux VM's some of which are targets that we scan in class away from VMWare Server, and the behavior was that students were only able to scan the VE's if they were connected to a Nessus scanner that was not on the same physical system as the other containers. Got it?)&lt;br /&gt;&lt;br /&gt;So I had seen an eth0 within the container and wondered what it was and how it is configured. Well the &lt;a href="http://wiki.openvz.org/Virtual_Ethernet_device"&gt;virtual ethernet device wiki page&lt;/a&gt; has the answers although I was not unable to get this working after waking up at 1:30 AM and being unable to go back to sleep. Will try again tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2131271583869490362?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2131271583869490362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2131271583869490362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2131271583869490362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2131271583869490362'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/openvz-virtual-ethernet-devices.html' title='OpenVZ Virtual Ethernet Devices'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-247460863952958636</id><published>2008-12-15T13:29:00.005-06:00</published><updated>2008-12-15T13:38:29.286-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>CyberSecurity Sanity We Can Believe In</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MPIoEEC-IC0/SUayLOD0SHI/AAAAAAAABCE/YYaryNIsW20/s1600-h/010.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 207px; height: 320px;" src="http://1.bp.blogspot.com/_MPIoEEC-IC0/SUayLOD0SHI/AAAAAAAABCE/YYaryNIsW20/s320/010.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5280103518960896114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With everybody and their pocket yoyo trumpeting the need for a Cyber-Czar it was good to see &lt;a href="http://www.digitalbond.com/index.php/2008/12/15/would-the-csis-suggestions-to-obama-make-a-difference/"&gt;Dale's comments over on Digital Bond&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;1. The reorganization of responsibility will introduce delay and is unlikely to improve the situation&lt;br /&gt;&lt;br /&gt;Let’s say the National Office for Cyberspace comes to be early in the Obama administration. We are in for an ineffective time period and disruption while the new organization is ’stood up’ and everyone figures what their new role is in this organization. Is it six months, a year or longer before the new organization is effective? Anyone who has dealt with government stand up efforts and associated bureaucracy is probably shaking their heads.&lt;br /&gt;&lt;br /&gt;Many loyal blog readers have been involved in one or more re-orgs of large organization, especially with arrival of new management. How often has that really made a dramatic difference? I don’t see the organizational structure being even close to the biggest impediment to date.&lt;br /&gt;&lt;br /&gt;2. This whole consolidation / czar concept that is the rage is flawed, at least as related to information security.&lt;br /&gt;&lt;br /&gt;We like to think that we can bring in a superstar with charisma to become the czar, e.g. drug czar, education car czar, cyber security czar, …, and all will be well. In this control system cyber security effort I’d argue the key is the people three, four and five levels down from this charismatic czar.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;We don't need to be creating new organizations.&lt;br /&gt;&lt;br /&gt;We don't need a Cyber Defense Agency (or a Control Systems CERT for that matter).&lt;br /&gt;&lt;br /&gt;Just do your F-ing jobs, people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-247460863952958636?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/247460863952958636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=247460863952958636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/247460863952958636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/247460863952958636'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/cybersecurity-sanity-we-can-believe-in.html' title='CyberSecurity Sanity We Can Believe In'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MPIoEEC-IC0/SUayLOD0SHI/AAAAAAAABCE/YYaryNIsW20/s72-c/010.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4281350602123124712</id><published>2008-12-13T20:24:00.004-06:00</published><updated>2008-12-13T20:38:42.936-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbooks'/><title type='text'>Major Vendor Netbook Pricing Showdown</title><content type='html'>I've been longing for a Netbook for a while and am still watching craiglist like a hawk as well as pricing from Netbook vendors.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;HP Mini HP 1000/1GB Ram/8GB SSD with 2 year warranty (WinXP obviously) - $459&lt;/li&gt;&lt;li&gt;Dell Inspiron Mini 9/512GB/8GB SSD with 2 year warranty (Ubuntu) - $463&lt;/li&gt;&lt;li&gt;Lenovo S10 IdeaPad/512GB/80GB SATA with 2 year Warranty (XPSP3) - $408&lt;/li&gt;&lt;/ul&gt;I'm sort of anal about getting warantees on laptops and I don't trust Acer, Asus, etc.&lt;br /&gt;&lt;br /&gt;Ubuntu reportedly runs on these, but the Lenovo looks really tempting (especially because I'm somehow on their employee discount list). It looks easy to upgrade, like to put in a SSD when they get a little cheaper and it also has a express card slot which I would be more interested more for storage although looking at the BIOS it doesn't look like you could boot from it. It would be trivial to dual boot on the SATA drive, but it seems like the whole point of having at netbook is to have a SSD drive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4281350602123124712?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4281350602123124712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4281350602123124712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4281350602123124712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4281350602123124712'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/major-vendor-netbook-pricing-showdown.html' title='Major Vendor Netbook Pricing Showdown'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-232732192036861312</id><published>2008-12-13T08:24:00.002-06:00</published><updated>2008-12-13T08:28:38.979-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Python-n-Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>XDot Graphviz Viewer</title><content type='html'>The last time I was using &lt;a href="http://www.graphviz.org/"&gt;Graphviz&lt;/a&gt; I was mostly using the Mac, which had a nice viewer, but &lt;a href="http://code.google.com/p/jrfonseca/wiki/XDot"&gt;XDot&lt;/a&gt; seems to be the best option for Linux. It is a &lt;a href="http://jrfonseca.googlecode.com/svn/trunk/xdot/xdot.py"&gt;single Python script&lt;/a&gt; and all the dependencies are available in the repos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-232732192036861312?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/232732192036861312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=232732192036861312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/232732192036861312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/232732192036861312'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/xdot-graphviz-viewer.html' title='XDot Graphviz Viewer'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5807686276960324712</id><published>2008-12-12T07:15:00.003-06:00</published><updated>2008-12-12T07:18:25.960-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scada'/><title type='text'>Chuvakin waits for the "Retarded" SCADA 09 Predications</title><content type='html'>I'm with &lt;a href="http://chuvakin.blogspot.com/2008/12/on-retarded-year-end-security.html"&gt;Anton Chuvakin&lt;/a&gt; on this one:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;“SCADA anything REALLY bad” (here) – to be really honest, I have not really seen it yet this year so no link, but it will come. Help yourself to previous year embarrassments :-)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5807686276960324712?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5807686276960324712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5807686276960324712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5807686276960324712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5807686276960324712'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/chuvakin-waits-for-retarded-scada-09.html' title='Chuvakin waits for the &quot;Retarded&quot; SCADA 09 Predications'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-5733573794637742735</id><published>2008-12-11T08:11:00.002-06:00</published><updated>2008-12-11T08:21:14.560-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Forest and Trees?</title><content type='html'>Along with the neverending &lt;a href="http://www.elasticvapor.com/2008/12/botnets-electronic-weapons-of-mass.html"&gt;drumbeat from ElasticVapor&lt;/a&gt; on CyberSecurity, now even &lt;a href="http://www.tompeters.com/entries.php?rss=1&amp;amp;note=http://www.tompeters.com/blogs/main/010759.php"&gt;Tom Peters&lt;/a&gt; is bullish on the idea of a CyberSecurity czar and an increased focusing on "CyberSecurity" in the next administration.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;While Mr. Bush did increase spending on cyberthreats, much, much more emphasis is called for—and the topic is too important to bury in DHS.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;But if if you "create a new White House office to protect cyberspace from hackers, thieves and foreign agents, coordinating security efforts across U.S. military, intelligence and civilian agencies" isn't that creating another DHS?&lt;br /&gt;&lt;br /&gt;The problem is &lt;i&gt;not&lt;/i&gt; &lt;b&gt;coordination&lt;/b&gt; (of all things) we don't need another figurehead or another advocate for "CyberSecurity."&lt;br /&gt;&lt;br /&gt;The issue is implementation. This is dirty, tedious work that creation of another agency or czar is not going to solve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-5733573794637742735?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/5733573794637742735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=5733573794637742735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5733573794637742735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/5733573794637742735'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/forest-and-trees.html' title='Forest and Trees?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-8089528239748869899</id><published>2008-12-09T19:19:00.005-06:00</published><updated>2008-12-09T19:29:59.116-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nostalgia'/><title type='text'>Remember CP/M ladder?</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_MPIoEEC-IC0/ST8a0Vr9srI/AAAAAAAABB0/kA7mm_Ire74/s1600-h/ladder.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 147px;" src="http://4.bp.blogspot.com/_MPIoEEC-IC0/ST8a0Vr9srI/AAAAAAAABB0/kA7mm_Ire74/s200/ladder.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5277966774778573490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At bedtime, my son always asks me about what it was like when I was a kid and tonight I was telling him how much more powerful his Nintendo DS was than the first computer we owned, a Kaypro II but I remembered my favorite game &lt;a href="http://ostermiller.org/ladder/"&gt;Ladder&lt;/a&gt; that I was very pleased to find a Java implementation.&lt;br /&gt;&lt;br /&gt;Pure genius.&lt;br /&gt;&lt;br /&gt;Correction, my favorite game was &lt;a href="http://en.wikipedia.org/wiki/Rats_Of_The_Maze"&gt;Rats!&lt;/a&gt; when I was able to go into my dad's lab.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-8089528239748869899?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/8089528239748869899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=8089528239748869899' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8089528239748869899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/8089528239748869899'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/remeber-cpm-ladder.html' title='Remember CP/M ladder?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MPIoEEC-IC0/ST8a0Vr9srI/AAAAAAAABB0/kA7mm_Ire74/s72-c/ladder.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6857628607878790801</id><published>2008-12-08T13:44:00.007-06:00</published><updated>2008-12-08T14:12:58.045-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='cyber'/><title type='text'>Whisky, Tango, Foxtrot, over?</title><content type='html'>From &lt;a href="http://www.businessweek.com/bwdaily/dnflash/content/dec2008/db2008127_817606.htm"&gt;U.S. is Losing Global CyberWar&lt;/a&gt;. '&lt;br /&gt;&lt;br /&gt;What the hell does that even mean?&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;To compile the report, which is entitled "Securing Cyberspace in the 44th Presidency," commission members say they reviewed tens of thousands of pages of undisclosed documentation, visited forensics labs and the National Security Agency, and were briefed in closed-door sessions by top officials from Pentagon, CIA, and British spy agency MI5. From their research, they concluded that the U.S. badly needs a comprehensive cybersecurity policy to replace an outdated checklist of security requirements for government agencies under the existing Federal Information Security Management Act.&lt;br /&gt;&lt;br /&gt;The report calls for the creation of a Center for Cybersecurity Operations that would act as a new regulator of computer security in both the public and private sector. Active policing of government and corporate networks would include new rules and a "red team" to test computers for vulnerabilities now being exploited with increasing sophistication and frequency by identity and credit card thieves, bank fraudsters, crime rings, and electronic spies. "We're playing a giant game of chess now and we're losing badly," says commission member Tom Kellermann, a former World Bank security official who now is vice-president of Security Awareness at Core Security.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So the need to replace their old checklists with new checklists and start testing for vulnerabilities.&lt;br /&gt;&lt;br /&gt;Which genius thought that up?&lt;br /&gt;&lt;br /&gt;Chess? Win vs. Lose?&lt;br /&gt;&lt;br /&gt;If only they knew about &lt;a href="http://www.theatlantic.com/doc/200810/petraeus-doctrine"&gt;the Petraeus doctrine&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Define the problem in these terms, and winning battles becomes less urgent than pacifying populations and establishing effective governance.&lt;br /&gt;&lt;br /&gt;War in this context implies not only coercion but also social engineering. As Nagl puts it, the security challenges of the 21st century will require the U.S. military “not just to dominate land operations, but to change entire societies.”&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;If you can't even define victory in Iraq (conventionally or unconventionally) how can you define victory in "Cyberspace?"&lt;br /&gt;&lt;br /&gt;(And of course &lt;a href="http://www.elasticvapor.com/2008/12/businessweek-us-is-losing-global.html"&gt;over on ElasticVapor they think this is a great article&lt;/a&gt; which confirms my suspicions)&lt;br /&gt;&lt;br /&gt;Please tell me what all this is going to accomplish or attempt that has not already been tried in the last decade?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6857628607878790801?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6857628607878790801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6857628607878790801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6857628607878790801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6857628607878790801'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/losing-cyberwar.html' title='Whisky, Tango, Foxtrot, over?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-6478628712718376538</id><published>2008-12-07T09:18:00.002-06:00</published><updated>2008-12-07T09:33:13.178-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>But Is Intrepid Ubuntu Enough?</title><content type='html'>Several years ago my wife was using Hoary Hedghog on her laptop and it suited her just fine, but I really haven't tried &lt;i&gt;switching&lt;/i&gt; family members away from Windows to Linux. Actually I have counseled them to get Mac's but they haven't gone for it.&lt;br /&gt;&lt;br /&gt;But this week my sister in law got some nasty malware from Facebook (this appears to be going around) and spending a few hours descending into safemode trying to get rid of of it with McAfee, Windows Defender, and ClavAV. No luck. Yesterday I had booted up with a Fedora 10 LiveCD and my brother liked the look of that and given the hell of dealing with malware they are willing to give Ubuntu a shot. They already use OpenOffice and Firefox sould it is the ideal case. But we'll see if it is painless enough.&lt;br /&gt;&lt;br /&gt;So I added Ubuntu 8.10 to the Dell Optiplex 330. Added medibuntu repos, installed flash, Realplayer, and the codecs for mp3's even added the Gnome weather applet to the toolbar. Hell, even imported their pictures into F-Spot. What I was most pleased about what that the several year old D-Link PCI Wireless card worked out of the box, even with WPA.&lt;br /&gt;&lt;br /&gt;What didn't work well was the GUI partition resizing, which failed silently, but I was able to drop down and do an ntfsresize -i to see that it was unclean NTFS partition.&lt;br /&gt;&lt;br /&gt;So there is no way that an average user could do Dual Boot or setup all the repos and install the software themselves without doing a whole of lot of reading, but now we will see how painful it is. I'm particularly concerned about printing. My sister in law still needs access to some windows programs so I'll try Dual Booting and/or possibly VMWare Player. &lt;br /&gt;&lt;br /&gt;If this is successful I want to replace XP Home on my mom's 3-4 year old Dell laptop because it is starting to die a slow death.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-6478628712718376538?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/6478628712718376538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=6478628712718376538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6478628712718376538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/6478628712718376538'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/but-is-intrepid-ubuntu-enough.html' title='But Is Intrepid Ubuntu Enough?'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4289698740711836707</id><published>2008-12-04T22:08:00.006-06:00</published><updated>2008-12-04T22:33:05.442-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thinkpad'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debuntu'/><title type='text'>Fedora 10 on T-61 Passes the Sniff Test (But Fails the Virtualization Test)</title><content type='html'>Did the install from the LiveCD. First go around I had forgot to unmount /dev/sda1 (where I was going to install it) so it failed but on the 2nd try booted just fine. Installed Flash from the repositories. Added another repo so I Gstreamer could handle mp3 streams. Sound works. Haven't tried WPA but that should work too. &lt;br /&gt;&lt;br /&gt;Still not as smooth as the last two (or three) Ubuntu releases for but still usable, but the two things I do like&lt;br /&gt;&lt;br /&gt;1) Fedora GNOME install has mini-commander. Yeah!!!&lt;br /&gt;2) Fonts are bigger for an old guy like me ;)&lt;br /&gt;&lt;br /&gt;But easy virtualization (compared to Ubuntu) forget about it&lt;br /&gt;&lt;br /&gt;No easy OpenVZ. KVM (which sucks with QEMU)/Virtual Machine Manager didn't work out of the box (or at least not in 5 minutes the way it does on Ubuntu) and no dom0.&lt;br /&gt;&lt;br /&gt;Lame. I really wanted a Xen-friendly distro to dual boot for my Thinkpad, since Centos/RHEL kernel is so old it won't support the hardware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4289698740711836707?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4289698740711836707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4289698740711836707' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4289698740711836707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4289698740711836707'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/fedora-10-on-t-61-passes-sniff-test.html' title='Fedora 10 on T-61 Passes the Sniff Test (But Fails the Virtualization Test)'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-487357308082270065</id><published>2008-12-04T21:35:00.002-06:00</published><updated>2008-12-04T21:38:03.211-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open'/><category scheme='http://www.blogger.com/atom/ns#' term='God-n-Country'/><title type='text'>Trisano: Open Source &amp; National Security</title><content type='html'>As opposed to &lt;a href="http://blogfranz.blogspot.com/2008/12/open-source-cliches-of-day.html"&gt;my previous blog&lt;/a&gt; &lt;a href="http://www.trisano.org/home/"&gt;Trisano&lt;/a&gt; would be a real example (if it does what it say) that Open Source improves national security:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;TriSano™ is an open source, citizen-focused surveillance and outbreak management system for infectious disease, environmental hazards, and bioterrorism attacks. It allows local, state and federal entities to track, control and ultimately prevent illness and death.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-487357308082270065?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/487357308082270065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=487357308082270065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/487357308082270065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/487357308082270065'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/trisano-open-source-national-security.html' title='Trisano: Open Source &amp; National Security'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-4981067847577923525</id><published>2008-12-04T19:38:00.017-06:00</published><updated>2008-12-04T21:06:25.385-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Vulns'/><title type='text'>Open Source Cliches of the Day</title><content type='html'>First it was ludicrous article &lt;a href="http://news.cnet.com/8301-13505_3-10110135-16.html"&gt;Open source is dead long live open source&lt;/a&gt; (don't get me started about the notion that Open Source code is so good that it doesn't need support, put the crackpipe down!) and then &lt;a href="http://taosecurity.blogspot.com/2008/12/bejtlich-cited-in-economist.html"&gt;Bejtlich Cited in Economist&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While kudos go out to Richard (and I'm quite jealous) about being cited in &lt;i&gt;The Economist&lt;/i&gt; I wish it would have been about NSM and not Open Source:&lt;br /&gt;&lt;blockquote&gt;One way for governments to do this [to become resilient to cyber attack], says Richard Bejtlich, a former digital-security officer with the United States Air Force who now works at GE, an American conglomerate, might be to make greater use of open-source software, the underlying source code of which is available to anyone to inspect and improve. To those outside the field of computer security, and particularly to government types, the idea that such software can be more secure than code that is kept under lock and key can be difficult to accept. But from web-browsers to operating systems to encryption algorithms, the more people can scrutinise a piece of code, the more likely it is that its weak spots will be found and fixed. It may be that open-source defence is the best preparation for open-source attack.&lt;br /&gt;&lt;/blockquote&gt;Besides being included in article on  my non-favorite topic of late (cyber-anything makes me ill) I think Richard is repeating one (or maybe two) security cliches: the "more eyes mean greater security" and the oft-repeated negation of "security through security."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OpenBSD is not PHP.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Linux is not Apache.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tomcat is not BIND.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Debian is not OpenSSH.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fedora is not SELinux.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Firefox is not Ruby on Rails.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each of these may or may not be "more secure" than the other--or compared to an individual development team within a vendor we know and love/hate.&lt;br /&gt;&lt;br /&gt;Software security is about tools, talent, and techniques not whether code of open or closed. Developer culture and committed project leadership are what make software secure, not whether the code exposed to clueless masses to find security flaws. Furthermore, there is great diversity in code quality, development (and business/sponsorship) models among Open Source pojrects that make it very difficult to make these sort of generalizations about the security of Open Source, let alone the role of Open Source in "resisting a Cyberattack" and much better case could be made based about the Open Source network security toolset that Richard champions in thwarting attackers -- as opposed to the inherent robustness and integrity of the Open Source codebase. With the exception of the Intel community, how many government personnel (or their contractors) are spending time scrutinizing the Linux kernel source? Jakarta Struts?&lt;br /&gt;&lt;br /&gt;Not too many, I would guess.&lt;br /&gt;&lt;br /&gt;While I am certainly a huge advocate of Open Source (and have had the [mis]fortune of developing/operating Open Source-based security platforms performingcritical functionality within a large Enterprise to back it up) security would not be at the top of the list as the reason to develop on (or deploy) an Open Source stack. For me it is about control, customization, and cost. Probably in that order. Yes, transparency, &lt;i&gt;can&lt;/i&gt; result in improved code security (meaning fewer vulnerabilities per line of code) and better decision making in terms of deciding when and whether to patch (if I can look at the diff I don't have to guess about the true impact of the cryptic Cisco/Microsoft advisory or worse) but this is only a &lt;i&gt;potential&lt;/i&gt; that in many (perhaps) Open Source projects don't live up to in reality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-4981067847577923525?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/4981067847577923525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=4981067847577923525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4981067847577923525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/4981067847577923525'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/open-source-cliches-of-day.html' title='Open Source Cliches of the Day'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-2401366171385397692</id><published>2008-12-03T18:47:00.002-06:00</published><updated>2008-12-03T18:52:53.320-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kultur'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>I dunno where my wife finds this stuff</title><content type='html'>Money quote.&lt;br /&gt;&lt;br /&gt;Black Jesus: "You ever hear of Steve Jobs?"&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/I3ISmeeo-44&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/I3ISmeeo-44&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-2401366171385397692?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/2401366171385397692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=2401366171385397692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2401366171385397692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/2401366171385397692'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/i-dunno-where-my-wife-find-this-stuff.html' title='I dunno where my wife finds this stuff'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19149945.post-1604121824893403404</id><published>2008-12-02T19:32:00.002-06:00</published><updated>2008-12-02T19:37:09.168-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>A Nice Xen vs. OpenVZ Comparison</title><content type='html'>&lt;a href="http://www.fridu.org/hosting/52-openvz-virtualization"&gt;Why OpenVZ and not XEN&lt;/a&gt; has a nice summary of some of the differences that are relevant to some of the comments made in response to &lt;a href="http://blogfranz.blogspot.com/2008/12/openvz-fever.html"&gt;OpenVZ fever&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;OpenVZ has one strong limit compare to XEN, it is not a full visualization and  therefore you're limited to Linux only containers. People working with Sun will recognize Solaris zones concept, that was introduced few years ago. Like for Solaris every OpenVZ zones shared the same kernel, which at OVH translate in a Linux-2.6.24.7 kernel. This being said, it is important to understand that Linux distributions are independent of kernel, you can therefore run any Linux distributions you want under a unique kernel. While OVH ships Debian Etch with OpenVZ hyperviseur, you can chose any other distribution for your zones, new version of Fridu mostly operated with Ubuntu, but nothing prevents you from running multiple distributions. OVH ships template for Debian, CentOS, Gentoo and Ubuntu, but if this is not enough you can either create your own template or download one from Internet (OpenVz-WIKI)&lt;br /&gt;&lt;br /&gt;OpenVZ includes a set of scripts to create/manage virtual machines, unlike Xen that is shipped naked and where I had to write more or less equivalent scripts by myself (cf: Fridu Xen Quick Start). Furthermore  OVH ships OpenVZ with a web console from Proxmox, not that I'm a big fan of having a GUI, but as you can see on the video, it is great to make sexy demos.This console allows you to create a new virtual instances literally in a mater of seconds :) It allows you to start/stop change ram size, IP adresses, etc. on any instances without forcing you to remember any special commands. While Proxmox console misses few features like an SSH applet, a firewall config, or a java VPN. I must say that I get used to it and create every virtual machine through the web GUI.&lt;br /&gt;&lt;br /&gt;OpenVZ is very light weight, not only it shares the same kernel, but also the same filesystem and networking stack. Direct result is that, on a given server you can run more OpenVZ zones than you could run XEN virtual-machines. From a user point of view when a zone is up, wether you run OpenVZ or XEN is fairly transparent, this being said they are nevertheless some fundamental differences:&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19149945-1604121824893403404?l=blogfranz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blogfranz.blogspot.com/feeds/1604121824893403404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=19149945&amp;postID=1604121824893403404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1604121824893403404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19149945/posts/default/1604121824893403404'/><link rel='alternate' type='text/html' href='http://blogfranz.blogspot.com/2008/12/nice-xen-vs-openvz-comparison.html' title='A Nice Xen vs. OpenVZ Comparison'/><author><name>Matt Franz</name><uri>http://www.blogger.com/profile/00973881935128108475</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_MPIoEEC-IC0/SWXZy3zT_TI/AAAAAAAABHY/FmMm-co3m0Y/S220/blah.jpg'/></author><thr:total>0</thr:total></entry></feed>
