Commit Graph

10 Commits

Author SHA1 Message Date
daniel_sagi
548ae7e486 changed evidence of priviledged containers, also added casting to str in reporter 2018-06-11 18:28:01 +03:00
daniel_sagi
838be65967 Added proves for vulnerabilities, added 'evidence' field for every vulnerability to be filled be provers(mostly ActiveHunters) 2018-06-11 18:01:54 +03:00
daniel_sagi
75393da91a simplified kubelet open handlers hunting and types 2018-06-11 14:26:09 +03:00
daniel_sagi
01c4aac105 Active hunting is now available by inheriting from ActiveHunter. the hunter wil subscribe only if the --active flag was set.
1. Removed scanning configuration from events, from now on, scanning config is accessed from the main module
2. Moved core types to a "toplevel" file
2018-06-11 12:39:11 +03:00
daniel_sagi
a2e37927bd changed directory tree of all modules and packages, for easing on future implementations and extensions 2018-06-10 20:09:09 +03:00
daniel_sagi
faa7571127 1. Added an --active flag, to allow optional "Proof" result, which will do an active hunting of a found vulnerability
2. Added a --remote flag to specify remote clusters/machines for hunting.
3. Improved a bit of the architecture, (Services)

Note:
The reporter module, will gather vulnerabilities before their active hunting will start.
This is not an issue, as we can access all of the attributes of the event directly from the active hunter (event.previous), which we will proccess on the end in the report
2018-06-10 19:34:12 +03:00
daniel_sagi
36e87807e6 1. completely transferred all event types to their corresponding module
2. started working on results table.
3. *added convention* from now on, every vulnerability/service event, should have a __doc__ that describes them. notice the new get_name(), component, and explain() attributes that needs to be implemented as well.
2018-06-10 16:43:05 +03:00
daniel_sagi
4a98d698a1 1. Added --pod flag to option "from pod" hunting. this will hunt the internal subnet of the cluster.
2. Added service account token and certificate handling, when running as a pod, to try and access resources that are "secured"
3. Added anonymous auth vulnerability detection
4. Changed requirements.txt for compatibility
2018-06-06 10:08:02 +03:00
daniel_sagi
a465c3f2eb 1. Changed order of modules and pacakges in directories.
2. Changed method of hidden stacking of event, to send self as an argument, by inheriting from "Hunter" class. where the publish acts as a proxy to the handler.
3. Added new way of categorizing events, while added an option to subscribe to a father event. if en event gets publish, if its father event is hooked, the hook will be triggered
4. Added a reporter in log/ which listens to parent events, meanwhile Vulnerability and OpenService were added. all logging will be made from reporter from now on
2018-05-27 17:45:34 +03:00
daniel_sagi
290f87de70 1. added log/
2. Started adding kubelet scanning.
3. Changed events architecture. All events are inheriting from "Event" class. when instantiating and defining a new event class, attributes other than what is important for that perticular event are not needed. the event handler will be stacking the events, so that each event will have all the attributes of its successors.
This proccess is invisible to the developer, but needs to be acknowledged.
*note: from now on, all executors needs to set self.event to given arg on init*
Example (pseudo):

@subscribe(NewHostEvent)
def PortScan(event):
		publish(OpenPortEvent(port="8080"))

@subscribe(OpenPortEvent)
def print(event):
		print(event.host)

publish(NewHostEvent(host="0.0.0.0"))
>> output: 0.0.0.0

the print function recieves an open port event. even though when publishing the OpenPortEvent we did not specify a host, the print function can access the "host" attribute, as the OpenPortEvent successor was NewHostEvent. if "host" was not defined on the succesors, it is "None"
2018-05-24 15:39:31 +03:00