Project Portfolio
Tien-Yi Lee
Here are my Python projects
IP Search Tool
This is my first Python project during my National Institute of Cyber Security intern. This project aims to organize raw data from an Excel sheet and provide a search UI for users to search if an IP belongs to any NICS member company. It will return an output Excel file with the company's information, including the company name, IP searched, country code, and ISP.Throughout the process, I attended weekly meetings to report my progress, understand the users' needs, and exchange ideas for more effective workflow. Besides that, I requested a small amount of real-life data to playtest and improve user experience through observing my team members using the tool. Furthermore, I created a clear program introduction and instructions on Google Slides.By completing this project, my team was able to automate the workflow in order to save time and effort. The user can simply connect the database to the project and type the file path of the desired directory with IP txt files, and it will automatically generate an output Excel sheet that is ready for the user to submit.
Process
In the beginning, I learned how to convert different IPv4 IP formats and translate them into a four-number form. Then, I started parsing raw data in the IP column, for example, a wide range of IPs, IP range with a subnet number, a few separated IPs, spaces, commas, \n, etc, and used the pandas library to read Excel xlsx.Of course, I caught the incorrect IP too without breaking the program!After storing the IP with the corresponding company name key in a dictionary, I created UI using ctkinter and connected functions to the buttons.For each IP searched, I imported the requests library to search country code and ISP through a website. I've also tried searching through API but free API doesn't have enough information that fits NICS's needs and NICS prefers not to rely on API subscription.Lastly, I packed the search results in an output Excel sheet that is ready to submit to NICS.
Web Name Verification Tool
This is my second Python project during my National Institute of Cyber Security intern. This project aims to determine if the domain name provided in the Excel sheet is the official website of the company. If it is, write the result in the Website column.Unlike the project above, this program does not have a UI because it was only for processing this specific Excel sheet (with 1700 members).Although this program is not able to determine every single website due to various reasons such as the incorrect setup in the website, incorrect dn input in Excel, website maintenance, access denial, and more, but it is able to filter out half of them and make our process a lot faster.
Process
First, I use the pandas library to read the Excel sheet. Then, I searched the website using the requests library and found the title tag of the website using the BeautifulSoup library.For finding the accessible website based on the domain name, I tried several ways of URL combinations such as adding www. or removing, or trying that with .tw since they are mostly Taiwanese companies.For comparing the company name and website title, I parsed the highly repetitive such as Inc, TM, and Co., Ltd. Next, I checked if the company name is in the website title or vice versa, otherwise write an error message.
Articles
Here are some links to the articles that I wrote and the topics that I researched during my time at the National Institute of Cyber Security. The goal of the articles is to promote information security and cyber security awareness to companies and provide the latest vulnerability news and solutions.When I was writing my first article, I found it difficult to analyze what exactly was going on since there is sometimes not enough information on the internet, also, it was not easy to find the correct term in Chinese translation and write in a professional tone.As I read previous articles from NICS, I started practicing their article structure and terms to make sure I achieved the purpose of writing the articles which needs to be very clear and precise, and providing solutions and promoting awareness.After a few drafts, I was able to produce quality articles that were able to integrate multiple aspects of a cyberattack, provide clear instructions on how to prevent and solve the problem to the readers, and, most importantly, promote awareness of cyber security to not only for the people in the industry but also make sure that people outside of the industry can understand it as well.











