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

FortiGuard URL: taxonomy is too rigid #295

Closed
srilumpa opened this issue Jul 5, 2018 · 4 comments
Closed

FortiGuard URL: taxonomy is too rigid #295

srilumpa opened this issue Jul 5, 2018 · 4 comments
Assignees
Labels
category:bug Issue is related to a bug scope:analyzer Issue is analyzer related status:merged
Milestone

Comments

@srilumpa
Copy link
Contributor

srilumpa commented Jul 5, 2018

Request Type

Analyzer / Bug (Feature?)

Work Environment

Question Answer
OS version (server) Debian
OS version (client) N/A
Cortex Analyzer Name Fortiguard_URL
Cortex Analyzer Version 2.0
Cortex Version 2.0.4
Browser type & version N/A

Description

When categorizing URL or domains, the taxonomy used against some categories does not show as suspicious or malicious when they seem they are

Steps to Reproduce

  1. Analyze a domain or an URL categorized as Phishing by Fortiguard
  2. The domain of URL will be taxonomized as "safe" by the analyzer instead of "suspicious" or "malicious"

Possible Solutions

Allow customization of taxonomy level by the Cortex organization admins instead of having it hard-coded in the analyzer.

@saadkadhi
Copy link
Contributor

Thanks @srilumpa for raising this valid issue. @jeromeleonard or @3c7 will look into it when they have some time. However, we won't make the taxonomy adjustable before Cortex 2.2+. This feature is indeed important but it will need some serious work on our side.

@saadkadhi saadkadhi added category:bug Issue is related to a bug scope:analyzer Issue is analyzer related labels Jul 12, 2018
@jeromeleonard jeromeleonard added this to the 1.12.0 milestone Jul 12, 2018
@jeromeleonard
Copy link
Contributor

the pb resides in the analyzer. Need to select Fortiguard Categories (https://fortiguard.com/webfilter/categories) and tell for everyone which is "suspicious", "malicious", "info" or "safe", and update the code with something like this:

        # https://fortiguard.com/webfilter/categories
        maliciousCat = [
            "Malicious Websites"
        ]
        suspiciousCat = [
            "Suspicious Websites",
            "Dynamic DNS",
            "Newly Observed Domain",
            "Newly Registered Domain",
            "Phishing",
            "Spam URLs"
        ]

        infoCat = [
            "Abortion",
            "Advocacy Organizations",
            "Alcohol",
            "Alternative Beliefs",
            "Dating",
            "Gambling",
            "Lingerie and Swimsuit",
            "Marijuana",
            "Nudity and Risque",
            "Other Adult Materials",
            "Pornography",
            "Sex Education",
            "Sports Hunting and War Games",
            "Tobacco",
            "Weapons (Sales)",
            "File Sharing and Storage",
            "Freeware and Software Downloads",
            "Internet Radio and TV",
            "Internet Telephony",
            "Peer-to-peer File Sharing",
            "Streaming Media and Download",
            "Armed Forces",
            "Business",
            "Charitable Organizations",
            "Finance and Banking",
            "General Organizations",
            "Government and Legal Organizations",
            "Information Technology",
            "Information and Computer Security",
            "Online Meeting",
            "Remote Access",
            "Search Engines and Portals",
            "Secure Websites",
            "Web Analytics",
            "Web Hosting",
            "Web-based Applications",
            "Advertising",
            "Arts and Culture",
            "Auction",
            "Brokerage and Trading",
            "Child Education",
            "Content Servers",
            "Digital Postcards",
            "Domain Parking",
            "Dynamic Content",
            "Education",
            "Entertainment",
            "Folklore",
            "Games",
            "Global Religion",
            "Health and Wellness",
            "Instant Messaging",
            "Job Search",
            "Meaningless Content",
            "Medicine",
            "News and Media",
            "Newsgroups and Message Boards",
            "Personal Privacy",
            "Personal Vehicles",
            "Personal Websites and Blogs",
            "Political Organizations",
            "Real Estate",
            "Reference",
            "Restaurant and Dining",
            "Shopping",
            "Social Networking",
            "Society and Lifestyles",
            "Sports",
            "Travel",
            "Web Chat",
            "Web-based Email",
            "Child Abuse",
            "Discrimination",
            "Drug Abuse",
            "Explicit Violence",
            "Extremist Groups",
            "Hacking",
            "Illegal or Unethical",
            "Plagiarism",
            "Not Rated"
        ]

        if 'category' in raw:
            r = raw.get('category')
            value = "{}".format(r)
            if r in maliciousCat:
                level = "malicious"
            elif r in suspiciousCat:
                level = "suspicious"
            elif r in infoCat:
                level = "info"
            else:
                level = "safe"

Maybe there are other categories.

@jeromeleonard jeromeleonard self-assigned this Jul 12, 2018
@srilumpa
Copy link
Contributor Author

I have submitted the PR #296 which implement the logic your are describing, but basing the malicious and suspicious categories on two multi-values fields in the configuration of the analyzer.

@jeromeleonard
Copy link
Contributor

thank you @srilumpa, will look at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:bug Issue is related to a bug scope:analyzer Issue is analyzer related status:merged
Projects
None yet
Development

No branches or pull requests

3 participants