diff --git a/security/caldera-ot/Makefile b/security/caldera-ot/Makefile index e92cea480769..6b39ac124f08 100644 --- a/security/caldera-ot/Makefile +++ b/security/caldera-ot/Makefile @@ -1,108 +1,111 @@ PORTNAME= caldera-ot DISTVERSION= 5.3.0 +PORTREVISION= 1 CATEGORIES= security python MAINTAINER= acm@FreeBSD.org COMMENT= caldera OT plugin and capabilities WWW= https://github.com/mitre/caldera-ot LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE +ONLY_FOR_ARCHS= aarch64 amd64 + BUILD_DEPENDS= bacnet-stack>0:devel/bacnet-stack \ cmake:devel/cmake-core \ nuitka:devel/nuitka \ argtable3>0:devel/argtable3 \ libiec61850>0:devel/libiec61850 \ patchelf>0:sysutils/patchelf \ ${PYTHON_PKGNAMEPREFIX}aiohttp>0:www/py-aiohttp@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pymodbus>0:comms/py-pymodbus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pnio-dcp>0:devel/py-pnio-dcp@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>0:www/py-aiohttp@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pymodbus>0:comms/py-pymodbus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pnio-dcp>0:devel/py-pnio-dcp@${PY_FLAVOR} \ caldera>=5.3.0:security/caldera USE_GITHUB= yes GH_ACCOUNT= mitre GH_PROJECT= ${PORTNAME} GH_TAGNAME= 4e8079f9d1764becc9f80edd900fb761d446168f GH_TUPLE= mitre:bacnet:f01044e:bacnet/bacnet \ mitre:dnp3:50c5144:dnp3/dnp3 \ mitre:modbus:51cab77:modbus/modbus \ mitre:iec61850:0838d8a:iec61850/iec61850 \ mitre:iec61850-payloads:e5446db:iec61850payloads/iec61850payloads \ mitre:profinet:b85902a:profinet/profinet USES= compiler:c++11-lang dos2unix python DOS2UNIX_REGEX= .*\.([yml]) CALDERA_USER= caldera CALDERA_GROUP= caldera USERS= ${CALDERA_USER} GROUPS= ${CALDERA_GROUP} WWWDIR= ${PREFIX}/www/caldera SUB_FILES= pkg-message SUB_LIST= WWWDIR=${WWWDIR} post-extract: ${RM} -R ${WRKSRC}/.github cd ${WRKSRC} && ${RM} -f .coveragerc .dockerignore .eslintrc.js .flake8 \ .git* .pre* .stylelintrc.json Dockerfile post-patch: ${REINPLACE_CMD} -i "" -e 's|.sync|.tcp|g' ${WRKSRC}/modbus/src/src/modbus/client.py cd ${WRKSRC} && \ ${FIND} . -type f -name "*.orig" -exec ${RM} "{}" \; do-build: @${MKDIR} ${WRKDIR}/modbus_cli-build @${MKDIR} ${WRKDIR}/profinet-build @${MKDIR} ${WRKDIR}/iec61850-build @${CP} ${WRKSRC}/profinet/src/dcp_utility.py ${WRKDIR}/profinet-build/dcp_utility.py cd ${WRKSRC}/bacnet/src/bacnet-stack/apps && \ ${CC} readprop/main.c -I${LOCALBASE}/include -L${LOCALBASE}/lib \ -lbacnet-stack -o ${WRKSRC}/bacnet/payloads/bacrp-freebsd cd ${WRKSRC}/bacnet/src/bacnet-stack/apps && \ ${CC} readprop/main.c -I${LOCALBASE}/include -L${LOCALBASE}/lib \ -lbacnet-stack -o ${WRKSRC}/bacnet/payloads/bacwp-freebsd cd ${WRKDIR}/iec61850-build && \ cmake ${WRKSRC}/iec61850payloads/ -DLOCALBASE=${LOCALBASE} -DBUILD_SYSTEM=ON && \ cmake --build . cd ${WRKSRC}/modbus/src/src && \ ${LOCALBASE}/bin/nuitka --standalone --onefile \ --output-filename=modbus_cli_freebsd --output-dir=${WRKDIR}/modbus_cli-build modbus_cli.py cd ${WRKDIR}/profinet-build && \ ${LOCALBASE}/bin/nuitka --standalone --onefile \ --output-filename=dcp_utility_freebsd --output-dir=${WRKDIR}/profinet-build dcp_utility.py do-install: @${MKDIR} ${STAGEDIR}${WWWDIR}/plugins/bacnet @${MKDIR} ${STAGEDIR}${WWWDIR}/plugins/dnp3 @${MKDIR} ${STAGEDIR}${WWWDIR}/plugins/modbus @${MKDIR} ${STAGEDIR}${WWWDIR}/plugins/iec61850/src @${MKDIR} ${STAGEDIR}${WWWDIR}/plugins/profinet @cd ${WRKSRC}/bacnet && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/bacnet @cd ${WRKSRC}/dnp3 && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/dnp3 @cd ${WRKSRC}/modbus && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/modbus @cd ${WRKSRC}/iec61850 && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/iec61850 @cd ${WRKSRC}/iec61850payloads && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/iec61850/src @cd ${WRKSRC}/profinet && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/plugins/profinet ${INSTALL_PROGRAM} ${WRKDIR}/modbus_cli-build/modbus_cli_freebsd \ ${STAGEDIR}/${WWWDIR}/plugins/modbus/payloads/modbus_cli_freebsd ${INSTALL_PROGRAM} ${WRKDIR}/iec61850-build/bin/iec61850_actions \ ${STAGEDIR}/${WWWDIR}/plugins/iec61850/payloads/iec61850_actions_freebsd ${INSTALL_PROGRAM} ${WRKDIR}/profinet-build/dcp_utility_freebsd \ ${STAGEDIR}/${WWWDIR}/plugins/profinet/payloads/dcp_utility_freebsd post-install: ${STRIP_CMD} ${STAGEDIR}/${WWWDIR}/plugins/bacnet/payloads/bacwp-freebsd ${STRIP_CMD} ${STAGEDIR}/${WWWDIR}/plugins/bacnet/payloads/bacrp-freebsd .include diff --git a/security/caldera/Makefile b/security/caldera/Makefile index 662883eb031d..6d2f9d8a7e03 100644 --- a/security/caldera/Makefile +++ b/security/caldera/Makefile @@ -1,142 +1,145 @@ PORTNAME= caldera DISTVERSION= 5.3.0 +PORTREVISION= 1 CATEGORIES= security python MAINTAINER= acm@FreeBSD.org COMMENT= Automated Adversary Emulation Platform WWW= https://github.com/mitre/caldera CONFLICTS= caldera4 LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE +ONLY_FOR_ARCHS= aarch64 amd64 + BUILD_DEPENDS= npm-node20>0:www/npm-node20 RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>0:www/py-aiohttp@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aiohttp-jinja2>0:www/py-aiohttp-jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aiohttp-session>0:www/py-aiohttp-session@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aiohttp-security>0:security/py-aiohttp-security@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aiohttp-apispec>0:devel/py-aiohttp-apispec@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>=0:devel/py-pyyaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}websockets>0:devel/py-websockets@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}docutils>0:textproc/py-docutils@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}myst-parser>0:textproc/py-myst-parser@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}marshmallow>0:devel/py-marshmallow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dirhash>0:security/py-dirhash@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}docker>0:sysutils/py-docker@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}donut-shellcode>0:devel/py-donut-shellcode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}marshmallow-enum>0:devel/py-marshmallow-enum@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ldap3>0:net/py-ldap3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}reportlab>0:print/py-reportlab@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}svglib>0:converters/py-svglib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}asyncssh>0:security/py-asyncssh@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}aioftp>0:ftp/py-aioftp@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyautogui>0:x11/py-pyautogui@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}selenium>0:www/py-selenium@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}webdriver_manager>0:www/py-webdriver_manager@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>0:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}croniter2>0:sysutils/py-croniter2@${PY_FLAVOR} \ upx>0:archivers/upx \ base64>0:converters/base64 \ git>0:devel/git \ bash>0:shells/bash USE_GITHUB= yes GH_ACCOUNT= mitre GH_PROJECT= ${PORTNAME} GH_TUPLE= mitre:access:775181b:access/plugins/access \ mitre:atomic:b909588:atomic/plugins/atomic \ mitre:builder:2991945:builder/plugins/builder \ mitre:compass:85e2ebf:compass/plugins/compass \ mitre:debrief:eba44d5:debrief/plugins/debrief \ mitre:emu:fdb0bab:emu/plugins/emu \ mitre:fieldmanual:83da7cb:fieldmanual/plugins/fieldmanual \ mitre:gameboard:dacb6ce:gameboard/plugins/gameboard \ mitre:human:fd242d7:human/plugins/human \ mitre:magma:66ebf0d:magma/plugins/magma \ mitre:manx:261f10b:manx/plugins/manx \ mitre:response:8ea6ab5:response/plugins/response \ mitre:sandcat:0a35cd5:sandcat/plugins/sandcat \ mitre:ssl:1ae8431:ssl/plugins/ssl \ mitre:stockpile:08f37d8:stockpile/plugins/stockpile \ mitre:training:d4d19a2:training/plugins/training USES= dos2unix go:run nodejs:20,build python USE_PYTHON= cryptography NO_ARCH= yes DOS2UNIX_REGEX= .*\.([yml]) CALDERA_USER= caldera CALDERA_GROUP= caldera USERS= ${CALDERA_USER} GROUPS= ${CALDERA_GROUP} USE_RC_SUBR= ${PORTNAME:S/-/_/} SUB_FILES= pkg-message SUB_LIST= PYTHON_CMD=${PYTHON_CMD} \ WWWDIR=${WWWDIR} OPTIONS_DEFINE= HAPROXY OPTIONS_DEFAULT=HAPROXY HAPROXY_DESC= Support for HTTPS HAPROXY_RUN_DEPENDS=haproxy24>0:net/haproxy24 NPM_BIN= ${LOCALBASE}/bin/npm # to rebuild the deps archive: # 1. set DEV_UPDATE_MODE=yes # 2. make makesum build # 3. upload the *-cache archive # 4. set DEV_UPDATE_MODE=no # 5. make clean makesum DEV_UPDATE_MODE= no DEPS_CACHE_DIR= ${WRKSRC}/plugins/magma .if (${DEV_UPDATE_MODE} == "yes") NPM_ARGS= install post-build: - @cd ${DEPS_CACHE_DIR} && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX} node_modules - @${ECHO} "(!!!) Please upload the cache archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX}" + @cd ${DEPS_CACHE_DIR} && ${TAR} czf ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX} node_modules + @${ECHO} "(!!!) Please upload the cache archive: ${DISTDIR}/${DIST_SUBDIR}/${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX}" .else MASTER_SITES+= LOCAL/acm/caldera/:npm_cache -DISTFILES+= ${PORTNAME}-cache-${DISTVERSION}${EXTRACT_SUFX}:npm_cache \ +DISTFILES+= ${PORTNAME}-cache-${ARCH}-${DISTVERSION}${EXTRACT_SUFX}:npm_cache \ ${PORTNAME}-freebsd-logos.tar.gz:npm_cache NPM_ARGS= run build post-extract: @${MV} ${WRKDIR}/node_modules ${WRKSRC}/plugins/magma/ @${MV} ${WRKDIR}/freebsd.red.svg ${WRKSRC}/plugins/magma/src/assets/img/graph/freebsd-icon-privileged.svg @${MV} ${WRKDIR}/freebsd.black.svg ${WRKSRC}/plugins/magma/src/assets/img/graph/freebsd-icon.svg ${RM} -R ${WRKSRC}/.github cd ${WRKSRC} && ${RM} .coveragerc .dockerignore .eslintrc.js .flake8 \ .git* .pre* .stylelintrc.json Dockerfile post-build: ${RM} -r ${WRKSRC}/plugins/magma/node_modules .endif post-patch: cd ${WRKSRC} && \ ${FIND} . -type f -name "*.orig" -exec ${RM} "{}" \; ${REINPLACE_CMD} -i "" -e 's|4.2.0|${PORTVERSION}|g' ${WRKSRC}/app/version.py do-build: @cd ${WRKSRC}/plugins/magma && \ ${NPM_BIN} ${NPM_ARGS} do-install: @${MKDIR} ${STAGEDIR}/${WWWDIR}/ftp_dir @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR} .include diff --git a/security/caldera/distinfo b/security/caldera/distinfo index 8779a721e6e4..aa49d5e7b3ac 100644 --- a/security/caldera/distinfo +++ b/security/caldera/distinfo @@ -1,39 +1,41 @@ -TIMESTAMP = 1750718032 -SHA256 (caldera-cache-5.3.0.tar.gz) = 02449bce0657690bc2701e95f6d6af6b444bc68c15aa42e50fb19207902b48b2 -SIZE (caldera-cache-5.3.0.tar.gz) = 41958785 +TIMESTAMP = 1750745433 +SHA256 (caldera-cache-aarch64-5.3.0.tar.gz) = f43786f5e16ec842f7403033e4c94a423b54cd64add4863200a696030f965f69 +SIZE (caldera-cache-aarch64-5.3.0.tar.gz) = 41661039 +SHA256 (caldera-cache-amd64-5.3.0.tar.gz) = d4a5e26f240f7fde7a33cb9c7f42b025b2904258cb632eeb1a4e5adfb0206586 +SIZE (caldera-cache-amd64-5.3.0.tar.gz) = 41960621 SHA256 (caldera-freebsd-logos.tar.gz) = 66ad2558c34ef06875cfb479a34ca5053b25bad2c36ce06d532d6857b9dda4a2 SIZE (caldera-freebsd-logos.tar.gz) = 2516 SHA256 (mitre-caldera-5.3.0_GH0.tar.gz) = 23f79e83ccf6215bac627f96bed303f09b1759f524a151608279b08574c5eff1 SIZE (mitre-caldera-5.3.0_GH0.tar.gz) = 3825454 SHA256 (mitre-access-775181b_GH0.tar.gz) = 2ae6e4cbd9e6c143cc76b65c0be3dd332228ab59161422291050eb6f4c4b1d17 SIZE (mitre-access-775181b_GH0.tar.gz) = 11646 SHA256 (mitre-atomic-b909588_GH0.tar.gz) = c73afeeac34c76119d7d60813bf06c2e4137675175b4ae25500d5d12f97d3ab5 SIZE (mitre-atomic-b909588_GH0.tar.gz) = 15069 SHA256 (mitre-builder-2991945_GH0.tar.gz) = d3f78b4966cdbcdab08fdb4499a11a794158706d0178f36176cdbe4281d2bf76 SIZE (mitre-builder-2991945_GH0.tar.gz) = 8423 SHA256 (mitre-compass-85e2ebf_GH0.tar.gz) = 4760171cf05a7fccfd4300815f358d9d42affb2c741e6e555515f07eb50c9f34 SIZE (mitre-compass-85e2ebf_GH0.tar.gz) = 7055 SHA256 (mitre-debrief-eba44d5_GH0.tar.gz) = 62cbfd77cbf3573675bc79426171f136628f26a1ee3f931c02f36d53bda8012e SIZE (mitre-debrief-eba44d5_GH0.tar.gz) = 1006448 SHA256 (mitre-emu-fdb0bab_GH0.tar.gz) = e0d940971d066f9167cb98708758a0c0da4160c46d2cbb04e5a3a0b002f6899d SIZE (mitre-emu-fdb0bab_GH0.tar.gz) = 19555 SHA256 (mitre-fieldmanual-83da7cb_GH0.tar.gz) = cf0bab17cd35e3fc8e897c49a4e2d4b3a7affbf24de1a7799c8c3a1cd09ca200 SIZE (mitre-fieldmanual-83da7cb_GH0.tar.gz) = 9659699 SHA256 (mitre-gameboard-dacb6ce_GH0.tar.gz) = 55e521c4dfc6acc9b8ed37b7622d1c20248cd1fe43a9410e339b8c24729d22ac SIZE (mitre-gameboard-dacb6ce_GH0.tar.gz) = 20333 SHA256 (mitre-human-fd242d7_GH0.tar.gz) = cb838f41377ca51aa1c6a9ea50acbe5781a2e112dc20d4dac6c796f950ec199f SIZE (mitre-human-fd242d7_GH0.tar.gz) = 25971 SHA256 (mitre-magma-66ebf0d_GH0.tar.gz) = 77c9d0775dc09d5d3ac299fc2f5772d4bd5c89776d5fe64ca7ee5a6fe1b2763f SIZE (mitre-magma-66ebf0d_GH0.tar.gz) = 331927 SHA256 (mitre-manx-261f10b_GH0.tar.gz) = 058b620fb53b18b38ea43f356feab4b7694f6d8f53f665cd539cf44b7797be89 SIZE (mitre-manx-261f10b_GH0.tar.gz) = 7358591 SHA256 (mitre-response-8ea6ab5_GH0.tar.gz) = f2275a11ebb631b84da2921e370bf5e5957c304265621c78d27f212269fdc9b5 SIZE (mitre-response-8ea6ab5_GH0.tar.gz) = 25334 SHA256 (mitre-sandcat-0a35cd5_GH0.tar.gz) = 55c29ba5efb811c7a6b068871920f10deadc4f3e887b51dcc2e823ff62044387 SIZE (mitre-sandcat-0a35cd5_GH0.tar.gz) = 8294150 SHA256 (mitre-ssl-1ae8431_GH0.tar.gz) = 608596a05a3c833ac10c230cf4bf0863f0e31540414a66b382ff159f97d7629f SIZE (mitre-ssl-1ae8431_GH0.tar.gz) = 6806 SHA256 (mitre-stockpile-08f37d8_GH0.tar.gz) = 193cc7c8b2238d70207202798658aeb84460f6488736ce12305689d34463b1a0 SIZE (mitre-stockpile-08f37d8_GH0.tar.gz) = 4787336 SHA256 (mitre-training-d4d19a2_GH0.tar.gz) = 896dd32edae10829fc81812183c31a6fdae3aeac9d0e2be40228a7ec03a2ca39 SIZE (mitre-training-d4d19a2_GH0.tar.gz) = 496309