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

[backend/frontend] Introduce TAXII push endpoints #9471

Merged
merged 8 commits into from
Jan 3, 2025
Merged
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
7 changes: 4 additions & 3 deletions opencti-platform/opencti-front/lang/front/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "Ein öffentliches Dashboard ist ein Schnappschuss eines privaten Dashboards zu einem bestimmten Zeitpunkt. Wenn Sie das private Dashboard ändern, werden die bereits erstellten öffentlichen Dashboards nicht geändert.",
"About": "Über",
"Abstract": "Zusammenfassung",
"Limitations applied, number of fully loaded containers: ": "Begrenzt, Anzahl der voll beladenen Container:",
"Open this entity in an investigation to be able to see all objects.": "Öffnen Sie diese Entität in einer Untersuchung, um alle Objekte sehen zu können.",
"Accent color": "Akzentfarbe",
"Accept": "Akzeptieren Sie",
"Access administration": "Zugriff auf die Verwaltung",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "Wahrscheinlichkeit größer als",
"likelihood_lte": "Wahrscheinlichkeit kleiner als oder gleich",
"Limit": "Begrenzen",
"Limitations applied, number of fully loaded containers: ": "Begrenzt, Anzahl der voll beladenen Container:",
"Limits": "Begrenzungen",
"Line chart": "Liniendiagramm",
"Lines view": "Ansicht Zeilen",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "Einstellungen öffnen",
"Open the entity overview in a separated tab": "Öffnen Sie die Entitätsübersicht in einer separaten Registerkarte",
"Open the suggestions": "Öffnen Sie die Vorschläge",
"Open this entity in an investigation to be able to see all objects.": "Öffnen Sie diese Entität in einer Untersuchung, um alle Objekte sehen zu können.",
"OpenBAS installation documentation": "Dokumentation zur OpenBAS-Installation",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE ist für Entwicklungs-, Test- und Forschungszwecke sowie für gemeinnützige Organisationen frei nutzbar.",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EE ist für alle Filigran SaaS-Kunden ohne zusätzliche Gebühr enthalten.",
Expand Down Expand Up @@ -2629,7 +2629,8 @@
"TAXII Collection": "TAXII Sammlung",
"TAXII collections": "TAXII-Sammlungen",
"TAXII Feeds": "TAXII Feeds",
"TAXII feeds": "TAXII-Feeds",
"TAXII feeds": "TAXII Feeds",
"TAXII push": "TAXII drücken",
"TAXII server URL": "TAXII-Server-URL",
"TAXII version": "TAXII-Version",
"Taxonomies": "Taxonomien",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "A public dashboard is a snapshot of a private dashboard at a specific time. If you modify the private dashboard, already created public dashboards won't be modified.",
"About": "About",
"Abstract": "Abstract",
"Limitations applied, number of fully loaded containers: ": "Limitations applied, number of fully loaded containers: ",
"Open this entity in an investigation to be able to see all objects.": "Open this entity in an investigation to be able to see all objects.",
"Accent color": "Accent color",
"Accept": "Accept",
"Access administration": "Access administration",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "Probability greater than",
"likelihood_lte": "Probability less than or equal",
"Limit": "Limit",
"Limitations applied, number of fully loaded containers: ": "Limitations applied, number of fully loaded containers: ",
"Limits": "Limits",
"Line chart": "Line chart",
"Lines view": "Lines view",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "Open Settings",
"Open the entity overview in a separated tab": "Open the entity overview in a separated tab",
"Open the suggestions": "Open the suggestions",
"Open this entity in an investigation to be able to see all objects.": "Open this entity in an investigation to be able to see all objects.",
"OpenBAS installation documentation": "OpenBAS installation documentation",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EE is included for all Filigran SaaS customers without additional fee.",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "TAXII collections",
"TAXII Feeds": "TAXII Feeds",
"TAXII feeds": "TAXII feeds",
"TAXII push": "TAXII push",
"TAXII server URL": "TAXII server URL",
"TAXII version": "TAXII version",
"Taxonomies": "Taxonomies",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "Un panel público es una instantánea de un panel privado en un momento determinado. Si modifica el panel privado, los paneles públicos ya creados no se modificarán.",
"About": "Acerca de",
"Abstract": "Resumen",
"Limitations applied, number of fully loaded containers: ": "Limitaciones aplicadas, número de contenedores completamente cargados:",
"Open this entity in an investigation to be able to see all objects.": "Abra esta entidad en una investigación para poder ver todos los objetos.",
"Accent color": "Color de resalte",
"Accept": "Aceptar",
"Access administration": "Acceder a la administración",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "Probabilidad superior a",
"likelihood_lte": "Probabilidad inferior o igual a",
"Limit": "Límite",
"Limitations applied, number of fully loaded containers: ": "Limitaciones aplicadas, número de contenedores completamente cargados:",
"Limits": "Límites",
"Line chart": "Gráfico de líneas",
"Lines view": "Vista por líneas",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "Abrir Ajustes",
"Open the entity overview in a separated tab": "Abrir la descripción general de la entidad en una pestaña separada",
"Open the suggestions": "Abre las sugerencias",
"Open this entity in an investigation to be able to see all objects.": "Abra esta entidad en una investigación para poder ver todos los objetos.",
"OpenBAS installation documentation": "Documentación de instalación de OpenBAS",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE es de uso gratuito para fines de desarrollo, pruebas e investigación, así como para organizaciones sin ánimo de lucro.",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EE está incluido para todos los clientes de Filigran SaaS sin cargo adicional.",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "Colecciones de TAXII",
"TAXII Feeds": "Suministros TAXII",
"TAXII feeds": "Fuentes TAXII",
"TAXII push": "Empuje TAXII",
"TAXII server URL": "URL del servidor TAXII",
"TAXII version": "Versión de TAXII",
"Taxonomies": "Taxonomías",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "Un tableau de bord public est un instantané d'un tableau de bord privé à un moment précis. Si vous modifiez le tableau de bord privé, les tableaux de bord publics déjà créés ne seront pas modifiés.",
"About": "A propos",
"Abstract": "Résumé",
"Limitations applied, number of fully loaded containers: ": "Limitations appliquées, nombre de conteneurs entièrement chargés :",
"Open this entity in an investigation to be able to see all objects.": "Ouvrir cette entité dans le cadre d'une enquête pour pouvoir voir tous les objets.",
"Accent color": "Couleur d'accentuation",
"Accept": "Accepter",
"Access administration": "Accéder à l'administration",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "Probabilité supérieur à",
"likelihood_lte": "Probabilité inférieur ou égal à",
"Limit": "Limite",
"Limitations applied, number of fully loaded containers: ": "Limitations appliquées, nombre de conteneurs entièrement chargés :",
"Limits": "Limites",
"Line chart": "Graphique linéaire",
"Lines view": "Vue lignes",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "Ouvrir les paramètres",
"Open the entity overview in a separated tab": "Ouvrir la vue d’ensemble de l’entité dans un onglet séparé",
"Open the suggestions": "Ouvrir les suggestions",
"Open this entity in an investigation to be able to see all objects.": "Ouvrir cette entité dans le cadre d'une enquête pour pouvoir voir tous les objets.",
"OpenBAS installation documentation": "Documentation sur l'installation d'OpenBAS",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE est libre d'utilisation à des fins de développement, de test et de recherche ainsi que pour les organisations à but non lucratif.",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EE est inclus pour tous les clients SaaS de Filigran sans frais supplémentaires.",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "Collections TAXII",
"TAXII Feeds": "Flux TAXII",
"TAXII feeds": "Flux TAXII",
"TAXII push": "Push TAXII",
"TAXII server URL": "URL du serveur TAXII",
"TAXII version": "Version de TAXII",
"Taxonomies": "Taxonomies",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "パブリック・ダッシュボードは、特定の時刻におけるプライベート・ダッシュボードのスナップショットです。プライベートダッシュボードを変更しても、すでに作成されたパブリックダッシュボードは変更されません。",
"About": "OpenCTIについて",
"Abstract": "要旨",
"Limitations applied, number of fully loaded containers: ": "制限あり、満載コンテナ数:",
"Open this entity in an investigation to be able to see all objects.": "すべてのオブジェクトを見ることができるようにするには、調査でこのエンティティを開きます。",
"Accent color": "アクセントカラー",
"Accept": "受け入れる",
"Access administration": "管理にアクセス",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "可能性大于",
"likelihood_lte": "可能性低于或等于",
"Limit": "リミット",
"Limitations applied, number of fully loaded containers: ": "制限あり、満載コンテナ数:",
"Limits": "限界",
"Line chart": "ラインチャート",
"Lines view": "ライン表示",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "設定を開く",
"Open the entity overview in a separated tab": "エンティティの概要を別のタブで開く",
"Open the suggestions": "提案を開く",
"Open this entity in an investigation to be able to see all objects.": "すべてのオブジェクトを見ることができるようにするには、調査でこのエンティティを開きます。",
"OpenBAS installation documentation": "OpenBAS インストール・ドキュメント",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EEは、開発、テスト、研究目的、および非営利組織のために無料で使用できます。",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EEは、Filigran SaaSのすべてのお客様に追加料金なしで含まれています。",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "TAXIIコレクション",
"TAXII Feeds": "TAXII フィード",
"TAXII feeds": "TAXIIフィード",
"TAXII push": "TAXIIプッシュ",
"TAXII server URL": "TAXIIサーバーURL",
"TAXII version": "TAXIIバージョン",
"Taxonomies": "タクソノミー",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "공개 대시보드는 특정 시점에서 개인 대시보드의 스냅샷입니다. 개인 대시보드를 수정해도 이미 생성된 공개 대시보드는 수정되지 않습니다.",
"About": "정보",
"Abstract": "요약",
"Limitations applied, number of fully loaded containers: ": "제한 사항 적용, 완전히 로드된 컨테이너 수:",
"Open this entity in an investigation to be able to see all objects.": "조사에서 이 엔티티를 열면 모든 개체를 볼 수 있습니다.",
"Accent color": "강조 색상",
"Accept": "수락",
"Access administration": "액세스 관리",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "확률이 큼",
"likelihood_lte": "확률이 작거나 같음",
"Limit": "제한",
"Limitations applied, number of fully loaded containers: ": "제한 사항 적용, 완전히 로드된 컨테이너 수:",
"Limits": "제한",
"Line chart": "선형 차트",
"Lines view": "선형 보기",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "설정 열기",
"Open the entity overview in a separated tab": "분리된 탭에서 엔터티 개요 열기",
"Open the suggestions": "제안 열기",
"Open this entity in an investigation to be able to see all objects.": "조사에서 이 엔티티를 열면 모든 개체를 볼 수 있습니다.",
"OpenBAS installation documentation": "OpenBAS 설치 문서",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE는 비영리 단체뿐만 아니라 개발, 테스트 및 연구 목적으로 무료로 사용할 수 있습니다.",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "OpenCTI EE는 모든 Filigran SaaS 고객에게 추가 비용 없이 포함됩니다.",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "TAXII 컬렉션",
"TAXII Feeds": "TAXII 피드",
"TAXII feeds": "TAXII 피드",
"TAXII push": "TAXII 푸시",
"TAXII server URL": "TAXII 서버 URL",
"TAXII version": "TAXII 버전",
"Taxonomies": "분류",
Expand Down
5 changes: 3 additions & 2 deletions opencti-platform/opencti-front/lang/front/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
"A public dashboard is a snapshot...": "公共仪表盘是私人仪表盘在特定时间的快照。如果修改了私人仪表盘,则不会修改已创建的公共仪表盘。",
"About": "关于",
"Abstract": "摘要",
"Limitations applied, number of fully loaded containers: ": "限制条件,满载集装箱数量:",
"Open this entity in an investigation to be able to see all objects.": "在调查中打开此实体,以便查看所有对象。",
"Accent color": "辅助色",
"Accept": "接受",
"Access administration": "访问管理",
Expand Down Expand Up @@ -1595,6 +1593,7 @@
"likelihood_gt": "可能性大于",
"likelihood_lte": "可能性低于或等于",
"Limit": "限制",
"Limitations applied, number of fully loaded containers: ": "限制条件,满载集装箱数量:",
"Limits": "边界",
"Line chart": "折线图",
"Lines view": "线条视图",
Expand Down Expand Up @@ -1966,6 +1965,7 @@
"Open Settings": "打开设置",
"Open the entity overview in a separated tab": "在单独的标签页中打开实体概览",
"Open the suggestions": "打开建议",
"Open this entity in an investigation to be able to see all objects.": "在调查中打开此实体,以便查看所有对象。",
"OpenBAS installation documentation": "OpenBAS 安装文档",
"OpenCTI EE is free-to-use for development, testing and research purposes as well as for non-profit organizations.": "OpenCTI EE 可免费用于开发、测试和研究目的,也可用于非营利组织。",
"OpenCTI EE is included for all Filigran SaaS customers without additional fee.": "所有 Filigran SaaS 客户均可免费使用 OpenCTI EE。",
Expand Down Expand Up @@ -2630,6 +2630,7 @@
"TAXII collections": "TAXII集合",
"TAXII Feeds": "TAXII订阅源",
"TAXII feeds": "TAXII 源",
"TAXII push": "TAXII 推动",
"TAXII server URL": "TAXII 服务器 URL",
"TAXII version": "TAXII 版本",
"Taxonomies": "分类法",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ const IngestionMenu = () => {
path: '/dashboard/data/ingestion/taxii',
label: 'TAXII Feeds',
},
{
path: '/dashboard/data/ingestion/collection',
label: 'TAXII Push',
},
{
path: '/dashboard/data/ingestion/rss',
label: 'RSS Feeds',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import React from 'react';
import makeStyles from '@mui/styles/makeStyles';
import { QueryRenderer } from '../../../relay/environment';
import ListLines from '../../../components/list_lines/ListLines';
import IngestionTaxiiCollectionLines, { IngestionTaxiiCollectionLinesQuery } from './ingestionTaxiiCollection/IngestionTaxiiCollectionLines';
import IngestionTaxiiCollectionCreation from './ingestionTaxiiCollection/IngestionTaxiiCollectionCreation';
import { usePaginationLocalStorage } from '../../../utils/hooks/useLocalStorage';
import { useFormatter } from '../../../components/i18n';
import IngestionMenu from './IngestionMenu';
import Breadcrumbs from '../../../components/Breadcrumbs';
import Security from '../../../utils/Security';
import { INGESTION_SETINGESTIONS } from '../../../utils/hooks/useGranted';

const LOCAL_STORAGE_KEY = 'ingestionTaxii';

// Deprecated - https://mui.com/system/styles/basics/
// Do not use it for new code.
const useStyles = makeStyles(() => ({
container: {
margin: 0,
padding: '0 200px 50px 0',
},
}));

const IngestionTaxiiCollections = () => {
const classes = useStyles();
const { t_i18n } = useFormatter();
const {
viewStorage,
paginationOptions,
helpers: storageHelpers,
} = usePaginationLocalStorage(LOCAL_STORAGE_KEY, {
sortBy: 'name',
orderAsc: false,
searchTerm: '',
});
const dataColumns = {
name: {
label: 'Name',
width: '15%',
isSortable: true,
},
id: {
label: 'Push Collection URI',
width: '65%',
isSortable: false,
},
ingestion_running: {
label: 'Status',
width: '10%',
isSortable: false,
},
};
return (
<div className={classes.container}>
<Breadcrumbs elements={[{ label: t_i18n('Data') }, { label: t_i18n('Ingestion') }, { label: t_i18n('TAXII push'), current: true }]} />
<IngestionMenu/>
<ListLines
helpers={storageHelpers}
sortBy={viewStorage.sortBy}
orderAsc={viewStorage.orderAsc}
dataColumns={dataColumns}
handleSort={storageHelpers.handleSort}
handleSearch={storageHelpers.handleSearch}
displayImport={false}
secondaryAction={true}
keyword={viewStorage.searchTerm}
>
<QueryRenderer
query={IngestionTaxiiCollectionLinesQuery}
variables={{ count: 200, ...paginationOptions }}
render={({ props }) => (
<IngestionTaxiiCollectionLines
data={props}
paginationOptions={paginationOptions}
refetchPaginationOptions={{ count: 200, ...paginationOptions }}
dataColumns={dataColumns}
initialLoading={props === null}
/>
)}
/>
</ListLines>
<Security needs={[INGESTION_SETINGESTIONS]}>
<IngestionTaxiiCollectionCreation paginationOptions={paginationOptions} />
</Security>
</div>
);
};

export default IngestionTaxiiCollections;
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const Feed = lazy(() => import('./Feed'));
const Sync = lazy(() => import('./Sync'));
const IngestionRss = lazy(() => import('./IngestionRss'));
const IngestionTaxiis = lazy(() => import('./IngestionTaxiis'));
const IngestionTaxiiCollections = lazy(() => import('./IngestionTaxiiCollections'));
const Playbooks = lazy(() => import('./Playbooks'));
const RootPlaybook = lazy(() => import('./playbooks/Root'));
const RootImport = lazy(() => import('./import/Root'));
Expand Down Expand Up @@ -101,6 +102,10 @@ const Root = () => {
path="/ingestion/taxii"
element={boundaryWrapper(IngestionTaxiis)}
/>
<Route
path="/ingestion/collection"
element={boundaryWrapper(IngestionTaxiiCollections)}
/>
<Route
path="/ingestion/csv"
element={boundaryWrapper(IngestionCsv)}
Expand Down
Loading
Loading