2 Commits

Author SHA1 Message Date
OfficeCom Codex
2ca50a4ee9 Limit uploaded event details
All checks were successful
OfficeCom Sentinel Client / validate-client (push) Successful in 23s
OfficeCom Sentinel Client / build-client-windows (push) Successful in 49s
2026-08-03 01:18:35 +02:00
OfficeCom Codex
d1f78a38fd Publish beta 1.5.0-beta.6 manifest
Some checks failed
OfficeCom Sentinel Client / validate-client (push) Successful in 24s
OfficeCom Sentinel Client / build-client-windows (push) Failing after 48s
2026-08-02 23:53:25 +02:00
6 changed files with 25 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
{ {
"warningEventThreshold": 10, "warningEventThreshold": 10,
"maxReportedEvents": 1000,
"criticalEventThreshold": 30, "criticalEventThreshold": 30,
"warningUniqueIpThreshold": 5, "warningUniqueIpThreshold": 5,
"criticalUniqueIpThreshold": 12, "criticalUniqueIpThreshold": 12,

View File

@@ -1,8 +1,8 @@
{ {
"channel": "beta", "channel": "beta",
"version": "1.5.0-beta.5", "version": "1.5.0-beta.6",
"publishedAtUtc": "2026-07-31T23:44:23.3751992Z", "publishedAtUtc": "2026-08-02T21:52:46.1209296Z",
"artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.5.0-beta.5/OCSentinelClient-win-x64.zip", "artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.5.0-beta.6/OCSentinelClient-win-x64.zip",
"sha256": "d1ac7e9cc9e0da5ea9cbff5e2be5795a5e691c89bbe329df265254c1b4898dbf", "sha256": "341f56e69f0e5e9836af6d87d86851b0d63638a5e902d459af88ee68f94010f5",
"minUpdaterVersion": "1.0.0" "minUpdaterVersion": "1.0.0"
} }

View File

@@ -53,6 +53,14 @@ internal sealed class AttackScanner
attacks.Sort(static (left, right) => left.Timestamp.CompareTo(right.Timestamp)); attacks.Sort(static (left, right) => left.Timestamp.CompareTo(right.Timestamp));
int totalEventCount = attacks.Count;
int maxReportedEvents = Math.Clamp(configuration.MaxReportedEvents, 100, 5000);
List<AttackEvent> reportedEvents = attacks
.OrderByDescending(static attack => attack.Timestamp)
.Take(maxReportedEvents)
.OrderBy(static attack => attack.Timestamp)
.ToList();
List<AggregatedAttack> topSources = attacks List<AggregatedAttack> topSources = attacks
.GroupBy(static attack => attack.SourceIp) .GroupBy(static attack => attack.SourceIp)
.Select(group => AggregatedAttack.FromGroup(group)) .Select(group => AggregatedAttack.FromGroup(group))
@@ -81,7 +89,9 @@ internal sealed class AttackScanner
GeneratedAtUtc = generatedAtUtc, GeneratedAtUtc = generatedAtUtc,
ClientVersion = BuildMetadata.Version, ClientVersion = BuildMetadata.Version,
LookbackDays = options.LookbackDays, LookbackDays = options.LookbackDays,
TotalEvents = attacks.Count, TotalEvents = totalEventCount,
ReportedEventCount = reportedEvents.Count,
EventsTruncated = reportedEvents.Count < totalEventCount,
UniqueIpCount = uniqueIpCount, UniqueIpCount = uniqueIpCount,
AlertState = correlationAssessment.FinalAlertState, AlertState = correlationAssessment.FinalAlertState,
AlertReason = correlationAssessment.CorrelationReason == "No CVE correlation applied." ? baseAlertReason : correlationAssessment.CorrelationReason, AlertReason = correlationAssessment.CorrelationReason == "No CVE correlation applied." ? baseAlertReason : correlationAssessment.CorrelationReason,
@@ -95,7 +105,7 @@ internal sealed class AttackScanner
FinishedAtUtc = generatedAtUtc, FinishedAtUtc = generatedAtUtc,
UploadAttempted = false UploadAttempted = false
}, },
Events = attacks, Events = reportedEvents,
TopSources = topSources, TopSources = topSources,
Errors = errors Errors = errors
}; };

View File

@@ -6,6 +6,8 @@ internal sealed record ScannerConfiguration
{ {
public int WarningEventThreshold { get; init; } = 10; public int WarningEventThreshold { get; init; } = 10;
public int MaxReportedEvents { get; init; } = 1000;
public int CriticalEventThreshold { get; init; } = 30; public int CriticalEventThreshold { get; init; } = 30;
public int WarningUniqueIpThreshold { get; init; } = 5; public int WarningUniqueIpThreshold { get; init; } = 5;

View File

@@ -107,6 +107,10 @@ internal sealed record ScanResult
public int TotalEvents { get; init; } public int TotalEvents { get; init; }
public int ReportedEventCount { get; init; }
public bool EventsTruncated { get; init; }
public int UniqueIpCount { get; init; } public int UniqueIpCount { get; init; }
public string AlertState { get; init; } = "ok"; public string AlertState { get; init; } = "ok";

View File

@@ -9,10 +9,10 @@
<RootNamespace>OCSentinelCli</RootNamespace> <RootNamespace>OCSentinelCli</RootNamespace>
<Product>OfficeCom Sentinel</Product> <Product>OfficeCom Sentinel</Product>
<Company>OfficeCom</Company> <Company>OfficeCom</Company>
<Version>1.5.0-beta.6</Version> <Version>1.5.0-beta.7</Version>
<AssemblyVersion>1.5.0.0</AssemblyVersion> <AssemblyVersion>1.5.0.0</AssemblyVersion>
<FileVersion>1.5.0.0</FileVersion> <FileVersion>1.5.0.0</FileVersion>
<InformationalVersion>1.5.0-beta.6</InformationalVersion> <InformationalVersion>1.5.0-beta.7</InformationalVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>