2020-07-15 14:33:09,612 - xtesting.ci.run_tests - INFO - Deployment description: +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | ENV VAR | VALUE | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | CI_LOOP | daily | | DEBUG | true | | DEPLOY_SCENARIO | k8-nosdn-nofeature-noha | | INSTALLER_TYPE | unknown | | BUILD_TAG | 21BBXURL17P1 | | NODE_NAME | lf-virtual1-2 | | TEST_DB_URL | http://testresults.opnfv.org/test/api/v1/results | | TEST_DB_EXT_URL | http://testresults.opnfv.org/test/api/v1/results | | S3_ENDPOINT_URL | https://storage.googleapis.com | | S3_DST_URL | s3://artifacts.opnfv.org/functest-kubernetes/21BBXURL17P1/functest-kubernetes-opnfv-functest-kubernetes-security-iruya-kube_hunter-run-24 | | HTTP_DST_URL | http://artifacts.opnfv.org/functest-kubernetes/21BBXURL17P1/functest-kubernetes-opnfv-functest-kubernetes-security-iruya-kube_hunter-run-24 | +-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ 2020-07-15 14:33:09,617 - xtesting.ci.run_tests - DEBUG - No env file /var/lib/xtesting/conf/env_file found 2020-07-15 14:33:09,617 - xtesting.ci.run_tests - DEBUG - Test args: kube_hunter 2020-07-15 14:33:09,623 - xtesting.ci.run_tests - INFO - Loading test case 'kube_hunter'... 2020-07-15 14:33:09,893 - xtesting.ci.run_tests - INFO - Running test case 'kube_hunter'... 2020-07-15 14:33:09,942 - functest_kubernetes.security.security - INFO - Job kube-hunter created 2020-07-15 14:33:09,942 - functest_kubernetes.security.security - DEBUG - create_namespaced_job: {'api_version': 'batch/v1', 'kind': 'Job', 'metadata': {'annotations': None, 'cluster_name': None, 'creation_timestamp': datetime.datetime(2020, 7, 15, 14, 33, 9, tzinfo=tzlocal()), 'deletion_grace_period_seconds': None, 'deletion_timestamp': None, 'finalizers': None, 'generate_name': None, 'generation': None, 'initializers': None, 'labels': {'controller-uid': '88b3682f-30ec-4b92-9c34-6769ad3e68dd', 'job-name': 'kube-hunter'}, 'managed_fields': None, 'name': 'kube-hunter', 'namespace': 'default', 'owner_references': None, 'resource_version': '1041322', 'self_link': '/apis/batch/v1/namespaces/default/jobs/kube-hunter', 'uid': '88b3682f-30ec-4b92-9c34-6769ad3e68dd'}, 'spec': {'active_deadline_seconds': None, 'backoff_limit': 4, 'completions': 1, 'manual_selector': None, 'parallelism': 1, 'selector': {'match_expressions': None, 'match_labels': {'controller-uid': '88b3682f-30ec-4b92-9c34-6769ad3e68dd'}}, 'template': {'metadata': {'annotations': None, 'cluster_name': None, 'creation_timestamp': None, 'deletion_grace_period_seconds': None, 'deletion_timestamp': None, 'finalizers': None, 'generate_name': None, 'generation': None, 'initializers': None, 'labels': {'controller-uid': '88b3682f-30ec-4b92-9c34-6769ad3e68dd', 'job-name': 'kube-hunter'}, 'managed_fields': None, 'name': None, 'namespace': None, 'owner_references': None, 'resource_version': None, 'self_link': None, 'uid': None}, 'spec': {'active_deadline_seconds': None, 'affinity': None, 'automount_service_account_token': None, 'containers': [{'args': ['--pod'], 'command': ['python', 'kube-hunter.py'], 'env': None, 'env_from': None, 'image': 'aquasec/kube-hunter', 'image_pull_policy': 'Always', 'lifecycle': None, 'liveness_probe': None, 'name': 'kube-hunter', 'ports': None, 'readiness_probe': None, 'resources': {'limits': None, 'requests': None}, 'security_context': None, 'stdin': None, 'stdin_once': None, 'termination_message_path': '/dev/termination-log', 'termination_message_policy': 'File', 'tty': None, 'volume_devices': None, 'volume_mounts': None, 'working_dir': None}], 'dns_config': None, 'dns_policy': 'ClusterFirst', 'enable_service_links': None, 'host_aliases': None, 'host_ipc': None, 'host_network': None, 'host_pid': None, 'hostname': None, 'image_pull_secrets': None, 'init_containers': None, 'node_name': None, 'node_selector': None, 'priority': None, 'priority_class_name': None, 'readiness_gates': None, 'restart_policy': 'Never', 'runtime_class_name': None, 'scheduler_name': 'default-scheduler', 'security_context': {'fs_group': None, 'run_as_group': None, 'run_as_non_root': None, 'run_as_user': None, 'se_linux_options': None, 'supplemental_groups': None, 'sysctls': None}, 'service_account': None, 'service_account_name': None, 'share_process_namespace': None, 'subdomain': None, 'termination_grace_period_seconds': 30, 'tolerations': None, 'volumes': None}}, 'ttl_seconds_after_finished': None}, 'status': {'active': None, 'completion_time': None, 'conditions': None, 'failed': None, 'start_time': None, 'succeeded': None}} 2020-07-15 14:33:29,888 - functest_kubernetes.security.security - INFO - kube-hunter started in 19.99 sec 2020-07-15 14:33:29,993 - functest_kubernetes.security.security - WARNING - 2020-07-15 14:33:16,910 INFO kube_hunter.modules.report.collector Started hunting 2020-07-15 14:33:16,911 INFO kube_hunter.modules.report.collector Discovering Open Kubernetes Services 2020-07-15 14:33:16,920 INFO kube_hunter.modules.report.collector Found vulnerability "Read access to pod's service account token" in Local to Pod (kube-hunter-4jn4r) 2020-07-15 14:33:16,921 INFO kube_hunter.modules.report.collector Found vulnerability "CAP_NET_RAW Enabled" in Local to Pod (kube-hunter-4jn4r) 2020-07-15 14:33:16,923 INFO kube_hunter.modules.report.collector Found vulnerability "Access to pod's secrets" in Local to Pod (kube-hunter-4jn4r) 2020-07-15 14:33:17,168 INFO kube_hunter.modules.report.collector Found open service "Kubelet API" at 10.244.2.1:10250 2020-07-15 14:33:17,230 INFO kube_hunter.modules.report.collector Found open service "API Server" at 10.96.0.1:443 2020-07-15 14:33:17,313 INFO kube_hunter.modules.report.collector Found vulnerability "Access to API using service account token" in 10.96.0.1:443 2020-07-15 14:33:17,320 INFO kube_hunter.modules.report.collector Found vulnerability "K8s Version Disclosure" in 10.96.0.1:443 Nodes +-------------+------------+ | TYPE | LOCATION | +-------------+------------+ | Node/Master | 10.244.2.1 | +-------------+------------+ | Node/Master | 10.96.0.1 | +-------------+------------+ Detected Services +-------------+------------------+----------------------+ | SERVICE | LOCATION | DESCRIPTION | +-------------+------------------+----------------------+ | Kubelet API | 10.244.2.1:10250 | The Kubelet is the | | | | main component in | | | | every Node, all pod | | | | operations goes | | | | through the kubelet | +-------------+------------------+----------------------+ | API Server | 10.96.0.1:443 | The API server is in | | | | charge of all | | | | operations on the | | | | cluster. | +-------------+------------------+----------------------+ Vulnerabilities For further information about a vulnerability, search its ID in: https://github.com/aquasecurity/kube-hunter/tree/master/docs/_kb +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | ID | LOCATION | CATEGORY | VULNERABILITY | DESCRIPTION | EVIDENCE | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | KHV005 | 10.96.0.1:443 | Information | Access to API using | The API Server port | b'{"kind":"APIVersio | | | | Disclosure | service account | is accessible. | ns","versions":["v1" | | | | | token | Depending on | ... | | | | | | your RBAC settings | | | | | | | this could expose | | | | | | | access to or control | | | | | | | of your cluster. | | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | KHV002 | 10.96.0.1:443 | Information | K8s Version | The kubernetes | v1.15.11 | | | | Disclosure | Disclosure | version could be | | | | | | | obtained from the | | | | | | | /version endpoint | | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | None | Local to Pod (kube- | Access Risk | CAP_NET_RAW Enabled | CAP_NET_RAW is | | | | hunter-4jn4r) | | | enabled by default | | | | | | | for pods. | | | | | | | If an attacker | | | | | | | manages to | | | | | | | compromise a pod, | | | | | | | they could | | | | | | | potentially take | | | | | | | advantage of this | | | | | | | capability to | | | | | | | perform network | | | | | | | attacks on other | | | | | | | pods running on the | | | | | | | same node | | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | None | Local to Pod (kube- | Access Risk | Access to pod's | Accessing the pod's | ['/var/run/secrets/k | | | hunter-4jn4r) | | secrets | secrets within a | ubernetes.io/service | | | | | | compromised pod | ... | | | | | | might disclose | | | | | | | valuable data to a | | | | | | | potential attacker | | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ | KHV050 | Local to Pod (kube- | Access Risk | Read access to pod's | Accessing the pod | eyJhbGciOiJSUzI1NiIs | | | hunter-4jn4r) | | service account | service account | ImtpZCI6IiJ9.eyJpc3M | | | | | token | token gives an | ... | | | | | | attacker the option | | | | | | | to use the server | | | | | | | API | | +--------+----------------------+----------------------+----------------------+----------------------+----------------------+ 2020-07-15 14:33:29,993 - xtesting.ci.run_tests - INFO - Test result: +---------------------+------------------+------------------+----------------+ | TEST CASE | PROJECT | DURATION | RESULT | +---------------------+------------------+------------------+----------------+ | kube_hunter | functest | 00:20 | PASS | +---------------------+------------------+------------------+----------------+ 2020-07-15 14:33:30,030 - functest_kubernetes.security.security - DEBUG - delete_namespaced_pod: {'api_version': 'v1', 'code': None, 'details': None, 'kind': 'Pod', 'message': None, 'metadata': {'_continue': None, 'resource_version': '1041399', 'self_link': '/api/v1/namespaces/default/pods/kube-hunter-4jn4r'}, 'reason': None, 'status': "{'phase': 'Succeeded', 'conditions': [{'type': 'Initialized', " "'status': 'True', 'lastProbeTime': None, 'lastTransitionTime': " "'2020-07-15T14:33:10Z', 'reason': 'PodCompleted'}, {'type': " "'Ready', 'status': 'False', 'lastProbeTime': None, " "'lastTransitionTime': '2020-07-15T14:33:29Z', 'reason': " "'PodCompleted'}, {'type': 'ContainersReady', 'status': 'False', " "'lastProbeTime': None, 'lastTransitionTime': " "'2020-07-15T14:33:29Z', 'reason': 'PodCompleted'}, {'type': " "'PodScheduled', 'status': 'True', 'lastProbeTime': None, " "'lastTransitionTime': '2020-07-15T14:33:09Z'}], 'hostIP': " "'172.18.0.9', 'podIP': '10.244.2.193', 'startTime': " "'2020-07-15T14:33:10Z', 'containerStatuses': [{'name': " "'kube-hunter', 'state': {'terminated': {'exitCode': 0, 'reason': " "'Completed', 'startedAt': '2020-07-15T14:33:15Z', 'finishedAt': " "'2020-07-15T14:33:29Z', 'containerID': " "'containerd://edffe7d1dee96c3c801a6f4c22f90bd0dbcb440950d5877f88bbfd08738ff078'}}, " "'lastState': {}, 'ready': False, 'restartCount': 0, 'image': " "'docker.io/aquasec/kube-hunter:latest', 'imageID': " "'docker.io/aquasec/kube-hunter@sha256:fee4656ab3b4db6aba14143a8a8e1aa77ac743e3574e7f9ca126a96887505ccc', " "'containerID': " "'containerd://edffe7d1dee96c3c801a6f4c22f90bd0dbcb440950d5877f88bbfd08738ff078'}], " "'qosClass': 'BestEffort'}"} 2020-07-15 14:33:30,356 - functest_kubernetes.security.security - DEBUG - delete_namespaced_deployment: {'api_version': 'batch/v1', 'code': None, 'details': None, 'kind': 'Job', 'message': None, 'metadata': {'_continue': None, 'resource_version': '1041402', 'self_link': '/apis/batch/v1/namespaces/default/jobs/kube-hunter'}, 'reason': None, 'status': "{'conditions': [{'type': 'Complete', 'status': 'True', " "'lastProbeTime': '2020-07-15T14:33:29Z', 'lastTransitionTime': " "'2020-07-15T14:33:29Z'}], 'startTime': '2020-07-15T14:33:09Z', " "'completionTime': '2020-07-15T14:33:29Z', 'succeeded': 1}"} 2020-07-15 14:33:30,662 - xtesting.core.testcase - DEBUG - Publishing /var/lib/xtesting/results/functest-kubernetes.log ('text/plain', None)