Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phishing Detection Library Implementation #3336

Merged
merged 6 commits into from
Sep 10, 2024

Conversation

not-a-rootkit
Copy link
Contributor

Task/Issue URL: https://app.asana.com/0/0/1208253815417552/f
Tech Design URL:
CC:

Description:
iOS integration for BSK to implement phishing detection on macOS.
macOS PR: duckduckgo/BrowserServicesKit#935
BSK PR: duckduckgo/macos-browser#3206

Steps to test this PR:
1.

Definition of Done (Internal Only):

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than '

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPhone 14 Pro
  • iPad

OS Testing:

  • iOS 15
  • iOS 16
  • iOS 17

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template

Copy link
Contributor

@SabrinaTardio SabrinaTardio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

not-a-rootkit added a commit to duckduckgo/BrowserServicesKit that referenced this pull request Sep 9, 2024
<!--
Note: This checklist is a reminder of our shared engineering
expectations.
-->

Please review the release process for BrowserServicesKit
[here](https://app.asana.com/0/1200194497630846/1200837094583426).

**Required**:

Task/Issue URL:
https://app.asana.com/0/1204023833050360/1207976613228509/f
iOS PR: duckduckgo/iOS#3336
macOS PR: duckduckgo/macos-browser#3206
What kind of version bump will this require?: Minor

**Optional**:

Tech Design URL:
https://app.asana.com/0/481882893211075/1207156899292810/f
CC: https://app.asana.com/0/481882893211075/1207220724600204/f

**Description**:
Implement Phishing Detection library to facilitate end-to-end phishing
detection feature. Including:
1. Background data updates
2. API client for updating data
3. Embedded datasets
4. Detection logic
5. Event firing 

<!--
Tagging instructions
If this PR isn't ready to be merged for whatever reason it should be
marked with the `DO NOT MERGE` label (particularly if it's a draft)
If it's pending Product Review/PFR, please add the `Pending Product
Review` label.

If at any point it isn't actively being worked on/ready for
review/otherwise moving forward (besides the above PR/PFR exception)
strongly consider closing it (or not opening it in the first place). If
you decide not to close it, make sure it's labelled to make it clear the
PRs state and comment with more information.
-->

**Steps to test this PR**:
1. Build on macOS
2. Ensure signed in via use-login.duckduckgo.com (only available
internally)
3. Quit the app
4. Visit https://privacy-test-pages.site/security/badware/phishing.html
5. Ensure error page is thrown
6. Click advanced
7. Click "Accept Risk"
8. Ensure page loads
9. Play around with navigations (back/forward, etc.)
10. Disable the feature in Settings>General
11. Try other test pages:
-
https://bad.third-party.site/security/badware/phishing-iframe-loader.html
-
https://bad.third-party.site/security/badware/phishing-meta-redirect.html
-
https://bad.third-party.site/security/badware/phishing-js-redirector-helper.html

<!--
Before submitting a PR, please ensure you have tested the combinations
you expect the reviewer to test, then delete configurations you *know*
do not need explicit testing.

Using a simulator where a physical device is unavailable is acceptable.
-->

**OS Testing**:

* [ ] iOS 14
* [ ] iOS 15
* [ ] iOS 16
* [ ] macOS 10.15
* [ ] macOS 11
* [ ] macOS 12

---
###### Internal references:
[Software Engineering
Expectations](https://app.asana.com/0/59792373528535/199064865822552)
[Technical Design
Template](https://app.asana.com/0/59792373528535/184709971311943)

---------

Co-authored-by: Sabrina Tardio <[email protected]>
not-a-rootkit added a commit to duckduckgo/BrowserServicesKit that referenced this pull request Sep 10, 2024
<!--
Note: This checklist is a reminder of our shared engineering
expectations.
-->

Please review the release process for BrowserServicesKit
[here](https://app.asana.com/0/1200194497630846/1200837094583426).

**Required**:

Task/Issue URL:
https://app.asana.com/0/1204023833050360/1207976613228509/f
iOS PR: duckduckgo/iOS#3336
macOS PR: duckduckgo/macos-browser#3206
What kind of version bump will this require?: Major

**Optional**:

Tech Design URL:
https://app.asana.com/0/481882893211075/1207156899292810/f
CC: https://app.asana.com/0/481882893211075/1207220724600204/f

**Description**:
Implement Phishing Detection library to facilitate end-to-end phishing
detection feature. Including:
1. Background data updates
2. API client for updating data
3. Embedded datasets
4. Detection logic
5. Event firing 

<!--
Tagging instructions
If this PR isn't ready to be merged for whatever reason it should be
marked with the `DO NOT MERGE` label (particularly if it's a draft)
If it's pending Product Review/PFR, please add the `Pending Product
Review` label.

If at any point it isn't actively being worked on/ready for
review/otherwise moving forward (besides the above PR/PFR exception)
strongly consider closing it (or not opening it in the first place). If
you decide not to close it, make sure it's labelled to make it clear the
PRs state and comment with more information.
-->

**Steps to test this PR**:
1. Build on macOS
2. Ensure signed in via use-login.duckduckgo.com (only available
internally)
3. Quit the app
4. Visit https://privacy-test-pages.site/security/badware/phishing.html
5. Ensure error page is thrown
6. Click advanced
7. Click "Accept Risk"
8. Ensure page loads
9. Play around with navigations (back/forward, etc.)
10. Disable the feature in Settings>General
11. Try edge-case test pages:
-
https://bad.third-party.site/security/badware/phishing-iframe-loader.html
-
https://bad.third-party.site/security/badware/phishing-meta-redirect.html
- currently not working
-
https://bad.third-party.site/security/badware/phishing-js-redirector-helper.html
- currently not working

The last two failing test cases are to be addressed in follow-up work.
Currently this feature is hidden behind a feature-flag for internal-only
builds.

<!--
Before submitting a PR, please ensure you have tested the combinations
you expect the reviewer to test, then delete configurations you *know*
do not need explicit testing.

Using a simulator where a physical device is unavailable is acceptable.
-->

**OS Testing**:

* [ ] iOS 14
* [ ] iOS 15
* [ ] iOS 16
* [ ] macOS 10.15
* [ ] macOS 11
* [ ] macOS 12

---
###### Internal references:
[Software Engineering
Expectations](https://app.asana.com/0/59792373528535/199064865822552)
[Technical Design
Template](https://app.asana.com/0/59792373528535/184709971311943)

---------

Co-authored-by: Sabrina Tardio <[email protected]>
@not-a-rootkit not-a-rootkit changed the title Phishing Detection BSK Update Phishing Detection Library Implementation Sep 10, 2024
@not-a-rootkit not-a-rootkit merged commit 4ed55a4 into main Sep 10, 2024
13 checks passed
@not-a-rootkit not-a-rootkit deleted the tespach/phishing-detection branch September 10, 2024 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants