Dáire Curran


Academic / Personal Projects

Honeypots and live Dashboard developed in Python and deployed in the Cloud

For my MSc in Software Development project at the University of Glasgow I developed HTTP,  HTTPS, Telnet and SSH honeypots using Python and deployed them on AWS using Docker containers. I deployed another containerised application on Heroku which hosted a dashboard for the project showing key metrics relating to activity on the honeypots. The honeypots ran for a full week of testing and I discussed the results in my Thesis. The code for this project can be found on my GitHub. The images below show the dashboard metrics at the end of the week of testing. To summarise the study:

The project involved two sets of IoT honeypots – one designed with appropriate security features informed by a contemporary literature review, and another with no such security features to be used as a control – in order to analyse the efficacy of the relevant security features, namely: geographic IP blocking with GeoIP2 and rate-limited connections with fail2ban. Potentially vulnerable IoT services discovered in the literature are used for implementing the honeypots – Secure Shell (SSH), Telnet, Hypertext Transfer Protocol (HTTP) and Hypertext Transfer Protocol Secure (HTTPS). Both sets of honeypots are tested over a seven-day period resulting in a significant reduction in the number of attacks was recorded on the set of honeypots with security features. Services that implemented GeoIP2 (Telnet, HTTP) resulted in a greater than 97% reduction in attacks whereas services that implement both GeoIP2 and fail2ban (SSH) resulted in a 100% reduction in attacks. 

Speech Recognition tool developed in Python for Industrial Sponsor

For my BEng in Mechtronic Engineering at Dublin City University, I developed a speech recognition tool that was backed by an Industrial Sponsor. I had previously done an Internship with this particular Industrial Entity which worked in the automotive space. The tool used natural language processing (NLP) to take commands input verbally by the user and performed the desired output tasks depending on the input. An interesting condition for this project was that it had to be able to work offline, without internet access. To achieve this goal, I used a Python library developed by Carnegie Mellon University called Pocketsphink and was able to train the language model to understand the commands that the project required.

In short, the tool called VERA took commands input verbally into a microphone and interacted with the Raspberry Pi I/O. LED indicators were used to feedback what mode the device was currently in. On completion of a task, VERA would relay the results which were output to a text file over the local area network (LAN) to a server where the results could be processed by the Industrial sponsor.

Automated Vial filling and capping Station

For my BEng in Mechatronics (Ord), I built and developed a fully operational Vial filling and capping Station alongside a good friend and fellow classmate of mine. I got the idea for the project when I did my internship with AbbVie, who are a multinational Pharmaceutical company and the project encompassed a number of areas which were relevant towards my degree. These areas were – programming/automation, supervisory control and data acquisition (SCADA), electro-pneumatics and robotics.

Designs for the project were developed using Solidworks which is a technical drawing software, and we were able to produce any parts that needed to be manufactured in the colleges Engineering Workshop. The station was divided into four sections, each of which performed a different task. The rotary table would rotate the product 90 degrees to each of these sections until the task in question had been complete.

In the first section the system used a gripper to place an empty vial onto the rotary table. The next station used a small pump to fill the vial to a set level with a dark liquid. The third station used an electro-pneumatic piston to both drop and press down a cap onto the top of the vial. At the fourth and final station, a vision system that was implemented using an automation software package called LabView was used to check that the vial had been capped successfully and that the dark liquid was present in the vial.

Drone build and programming during lockdown

To keep myself occupied during lockdown, I built and programmed a drone. I bought the initial kit online, but some of the parts has to be researched and bought seperately. The construction, soldering of electronics and programming were all done manually.  The photos and short video below capture the build process as well as the final product, which surprisingly given my flying skills survives to this day..

MSc in Software Development Thesis