Code source
Le code source de Sylexe est disponible sur GitHub.
Code de la Base de données
Le code de la base de données est disponible dans le dossier SylexeRadzen/SQLManagement/Services
du Github.
GetReportsAsync
public async Task<List<SylexeReports>> GetReportsAsync()
{
return await dbContext.sylexeReports.ToListAsync();
}
AddReportsAsync
public async Task<SylexeReports> AddReportsAsync(SylexeReports report)
{
try
{
dbContext.sylexeReports.Add(report);
await dbContext.SaveChangesAsync();
}
catch (Exception)
{
throw;
}
return report;
}
UpdateReportsAsync
public async Task<SylexeReports> UpdateReportsAsync(SylexeReports report)
{
try
{
var ReportsExist = dbContext.sylexeReports.FirstOrDefault(l => l.Id == report.Id);
if (ReportsExist != null)
{
dbContext.Update(report);
await dbContext.SaveChangesAsync();
}
}
catch (Exception)
{
throw;
}
return report;
}
DeleteReportsAsync
public async Task DeleteCategoriesAsync(SylexeReports categories)
{
try
{
dbContext.sylexeReports.Remove(categories);
await dbContext.SaveChangesAsync();
}
catch (Exception)
{
throw;
}
}
Code de l’analyseur avec Trivy
Le code de l’analyseur avec Trivy est disponible dans le dossier SylexeRadzen/Pages/Analyze.razor
du Github.
ExecTrivyScan
void ExecTrivyScan(string DockerScan)
{
Process serverSideProcess = new Process();
serverSideProcess.StartInfo.FileName = Environment.GetEnvironmentVariable("docker");
serverSideProcess.StartInfo.FileName = @"C:\Program Files\Docker\Docker\resources\bin\docker.exe";
var path = Path.Combine(WebEnvironment.ContentRootPath, WebEnvironment.EnvironmentName);
DateTime currentDateTime = DateTime.Now;
string formattedDateTime = currentDateTime.ToString("dd-MMMM-yyyy-HH:mm:ss");
string input = (DockerScan + "-" + formattedDateTime);
string temp = Regex.Replace(input, @"\/", "-");
string pathOfJson = Regex.Replace(temp, @":", "_");
serverSideProcess.StartInfo.Arguments = String.Format("run -v {0}:/result aquasec/trivy:0.34.0 -d image -f json -o /result/{1}.json {2}", path, pathOfJson, DockerScan);
serverSideProcess.EnableRaisingEvents = true;
serverSideProcess.StartInfo.UseShellExecute = true;
serverSideProcess.Start();
_sylexeService.AddReportsAsync(new SylexeReports
{
Name = DockerScan,
Timestamp = formattedDateTime,
Path = pathOfJson+".json"
});
}