Skip to content
Snippets Groups Projects
Commit eea372fe authored by Jonas Kjærandsen's avatar Jonas Kjærandsen
Browse files

Merge branch 'main' of git.gvk.idi.ntnu.no:Johannesb/dcsg2900-threattotal into main

parents 3e33084d aa528a75
Branches
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@ func HashIntelligence(c *gin.Context) {
var hashInt []byte
var err error
var completeInt bool
hash := strings.TrimSpace(c.Query("hash"))
......@@ -28,21 +29,23 @@ func HashIntelligence(c *gin.Context) {
fmt.Println("No Cache hit")
// Perform the request
hashInt, err = hashSearch(hash)
hashInt, err, completeInt = hashSearch(hash)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"Error ": "Invalid response from third party API's."})
return
}
// Add the data to the database
response, err := utils.Conn.Do("SETEX", "hash:"+hash, utils.CacheDurationHash, hashInt)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "Error adding data to redis, hash-intelligence")
if completeInt {
// Add the data to the database
response, err := utils.Conn.Do("SETEX", "hash:"+hash, utils.CacheDurationHash, hashInt)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "Error adding data to redis, hash-intelligence")
}
}
fmt.Println(response)
fmt.Println(response)
}
} else {
......@@ -76,7 +79,7 @@ func HashIntelligence(c *gin.Context) {
c.Data(http.StatusOK, "application/json", hashInt)
}
func hashSearch(hash string) (data []byte, err error) {
func hashSearch(hash string) (data []byte, err error, complete bool) {
var wg sync.WaitGroup
var responseData [2]utils.FrontendResponse2
......@@ -98,12 +101,25 @@ func hashSearch(hash string) (data []byte, err error) {
utils.SetResultHash(resultPointer, len(responseData))
complete = checkIfIntelligenceCompleteHash(resultResponse, len(responseData))
hashInt, err := json.Marshal(resultResponse)
if err != nil {
fmt.Println(err)
logging.Logerror(err, "")
return nil, err
return nil, err, complete
}
return hashInt, nil, complete
}
func checkIfIntelligenceCompleteHash(jsonData utils.ResultFrontendResponse, size int) (complete bool) {
complete = true
for i := 0; i <= size-1; i++ {
if jsonData.FrontendResponse[i].EN.Status == "Awaiting analysis" || jsonData.FrontendResponse[i].EN.Status == "Error" {
complete = false
}
}
return hashInt, nil
return complete
}
package logging
import (
"log"
//"log/syslog"
"os"
"log"
//"log/syslog"
"os"
)
//Function to handle logging of errors to errorlog file with message
func Logerror(err error, msg string) {
// log to custom file
LOG_FILE := "./logs/errorlog"
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// log to custom file
LOG_FILE := "./logs/errorlog"
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// Set log out put and enjoy :)
log.SetOutput(logFile)
// optional: log date-time, filename, and line number
log.SetFlags(log.Lshortfile | log.LstdFlags)
// Set log output file
log.SetOutput(logFile)
// log date-time, filename
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Println(msg, err)
}
func Loginfo(msg string){
//Function to handle information logging to infofile
func Loginfo(msg string) {
LOG_FILE := "./logs/infolog"
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// Set log out put and enjoy :)
log.SetOutput(logFile)
// Set log output
log.SetOutput(logFile)
// optional: log date-time, filename, and line number
log.SetFlags(log.Lshortfile | log.LstdFlags)
//log date-time, filename
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Println(msg)
}
//Function to handle error message display to file.
func Logerrorinfo(msg string) {
// log to custom file
LOG_FILE := "./logs/errorlog"
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// log to custom file
LOG_FILE := "./logs/errorlog"
// open log file
logFile, err := os.OpenFile(LOG_FILE, os.O_APPEND|os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Panic(err)
}
defer logFile.Close()
// Set log out put and enjoy :)
log.SetOutput(logFile)
// Set log output file :)
log.SetOutput(logFile)
// optional: log date-time, filename, and line number
log.SetFlags(log.Lshortfile | log.LstdFlags)
//log date-time, filename
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Println(msg)
}
\ No newline at end of file
......@@ -44,7 +44,7 @@ if (props.Data === "") {
</div>
</div>
<div className="">
<p>Tags: {props.Data.en.tags}</p>
<p>Tags: {t("tags")}</p>
<p>{t("shortForm")} {t("content")}</p>
</div>
</div>
......
......@@ -156,7 +156,7 @@ func SetResponseObjectAlienVaultHash(jsonResponse AlienVaultHash, response *Fron
response.EN.Status = "Safe"
response.EN.Content = "We have no information indicating that this file is malicious."
response.NO.Content = "Trygg"
response.NO.Status = "Trygg"
response.NO.Content = "Vi har ingen informasjon som tyder på at dette er en ondsinnet fil."
} else {
response.EN.Status = "Risk"
......@@ -197,11 +197,11 @@ func SetResponseObjectHybridAnalysisHash(jsonResponse HybridAnalysishash, respon
response.NO.Status = "Trygg"
response.NO.Content = "I henhold til informasjon gitt av HybridAnalysis tilsier ikke denne filen noen trussel."
} else {
response.EN.Status = "Unknown" //Denne må byttes til at den er ukjent // grå farge elns på frontend.
response.EN.Status = "Unknown"
response.EN.Content = "This file hash is not known to Hybrid Analysis."
response.NO.Status = "Ukjent"
response.NO.Status = "Denne filhashen er ukjent for Hybrid Analysis."
response.NO.Content = "Denne filhashen er ukjent for Hybrid Analysis."
}
fmt.Println(jsonResponse[0].Verdict)
// Set the filename field if known
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment