Skip to content

Commit 987765d

Browse files
authored
Merge pull request #2849 from intelowlproject/develop
v6.4.0
2 parents 881451d + 5d42723 commit 987765d

File tree

369 files changed

+9687
-3338
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

369 files changed

+9687
-3338
lines changed

.github/CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
[**Upgrade Guide**](https://intelowlproject.github.io/docs/IntelOwl/installation/#update-to-the-most-recent-version)
44

5+
## [v6.4.0](https://github.com/intelowlproject/IntelOwl/releases/tag/v6.4.0)
6+
This release mostly provides important changes in the backend part that will be supported in the UI in the next releases.
7+
* Analyzable: Representation of an observable or a sample: every job is linked to the scanned analyzable.
8+
* Data models: A new system to normalize the output of analyzers (already available in the job raw section). It allows analyzers to specify the evaluation, reliability and many others information about the analyzable.
9+
* User Event: Users can create reports for analyzables: indicating additional information or a custom evaluation.
10+
* Engine: Evaluate user reports and analyzers's data to assign a score to the job.
11+
12+
As usual, we add new plugins. This release brings the following new ones:
13+
* [Nuclei](https://github.com/projectdiscovery/nuclei): A modern, high-performance vulnerability scanner that leverages simple YAML-based templates.
14+
* [ipquery](https://ipquery.io/): a flexible api for vpn detection, geolocation, and threat intelligence.
15+
* [mullvad](https://mullvad.net/en): VPN provider.
16+
* [spamhaus](https://www.spamhaus.org/): Updated existing analyzer to support IPv6.
17+
* [bbot](https://github.com/blacklanternsecurity/bbot): multipurpose scanner.
18+
* [debloat](https://github.com/Squiblydoo/debloat): remove excess garbage from bloated executables.
19+
20+
521
## [v6.3.1](https://github.com/intelowlproject/IntelOwl/releases/tag/v6.3.1)
622
This release provides fixes to the recent added ARM support. (ARM build for v6.3.0 was broken due to some dependencies)
723

.github/dependabot.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,18 @@ updates:
5656
- dependency-name: "*"
5757
update-types: [ "version-update:semver-patch" ]
5858

59+
- package-ecosystem: "pip"
60+
directory: "/integrations/nuclei_analyzer"
61+
schedule:
62+
interval: "weekly"
63+
day: "tuesday"
64+
target-branch: "develop"
65+
ignore:
66+
# ignore all patch updates since we are using ~=
67+
# this does not work for security updates
68+
- dependency-name: "*"
69+
update-types: [ "version-update:semver-patch" ]
70+
5971
- package-ecosystem: "pip"
6072
directory: "/integrations/phishing_analyzers"
6173
schedule:
@@ -137,6 +149,18 @@ updates:
137149
- dependency-name: "*"
138150
update-types: ["version-update:semver-patch"]
139151

152+
- package-ecosystem: "docker"
153+
directory: "/integrations/nuclei_analyzer"
154+
schedule:
155+
interval: "weekly"
156+
day: "tuesday"
157+
target-branch: "develop"
158+
ignore:
159+
# ignore all patch updates since we are using ~=
160+
# this does not work for security updates
161+
- dependency-name: "*"
162+
update-types: ["version-update:semver-patch"]
163+
140164
- package-ecosystem: "docker"
141165
directory: "/integrations/malware_tools_analyzers"
142166
schedule:

.github/pull_request_template.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ Please delete options that are not relevant.
2525
- [ ] If you created a new analyzer and it is free (does not require any API key), please add it in the `FREE_TO_USE_ANALYZERS` playbook by following [this guide](https://intelowlproject.github.io/docs/IntelOwl/contribute/#how-to-modify-a-plugin).
2626
- [ ] Check if it could make sense to add that analyzer/connector to other [freely available playbooks](https://intelowlproject.github.io/docs/IntelOwl/usage/#list-of-pre-built-playbooks).
2727
- [ ] I have provided the resulting raw JSON of a finished analysis and a screenshot of the results.
28-
- [ ] If the plugin interacts with an external service, I have created an attribute called precisely `url` that contains this information. This is required for Health Checks.
28+
- [ ] If the plugin interacts with an external service, I have created an attribute called precisely `url` that contains this information. This is required for Health Checks (HEAD HTTP requests).
2929
- [ ] If the plugin requires mocked testing, `_monkeypatch()` was used in its class to apply the necessary decorators.
3030
- [ ] I have added that raw JSON sample to the `MockUpResponse` of the `_monkeypatch()` method. This serves us to provide a valid sample for testing.
31+
- [ ] I have created the corresponding `DataModel` for the new analyzer following the [documentation](https://intelowlproject.github.io/docs/IntelOwl/contribute/#how-to-create-a-datamodel)
3132
- [ ] I have inserted the copyright banner at the start of the file: ```# This file is a part of IntelOwl https://github.com/intelowlproject/IntelOwl # See the file 'LICENSE' for copying permission.```
32-
- [ ] If external libraries/packages with restrictive licenses were used, they were added in the [Legal Notice](https://github.com/certego/IntelOwl/blob/master/.github/legal_notice.md) section.
33+
- [ ] Please avoid adding new libraries as requirements whenever it is possible. Use new libraries only if strictly needed to solve the issue you are working for. In case of doubt, ask a maintainer permission to use a specific library.
34+
- [ ] If external libraries/packages with restrictive licenses were added, they were added in the [Legal Notice](https://github.com/certego/IntelOwl/blob/master/.github/legal_notice.md) section.
3335
- [ ] Linters (`Black`, `Flake`, `Isort`) gave 0 errors. If you have correctly installed [pre-commit](https://intelowlproject.github.io/docs/IntelOwl/contribute/#how-to-start-setup-project-and-development-instance), it does these checks and adjustments on your behalf.
3436
- [ ] I have added tests for the feature/bug I solved (see `tests` folder). All the tests (new and old ones) gave 0 errors.
3537
- [ ] If the GUI has been modified:

.github/workflows/pull_request_automation.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ jobs:
5757
- name: isort
5858
run: |
5959
isort . --profile black --filter-files --check-only --diff --skip configuration/ldap_config.py
60+
61+
- name: Perform ShellCheck Analysis
62+
run: bash <(curl -s https://raw.githubusercontent.com/CICDToolbox/shellcheck/master/pipeline.sh)
6063

6164
backend-tests:
6265
runs-on: ubuntu-latest
@@ -152,4 +155,4 @@ jobs:
152155
- name: Test with Jest
153156
run: |
154157
npm run test -- --silent --coverage
155-
working-directory: ./frontend
158+
working-directory: ./frontend

.github/workflows/stale.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ jobs:
1919
stale-pr-label: "stale"
2020
exempt-pr-labels: "keep-open"
2121
# Issues
22-
stale-issue-message: "This issue has been marked as stale because it has had no activity for 10 days. If you are still working on this, please provide some updates."
23-
days-before-issue-stale: 10
22+
stale-issue-message: "This issue has been marked as stale because it has had no activity for 30 days. If you are still working on this, please provide some updates."
23+
days-before-issue-stale: 30
2424
days-before-issue-close: -1 # do not close Issues
2525
stale-issue-label: "stale"
2626
exempt-issue-labels: "keep-open"

.pre-commit-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,8 @@ repos:
5050
5151
args: ["--fix"]
5252
files: frontend/src/styles/.*(css|scss)$
53+
- repo: https://github.com/koalaman/shellcheck-precommit
54+
rev: v0.7.2
55+
hooks:
56+
- id: shellcheck
57+
args: ["--severity=warning"]

api_app/admin.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,8 @@ class JobAdminView(CustomAdminView):
4949
"id",
5050
"status",
5151
"user",
52-
"observable_name",
53-
"observable_classification",
54-
"file_name",
55-
"file_mimetype",
52+
"get_analyzable_name",
53+
"get_analyzable_classification",
5654
"received_request_time",
5755
"analyzers_executed",
5856
"connectors_executed",
@@ -64,13 +62,16 @@ class JobAdminView(CustomAdminView):
6462
"user",
6563
"status",
6664
)
67-
search_fields = (
68-
"md5",
69-
"observable_name",
70-
"file_name",
71-
)
7265
list_filter = ("status", "user", "tags")
7366

67+
@admin.display(description="Name")
68+
def get_analyzable_name(self, instance):
69+
return instance.analyzable.name
70+
71+
@admin.display(description="Classification")
72+
def get_analyzable_classification(self, instance):
73+
return instance.analyzable.classification
74+
7475
@staticmethod
7576
def has_add_permission(request: HttpRequest) -> bool:
7677
return False
@@ -122,8 +123,6 @@ class PluginConfigAdminView(ModelWithOwnershipAdminView, CustomAdminView):
122123
"pk",
123124
"get_config",
124125
"parameter",
125-
"for_organization",
126-
"get_owner",
127126
"get_type",
128127
"value",
129128
) + ModelWithOwnershipAdminView.list_display

api_app/analyzables_manager/__init__.py

Whitespace-only changes.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from django.contrib import admin
2+
3+
from api_app.analyzables_manager.models import Analyzable
4+
5+
6+
@admin.register(Analyzable)
7+
class AnalyzableAdmin(admin.ModelAdmin):
8+
list_display = ["pk", "name", "sha1", "sha256", "md5"]
9+
search_fields = ["name", "sha1", "sha256", "md5"]
10+
ordering = ["name"]
11+
list_filter = ["discovery_date"]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# This file is a part of IntelOwl https://github.com/intelowlproject/IntelOwl
2+
# See the file 'LICENSE' for copying permission.
3+
4+
from django.apps import AppConfig
5+
6+
7+
class AnalyzablesManagerConfig(AppConfig):
8+
name = "api_app.analyzables_manager"
9+
10+
@staticmethod
11+
def ready() -> None:
12+
from . import signals # noqa

0 commit comments

Comments
 (0)