mirror of https://github.com/MISP/misp-book
				
				
				
			Automation: RESTful searches section added
							parent
							
								
									c1d402bf28
								
							
						
					
					
						commit
						0035f7be5c
					
				|  | @ -513,3 +513,111 @@ For example, to retrieve all attributes for event #5, including non IDS marked a | |||
| https://<misp url>/attributes/text/download/all/null/5/true | ||||
| ~~~~ | ||||
| 
 | ||||
| ## RESTful searches with XML result export | ||||
| 
 | ||||
| It is possible to search the database for attributes based on a list of criteria. | ||||
| 
 | ||||
| To return an event with all of its attributes, relations, shadowAttributes, use the following syntax: | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp url>/events/restSearch/download/[value]/[type]/[category]/[org]/[tag]/[quickfilter]/[from]/[to]/[last] | ||||
| ~~~~ | ||||
| 
 | ||||
| <dl> | ||||
| <dt>value</dt> | ||||
| <dd>Search for the given value in the attributes' value field.</dd> | ||||
| <dt>type</dt> | ||||
| <dd>The attribute type, any valid MISP attribute type is accepted.</dd> | ||||
| <dt>category</dt> | ||||
| <dd>The attribute category, any valid MISP attribute category is accepted.</dd> | ||||
| <dt>org</dt> | ||||
| <dd>Search by the creator organisation by supplying the organisation idenfitier.</dd> | ||||
| <dt>tags</dt> | ||||
| <dd>To include a tag in the results just write its names into this parameter. To exclude a tag prepend it with a '!'. You can also chain several tag | ||||
|    commands together with the '&&' operator. Please be aware the colons (:) cannot be used in the tag search. Use semicolons instead (the search will automatically search for colons instead).</dd> | ||||
| </dl> | ||||
| 
 | ||||
| For example, to include tag1 and tag2 but exclude tag3 you would use: | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp url>/events/restSearch/download/null/null/null/null/tag1&&tag2&&!tag3 | ||||
| ~~~~ | ||||
| 
 | ||||
| <dl> | ||||
| <dt>quickfilter</dt> | ||||
| <dd>Enabling this (by passing "1" as the argument) will make the search ignore all of the other arguments, except for the auth key and value. MISP will return an xml / json (depending on the header sent) of all events that have a sub-string match on value in the event info, event orgc, or any of the attribute value1 / value2 fields, or in the attribute comment.</dd> | ||||
| <dt>from</dt> | ||||
| <dd>Events with the date set to a date after the one specified in the from field (format: 2015-02-15)</dd> | ||||
| <dt>to</dt> | ||||
| <dd>Events with the date set to a date before the one specified in the to field (format: 2015-02-15)</dd> | ||||
| <dt>last</dt> | ||||
| <dd>Events published within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m)</dd> | ||||
| <dt>eventid</dt> | ||||
| <dd>The events that should be included / excluded from the search</dd> | ||||
| </dl> | ||||
| 
 | ||||
| The keywords false or null should be used for optional empty parameters in the URL. | ||||
| 
 | ||||
| For example, to find any event with the term "red october" mentioned, use the following syntax (the example is shown as a POST request instead of a GET, which is highly recommended): | ||||
| 
 | ||||
| POST to: | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp url>/events/restSearch/download | ||||
| ~~~~ | ||||
| 
 | ||||
| POST message payload (XML): | ||||
| 
 | ||||
| ~~~~xml | ||||
|    <request><value>red october</value><searchall>1</searchall><eventid>!15</eventid></request> | ||||
| ~~~~ | ||||
| 
 | ||||
| POST message payload (JSON): | ||||
| 
 | ||||
| ~~~~json | ||||
| {"request": {"value":"red october","searchall":1,"eventid":"!15"}}  | ||||
| ~~~~ | ||||
| 
 | ||||
| To just return a list of attributes, use the following syntax: | ||||
| 
 | ||||
| <dl> | ||||
| <dt>value</dt> | ||||
| <dd>Search for the given value in the attributes' value field.</dd> | ||||
| <dt>type</dt> | ||||
| <dd>The attribute type, any valid MISP attribute type is accepted.</dd> | ||||
| <dt>category</dt> | ||||
| <dd>The attribute category, any valid MISP attribute category is accepted.</dd> | ||||
| <dt>org</dt> | ||||
| <dd>Search by the creator organisation by supplying the organisation identifier.</dd> | ||||
| <dt>tags</dt> | ||||
| <dd>To include a tag in the results just write its names into this parameter. To exclude a tag prepend it with a '!'. You can also chain several tag commands together with the '&&' operator. Please be aware the colons (:) cannot be used in the tag search. Use semicolons instead (the search will automatically search for colons instead).</dd> | ||||
| <dt>from</dt> | ||||
| <dd>Events with the date set to a date after the one specified in the from field (format: 2015-02-15)</dd> | ||||
| <dt>to</dt> | ||||
| <dd>Events with the date set to a date before the one specified in the to field (format: 2015-02-15)</dd> | ||||
| <dt>last</dt> | ||||
| <dd>Events published within the last x amount of time, where x can be defined in days, hours, minutes (for example 5d or 12h or 30m)</dd> | ||||
| <dt>eventid</dt> | ||||
| <dd>The events that should be included / excluded from the search</dd> | ||||
| 
 | ||||
| The keywords false or null should be used for optional empty parameters in the URL. | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp url>/attributes/restSearch/download/[value]/[type]/[category]/[org]/[tag]/[from]/[to]/[last]/[eventid] | ||||
| ~~~~ | ||||
| 
 | ||||
| Value, type, category and org are optional. It is possible to search for several terms in each category by joining them with the '&&' operator. It is | ||||
| also possible to negate a term with the '!' operator. Please be aware the colons (:) cannot be used in the tag search. Use semicolons instead (the | ||||
| search will automatically search for colons instead). For example, in order to search for all attributes created by your organisation that contain | ||||
| 192.168 or 127.0 but not 0.1 and are of the type ip-src, excluding the events that were tagged tag1 use the following syntax: | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp circl>/attributes/restSearch/download/192.168&&127.0&&!0.1/ip-src/false/CIRCL/!tag1 | ||||
| ~~~~ | ||||
| 
 | ||||
| You can also use search for IP addresses using CIDR. Make sure that you use '|' (pipe) instead of '/' (slashes). Please be aware the colons (:) cannot be used in the tag search. Use semicolons instead (the search will automatically search for colons instead). See below for an example: | ||||
| 
 | ||||
| ~~~~ | ||||
| https://<misp circl>/attributes/restSearch/download/192.168.1.1|16/ip-src/null/CIRCL  | ||||
| ~~~~ | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue