Compare commits
2 Commits
v1.5.0-bet
...
v1.5.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ca50a4ee9 | ||
|
|
d1f78a38fd |
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"warningEventThreshold": 10,
|
||||
"maxReportedEvents": 1000,
|
||||
"criticalEventThreshold": 30,
|
||||
"warningUniqueIpThreshold": 5,
|
||||
"criticalUniqueIpThreshold": 12,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"channel": "beta",
|
||||
"version": "1.5.0-beta.5",
|
||||
"publishedAtUtc": "2026-07-31T23:44:23.3751992Z",
|
||||
"artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.5.0-beta.5/OCSentinelClient-win-x64.zip",
|
||||
"sha256": "d1ac7e9cc9e0da5ea9cbff5e2be5795a5e691c89bbe329df265254c1b4898dbf",
|
||||
"version": "1.5.0-beta.6",
|
||||
"publishedAtUtc": "2026-08-02T21:52:46.1209296Z",
|
||||
"artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.5.0-beta.6/OCSentinelClient-win-x64.zip",
|
||||
"sha256": "341f56e69f0e5e9836af6d87d86851b0d63638a5e902d459af88ee68f94010f5",
|
||||
"minUpdaterVersion": "1.0.0"
|
||||
}
|
||||
|
||||
@@ -53,6 +53,14 @@ internal sealed class AttackScanner
|
||||
|
||||
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
|
||||
.GroupBy(static attack => attack.SourceIp)
|
||||
.Select(group => AggregatedAttack.FromGroup(group))
|
||||
@@ -81,7 +89,9 @@ internal sealed class AttackScanner
|
||||
GeneratedAtUtc = generatedAtUtc,
|
||||
ClientVersion = BuildMetadata.Version,
|
||||
LookbackDays = options.LookbackDays,
|
||||
TotalEvents = attacks.Count,
|
||||
TotalEvents = totalEventCount,
|
||||
ReportedEventCount = reportedEvents.Count,
|
||||
EventsTruncated = reportedEvents.Count < totalEventCount,
|
||||
UniqueIpCount = uniqueIpCount,
|
||||
AlertState = correlationAssessment.FinalAlertState,
|
||||
AlertReason = correlationAssessment.CorrelationReason == "No CVE correlation applied." ? baseAlertReason : correlationAssessment.CorrelationReason,
|
||||
@@ -95,7 +105,7 @@ internal sealed class AttackScanner
|
||||
FinishedAtUtc = generatedAtUtc,
|
||||
UploadAttempted = false
|
||||
},
|
||||
Events = attacks,
|
||||
Events = reportedEvents,
|
||||
TopSources = topSources,
|
||||
Errors = errors
|
||||
};
|
||||
|
||||
@@ -6,6 +6,8 @@ internal sealed record ScannerConfiguration
|
||||
{
|
||||
public int WarningEventThreshold { get; init; } = 10;
|
||||
|
||||
public int MaxReportedEvents { get; init; } = 1000;
|
||||
|
||||
public int CriticalEventThreshold { get; init; } = 30;
|
||||
|
||||
public int WarningUniqueIpThreshold { get; init; } = 5;
|
||||
|
||||
@@ -107,6 +107,10 @@ internal sealed record ScanResult
|
||||
|
||||
public int TotalEvents { get; init; }
|
||||
|
||||
public int ReportedEventCount { get; init; }
|
||||
|
||||
public bool EventsTruncated { get; init; }
|
||||
|
||||
public int UniqueIpCount { get; init; }
|
||||
|
||||
public string AlertState { get; init; } = "ok";
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
<RootNamespace>OCSentinelCli</RootNamespace>
|
||||
<Product>OfficeCom Sentinel</Product>
|
||||
<Company>OfficeCom</Company>
|
||||
<Version>1.5.0-beta.6</Version>
|
||||
<Version>1.5.0-beta.7</Version>
|
||||
<AssemblyVersion>1.5.0.0</AssemblyVersion>
|
||||
<FileVersion>1.5.0.0</FileVersion>
|
||||
<InformationalVersion>1.5.0-beta.6</InformationalVersion>
|
||||
<InformationalVersion>1.5.0-beta.7</InformationalVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user