Showing
1 changed file
with
15 additions
and
37 deletions
... | @@ -219,26 +219,12 @@ namespace VulnUserCodeAnalyzer | ... | @@ -219,26 +219,12 @@ namespace VulnUserCodeAnalyzer |
219 | var repoBytes = Encoding.Unicode.GetBytes(repository); | 219 | var repoBytes = Encoding.Unicode.GetBytes(repository); |
220 | var repoBase64 = Convert.ToBase64String(repoBytes); | 220 | var repoBase64 = Convert.ToBase64String(repoBytes); |
221 | 221 | ||
222 | - var repoDir = new DirectoryInfo($@"C:\Repo\{repoBase64}"); | 222 | + foreach (var (userName, repository) in reposits) |
223 | - if (repoDir.Exists) | ||
224 | { | 223 | { |
225 | - continue; | 224 | + Console.WriteLine($"{userName}, {repository}"); |
226 | } | 225 | } |
227 | - repoDir.Create(); | ||
228 | - Console.WriteLine($"Clone... Path : {repoDir.FullName}, Url : {repository}"); | ||
229 | - Clone(repoDir.FullName, repository); | ||
230 | 226 | ||
231 | - repoPath = repoDir.FullName; | 227 | + Console.ReadLine(); |
232 | - userId = userName; | ||
233 | - } | ||
234 | - if (!string.IsNullOrWhiteSpace(repoPath) && !string.IsNullOrWhiteSpace(userId)) | ||
235 | - { | ||
236 | - break; | ||
237 | - } | ||
238 | - repoWatch.Restart(); | ||
239 | - } | ||
240 | - //Console.WriteLine("엔터를 누르세요"); | ||
241 | - //Console.ReadLine(); | ||
242 | 228 | ||
243 | /* hashDict = 사용된 사용자 함수 정보 */ | 229 | /* hashDict = 사용된 사용자 함수 정보 */ |
244 | var hashDict = new Dictionary<int, HashSet<VulnAbstractCrawler.UserBlock>>(); | 230 | var hashDict = new Dictionary<int, HashSet<VulnAbstractCrawler.UserBlock>>(); |
... | @@ -297,7 +283,7 @@ namespace VulnUserCodeAnalyzer | ... | @@ -297,7 +283,7 @@ namespace VulnUserCodeAnalyzer |
297 | * CVE를 가지고 있다고 인정하는 프로그램 정책 때문 | 283 | * CVE를 가지고 있다고 인정하는 프로그램 정책 때문 |
298 | */ | 284 | */ |
299 | var searchedCveHashList = VulnRDS.SelectVulnbyCve(cve); | 285 | var searchedCveHashList = VulnRDS.SelectVulnbyCve(cve); |
300 | - Console.WriteLine($"CVE:{cve}, Received Count : {searchedCveHashList.Count()}"); | 286 | + Console.WriteLine($"cve:{cve}, {searchedCveHashList.Count()}개 가져옴"); |
301 | foreach (var s in searchedCveHashList) | 287 | foreach (var s in searchedCveHashList) |
302 | { | 288 | { |
303 | vulnHashSet.Add(s); | 289 | vulnHashSet.Add(s); |
... | @@ -311,7 +297,7 @@ namespace VulnUserCodeAnalyzer | ... | @@ -311,7 +297,7 @@ namespace VulnUserCodeAnalyzer |
311 | /* 본격적인 취약점 매칭 부분 */ | 297 | /* 본격적인 취약점 매칭 부분 */ |
312 | foreach (var vulnSet in vulnDict) | 298 | foreach (var vulnSet in vulnDict) |
313 | { | 299 | { |
314 | - Console.WriteLine($"-----cve:{vulnSet.Key}"); | 300 | + //Console.WriteLine($"-----cve:{vulnSet.Key}"); |
315 | bool match = false; | 301 | bool match = false; |
316 | foreach (var vuln in vulnSet.Value) | 302 | foreach (var vuln in vulnSet.Value) |
317 | { | 303 | { |
... | @@ -323,7 +309,6 @@ namespace VulnUserCodeAnalyzer | ... | @@ -323,7 +309,6 @@ namespace VulnUserCodeAnalyzer |
323 | { | 309 | { |
324 | if (hashDict.ContainsKey(vuln.LenFunc)) | 310 | if (hashDict.ContainsKey(vuln.LenFunc)) |
325 | { | 311 | { |
326 | - //Console.WriteLine("찾음"); | ||
327 | /* Bloom Filter는 아쉽게도 포함 여부만 알 수 있기에 | 312 | /* Bloom Filter는 아쉽게도 포함 여부만 알 수 있기에 |
328 | * 포함되었음을 알았다면 검색해서 정보를 구한다. */ | 313 | * 포함되었음을 알았다면 검색해서 정보를 구한다. */ |
329 | var userBlock = hashDict[vuln.LenFunc].FirstOrDefault(b => b.Hash == vuln.BlockHash); | 314 | var userBlock = hashDict[vuln.LenFunc].FirstOrDefault(b => b.Hash == vuln.BlockHash); |
... | @@ -352,13 +337,13 @@ namespace VulnUserCodeAnalyzer | ... | @@ -352,13 +337,13 @@ namespace VulnUserCodeAnalyzer |
352 | /* 취약점 레코드가 전부 있어야 CVE 찾음 인정 */ | 337 | /* 취약점 레코드가 전부 있어야 CVE 찾음 인정 */ |
353 | if (match) | 338 | if (match) |
354 | { | 339 | { |
355 | - Console.WriteLine($"Matched CVE : {vulnSet.Key}"); | 340 | + Console.WriteLine($"CVE 찾음 {vulnSet.Key}"); |
356 | /* 찾았으면 cve값을 기록함 밑에서 찾은 cve 정보 전송하기 위해 */ | 341 | /* 찾았으면 cve값을 기록함 밑에서 찾은 cve 정보 전송하기 위해 */ |
357 | findCveList.Add(vulnSet.Key); | 342 | findCveList.Add(vulnSet.Key); |
358 | } | 343 | } |
359 | else | 344 | else |
360 | { | 345 | { |
361 | - Console.WriteLine("Not"); | 346 | + Console.WriteLine("없음"); |
362 | } | 347 | } |
363 | } | 348 | } |
364 | stopwatch.Stop(); | 349 | stopwatch.Stop(); |
... | @@ -366,10 +351,8 @@ namespace VulnUserCodeAnalyzer | ... | @@ -366,10 +351,8 @@ namespace VulnUserCodeAnalyzer |
366 | var hours = stopwatch.Elapsed.Hours; | 351 | var hours = stopwatch.Elapsed.Hours; |
367 | var minutes = stopwatch.Elapsed.Minutes; | 352 | var minutes = stopwatch.Elapsed.Minutes; |
368 | var seconds = stopwatch.Elapsed.Seconds; | 353 | var seconds = stopwatch.Elapsed.Seconds; |
369 | - Console.WriteLine($"Elapsed Time : {hours.ToString("00")}:{minutes.ToString("00")}:{seconds.ToString("00")}"); | 354 | + Console.WriteLine($"경과 시간 {hours.ToString("00")}:{minutes.ToString("00")}:{seconds.ToString("00")}"); |
370 | - Console.WriteLine($"Matched CVE Count : {findCveList.Count}"); | 355 | + Console.WriteLine($"찾은 CVE 개수 : {findCveList.Count}"); |
371 | - //Console.ReadLine(); | ||
372 | - | ||
373 | var yearMatch = new Regex(@"CVE-(\d{4})-(\d+)"); | 356 | var yearMatch = new Regex(@"CVE-(\d{4})-(\d+)"); |
374 | foreach (var cve in findCveList) | 357 | foreach (var cve in findCveList) |
375 | { | 358 | { |
... | @@ -423,9 +406,9 @@ namespace VulnUserCodeAnalyzer | ... | @@ -423,9 +406,9 @@ namespace VulnUserCodeAnalyzer |
423 | 406 | ||
424 | var urlBytes = Convert.FromBase64String(findCveDict[cve].FirstOrDefault().Url); | 407 | var urlBytes = Convert.FromBase64String(findCveDict[cve].FirstOrDefault().Url); |
425 | string url = Encoding.Unicode.GetString(urlBytes); | 408 | string url = Encoding.Unicode.GetString(urlBytes); |
426 | - //Console.WriteLine(findCveDict[cve].FirstOrDefault().Path.Replace(repoPath, "")); | ||
427 | 409 | ||
428 | - var vulnDetail = new VulnRDS.Vuln_detail | 410 | + /* DB 전송 */ |
411 | + VulnRDS.InsertVulnDetail(new VulnRDS.Vuln_detail | ||
429 | { | 412 | { |
430 | CveName = data.Code, | 413 | CveName = data.Code, |
431 | Type = type, | 414 | Type = type, |
... | @@ -434,18 +417,13 @@ namespace VulnUserCodeAnalyzer | ... | @@ -434,18 +417,13 @@ namespace VulnUserCodeAnalyzer |
434 | CveDetail = data.Detail, | 417 | CveDetail = data.Detail, |
435 | Publish_date = data.Publish_Date.ToString("yyyy-MM-dd"), | 418 | Publish_date = data.Publish_Date.ToString("yyyy-MM-dd"), |
436 | Update_date = data.Update_Date.ToString("yyyy-MM-dd"), | 419 | Update_date = data.Update_Date.ToString("yyyy-MM-dd"), |
437 | - UserName = userId, | 420 | + UserName = "samsung", |
438 | Url = url, | 421 | Url = url, |
439 | - FileName = findCveDict[cve].FirstOrDefault().Path.Replace(repoPath, ""), | 422 | + FileName = findCveDict[cve].FirstOrDefault().Path.Replace(@"C:\code", ""), |
440 | FuncName = findCveDict[cve].FirstOrDefault().FuncName, | 423 | FuncName = findCveDict[cve].FirstOrDefault().FuncName, |
441 | Product = data.Type, | 424 | Product = data.Type, |
442 | - }; | 425 | + }); |
443 | - | 426 | + Console.WriteLine("추가 완료"); |
444 | - /* DB 전송 */ | ||
445 | - VulnRDS.InsertVulnDetail(vulnDetail); | ||
446 | - | ||
447 | - Console.WriteLine($"Added CVE: {vulnDetail.CveName}, Type: {vulnDetail.Type}, CVSS: {vulnDetail.Level}"); | ||
448 | - } | ||
449 | } | 427 | } |
450 | } | 428 | } |
451 | } | 429 | } | ... | ... |
-
Please register or login to post a comment