Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed attack-theme/static/images/ATTACKCon-4.png
Binary file not shown.
Binary file removed attack-theme/static/images/ATTACKCon-5.png
Binary file not shown.
Binary file not shown.
Binary file removed attack-theme/static/images/attckcon-banner-slim.jpg
Diff not rendered.
14 changes: 7 additions & 7 deletions attack-theme/templates/general/base-template.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
{# base.html should be ignored and all changes must be applied to base-template.html instead. #}

{% set BANNER_ENABLED = ${BANNER_ENABLED} %}
{% set BANNER_MESSAGE = "${BANNER_MESSAGE}" %}
{% set CONTENT_VERSION = "${CONTENT_VERSION}" -%}
{% set WEBSITE_VERSION = "${WEBSITE_VERSION}" -%}
{% set CHANGELOG_LOCATION = "${CHANGELOG_LOCATION}" -%}
{% set LOGO_HEADER = "${LOGO_HEADER}" -%}
{% set LOGO_FOOTER = "${LOGO_FOOTER}" -%}
{% set BANNER_MESSAGE = ${BANNER_MESSAGE} %}
{% set CONTENT_VERSION = ${CONTENT_VERSION} -%}
{% set WEBSITE_VERSION = ${WEBSITE_VERSION} -%}
{% set CHANGELOG_LOCATION = ${CHANGELOG_LOCATION} -%}
{% set LOGO_HEADER = ${LOGO_HEADER} -%}
{% set LOGO_FOOTER = ${LOGO_FOOTER} -%}
{% set NAVIGATION_MENU = ${NAVIGATION_MENU} -%}
{% set ATTACK_BRANDING = ${ATTACK_BRANDING} -%}
{% set RESOURCES = ${RESOURCES} -%}
Expand Down Expand Up @@ -169,4 +169,4 @@
<script src="/theme/scripts/search_bundle.js"></script>
{% endblock %}
</body>
</html>
</html>
11 changes: 11 additions & 0 deletions custom_jinja_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import json
import os
import re
from datetime import datetime
from zoneinfo import ZoneInfo

import markdown

Expand Down Expand Up @@ -44,6 +46,15 @@ def escape_spaces(word):
return "%20".join(word.split(" "))


def format_cfp_deadline(deadline_et):
eastern_deadline = datetime.fromisoformat(deadline_et)
if eastern_deadline.tzinfo is None:
eastern_deadline = eastern_deadline.replace(tzinfo=ZoneInfo("America/New_York"))
eastern_deadline = eastern_deadline.astimezone(ZoneInfo("America/New_York"))
eastern_date = f"{eastern_deadline.strftime('%A, %B')} {eastern_deadline.day}, {eastern_deadline.year}"
return f"{eastern_date} at {eastern_deadline.strftime('%-I:%M %p ET')}"


def clean_path(path):
"""Remove index.html from end of a path, add / if not at beginning."""
path = path.split("index.html")[0]
Expand Down
184 changes: 111 additions & 73 deletions data/attackcon.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
[
{
"date": "October 2026",
"title": "ATT&CKcon 7.0",
"description": "ATT&CKcon 7.0 is scheduled for October 27-28, 2026. Join the MITRE ATT&CK community in McLean or virtually for the next annual conference led by the MITRE ATT&CK team. More details will be shared on the event site as they become available.",
"banner_img": "/theme/images/attackcon/attackcon-7.0/attackcon7-logo.png",
"banner_img_max_width": "32rem",
"event_dates": "October 27-28, 2026",
"event_location": "McLean, VA and virtual",
"event_link": "https://na.eventscloud.com/mitreattack7/",
"cfp_link": "https://www.openconf.org/ATTACKcon2026/openconf.php",
"cfp_deadline_et": "2026-07-02T20:00:00-04:00"
},
{
"date": "October 2025",
"title": "ATT&CKcon 6.0",
"description": "We’re grateful to everyone who joined ATT&CKcon 6.0!<br><br>This year’s program featured another outstanding lineup of speakers who shared fresh perspectives and real-world experiences, enriching the knowledge of our ATT&CK community. We encourage you to keep watching and sharing these insightful sessions!<br><br>",
"banner_img": "/theme/images/attackcon6/ATTACKCON_6.0_banner.png",
"banner_img": "/theme/images/attackcon/attackcon-6.0/ATTACKCON_6.0_banner.png",
"banner_img_max_width": "52rem",
"event_dates": "October 14-15, 2025",
"event_location": "McLean, VA and virtual",
"event_link": "https://na.eventscloud.com/attackcon6",
"cfp_link": "https://www.openconf.org/ATTACKCON2025/openconf.php",
"cfp_deadline_et": "2025-07-09T20:00:00-04:00",
"sponsors_img_list": [
"/theme/images/attackcon6/feedly.png",
"/theme/images/attackcon6/material.png",
"/theme/images/attackcon6/safebreach.png",
"/theme/images/attackcon6/securityrisk.png",
"/theme/images/attackcon6/specterops.png",
"/theme/images/attackcon6/threatconnect.png",
"/theme/images/attackcon6/tidalcyber.png",
"/theme/images/attackcon6/trendmicro.png",
"/theme/images/attackcon6/vmray.png",
"/theme/images/attackcon6/deeptempo.png",
"/theme/images/attackcon6/cyberdefensemagazine.jpg",
"/theme/images/attackcon6/redcanary.png"
"/theme/images/attackcon/attackcon-6.0/feedly.png",
"/theme/images/attackcon/attackcon-6.0/material.png",
"/theme/images/attackcon/attackcon-6.0/safebreach.png",
"/theme/images/attackcon/attackcon-6.0/securityrisk.png",
"/theme/images/attackcon/attackcon-6.0/specterops.png",
"/theme/images/attackcon/attackcon-6.0/threatconnect.png",
"/theme/images/attackcon/attackcon-6.0/tidalcyber.png",
"/theme/images/attackcon/attackcon-6.0/trendmicro.png",
"/theme/images/attackcon/attackcon-6.0/vmray.png",
"/theme/images/attackcon/attackcon-6.0/deeptempo.png",
"/theme/images/attackcon/attackcon-6.0/cyberdefensemagazine.jpg",
"/theme/images/attackcon/attackcon-6.0/redcanary.png"
],
"presentations": [
{
Expand Down Expand Up @@ -492,15 +510,20 @@
"date": "October 2024",
"title": "ATT&CKcon 5.0",
"description": "We are thrilled and express our gratitude to everyone who participated in ATT&CKcon 5.0!<br><br>This year we were privileged to have another range of speakers who shared their unique insights and experiences, further enriching the knowledge pool of our ATT&CK community. We invite you to continue to watch and share these insightful talks!<br><br><a target=\"_blank\" href=\"https://www.youtube.com/playlist?list=PLLGRmm150VfA8ahybY6XdDGtbCkoBNyyn\">Click here to explore the talks from ATT&CKcon 5.0 on our YouTube playlist!</a>",
"banner_img": "/theme/images/attackcon5/ATTACKCON_5.0_banner.png",
"banner_img": "/theme/images/attackcon/attackcon-5.0/ATTACKCON_5.0_banner.png",
"banner_img_max_width": "52rem",
"event_dates": "October 22-23, 2024",
"event_location": "McLean, VA and virtual",
"cfp_link": "https://www.openconf.org/attackcon2024/openconf.php",
"cfp_deadline_et": "2024-06-26T20:00:00-04:00",
"sponsors_img_list": [
"/theme/images/attackcon5/mitreengenuity.png",
"/theme/images/attackcon5/safebreach.png",
"/theme/images/attackcon5/socradar.png",
"/theme/images/attackcon5/tidalcyber.png",
"/theme/images/attackcon5/trendmicro.png",
"/theme/images/attackcon5/pentera.png",
"/theme/images/attackcon5/redcanary.png"
"/theme/images/attackcon/attackcon-5.0/mitreengenuity.png",
"/theme/images/attackcon/attackcon-5.0/safebreach.png",
"/theme/images/attackcon/attackcon-5.0/socradar.png",
"/theme/images/attackcon/attackcon-5.0/tidalcyber.png",
"/theme/images/attackcon/attackcon-5.0/trendmicro.png",
"/theme/images/attackcon/attackcon-5.0/pentera.png",
"/theme/images/attackcon/attackcon-5.0/redcanary.png"
],
"presentations": [
{
Expand Down Expand Up @@ -991,20 +1014,23 @@
"date": "October 2023",
"title": "ATT&CKcon 4.0",
"description": "We are thrilled and express our gratitude to everyone who participated in ATT&CKcon 4.0!<br><br>This year we were privileged to have another range of speakers who shared their unique insights and experiences, further enriching the knowledge pool of our ATT&CK community. We invite you to continue to watch and share these insightful talks!<br><br><a target=\"_blank\" href=\"https://www.youtube.com/playlist?list=PLkTApXQou_8If8_fwdCKVnwHr0WaEnfSH\">Click here to explore the talks from ATT&CKcon 4.0 on our YouTube playlist!</a>",
"banner_img": "/theme/images/attackcon4/ATTACKCON_4.0_banner.png",
"banner_img": "/theme/images/attackcon/attackcon-4.0/ATTACKCON_4.0_banner.png",
"banner_img_max_width": "52rem",
"event_dates": "October 24-25, 2023",
"event_location": "McLean, VA and virtual",
"sponsors_img_list": [
"/theme/images/attackcon4/analyst1.png",
"/theme/images/attackcon4/ardalyst.png",
"/theme/images/attackcon4/cyware.png",
"/theme/images/attackcon4/interpres.png",
"/theme/images/attackcon4/opentext.png",
"/theme/images/attackcon4/pentera.png",
"/theme/images/attackcon4/prelude.png",
"/theme/images/attackcon4/safebreach.png",
"/theme/images/attackcon4/thirdwave.png",
"/theme/images/attackcon4/trendmicro.png",
"/theme/images/attackcon4/vectr.png",
"/theme/images/attackcon4/tidalcyber.png"
"/theme/images/attackcon/attackcon-4.0/analyst1.png",
"/theme/images/attackcon/attackcon-4.0/ardalyst.png",
"/theme/images/attackcon/attackcon-4.0/cyware.png",
"/theme/images/attackcon/attackcon-4.0/interpres.png",
"/theme/images/attackcon/attackcon-4.0/opentext.png",
"/theme/images/attackcon/attackcon-4.0/pentera.png",
"/theme/images/attackcon/attackcon-4.0/prelude.png",
"/theme/images/attackcon/attackcon-4.0/safebreach.png",
"/theme/images/attackcon/attackcon-4.0/thirdwave.png",
"/theme/images/attackcon/attackcon-4.0/trendmicro.png",
"/theme/images/attackcon/attackcon-4.0/vectr.png",
"/theme/images/attackcon/attackcon-4.0/tidalcyber.png"
],
"presentations": [
{
Expand Down Expand Up @@ -1509,18 +1535,21 @@
"date": "March 2022",
"title": "ATT&CKcon 3.0",
"description": "",
"banner_img": "/theme/images/ATTACKcon-3-Banner.png",
"banner_img": "/theme/images/attackcon/attackcon-3.0/ATTACKcon-3-Banner.png",
"banner_img_max_width": "52rem",
"event_dates": "March 29-30, 2022",
"event_location": "McLean, VA and virtual",
"sponsors_img_list": [
"/theme/images/attackcon3-sponsors/analyst1.png",
"/theme/images/attackcon3-sponsors/attackiq.png",
"/theme/images/attackcon3-sponsors/cyber-ranges.png",
"/theme/images/attackcon3-sponsors/cyborg-security.png",
"/theme/images/attackcon3-sponsors/kroll.png",
"/theme/images/attackcon3-sponsors/microsoft.png",
"/theme/images/attackcon3-sponsors/pentera.png",
"/theme/images/attackcon3-sponsors/picus.png",
"/theme/images/attackcon3-sponsors/trellix.jpeg",
"/theme/images/attackcon3-sponsors/trend-micro.png"
"/theme/images/attackcon/attackcon-3.0/analyst1.png",
"/theme/images/attackcon/attackcon-3.0/attackiq.png",
"/theme/images/attackcon/attackcon-3.0/cyber-ranges.png",
"/theme/images/attackcon/attackcon-3.0/cyborg-security.png",
"/theme/images/attackcon/attackcon-3.0/kroll.png",
"/theme/images/attackcon/attackcon-3.0/microsoft.png",
"/theme/images/attackcon/attackcon-3.0/pentera.png",
"/theme/images/attackcon/attackcon-3.0/picus.png",
"/theme/images/attackcon/attackcon-3.0/trellix.jpeg",
"/theme/images/attackcon/attackcon-3.0/trend-micro.png"
],
"presentations": [
{
Expand Down Expand Up @@ -1879,7 +1908,10 @@
"date": "October 2020",
"title": "ATT&CKcon Power Hour",
"description": "Thank you to everyone who attended and spoke as ATT&CKcon went virtual in 2020. Broken into a series of four 1.5 hour virtual sessions, ATT&CKcon Power Hour talks have been viewed over 12,000 times. ATT&CKcon Power Hour brought us talks on areas of ATT&CK we haven't heard about before such as Cloud and Mobile as well as insights on how organizations are adapting to features such as sub-techniques. Please continue to watch and share these talks!",
"banner_img": "/theme/images/ATTACKcon_power_hour.png",
"banner_img": "/theme/images/attackcon/attackcon-power-hour/ATTACKcon_power_hour.png",
"banner_img_max_width": "52rem",
"event_dates": "October 2020 - January 2021",
"event_location": "Virtual",
"presentations": [
{
"title": "Starting Over with Sub-Techniques: Lessons Learned Remapping Detection Analytics",
Expand Down Expand Up @@ -2166,25 +2198,28 @@
{
"date": "October 2019",
"title": "ATT&CKcon 2.0",
"banner_img": "/theme/images/attackcon2-banner.png",
"banner_img": "/theme/images/attackcon/attackcon-2.0/attackcon2-banner.png",
"banner_img_max_width": "52rem",
"event_dates": "October 29-30, 2019",
"event_location": "McLean, VA",
"sponsors_img_list": [
"/theme/images/attackcon2-sponsors/ATTACKIQ.png",
"/theme/images/attackcon2-sponsors/CISCO.png",
"/theme/images/attackcon2-sponsors/CrowdstrikeLogo.png",
"/theme/images/attackcon2-sponsors/Cybereason.png",
"/theme/images/attackcon2-sponsors/Digital-Shadows.png",
"/theme/images/attackcon2-sponsors/Endgame_Logo.png",
"/theme/images/attackcon2-sponsors/McAfee.png",
"/theme/images/attackcon2-sponsors/Microsoft.png",
"/theme/images/attackcon2-sponsors/Praetorian-logo.png",
"/theme/images/attackcon2-sponsors/Red_Canary.png",
"/theme/images/attackcon2-sponsors/SafeBreachLogo.png",
"/theme/images/attackcon2-sponsors/Syncurity-Logo.png",
"/theme/images/attackcon2-sponsors/Sycthe-logo.png",
"/theme/images/attackcon2-sponsors/TREND-Micro.png",
"/theme/images/attackcon2-sponsors/Threat_Quotient.png",
"/theme/images/attackcon2-sponsors/VMRAY.png",
"/theme/images/attackcon2-sponsors/XMCyberv2.png"
"/theme/images/attackcon/attackcon-2.0/ATTACKIQ.png",
"/theme/images/attackcon/attackcon-2.0/CISCO.png",
"/theme/images/attackcon/attackcon-2.0/CrowdstrikeLogo.png",
"/theme/images/attackcon/attackcon-2.0/Cybereason.png",
"/theme/images/attackcon/attackcon-2.0/Digital-Shadows.png",
"/theme/images/attackcon/attackcon-2.0/Endgame_Logo.png",
"/theme/images/attackcon/attackcon-2.0/McAfee.png",
"/theme/images/attackcon/attackcon-2.0/Microsoft.png",
"/theme/images/attackcon/attackcon-2.0/Praetorian-logo.png",
"/theme/images/attackcon/attackcon-2.0/Red_Canary.png",
"/theme/images/attackcon/attackcon-2.0/SafeBreachLogo.png",
"/theme/images/attackcon/attackcon-2.0/Syncurity-Logo.png",
"/theme/images/attackcon/attackcon-2.0/Sycthe-logo.png",
"/theme/images/attackcon/attackcon-2.0/TREND-Micro.png",
"/theme/images/attackcon/attackcon-2.0/Threat_Quotient.png",
"/theme/images/attackcon/attackcon-2.0/VMRAY.png",
"/theme/images/attackcon/attackcon-2.0/XMCyberv2.png"
],
"presentations": [
{
Expand Down Expand Up @@ -2699,16 +2734,19 @@
"title": "ATT&CKcon 2018",
"description": "Thank you for all the passion and engagement that made ATT&CKcon such a success. Over 250 of you joined us in person at MITRE’s McLean campus for our first ever event that was live streamed to more than 1,000 people at its peak. Our videos have been viewed over 10,000 times already, and there’s a lot of energy around the community to keep improving the ATT&CK framework. Please continue to watch and share these presentations.",
"blogpost": "https://medium.com/mitre-attack/attackcon-2018-501d62566233",
"banner_img": "/theme/images/attckcon-banner.jpg",
"banner_img": "/theme/images/attackcon/attackcon-2018/attckcon-banner.jpg",
"banner_img_max_width": "52rem",
"event_dates": "October 23-24, 2018",
"event_location": "McLean, VA",
"sponsors_img_list": [
"/theme/images/attackcon2018-sponsors/mcafee.png",
"/theme/images/attackcon2018-sponsors/attackiq.png",
"/theme/images/attackcon2018-sponsors/endgame.png",
"/theme/images/attackcon2018-sponsors/tripwire.png",
"/theme/images/attackcon2018-sponsors/safebreach.png",
"/theme/images/attackcon2018-sponsors/crowdstrike.png",
"/theme/images/attackcon2018-sponsors/redcanary.png",
"/theme/images/attackcon2018-sponsors/verodin.png"
"/theme/images/attackcon/attackcon-2018/mcafee.png",
"/theme/images/attackcon/attackcon-2018/attackiq.png",
"/theme/images/attackcon/attackcon-2018/endgame.png",
"/theme/images/attackcon/attackcon-2018/tripwire.png",
"/theme/images/attackcon/attackcon-2018/safebreach.png",
"/theme/images/attackcon/attackcon-2018/crowdstrike.png",
"/theme/images/attackcon/attackcon-2018/redcanary.png",
"/theme/images/attackcon/attackcon-2018/verodin.png"
],
"presentations": [
{
Expand Down
14 changes: 1 addition & 13 deletions docs/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,7 @@ If you are only updating the banner and nothing else, follow these steps.

6. Commit and push changes to the `develop` branch.

7. Open a pull request from `develop` to `master` <https://github.com/mitre-attack/attack-website/pulls>.

* PR naming convention: "Update website to X.Y.Z"

8. After the PR is accepted, tag the commit in the master branch and push the changes

```bash
git checkout master
git pull
git tag -a "website-vX.Y.Z" -m "website-vX.Y.Z"
git push
git push --tags
```
7. Open and accept the pull request from `develop` to `master` <https://github.com/mitre-attack/attack-website/pulls>.

## ATT&CK Content updates

Expand Down
9 changes: 8 additions & 1 deletion modules/assets/assets_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@
asset_index_md = "Title: Asset overview\nTemplate: assets/assets-index\nsave_as: assets/index.html\ndata: "

# String template for asset page
asset_md = Template("Title: ${name}\nTemplate: assets/asset\nsave_as: assets/${attack_id}/index.html\ndata: ")
asset_md = Template(
"Title: ${name}\n"
"Slug: asset-${attack_id}\n"
"url: /assets/${attack_id}/\n"
"Template: assets/asset\n"
"save_as: assets/${attack_id}/index.html\n"
"data: "
)

# Path for templates
assets_templates_path = "modules/assets/templates/"
Expand Down
7 changes: 6 additions & 1 deletion modules/campaigns/campaigns_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@

# String template for campaign page
campaign_md = Template(
"Title: ${name}\nTemplate: campaigns/campaign\nsave_as: campaigns/${attack_id}/index.html\ndata: "
"Title: ${name}\n"
"Slug: campaign-${attack_id}\n"
"url: /campaigns/${attack_id}/\n"
"Template: campaigns/campaign\n"
"save_as: campaigns/${attack_id}/index.html\n"
"data: "
)

# Path for templates
Expand Down
7 changes: 6 additions & 1 deletion modules/datasources/datasources_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@

# String template for data source page
datasource_md = Template(
"Title: ${name}\nTemplate: datasources/datasource\nsave_as: datasources/${attack_id}/index.html\ndata: "
"Title: ${name}\n"
"Slug: datasource-${attack_id}\n"
"url: /datasources/${attack_id}/\n"
"Template: datasources/datasource\n"
"save_as: datasources/${attack_id}/index.html\n"
"data: "
)

# Path for templates
Expand Down
9 changes: 7 additions & 2 deletions modules/detectionstrategies/detectionstrategies_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,17 @@

# String template for individual page
detectionstrategy_md = Template(
"Title: ${name}\nTemplate: detectionstrategies/detectionstrategy\nsave_as: detectionstrategies/${attack_id}/index.html\ndata: "
"Title: ${name}\n"
"Slug: detectionstrategy-${attack_id}\n"
"url: /detectionstrategies/${attack_id}/\n"
"Template: detectionstrategies/detectionstrategy\n"
"save_as: detectionstrategies/${attack_id}/index.html\n"
"data: "
)

sidebar_detectionstrategies_md = (
"Title: Detection Strategies Sidebar\n"
"Template: general/sidebar-template \n"
"save_as: detectionstrategies/sidebar-detectionstrategies/index.html\n"
"data: "
)
)
9 changes: 8 additions & 1 deletion modules/groups/groups_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@
group_index_md = "Title: Group overview\nTemplate: groups/groups-index\nsave_as: groups/index.html\ndata: "

# String template for group page
group_md = Template("Title: ${name}\nTemplate: groups/group\nsave_as: groups/${attack_id}/index.html\ndata: ")
group_md = Template(
"Title: ${name}\n"
"Slug: group-${attack_id}\n"
"url: /groups/${attack_id}/\n"
"Template: groups/group\n"
"save_as: groups/${attack_id}/index.html\n"
"data: "
)

# Path for templates
groups_templates_path = "modules/groups/templates/"
Expand Down
Loading
Loading