diff --git a/Gopkg.lock b/Gopkg.lock index a6ec98d6..d409f9f2 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -2,26 +2,26 @@ [[projects]] - digest = "1:ac06a4a43f8618111e6f37d22280a4d58d6d09ca621437cce93af7623c2117d3" + digest = "1:6b1426cad7057b717351eacf5b6fe70f053f11aac1ce254bbf2fd72c031719eb" name = "contrib.go.opencensus.io/exporter/ocagent" packages = ["."] pruneopts = "UT" - revision = "bc69a60230000ba2fe80ce3aba578b8cc6ec7587" - version = "v0.4.11" + revision = "dcb33c7f3b7cfe67e8a2cea10207ede1b7c40764" + version = "v0.4.12" [[projects]] - digest = "1:e5385be33ddb613a47d6648aa2cde03750b1d80a5e6800b809cab755ebfcc188" + digest = "1:9f957886552b6e43a479813209d8b834a62ab49724ace6d7dcf2464e01a9beeb" name = "github.com/Azure/azure-sdk-for-go" packages = [ "storage", "version", ] pruneopts = "UT" - revision = "d659f2a91175cac99aa5627d09b83026eacc978d" - version = "v27.0.0" + revision = "77258e94d84ea36012a72c0e0a1e2faa409c6396" + version = "v29.0.0" [[projects]] - digest = "1:b34c165560597b272b6ccf89dd3175eb7717e6247ce5ece215fa1905a7e19c22" + digest = "1:28d10a9fa2e3e2d57f804c988278c9d23323d16027e9e51b59ed99d87f3c2bb4" name = "github.com/Azure/go-autorest" packages = [ "autorest", @@ -32,8 +32,8 @@ "tracing", ] pruneopts = "UT" - revision = "3b1641ed03046f2ee28d73f7a51e5b884d55b92a" - version = "v11.7.0" + revision = "fe1ebaab71ae2a2ab8a55f62ebe54cffd842acc2" + version = "v12.0.0" [[projects]] digest = "1:9f3b30d9f8e0d7040f729b82dcbc8f0dead820a133b3147ce355fc451f32d761" @@ -60,7 +60,7 @@ version = "v9" [[projects]] - digest = "1:ced9b678d6fdca06376ad5a1203bf7ab164a500268714fedaebdb3b9e90e6530" + digest = "1:f98ff8e868ab828f6efeaeee0cbffacc493fcda42d89cbcee14cf467af14b039" name = "github.com/aws/aws-sdk-go" packages = [ "aws", @@ -99,8 +99,8 @@ "service/sts", ] pruneopts = "UT" - revision = "56c1def75689cceec1fa6f14c2eedb4b798827f9" - version = "v1.19.11" + revision = "52cd98f1ed1857be47c069f1b27a5dbebb0c1995" + version = "v1.19.30" [[projects]] digest = "1:0f98f59e9a2f4070d66f0c9c39561f68fcd1dc837b22a852d28d0003aebd1b1e" @@ -111,12 +111,12 @@ version = "v1.3.1" [[projects]] - digest = "1:166438587ed45ac211dab8a3ecebf4fa0c186d0db63430fb9127bbc2e5fcdc67" + digest = "1:c1100fc71e23b6a32b2c68a5202a848fd13811d5a10b12edb8019c3667d1cd9a" name = "github.com/cenkalti/backoff" packages = ["."] pruneopts = "UT" - revision = "1e4cf3da559842a91afcb6ea6141451e6c30c618" - version = "v2.1.1" + revision = "4b4cebaf850ec58f1bb1fec5bdebdf8501c2bc3f" + version = "v3.0.0" [[projects]] digest = "1:fdb4ed936abeecb46a8c27dcac83f75c05c87a46d9ec7711411eb785c213fa02" @@ -150,12 +150,12 @@ version = "v3.2.0" [[projects]] - digest = "1:938a2672d6ebbb7f7bc63eee3e4b9464c16ffcf77ec8913d3edbf32b4e3984dd" + digest = "1:865079840386857c809b72ce300be7580cb50d3d3129ce11bf9aa6ca2bc1934a" name = "github.com/fatih/color" packages = ["."] pruneopts = "UT" - revision = "570b54cabe6b8eb0bc2dfce68d964677d63b5260" - version = "v1.5.0" + revision = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4" + version = "v1.7.0" [[projects]] digest = "1:abeb38ade3f32a92943e5be54f55ed6d6e3b6602761d74b4aab4c9dd45c18abd" @@ -235,8 +235,7 @@ version = "v1.4.0" [[projects]] - branch = "master" - digest = "1:4e08dc2383a46b3107f0b34ca338c4459e8fc8ee90e46a60e728aa8a2b21d558" + digest = "1:d959625ad576a561d91aae105f7266ea6b245d4822d86bc322823823bb88261a" name = "github.com/gosuri/uitable" packages = [ ".", @@ -244,18 +243,19 @@ "util/wordwrap", ] pruneopts = "UT" - revision = "36ee7e946282a3fb1cfecd476ddc9b35d8847e42" + revision = "2cf933346b8370a3a3d8867ef5cf54b2129d8ecf" + version = "v0.0.3" [[projects]] branch = "master" - digest = "1:8dbe76014be3c83806abc61befcb5e1789d2d872bc8f98a8fb955405550c63be" + digest = "1:ff865425a7102b2337ddf6510f6a84f7d7aea0a4224c95c946e3d45c87141701" name = "github.com/grokify/html-strip-tags-go" packages = ["."] pruneopts = "UT" - revision = "e9e44961e26f513866063f54bf85070db95600f7" + revision = "025bd760b27842de5d468168edd8b764d972a213" [[projects]] - digest = "1:4cbbca3db0ff89197d000fb2fa0b90ca4516a7fbd4d8cd9fa4bebf17df484f6d" + digest = "1:4f30fff718a459f9be272e7aa87463cdf4ba27bb8bd7f586ac34c36d670aada4" name = "github.com/grpc-ecosystem/grpc-gateway" packages = [ "internal", @@ -263,16 +263,16 @@ "utilities", ] pruneopts = "UT" - revision = "20f268a412e5b342ebfb1a0eef7c3b7bd6c260ea" - version = "v1.8.5" + revision = "8fd5fd9d19ce68183a6b0934519dfe7fe6269612" + version = "v1.9.0" [[projects]] - digest = "1:950caca7dfcf796419232ba996c9c3539d09f26af27ba848c4508e604c13efbb" + digest = "1:88e0b0baeb9072f0a4afbcf12dda615fc8be001d1802357538591155998da21b" name = "github.com/hashicorp/go-version" packages = ["."] pruneopts = "UT" - revision = "d40cf49b3a77bba84a7afdbd7f1dc295d114efb1" - version = "v1.1.0" + revision = "ac23dc3fea5d1a983c43f6a0f6e2c13f0195d8bd" + version = "v1.2.0" [[projects]] digest = "1:67474f760e9ac3799f740db2c489e6423a4cde45520673ec123ac831ad849cb8" @@ -326,7 +326,7 @@ version = "v2.14" [[projects]] - digest = "1:ff312c4d510c67954a6fc6a11c9ff72a2b2169584776b7419c7b8c729e2b13ac" + digest = "1:25697b37829fe0afed1e94c5b2e1c7645ac234c7d79ffa4534022e0899f63eec" name = "github.com/jinzhu/gorm" packages = [ ".", @@ -335,8 +335,8 @@ "dialects/sqlite", ] pruneopts = "UT" - revision = "472c70caa40267cb89fd8facb07fe6454b578626" - version = "v1.9.2" + revision = "b7156195f7f3415f97c20abbd6aff894b847fee8" + version = "v1.9.8" [[projects]] branch = "master" @@ -472,40 +472,33 @@ version = "v0.2.8" [[projects]] - digest = "1:b18ffc558326ebaed3b4a175617f1e12ed4e3f53d6ebfe5ba372a3de16d22278" + digest = "1:0e06e487551e2f9e0d6967a15c42223354e37c2e9869b301b14a42e4b51ea3e0" name = "github.com/lib/pq" packages = [ ".", "hstore", "oid", + "scram", ] pruneopts = "UT" - revision = "4ded0e9383f75c197b3a2aaa6d590ac52df6fd79" - version = "v1.0.0" + revision = "bc6a3c0594130b1e34005880bc600b6d3f49fa7f" + version = "v1.1.1" [[projects]] - digest = "1:c568d7727aa262c32bdf8a3f7db83614f7af0ed661474b24588de635c20024c7" + digest = "1:5a0ef768465592efca0412f7e838cdc0826712f8447e70e6ccc52eb441e9ab13" name = "github.com/magiconair/properties" packages = ["."] pruneopts = "UT" - revision = "c2353362d570a7bfa228149c62842019201cfb71" - version = "v1.8.0" + revision = "de8848e004dd33dc07a2947b3d76f618a7fc7ef1" + version = "v1.8.1" [[projects]] - digest = "1:4e878df5f4e9fd625bf9c9aac77ef7cbfa4a74c01265505527c23470c0e40300" - name = "github.com/marstr/guid" - packages = ["."] - pruneopts = "UT" - revision = "8bd9a64bf37eb297b492a4101fb28e80ac0b290f" - version = "v1.1.0" - -[[projects]] - digest = "1:2fa7b0155cd54479a755c629de26f888a918e13f8857a2c442205d825368e084" + digest = "1:c658e84ad3916da105a761660dcaeb01e63416c8ec7bc62256a9b411a05fcd67" name = "github.com/mattn/go-colorable" packages = ["."] pruneopts = "UT" - revision = "3a70a971f94a22f2fa562ffcc7a0eb45f5daf045" - version = "v0.1.1" + revision = "167de6bfdfba052fa6b2d3664c8f5272e23c9072" + version = "v0.0.9" [[projects]] digest = "1:e150b5fafbd7607e2d638e4e5cf43aa4100124e5593385147b0a74e2733d8b0d" @@ -573,7 +566,7 @@ "util", ] pruneopts = "UT" - revision = "812d09910e5c7cace0807618a6cb99c0f5a9d7d8" + revision = "a055cc2c195de03290d5a286f617abd604e00997" [[projects]] digest = "1:95d38d218bf2290987c6b0e885a9f0f2d3d3239235acaddca01c3fe36e5e5566" @@ -611,12 +604,12 @@ version = "v0.2.15" [[projects]] - digest = "1:e0f50a07c0def90588d69f77178712c6fdc67eb6576365f551cce98b44b501bf" + digest = "1:93131d8002d7025da13582877c32d1fc302486775a1b06f62241741006428c5e" name = "github.com/pelletier/go-toml" packages = ["."] pruneopts = "UT" - revision = "63909f0a90ab0f36909e8e044e46ace10cf13ba2" - version = "v1.3.0" + revision = "728039f679cbcd4f6a54e080d2219a4c4928c546" + version = "v1.4.0" [[projects]] digest = "1:cf31692c14422fa27c83a05292eb5cbe0fb2775972e8f1f8446a71549bd8980b" @@ -644,11 +637,11 @@ [[projects]] branch = "master" - digest = "1:cabe9ec8289704e71e45138c18ad90275bce25a8d61145c4130b55d9d9a6d6dc" + digest = "1:551d79f86d5dbc8154f3b97f37f59ff1f66bf639f7af92c7c382d3141a6203cf" name = "github.com/sirupsen/logrus" packages = ["."] pruneopts = "UT" - revision = "9b3cdde74fbe9443d704467498a7dcb61a79de9b" + revision = "f0375eb5b588893ff556c71dee32d98e57a9b777" [[projects]] digest = "1:bb495ec276ab82d3dd08504bbc0594a65de8c3b22c6f2aaa92d05b73fbf3a82e" @@ -746,7 +739,7 @@ [[projects]] branch = "master" - digest = "1:1359e38bae74624895df50f24c994c59db125b686ed6047a3c0a1b7cb96f0c0a" + digest = "1:2c6548bce7a4986c697700d747208f41122d6626216e11c38364d29a313aa220" name = "golang.org/x/crypto" packages = [ "curve25519", @@ -760,11 +753,11 @@ "ssh/terminal", ] pruneopts = "UT" - revision = "38d8ce5564a5b71b2e3a00553993f1b9a7ae852f" + revision = "22d7a77e9e5f409e934ed268692e56707cd169e5" [[projects]] branch = "master" - digest = "1:df69c1d5940da38566e9d90689ae308d78d5d510a72466384a6d8eca40bca80f" + digest = "1:95f34339208666d9d0c806c50902ff1b0948c0507f92e19d1b7c380483507784" name = "golang.org/x/net" packages = [ "context", @@ -778,7 +771,7 @@ "trace", ] pruneopts = "UT" - revision = "eb5bcb51f2a31c7d5141d810b70815c05d9c9146" + revision = "3ec19112720433827bbce8be9342797f5a6aaaf9" [[projects]] branch = "master" @@ -793,15 +786,15 @@ [[projects]] branch = "master" - digest = "1:75515eedc0dc2cb0b40372008b616fa2841d831c63eedd403285ff286c593295" + digest = "1:382bb5a7fb4034db3b6a2d19e5a4a6bcf52f4750530603c01ca18a172fa3089b" name = "golang.org/x/sync" packages = ["semaphore"] pruneopts = "UT" - revision = "e225da77a7e68af35c70ccbf71af2b83e6acac3c" + revision = "112230192c580c3556b8cee6403af37a4fc5f28c" [[projects]] branch = "master" - digest = "1:580bd6f5fcc95d5d3dfa5f6916ccfaac7abb1722b1bfc7f042603e167428a802" + digest = "1:1a1855ef6bc1338dd3870260716214046cefd69855c5a5a772d44d2791478abc" name = "golang.org/x/sys" packages = [ "cpu", @@ -809,16 +802,18 @@ "windows", ] pruneopts = "UT" - revision = "4b34438f7a67ee5f45cc6132e2bad873a20324e9" + revision = "3a4b5fb9f71f5874b2374ae059bc0e0bcb52e145" [[projects]] - digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" + digest = "1:8d8faad6b12a3a4c819a3f9618cb6ee1fa1cfc33253abeeea8b55336721e3405" name = "golang.org/x/text" packages = [ "collate", "collate/build", "internal/colltab", "internal/gen", + "internal/language", + "internal/language/compact", "internal/tag", "internal/triegen", "internal/ucd", @@ -831,27 +826,27 @@ "unicode/rangetable", ] pruneopts = "UT" - revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" - version = "v0.3.0" + revision = "342b2e1fbaa52c93f31447ad2c6abc048c63e475" + version = "v0.3.2" [[projects]] branch = "master" - digest = "1:363686890941480b8d1a0421b9e538cf55feaf9c7967bf4c809150b36138fe1c" + digest = "1:c44a77760372a998be8d4656e8d3c865f68735ec4cad1743a245903a58f64249" name = "golang.org/x/xerrors" packages = [ ".", "internal", ] pruneopts = "UT" - revision = "d61658bd2e18010be0e21349cc92b1b706e35146" + revision = "3ee3066db522c6628d440a3a91c4abdd7f5ef22f" [[projects]] digest = "1:5f003878aabe31d7f6b842d4de32b41c46c214bb629bb485387dbcce1edf5643" name = "google.golang.org/api" packages = ["support/bundler"] pruneopts = "UT" - revision = "bce707a4d0ea3488942724b3bcc1c8338f38f991" - version = "v0.3.0" + revision = "721295fe20d585ce7e948146f82188429d14da33" + version = "v0.5.0" [[projects]] digest = "1:7e8b9c5ae49011b12ae8473834ac1a7bb8ac029ba201270c723e4c280c9e4855" @@ -867,12 +862,12 @@ "urlfetch", ] pruneopts = "UT" - revision = "54a98f90d1c46b7731eb8fb305d2a321c30ef610" - version = "v1.5.0" + revision = "4c25cacc810c02874000e4f7071286a8e96b2515" + version = "v1.6.0" [[projects]] branch = "master" - digest = "1:5dc13cd8c0b417e12d187938d2ccb2348dda90f6d3d4a3d8402a40677a5ac982" + digest = "1:3565a93b7692277a5dea355bc47bd6315754f3246ed07a224be6aec28972a805" name = "google.golang.org/genproto" packages = [ "googleapis/api/httpbody", @@ -880,10 +875,10 @@ "protobuf/field_mask", ] pruneopts = "UT" - revision = "64821d5d210748c883cd2b809589555ae4654203" + revision = "d00d292a067ce1aa0017b40ca75437b42461fa61" [[projects]] - digest = "1:c00eb80d7b152379c3e94c38d82b29deca98b1d0f53e4e20362589b7fcbffa07" + digest = "1:707c3a5d10ed430ea767d73df122d9eb3dfb6312bbacc9f2e39204390686d1d0" name = "google.golang.org/grpc" packages = [ ".", @@ -900,6 +895,7 @@ "grpclog", "internal", "internal/backoff", + "internal/balancerload", "internal/binarylog", "internal/channelz", "internal/envconfig", @@ -919,8 +915,8 @@ "tap", ] pruneopts = "UT" - revision = "3507fb8e1a5ad030303c106fef3a47c9fdad16ad" - version = "v1.19.1" + revision = "25c4f928eaa6d96443009bd842389fb4fa48664e" + version = "v1.20.1" [[projects]] digest = "1:e626376fab8608a972d47e91b3c1bbbddaecaf1d42b82be6dcc52d10a7557893" @@ -947,12 +943,12 @@ version = "v2.0.6" [[projects]] - digest = "1:938a2672d6ebbb7f7bc63eee3e4b9464c16ffcf77ec8913d3edbf32b4e3984dd" + digest = "1:865079840386857c809b72ce300be7580cb50d3d3129ce11bf9aa6ca2bc1934a" name = "gopkg.in/fatih/color.v1" packages = ["."] pruneopts = "UT" - revision = "570b54cabe6b8eb0bc2dfce68d964677d63b5260" - version = "v1.5.0" + revision = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4" + version = "v1.7.0" [[projects]] digest = "1:c658e84ad3916da105a761660dcaeb01e63416c8ec7bc62256a9b411a05fcd67" diff --git a/models/scanresults.go b/models/scanresults.go index 9e93a868..baf9122d 100644 --- a/models/scanresults.go +++ b/models/scanresults.go @@ -51,6 +51,7 @@ type ScanResult struct { ScannedVersion string `json:"scannedVersion"` ScannedRevision string `json:"scannedRevision"` ScannedBy string `json:"scannedBy"` + ScannedVia string `json:"scannedVia"` ScannedIPv4Addrs []string `json:"scannedIpv4Addrs,omitempty"` ScannedIPv6Addrs []string `json:"scannedIpv6Addrs,omitempty"` ReportedAt time.Time `json:"reportedAt"` diff --git a/scan/base.go b/scan/base.go index 9f2543af..2b1b8c97 100644 --- a/scan/base.go +++ b/scan/base.go @@ -390,6 +390,13 @@ func (l *base) convertToModel() models.ScanResult { errs = append(errs, fmt.Sprintf("%s", e)) } + scannedVia := scannedViaRemote + if isLocalExec(l.ServerInfo.Port, l.ServerInfo.Host) { + scannedVia = scannedViaLocal + } else if l.ServerInfo.Type == config.ServerTypePseudo { + scannedVia = scannedViaPseudo + } + return models.ScanResult{ JSONVersion: models.JSONVersion, ServerName: l.ServerInfo.ServerName, @@ -402,6 +409,7 @@ func (l *base) convertToModel() models.ScanResult { IPv4Addrs: l.ServerInfo.IPv4Addrs, IPv6Addrs: l.ServerInfo.IPv6Addrs, ScannedCves: l.VulnInfos, + ScannedVia: scannedVia, RunningKernel: l.Kernel, Packages: l.Packages, SrcPackages: l.SrcPackages, diff --git a/scan/executil.go b/scan/executil.go index 8c7c329e..3c862ab9 100644 --- a/scan/executil.go +++ b/scan/executil.go @@ -162,8 +162,7 @@ func exec(c conf.ServerInfo, cmd string, sudo bool, log ...*logrus.Entry) (resul logger := getSSHLogger(log...) logger.Debugf("Executing... %s", strings.Replace(cmd, "\n", "", -1)) - if c.Port == "local" && - (c.Host == "127.0.0.1" || c.Host == "localhost") { + if isLocalExec(c.Port, c.Host) { result = localExec(c, cmd, sudo) } else if conf.Conf.SSHNative { result = sshExecNative(c, cmd, sudo) @@ -175,6 +174,10 @@ func exec(c conf.ServerInfo, cmd string, sudo bool, log ...*logrus.Entry) (resul return } +func isLocalExec(port, host string) bool { + return port == "local" && (host == "127.0.0.1" || host == "localhost") +} + func localExec(c conf.ServerInfo, cmdstr string, sudo bool) (result execResult) { cmdstr = decorateCmd(c, cmdstr, sudo) var cmd *ex.Cmd diff --git a/scan/serverapi.go b/scan/serverapi.go index 64c2d5c0..d863a975 100644 --- a/scan/serverapi.go +++ b/scan/serverapi.go @@ -32,6 +32,12 @@ import ( "golang.org/x/xerrors" ) +const ( + scannedViaRemote = "remote" + scannedViaLocal = "local" + scannedViaPseudo = "pseudo" +) + var ( errOSFamilyHeader = xerrors.New("X-Vuls-OS-Family header is required") errOSReleaseHeader = xerrors.New("X-Vuls-OS-Release header is required")