|
1 |
| -# IoTrim |
2 |
| -Consumer IoT devices come with convenient services. However, since there are few strict privacy/security regulations and standards in the IoT context, device abuse is increasingly becoming a major privacy/security issue for consumers worldwide. |
| 1 | +<!-- PROJECT LOGO --> |
| 2 | +<br /> |
| 3 | +<p align="center"> |
| 4 | + <h1 align="center">Developer's Portfolio ✨</h1> |
3 | 5 |
|
4 |
| -IoTrim, automatically monitors and blocks non-essential network activities, and identifies IoT devices’ information exposure and security threats, using privacy-preserving AI techniques to build insights and behavioral models from devices. |
5 |
| -IoTrim components run on the home router, and can be controlled through a smartphone app, a computer or the user’s voice (It offers easy-to-use, plug and play protection). |
| 6 | + <p align="center"> |
| 7 | + It is a personal static website/portfolio template hosted with GitHub Pages, built to showcase my recent projects. |
| 8 | + <br /> |
| 9 | + <strong>Site URL / Demo » </strong> |
| 10 | + <a href="https://hashirshoaeb.github.io/portfolio"> hashirshoaeb.github.io/portfolio</a> |
| 11 | + <br /> |
| 12 | + <br /> |
| 13 | + <a href="https://hashirshoaeb.com">About Me</a> |
| 14 | + · |
| 15 | + <a href="https://github.com/hashirshoaeb/portfolio/issues">Report Bug</a> |
| 16 | + · |
| 17 | + <a href="https://github.com/hashirshoaeb/portfolio/issues">Request Feature</a> |
| 18 | + </p> |
| 19 | +</p> |
6 | 20 |
|
7 |
| -IoTrim prevents violations of individuals’ privacy by intercepting and blocking information exposure to third-party analytics and service providers, most of which are collecting personal data unbeknownst to the user and potentially breaking privacy regulations such as the GDPR and CCPA. |
| 21 | +[](https://github.com/hashirshoaeb/portfolio/network) |
| 22 | +[](https://github.com/hashirshoaeb/portfolio/blob/master/LICENSE) |
| 23 | +[](https://twitter.com/hashirshoaeb) |
| 24 | +[](https://nodejs.org) |
| 25 | +[](https://nodejs.org) |
8 | 26 |
|
9 |
| -The design of the testing system (<a href="https://github.com/IoTrim/IoTrigger">IoTrigger</a>), the blocking system (<a href="https://github.com/IoTrim/IoTrimmer">IoTrimmer</a>), the <a href="https://github.com/IoTrim/ML">AI Engine</a>, and the <a href="https://github.com/IoTrim/iotrimlist">IoTrim list</a> have now been released! |
10 | 27 |
|
11 |
| -## IoTrim List |
| 28 | +<!-- TABLE OF CONTENTS --> |
| 29 | +<details> |
| 30 | + <summary>Table of Contents</summary> |
| 31 | + <ol> |
| 32 | + <li> |
| 33 | + <a href="#about-the-project">About The Project</a> |
| 34 | + </li> |
| 35 | + <li> |
| 36 | + <a href="#getting-started">Getting Started</a> |
| 37 | + <ul> |
| 38 | + <li><a href="#prerequisites">Prerequisites</a></li> |
| 39 | + <li><a href="#setup">Setup</a></li> |
| 40 | + </ul> |
| 41 | + </li> |
| 42 | + <li><a href="#support-my-work">Support my work</a></li> |
| 43 | + <li><a href="#contributing">Contributing</a></li> |
| 44 | + <li><a href="#license">License</a></li> |
| 45 | + </ol> |
| 46 | +</details> |
12 | 47 |
|
13 |
| -This site contains a <a href="https://github.com/IoTrim/iotrimlist">set of non-required destinations list</a> from 31 consumer IoT devices and the software for producing the list. The list is created using a methodology for determining non-required destinations by automatically executing IoT device functions and determining the execution outcome while blocking selected destinations. |
14 |
| -IoT devices offer multiple types of functionality; however, for this list, we select only the main functions for every IoT device under test. However, from preliminary experiments we have seen that most devices use the same destinations for different functions. |
15 | 48 |
|
16 |
| -<a href="https://github.com/IoTrim/iotrimlist/"><img src="https://raw.githubusercontent.com/IoTrim/iotrimlist/master/iotrim.png" width="500"/></a> |
17 | 49 |
|
18 |
| -The list contains 4 columns: |
| 50 | +<!-- ABOUT THE PROJECT --> |
| 51 | +# About The Project |
19 | 52 |
|
20 |
| -* device: the device under test |
21 |
| -* destination: the non-required destination |
22 |
| -* party: destination’s party type (first party, third, support) |
23 |
| - - First party: destination related to the device manufacturer. |
24 |
| - - Support party: destination that is not a first party and is responsible for providing remote computation. |
25 |
| - - Third party: destination that is not a First party or a Support party. |
26 |
| -* grouped: to facilitate analysis and streamline blocklists, we developed a strategy to group destinations thet use different DNS names and IP addresses for each replica. |
| 53 | +[](https://example.com) |
27 | 54 |
|
28 |
| -## IoTrigger |
| 55 | +There are many portfolio website templates available on Github, however, I didn't find one that really suit my needs so I created this one. A simple, easy to configure, lightweight, and responsive static portfolio website. |
29 | 56 |
|
30 |
| -This site contains a <a href="https://github.com/IoTrim/IoTrigger"> command-line version of IoTrigger</a>, which includes a library of probes and triggers scripts that support the IoT devices we tested. IoTrigger manages the lifecycle of functionality experiments for each device, including the invocation of user-provided trigger and probe scripts, and to finally produce (non-)required destination lists. |
31 |
| - |
32 |
| -## IoTrimmer |
| 57 | +I know one template doesn't fulfill everyone's needs. So I'll try adding more features in the near future. You may also suggest changes by forking this repo and creating a pull request or opening an issue. |
33 | 58 |
|
34 |
| -This site contains a <a href="https://github.com/IoTrim/IoTrimmer"> version of IoTrimmer</a>. It comes preconfigured with the deny-listing blocking strategy and uses the blocklist of 62 non-required destinations we found for our set of 31 IoT devices. |
35 |
| -When a new device is connected to IoTrimmer its MAC address appears on the list. |
36 |
| -The user then chooses which device is connected to IoTrimmer. The blocklist (IoTrim) is regularly updated from the Internet and automatically applied to all connected devices. Users can click on a device to display the list of blocked destinations. |
37 |
| - |
38 |
| -## AI Engine |
| 59 | +**Features** |
39 | 60 |
|
40 |
| -This site contains a <a href="https://github.com/IoTrim/ML"> version of the AI Engine</a>. The IoTrim AI Engine allows to build and re-train ML models for device identification. |
| 61 | +- [x] Easy to configure |
| 62 | +- [x] SEO friendly |
| 63 | +- [x] Responsive |
| 64 | +- [x] Lightweight |
| 65 | +- [x] Linktree Page |
41 | 66 |
|
42 |
| -## TEAM |
43 |
| -IoTrim leverages advanced privacy preserving AI techniques for creating the trim lists. The protection techniques behind IoTrimmer have been reviewed by experts in top academic institutions, resulting in research papers published in top tier scientific conferences and EU/US funded research projects. Our team won important awards and our research has been featured in the Financial Times, New York Times, USA Today and the BBC. |
| 67 | +**Built with** [Nextjs](https://nextjs.org/) & [Bootstrap5](https://getbootstrap.com). |
44 | 68 |
|
45 |
| -* <a href="https://annamandalari.com/">Dr Anna Maria Mandalari</a> works as Associate Professor at University College London (UCL). She is affiliated with the Electronic & Electrical Engineering Department and member of the UCL’s Academic Center of Excellence in Cyber Security Research (ACE-CSR). She is Honorary Research Fellow at the Institute for Security Science and Technology at Imperial College London. Her research interests are related to IoT, privacy, large-scale Internet measurements, Internet measurement platforms, middleboxes and new Internet protocols. |
46 | 69 |
|
47 |
| -* <a href="https://haddadi.github.io/">Professor Hamed Haddadi</a> is an Associate Professor in Human-Centred Systems at the Department of Computing at Imperial College London. He is part of the Networks and Systems Laboratory (NetSys) and Imperial-X (I-X) where he leads the Privacy and Security Research Area. He also serves as a Security Science Fellow of the Institute for Security Science and Technology. In his industrial role, he is the Chief Scientist at Brave. |
48 | 70 |
|
49 |
| -* <a href="https://david.choffnes.com/">Professor David Choffnes</a> is an Associate Professor at Northeastern University, Executive Director of the Cybersecurity and Privacy Institute, and affiliate faculty at the Center for Law, Innovation and Creativity (CLIC). His research is primarily in the areas of distributed systems and networking, with a recent focus on privacy, security, transparency, and mobile systems. |
| 71 | +<!-- GETTING STARTED --> |
| 72 | +# Getting Started |
50 | 73 |
|
51 |
| -* <a href="https://www.khoury.northeastern.edu/people/daniel-j-dubois/">Dr Daniel Dubois</a> is an Associate Research Scientist at Northeastern University, his research is rooted in software engineering, with a current focus on IoT privacy. He maintains the Mon(IoT)r Lab testbed, which provides an IoT monitoring infrastructure to four research institutions. |
| 74 | +Building your own personal website from this project can take as little as 30 minutes. Follow the setup instructions below. Please feel free to reach out to me by filing an [issue](https://github.com/hashirshoaeb/portfolio/issues) or emailing me at [email protected] for help configuring your project. |
52 | 75 |
|
| 76 | +## Prerequisites |
53 | 77 |
|
54 |
| -## NEWS |
55 |
| -* Our paper “Protected or Porous: A Comparative Analysis of Threat Detection Capability of IoT Safeguards” has been conditionally accepted to the 44th IEEE Symposium on Security and Privacy (Oakland 2023). More details [here.](https://iotrim.github.io/safeguards.html) |
| 78 | +You should have [Nodejs](https://nodejs.org/en/) and [Git](https://git-scm.com/downloads) installed on your PC. You should also own a GitHub account. |
56 | 79 |
|
57 |
| -* Our paper, describing the methodology and results, “Blocking Without Breaking: Identification and Mitigation of Non-Essential IoT Traffic” has been accepted to the Privacy Enhancing Technologies Symposium <a href="https://petsymposium.org/2021/paperlist.php">(PETS 2021)</a>. More details [here.](https://moniotrlab.ccis.neu.edu/publications/pets21/) |
| 80 | +## Setup |
58 | 81 |
|
59 |
| -* Our project won one of the Top 5 spots in the <a href="https://telekom-challenge.com/">Telekom Challenge</a> amongst 180 startup teams around the world. |
| 82 | +1. Fork this repoistory and clone it to your local machine. |
| 83 | + ```sh |
| 84 | + git clone https://github.com/<your-username>/portfolio.git |
| 85 | + ``` |
60 | 86 |
|
61 |
| -<a href="https://telekom-challenge.com/"><img src="https://raw.githubusercontent.com/IoTrim/iotrimlist/master/telekom.png" width="500"/></a> |
| 87 | +2. Edit the [config/config.js](https://github.com/hashirshoaeb/portfolio/blob/main/config/config.js) file. Replace [config/profile.png](https://github.com/hashirshoaeb/portfolio/blob/main/config/profile.png) with your image. |
| 88 | + >Note: You need to rename your image file as `profile.png`. |
62 | 89 |
|
| 90 | +3. Run following scripts in terminal/command prompt to install dependencies. |
| 91 | + ```sh |
| 92 | + npm install |
| 93 | + npm run build |
| 94 | + ``` |
| 95 | +## Testing |
63 | 96 |
|
| 97 | +1. To test on your local server, run the following command: |
| 98 | + ```sh |
| 99 | + npm run dev |
| 100 | + ``` |
| 101 | + |
| 102 | +2. Open the browser to http://localhost:3000/ |
| 103 | + |
| 104 | +## Deployment |
| 105 | + |
| 106 | +If it works locally, you can deploy your project to GitHub Pages. GitHub Pages provides two types of free domains, `<username>.github.io` and `<username>.github.io/<repository>`. You can choose the one that suits your needs. You can learn more about domain types from [here](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites). |
| 107 | + |
| 108 | +### Deploy to \<your-username>.github.io/portfolio |
| 109 | + |
| 110 | +Simply you just need to commit and push your changes to github. And [GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/introduction-to-github-actions#overview) will take care of the deployment. Your site will be available at `https://<your-username>.github.io/portfolio` |
| 111 | + |
| 112 | +### Deploy to \<your-username>.github.io |
| 113 | + |
| 114 | +Create a new repository with your username as `<your-username>.github.io`. And let the following command do the job for you. |
| 115 | + |
| 116 | +```sh |
| 117 | + npm run predeploy |
| 118 | + node scripts/pages.js <your-username> master |
| 119 | +``` |
| 120 | + |
| 121 | +Your site will be available at `https://<your-username>.github.io` |
| 122 | + |
| 123 | +>Note: You need to replace `<your-username>` with your username. To add CNAME for custom domain, see [scripts/cname.js](https://github.com/hashirshoaeb/portfolio/blob/main/scripts/cname.js) |
| 124 | + |
| 125 | +# Support my work |
| 126 | + |
| 127 | +If you found this project valuable, please consider giving it a ⭐️ on GitHub. Your support keeps me motivated! If you'd like to further support my work, you can buy me a book. Thank you for your generosity! |
| 128 | +
|
| 129 | +<div> |
| 130 | + <a href="https://www.buymeacoffee.com/hashirshoaeb"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a book&emoji=📖&slug=hashirshoaeb&button_colour=5F7FFF&font_colour=ffffff&font_family=Cookie&outline_colour=000000&coffee_colour=FFDD00" /></a> |
| 131 | + </div> |
| 132 | +
|
| 133 | +<!-- CONTRIBUTING --> |
| 134 | +# Contributing |
| 135 | +
|
| 136 | +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contribution you make would be **appreciated**. |
| 137 | +
|
| 138 | +1. Fork the Project |
| 139 | +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) |
| 140 | +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) |
| 141 | +4. Push to the Branch (`git push origin feature/AmazingFeature`) |
| 142 | +5. Open a Pull Request |
| 143 | +
|
| 144 | +
|
| 145 | +
|
| 146 | +<!-- LICENSE --> |
| 147 | +# License |
| 148 | +
|
| 149 | +Distributed under the `MIT` License. See [LICENSE](https://github.com/hashirshoaeb/portfolio/blob/main/LICENSE) for more information. |
0 commit comments