1
0
mirror of https://github.com/aquasecurity/kube-bench.git synced 2024-11-01 04:49:55 +00:00
kube-bench/check/test_test.go

122 lines
3.2 KiB
Go
Raw Normal View History

2017-05-26 09:25:29 +00:00
// Copyright © 2017 Aqua Security Software Ltd. <info@aquasec.com>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package check
import (
"io/ioutil"
2017-08-12 18:54:33 +00:00
"os"
"strings"
2017-05-26 09:25:29 +00:00
"testing"
)
var (
in []byte
controls *Controls
)
func init() {
var err error
in, err = ioutil.ReadFile("data")
if err != nil {
panic("Failed reading test data: " + err.Error())
}
2017-08-12 18:54:33 +00:00
// substitute variables in data file
user := os.Getenv("USER")
s := strings.Replace(string(in), "$user", user, -1)
controls, err = NewControls(MASTER, []byte(s))
// controls, err = NewControls(MASTER, in)
if err != nil {
panic("Failed creating test controls: " + err.Error())
}
2017-05-26 09:25:29 +00:00
}
func TestTestExecute(t *testing.T) {
2017-08-12 18:54:33 +00:00
2017-05-26 09:25:29 +00:00
cases := []struct {
2017-08-12 18:54:33 +00:00
*Check
str string
2017-05-26 09:25:29 +00:00
}{
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[0],
2017-05-26 09:25:29 +00:00
"2:45 ../kubernetes/kube-apiserver --allow-privileged=false --option1=20,30,40",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[1],
2017-05-26 09:25:29 +00:00
"2:45 ../kubernetes/kube-apiserver --allow-privileged=false",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[2],
2017-05-26 09:25:29 +00:00
"niinai 13617 2635 99 19:26 pts/20 00:03:08 ./kube-apiserver --insecure-port=0 --anonymous-auth",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[3],
2017-05-26 09:25:29 +00:00
"2:45 ../kubernetes/kube-apiserver --secure-port=0 --audit-log-maxage=40 --option",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[4],
2017-05-26 09:25:29 +00:00
"2:45 ../kubernetes/kube-apiserver --max-backlog=20 --secure-port=0 --audit-log-maxage=40 --option",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[5],
2017-05-26 09:25:29 +00:00
"2:45 ../kubernetes/kube-apiserver --option --admission-control=WebHook,RBAC ---audit-log-maxage=40",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[6],
2017-05-26 09:25:29 +00:00
"2:45 .. --kubelet-clientkey=foo --kubelet-client-certificate=bar --admission-control=Webhook,RBAC",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[7],
2017-05-26 09:25:29 +00:00
"2:45 .. --secure-port=0 --kubelet-client-certificate=bar --admission-control=Webhook,RBAC",
},
{
2017-08-12 18:54:33 +00:00
controls.Groups[0].Checks[8],
2017-05-26 09:25:29 +00:00
"644",
},
{
controls.Groups[0].Checks[9],
"640",
},
{
controls.Groups[0].Checks[9],
"600",
},
2017-09-13 14:32:33 +00:00
{
controls.Groups[0].Checks[10],
"2:45 ../kubernetes/kube-apiserver --option --admission-control=WebHook,RBAC ---audit-log-maxage=40",
},
{
controls.Groups[0].Checks[11],
"2:45 ../kubernetes/kube-apiserver --option --admission-control=WebHook,RBAC ---audit-log-maxage=40",
},
{
controls.Groups[0].Checks[12],
"2:45 ../kubernetes/kube-apiserver --option --admission-control=WebHook,Something,RBAC ---audit-log-maxage=40",
},
{
controls.Groups[0].Checks[13],
"2:45 ../kubernetes/kube-apiserver --option --admission-control=Something ---audit-log-maxage=40",
},
2017-05-26 09:25:29 +00:00
}
for _, c := range cases {
2017-08-12 18:54:33 +00:00
res := c.Tests.execute(c.str)
2017-05-26 09:25:29 +00:00
if !res {
2017-08-12 18:54:33 +00:00
t.Errorf("%s, expected:%v, got:%v\n", c.Text, true, res)
2017-05-26 09:25:29 +00:00
}
}
}