My GSoC Adventure

22 May GSoC

I corresponded with the lead nogotofail author by email about some design decisions I proposed in my project. He provided some very helpful feedback, and also got me thinking about the fact that the system will function as a mobile application proxy - and fast throughput is important to ensure that mobile apps are responsive. I've thought more about how I would improve the efficiency of the code I'm writing. I investigated Python optimization techniques and optimizing the program logic I'm writing.

21 May GSoC

I read through some Google Compute Engine documentation on network configuration. It would be helpful to troubleshoot issues and verify results by capturing network traffic captures using tcp dumps from the outgoing interface (eth0).

I installed tcpdump on the GCE instance and was able to capture traffic on the outgoing interface.

20 May GSoC

Eclipse has been the tool I have used previously when doing Android development. I read the Android Developer Tools for Eclipse is being discontinued, so I decided to switch to Android Studio. I experimented with modifying and building some example projects in Android Studio. I also watched some tutorials on YouTube.

Android Studio appears to be a small learning curve going from Eclipse.

19 May GSoC

I spent some investigating the nogotofail Android client code, and investigated how information collected by the client is passed back to the server. It appears to use some lower-level rpc messaging, the code (on the client and server side) contains some nice methods that handle the low level stuff.

I started writing some debug code on the server to determine at what point the client calls the server.

I also practiced some Git commits and rebasing.

18 May GSoC

I have a basic familiarity with Git, however I thought a better understanding of Git would benefit the project. I downloaded a free version of the "Pro Git" book by Scott Chacon from Git Books. I found the sections on rebasing, SSH key management and tagging very helpful.

I also practiced some Git commands on a sample Git repository which I downloaded on my local development environment and as a remote BitBucket repository.

15 May GSoC

I spent a few hours setting up a Linux development environment - a Ubuntu 14.04 VM on my laptop. I chose Atom as my Python & shell script code editor. I have used Sublime previously however Atom seems to have better Git & GitHub integration, and a nice markdown preview plugin. Android Studio was installed as the Java/Android development IDE.

I spent more time reviewing the parent projects code. I posted a question in the support forum about one of the http listener classes I was unsure about.

14 May GSoC

I wrote an update script for nogotofail for the Google Compute Engine (GCE) environment which preserves the openvpn authentication profile and doesn't re-install dependent packages. I plan to contribute it as a pull request to the project. I will also include it as part of my project when I get started.

I further investigated the projects event model for raising security issues, and inserted some debug events to better understand how it works. It appears to be well written and to automatically recognize new incident events added - fingers crossed this simplifies adding my new privacy handlers ...

13 May GSoC

I examined further the way nogotofail raises events for security issues, both active (issues which are generated by tampering) and passive (listening for issues) issues. The issues I will be attempting to detect appear to be passive.

I also looked at the current install script for cloud hosted installs. It deletes and generated a new openvpn authentication key each time it is run - this isn't convenient in the dev environment where frequent installs and tests will be occurring. I looked at ways an upgrade script could be made to only update the core components.

12 May GSoC

I experimented with Google Computer Engine machine types to determine the most cost effective type for my dev and test environments. Using an install of the nogotofail project I found the "g1-small" machine type provided was the smallest machine that provided good performance for sustained used by a single user. The costs also seem reasonable.

I also explored the event handler code used by nogotofail when detecting issues in http request query-strings and headers.

11 May GSoC Post

I plan to use the Google Compute Engine hosting environment to host the server component of the application (using servers with Debian Jessie images). I setup the DEV environment server.

I had a discussion with the main author of the parent project nogotofail, about the possibility of merging the project into the main project tree if the project objectives are met.

I have decided to follow the Google Python, Java and Shell scripting style guides for the project. I reviewed these.

Syndicate content