mirror of https://github.com/MISP/MISP
Merge branch '2.4' of github.com:MISP/MISP into decaying
commit
fd30141cdf
|
@ -24,6 +24,7 @@ before_install:
|
|||
- export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
install:
|
||||
- date
|
||||
- sudo apt-get -y update
|
||||
# Travis lacks entropy.
|
||||
- sudo apt-get -y install haveged
|
||||
|
|
2
PyMISP
2
PyMISP
|
@ -1 +1 @@
|
|||
Subproject commit 101ec5f9ed6d6871b99e1cb0e27d04ebe14f5a44
|
||||
Subproject commit b802e202e2da81a96b6ef660dff1115a45135e0e
|
|
@ -103,6 +103,7 @@ class ACLComponent extends Component
|
|||
'acceptDelegation' => array('perm_add'),
|
||||
'delegateEvent' => array('perm_delegate'),
|
||||
'deleteDelegation' => array('perm_add'),
|
||||
'index' => array('*'),
|
||||
'view' => array('*'),
|
||||
),
|
||||
'events' => array(
|
||||
|
|
|
@ -53,15 +53,20 @@ class EventDelegationsController extends AppController
|
|||
if (empty($this->request->data['EventDelegation'])) {
|
||||
$this->request->data = array('EventDelegation' => $this->request->data);
|
||||
}
|
||||
if (empty($this->request->data['EventDelegation']['distribution'])) {
|
||||
$this->request->data['EventDelegation']['distribution'] = 0;
|
||||
}
|
||||
if ($this->request->data['EventDelegation']['distribution'] != 4) {
|
||||
$this->request->data['EventDelegation']['sharing_group_id'] = '0';
|
||||
}
|
||||
$this->request->data['EventDelegation']['event_id'] = $event['Event']['id'];
|
||||
$this->request->data['EventDelegation']['requester_org_id'] = $this->Auth->user('org_id');
|
||||
$org_id = $this->Toolbox->findIdByUuid($this->EventDelegation->Event->Org, $this->request->data['EventDelegation']['org_id']);
|
||||
$this->request->data['EventDelegation']['org_id'] = $org_id;
|
||||
$this->EventDelegation->create();
|
||||
$this->EventDelegation->save($this->request->data['EventDelegation']);
|
||||
$org = $this->EventDelegation->Event->Org->find('first', array(
|
||||
'conditions' => array('id' => $this->request->data['EventDelegation']['org_id']),
|
||||
'conditions' => array('id' => $org_id),
|
||||
'recursive' => -1,
|
||||
'fields' => array('name')
|
||||
));
|
||||
|
@ -179,4 +184,60 @@ class EventDelegationsController extends AppController
|
|||
$this->render('ajax/delete_delegation');
|
||||
}
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$context = 'pending';
|
||||
if ($this->request->is('post') && !empty($this->request->data['context'])) {
|
||||
$context = $this->request->data['context'];
|
||||
} else if (!empty($this->params['named']['context'])) {
|
||||
$context = $this->params['named']['context'];
|
||||
}
|
||||
if ($context === 'pending') {
|
||||
$conditions = array('EventDelegation.org_id' => $this->Auth->user('org_id'));
|
||||
} else if ($context === 'issued') {
|
||||
$conditions = array('EventDelegation.requester_org_id' => $this->Auth->user('org_id'));
|
||||
} else {
|
||||
throw new InvalidArgumentException('Invalid context. Expected values: pending or issued.');
|
||||
}
|
||||
if (!empty($this->params['named']['value'])) {
|
||||
$temp = array();
|
||||
$temp['lower(EventDelegation.message) like'] = '%' . strtolower(trim($this->params['named']['value'])) . '%';
|
||||
$temp['lower(Event.info) like'] = '%' . strtolower(trim($this->params['named']['value'])) . '%';
|
||||
$temp['lower(Org.name) like'] = '%' . strtolower(trim($this->params['named']['value'])) . '%';
|
||||
$temp['lower(RequesterOrg.name) like'] = '%' . strtolower(trim($this->params['named']['value'])) . '%';
|
||||
$conditions['AND'][] = array('OR' => $temp);
|
||||
}
|
||||
$org_fields = array('id', 'name', 'uuid');
|
||||
$event_fields = array('id', 'info', 'uuid', 'analysis', 'distribution', 'threat_level_id', 'date', 'attribute_count');
|
||||
$params = array(
|
||||
'conditions' => $conditions,
|
||||
'recursive' => -1,
|
||||
'contain' => array(
|
||||
'Event' => array('fields' => $event_fields),
|
||||
'Org' => array('fields' => $org_fields),
|
||||
'RequesterOrg' => array('fields' => $org_fields)
|
||||
)
|
||||
);
|
||||
$this->paginate = array_merge($this->paginate, $params);
|
||||
$delegation_requests = $this->paginate();
|
||||
foreach ($delegation_requests as $k => $v) {
|
||||
if ($v['EventDelegation']['distribution'] == -1) {
|
||||
unset($delegation_requests[$k]['EventDelegation']['distribution']);
|
||||
}
|
||||
if ($v['EventDelegation']['sharing_group_id'] == 0) {
|
||||
unset($delegation_requests[$k]['EventDelegation']['sharing_group_id']);
|
||||
}
|
||||
unset($v['EventDelegation']);
|
||||
$delegation_requests[$k]['EventDelegation'] = array_merge($delegation_requests[$k]['EventDelegation'], $v);
|
||||
$delegation_requests[$k] = array('EventDelegation' => $delegation_requests[$k]['EventDelegation']);
|
||||
}
|
||||
if ($this->_isRest()) {
|
||||
return $this->RestResponse->viewData($delegation_requests, $this->response->type());
|
||||
} else {
|
||||
$this->set('context', $context);
|
||||
$this->set('delegation_requests', $delegation_requests);
|
||||
$this->set('passedArgs', json_encode($this->passedArgs, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2331,8 +2331,6 @@ class EventsController extends AppController
|
|||
throw new NotFoundException(__('Invalid event'));
|
||||
}
|
||||
$id = $temp['Event']['id'];
|
||||
} elseif (!is_numeric($id)) {
|
||||
throw new NotFoundException(__('Invalid event'));
|
||||
}
|
||||
if ($this->request->is('post') || $this->request->is('put') || $this->request->is('delete')) {
|
||||
if (isset($this->request->data['id'])) {
|
||||
|
|
|
@ -902,7 +902,7 @@ class FeedsController extends AppController
|
|||
if ($this->_isRest()) {
|
||||
return $this->RestResponse->saveSuccessResponse('Feed', 'cacheFeed', false, $this->response->type(), $message);
|
||||
} else {
|
||||
$this->Flash->error($message);
|
||||
$this->Flash->info($message);
|
||||
$this->redirect(array('controller' => 'feeds', 'action' => 'index'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2017,7 +2017,7 @@ class Event extends AppModel
|
|||
$fieldsAtt = array('Attribute.id', 'Attribute.type', 'Attribute.category', 'Attribute.value', 'Attribute.to_ids', 'Attribute.uuid', 'Attribute.event_id', 'Attribute.distribution', 'Attribute.timestamp', 'Attribute.comment', 'Attribute.sharing_group_id', 'Attribute.deleted', 'Attribute.disable_correlation', 'Attribute.object_id', 'Attribute.object_relation');
|
||||
$fieldsObj = array('*');
|
||||
$fieldsShadowAtt = array('ShadowAttribute.id', 'ShadowAttribute.type', 'ShadowAttribute.category', 'ShadowAttribute.value', 'ShadowAttribute.to_ids', 'ShadowAttribute.uuid', 'ShadowAttribute.event_uuid', 'ShadowAttribute.event_id', 'ShadowAttribute.old_id', 'ShadowAttribute.comment', 'ShadowAttribute.org_id', 'ShadowAttribute.proposal_to_delete', 'ShadowAttribute.timestamp');
|
||||
$fieldsOrg = array('id', 'name', 'uuid');
|
||||
$fieldsOrg = array('id', 'name', 'uuid', 'local');
|
||||
$fieldsServer = array('id', 'url', 'name');
|
||||
if (!$options['includeAllTags']) {
|
||||
$tagConditions = array('exportable' => 1);
|
||||
|
@ -3132,13 +3132,6 @@ class Event extends AppModel
|
|||
'conditions' => array('disabled' => 0, 'User.org_id' => $event['Event']['orgc_id']),
|
||||
'recursive' => -1
|
||||
));
|
||||
if (empty($temp)) {
|
||||
$temp = $this->User->find('all', array(
|
||||
'fields' => array('email', 'gpgkey', 'certif_public', 'contactalert', 'id', 'org_id'),
|
||||
'conditions' => array('disabled' => 0, 'User.org_id' => $event['Event']['org_id']),
|
||||
'recursive' => -1
|
||||
));
|
||||
}
|
||||
foreach ($temp as $tempElement) {
|
||||
if ($tempElement['User']['contactalert'] || $tempElement['User']['id'] == $event['Event']['user_id']) {
|
||||
array_push($orgMembers, $tempElement);
|
||||
|
@ -3146,8 +3139,13 @@ class Event extends AppModel
|
|||
}
|
||||
} else {
|
||||
$temp = $this->User->find('first', array(
|
||||
'conditions' => array('User.id' => $event['Event']['user_id'], 'User.disabled' => 0),
|
||||
'conditions' => array(
|
||||
'User.id' => $event['Event']['user_id'],
|
||||
'User.disabled' => 0,
|
||||
'User.org_id' => $event['Event']
|
||||
),
|
||||
'fields' => array('User.email', 'User.gpgkey', 'User.certif_public'),
|
||||
'recursive' => -1
|
||||
));
|
||||
if (!empty($temp)) {
|
||||
$orgMembers = array(0 => $temp);
|
||||
|
@ -3156,12 +3154,12 @@ class Event extends AppModel
|
|||
if (empty($orgMembers)) {
|
||||
return false;
|
||||
}
|
||||
$temp = $this->__buildContactEventEmailBody($user, $message, $event, $targetUser, $id);
|
||||
$bodyevent = $temp[0];
|
||||
$body = $temp[1];
|
||||
$result = true;
|
||||
$tplColorString = !empty(Configure::read('MISP.email_subject_TLP_string')) ? Configure::read('MISP.email_subject_TLP_string') : "TLP Amber";
|
||||
foreach ($orgMembers as &$reporter) {
|
||||
foreach ($orgMembers as $reporter) {
|
||||
$temp = $this->__buildContactEventEmailBody($user, $message, $event, $reporter, $id);
|
||||
$bodyevent = $temp[0];
|
||||
$body = $temp[1];
|
||||
$result = true;
|
||||
$tplColorString = !empty(Configure::read('MISP.email_subject_TLP_string')) ? Configure::read('MISP.email_subject_TLP_string') : "TLP Amber";
|
||||
$subject = "[" . Configure::read('MISP.org') . " MISP] Need info about event " . $id . " - ".$tplColorString;
|
||||
$result = $this->User->sendEmail($reporter, $bodyevent, $body, $subject, $user) && $result;
|
||||
}
|
||||
|
@ -3204,7 +3202,7 @@ class Event extends AppModel
|
|||
$bodyevent .= 'Analysis : ' . $event['Event']['analysis'] . "\n";
|
||||
|
||||
$userModel = ClassRegistry::init('User');
|
||||
$targetUser = $userModel->getAuthUser($orgMembers[0]['User']['id']);
|
||||
$targetUser = $userModel->getAuthUser($targetUser['User']['id']);
|
||||
$sgModel = ClassRegistry::init('SharingGroup');
|
||||
$sgs = $sgModel->fetchAllAuthorised($targetUser, false);
|
||||
|
||||
|
|
|
@ -61,12 +61,12 @@
|
|||
|
||||
</tr>
|
||||
<?php foreach ($events as $event): ?>
|
||||
<tr <?php if ($event['Event']['distribution'] == 0) echo 'class = "privateRed"'?>>
|
||||
<tr <?php if ($event['Event']['distribution'] == 0) echo 'class = "privateRed"'?> id="event_<?php echo h($event['Event']['id']);?>">
|
||||
<?php
|
||||
if ($isSiteAdmin || ($event['Event']['orgc_id'] == $me['org_id'])):
|
||||
?>
|
||||
<td style="width:10px;" data-id="<?php echo h($event['Event']['id']); ?>">
|
||||
<input class="select" type="checkbox" data-id="<?php echo $event['Event']['id'];?>" />
|
||||
<input id="<?php echo h($event['Event']['id']); ?>" class="select" type="checkbox" data-id="<?php echo h($event['Event']['id']);?>" />
|
||||
</td>
|
||||
<?php
|
||||
else:
|
||||
|
@ -240,10 +240,20 @@
|
|||
<?php endforeach; ?>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
var lastSelected = false;
|
||||
$(document).ready(function() {
|
||||
$('.select').on('change', function() {
|
||||
listCheckboxesChecked();
|
||||
});
|
||||
$('.select').click(function(e) {
|
||||
if ($(this).is(':checked')) {
|
||||
if (e.shiftKey) {
|
||||
selectAllInbetween(lastSelected, this.id);
|
||||
}
|
||||
lastSelected = this.id;
|
||||
}
|
||||
attributeListAnyAttributeCheckBoxesChecked();
|
||||
});
|
||||
|
||||
$('.distributionNetworkToggle').each(function() {
|
||||
$(this).distributionNetwork({
|
||||
|
|
|
@ -19,12 +19,12 @@ if ($object['value'] == 'MERGE') debug($object);
|
|||
$tr_class .= ' row_' . h($k);
|
||||
}
|
||||
?>
|
||||
<tr id = "Attribute_<?php echo h($object['uuid']); ?>_tr" class="<?php echo $tr_class; ?>" tabindex="0">
|
||||
<tr id="Attribute_<?php echo h($object['uuid']); ?>_tr" class="<?php echo $tr_class; ?>" tabindex="0">
|
||||
<td class="short">
|
||||
<?php echo date('Y-m-d', $object['timestamp']); ?>
|
||||
</td>
|
||||
<td class="short">
|
||||
<div id = "Attribute_<?php echo $object['uuid']; ?>_category_solid" class="inline-field-solid">
|
||||
<div id="Attribute_<?php echo $object['uuid']; ?>_category_solid" class="inline-field-solid">
|
||||
<?php echo h($object['category']); ?>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -37,12 +37,12 @@ if ($object['value'] == 'MERGE') debug($object);
|
|||
endif;
|
||||
?>
|
||||
<div></div>
|
||||
<div id = "Attribute_<?php echo $object['uuid']; ?>_type_solid" class="inline-field-solid">
|
||||
<div id="Attribute_<?php echo $object['uuid']; ?>_type_solid" class="inline-field-solid">
|
||||
<?php echo h($object['type']); ?>
|
||||
</div>
|
||||
</td>
|
||||
<td id="Attribute_<?php echo h($object['uuid']); ?>_container" class="showspaces limitedWidth shortish">
|
||||
<div id = "Attribute_<?php echo $object['uuid']; ?>_value_solid" class="inline-field-solid">
|
||||
<div id="Attribute_<?php echo $object['uuid']; ?>_value_solid" class="inline-field-solid">
|
||||
<span <?php if (Configure::read('Plugin.Enrichment_hover_enable') && isset($modules) && isset($modules['hover_type'][$object['type']])) echo 'class="eventViewAttributeHover" data-object-type="Attribute" data-object-id="' . h($object['uuid']) . '"'?>>
|
||||
<?php
|
||||
echo $this->element('/Events/View/value_field', array('object' => $object, 'linkClass' => $linkClass));
|
||||
|
@ -72,7 +72,7 @@ if ($object['value'] == 'MERGE') debug($object);
|
|||
</div>
|
||||
</td>
|
||||
<td class="showspaces bitwider">
|
||||
<div id = "Attribute_<?php echo $object['uuid']; ?>_comment_solid" class="inline-field-solid">
|
||||
<div id="Attribute_<?php echo $object['uuid']; ?>_comment_solid" class="inline-field-solid">
|
||||
<?php echo nl2br(h($object['comment'])); ?>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -83,7 +83,7 @@ if ($object['value'] == 'MERGE') debug($object);
|
|||
|
||||
</td>
|
||||
<td class="short">
|
||||
<div id = "Attribute_<?php echo $object['uuid']; ?>_to_ids_solid" class="inline-field-solid");">
|
||||
<div id="Attribute_<?php echo $object['uuid']; ?>_to_ids_solid" class="inline-field-solid">
|
||||
<?php echo $object['to_ids'] ? __('Yes') : __('No'); ?>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
<?php
|
||||
$url_data = Hash::extract($row, $field['data_path']);
|
||||
$data_elements = Hash::extract($row, $field['data_path']);
|
||||
$links = array();
|
||||
foreach ($url_data as $url) {
|
||||
foreach ($data_elements as $data) {
|
||||
if (strpos($field['url'], '%s') !== false) {
|
||||
$url = sprintf(
|
||||
$field['url'],
|
||||
$data
|
||||
);
|
||||
} else {
|
||||
$url = $data;
|
||||
}
|
||||
$links[] = sprintf(
|
||||
'<a href="%s" title="%s">%s</a>',
|
||||
h($url['url']),
|
||||
h($url['name']),
|
||||
h($url['name'])
|
||||
h($url),
|
||||
empty($field['title']) ? h($data) : h($field['title']),
|
||||
h($data)
|
||||
);
|
||||
}
|
||||
echo implode('<br />', $links);
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
$org = Hash::extract($row, $field['data_path']);
|
||||
echo sprintf(
|
||||
'<a href="%s/organisations/view/%s">%s</a>',
|
||||
$baseurl,
|
||||
h($org['id']),
|
||||
h($org['name'])
|
||||
);
|
||||
?>
|
|
@ -191,11 +191,13 @@
|
|||
'message' => __('Are you sure you wish to republish the current event to the Kafka topic?')
|
||||
));
|
||||
}
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
|
||||
'element_id' => 'contact',
|
||||
'url' => '/events/contact/' . $event['Event']['id'],
|
||||
'text' => __('Contact Reporter')
|
||||
));
|
||||
if (!empty($event['Orgc']['local'])) {
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
|
||||
'element_id' => 'contact',
|
||||
'url' => '/events/contact/' . $event['Event']['id'],
|
||||
'text' => __('Contact Reporter')
|
||||
));
|
||||
}
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
|
||||
'onClick' => array(
|
||||
'function' => 'getPopup',
|
||||
|
@ -302,6 +304,11 @@
|
|||
'url' => '/events/proposalEventIndex',
|
||||
'text' => __('Events with proposals')
|
||||
));
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
|
||||
'element_id' => 'viewDelegations',
|
||||
'url' => '/event_delegations/index/context:pending',
|
||||
'text' => __('View delegation requests')
|
||||
));
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_divider');
|
||||
echo $this->element('/genericElements/SideMenu/side_menu_link', array(
|
||||
'url' => '/events/export',
|
||||
|
|
|
@ -42,6 +42,10 @@
|
|||
'text' => __('Events with proposals'),
|
||||
'url' => '/events/proposalEventIndex'
|
||||
),
|
||||
array(
|
||||
'url' => '/event_delegations/index/context:pending',
|
||||
'text' => __('View delegation requests')
|
||||
),
|
||||
array(
|
||||
'type' => 'separator'
|
||||
),
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
<?php
|
||||
/*
|
||||
* echo $this->element('/genericElements/IndexTable/index_table', array(
|
||||
* 'top_bar' => (
|
||||
* // search/filter bar information compliant with ListTopBar
|
||||
* ),
|
||||
* 'data' => array(
|
||||
// the actual data to be used
|
||||
* ),
|
||||
* 'fields' => array(
|
||||
* // field list with information for the paginator
|
||||
* ),
|
||||
* 'title' => optional title,
|
||||
* 'description' => optional description
|
||||
* ));
|
||||
*
|
||||
*/
|
||||
echo '<div class="index">';
|
||||
echo $this->element('/genericElements/IndexTable/index_table', array(
|
||||
'data' => array(
|
||||
'data' => $delegation_requests,
|
||||
'top_bar' => array(
|
||||
'children' => array(
|
||||
array(
|
||||
'type' => 'simple',
|
||||
'children' => array(
|
||||
array(
|
||||
'active' => $context === 'pending',
|
||||
'url' => $baseurl . '/event_delegations/index/context:pending',
|
||||
'text' => __('Pending'),
|
||||
),
|
||||
array(
|
||||
'active' => $context === 'issued',
|
||||
'url' => $baseurl . '/event_delegations/index/context:issued',
|
||||
'text' => __('Issued'),
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
'type' => 'search',
|
||||
'button' => __('Filter'),
|
||||
'placeholder' => __('Enter value to search'),
|
||||
'data' => '',
|
||||
'searchKey' => 'value'
|
||||
)
|
||||
)
|
||||
),
|
||||
'fields' => array(
|
||||
array(
|
||||
'name' => __('Id'),
|
||||
'sort' => 'EventDelegation.id',
|
||||
'class' => 'short',
|
||||
'data_path' => 'EventDelegation.id',
|
||||
),
|
||||
array(
|
||||
'name' => __('Requester'),
|
||||
'class' => 'short',
|
||||
'element' => 'org',
|
||||
'sort' => 'EventDelegation.requester_org_id',
|
||||
'data_path' => 'EventDelegation.RequesterOrg'
|
||||
),
|
||||
array(
|
||||
'name' => __('Recipient'),
|
||||
'class' => 'short',
|
||||
'element' => 'org',
|
||||
'sort' => 'EventDelegation.org_id',
|
||||
'data_path' => 'EventDelegation.Org'
|
||||
),
|
||||
array(
|
||||
'name' => __('Event id'),
|
||||
'sort' => 'EventDelegation.event_id',
|
||||
'element' => 'links',
|
||||
'class' => 'short',
|
||||
'data_path' => 'EventDelegation.event_id',
|
||||
'url' => $baseurl . '/events/view/%s'
|
||||
),
|
||||
array(
|
||||
'name' => __('Event info'),
|
||||
'data_path' => 'EventDelegation.Event.info'
|
||||
),
|
||||
array(
|
||||
'name' => __('Message'),
|
||||
'data_path' => 'EventDelegation.message'
|
||||
)
|
||||
),
|
||||
'title' => __('Delegation index'),
|
||||
'description' => __('')
|
||||
)
|
||||
));
|
||||
echo '</div>';
|
||||
echo $this->element('/genericElements/SideMenu/side_menu', array('menuList' => 'event-collection', 'menuItem' => 'viewDelegations'));
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var passedArgsArray = <?php echo $passedArgs; ?>;
|
||||
if (passedArgsArray['context'] === undefined) {
|
||||
passedArgsArray['context'] = 'pending';
|
||||
}
|
||||
$(document).ready(function() {
|
||||
$('#quickFilterButton').click(function() {
|
||||
runIndexQuickFilter('/context:' + passedArgsArray['context']);
|
||||
});
|
||||
$('#quickFilterField').on('keypress', function (e) {
|
||||
if(e.which === 13) {
|
||||
runIndexQuickFilter('/context:' + passedArgsArray['context']);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -2,7 +2,7 @@
|
|||
<h2><?php echo __('Automation');?></h2>
|
||||
<p><?php echo __('Automation functionality is designed to automatically feed other tools and systems with the data in your MISP repository.
|
||||
To to make this functionality available for automated tools an authentication key is used.');?>
|
||||
<br /><?php echo __('You can use the <a href="servers/rest">ReST client</a> to test your API queries against your MISP and export the resulting tuned queries as curl or python scripts.');?>
|
||||
<br /><?php echo __('You can use the <a href="/servers/rest">REST client</a> to test your API queries against your MISP and export the resulting tuned queries as curl or python scripts.');?>
|
||||
<strong><?php echo __('Make sure you keep your API key secret as it gives access to the all of the data that you normally have access to in MISP.');?></strong>
|
||||
<?php echo __('To view the old MISP automation page, click <a href="automation/1">here</a>.');?>
|
||||
</p>
|
||||
|
|
|
@ -102,7 +102,6 @@
|
|||
<script type="text/javascript">
|
||||
// tooltips
|
||||
$(document).ready(function () {
|
||||
//loadEventTags("<?php echo $event['Event']['id']; ?>");
|
||||
$("th, td, dt, div, span, li").tooltip({
|
||||
'placement': 'top',
|
||||
'container' : 'body',
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
"id": "5",
|
||||
"name": "blockrules of rules.emergingthreats.net",
|
||||
"provider": "rules.emergingthreats.net",
|
||||
"url": "http://rules.emergingthreats.net/blockrules/compromised-ips.txt",
|
||||
"url": "https://rules.emergingthreats.net/blockrules/compromised-ips.txt",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": true,
|
||||
"distribution": "0",
|
||||
|
@ -252,7 +252,7 @@
|
|||
"id": "10",
|
||||
"name": "cybercrime-tracker.net - all",
|
||||
"provider": "cybercrime-tracker.net",
|
||||
"url": "http://cybercrime-tracker.net/all.php",
|
||||
"url": "https://cybercrime-tracker.net/all.php",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "0",
|
||||
|
@ -285,7 +285,7 @@
|
|||
"id": "11",
|
||||
"name": "Phishtank online valid phishing",
|
||||
"provider": "Phishtank",
|
||||
"url": "http://data.phishtank.com/data/online-valid.csv",
|
||||
"url": "https://data.phishtank.com/data/online-valid.csv",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "0",
|
||||
|
@ -342,8 +342,8 @@
|
|||
"Feed": {
|
||||
"id": "13",
|
||||
"name": "ip-filter.blf - labs.snort.org",
|
||||
"provider": "http://labs.snort.org",
|
||||
"url": "http://labs.snort.org/feeds/ip-filter.blf",
|
||||
"provider": "https://labs.snort.org",
|
||||
"url": "https://labs.snort.org/feeds/ip-filter.blf",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": true,
|
||||
"distribution": "0",
|
||||
|
@ -705,7 +705,7 @@
|
|||
"id": "36",
|
||||
"name": "IPs from High-Confidence DGA-Based C&Cs Actively Resolving",
|
||||
"provider": "osint.bambenekconsulting.com",
|
||||
"url": "http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist-high.txt",
|
||||
"url": "https://osint.bambenekconsulting.com/feeds/c2-ipmasterlist-high.txt",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -737,7 +737,7 @@
|
|||
"id": "37",
|
||||
"name": "Domains from High-Confidence DGA-based C&C Domains Actively Resolving",
|
||||
"provider": "osint.bambenekconsulting.com",
|
||||
"url": "http://osint.bambenekconsulting.com/feeds/c2-dommasterlist-high.txt",
|
||||
"url": "https://osint.bambenekconsulting.com/feeds/c2-dommasterlist-high.txt",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -769,7 +769,7 @@
|
|||
"id": "38",
|
||||
"name": "ci-badguys.txt",
|
||||
"provider": "cinsscore.com",
|
||||
"url": "http://cinsscore.com/list/ci-badguys.txt",
|
||||
"url": "https://cinsscore.com/list/ci-badguys.txt",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -801,7 +801,7 @@
|
|||
"id": "39",
|
||||
"name": "alienvault reputation generic",
|
||||
"provider": ".alienvault.com",
|
||||
"url": "http://reputation.alienvault.com/reputation.generic",
|
||||
"url": "https://reputation.alienvault.com/reputation.generic",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -1137,7 +1137,7 @@
|
|||
"id": "57",
|
||||
"name": "http://cybercrime-tracker.net",
|
||||
"provider": "http://cybercrime-tracker.net hashlist",
|
||||
"url": "http://cybercrime-tracker.net/ccamlist.php",
|
||||
"url": "https://cybercrime-tracker.net/ccamlist.php",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -1162,7 +1162,7 @@
|
|||
"id": "58",
|
||||
"name": "http://cybercrime-tracker.net",
|
||||
"provider": "http://cybercrime-tracker.net gatelist",
|
||||
"url": "http://cybercrime-tracker.net/ccamgate.php",
|
||||
"url": "https://cybercrime-tracker.net/ccamgate.php",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -1237,7 +1237,7 @@
|
|||
"id": "61",
|
||||
"name": "conficker all domains generated",
|
||||
"provider": "cert.at",
|
||||
"url": "http://www.cert.at/static/downloads/data/conficker/all_domains.txt",
|
||||
"url": "https://www.cert.at/static/downloads/data/conficker/all_domains.txt",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -1395,7 +1395,7 @@
|
|||
"id": "70",
|
||||
"name": "CyberCure - IP Feed",
|
||||
"provider": "www.cybercure.ai",
|
||||
"url": "http://api.cybercure.ai/feed/get_ips?type=csv",
|
||||
"url": "https://api.cybercure.ai/feed/get_ips?type=csv",
|
||||
"rules": "",
|
||||
"enabled": false,
|
||||
"distribution": "3",
|
||||
|
@ -1420,7 +1420,7 @@
|
|||
"id": "71",
|
||||
"name": "CyberCure - Blocked URL Feed",
|
||||
"provider": "www.cybercure.ai",
|
||||
"url": "http://api.cybercure.ai/feed/get_url?type=csv",
|
||||
"url": "https://api.cybercure.ai/feed/get_url?type=csv",
|
||||
"rules": "",
|
||||
"enabled": true,
|
||||
"distribution": "3",
|
||||
|
@ -1445,7 +1445,7 @@
|
|||
"id": "72",
|
||||
"name": "CyberCure - Hash Feed",
|
||||
"provider": "www.cybercure.ai",
|
||||
"url": "http://api.cybercure.ai/feed/get_hash?type=csv",
|
||||
"url": "https://api.cybercure.ai/feed/get_hash?type=csv",
|
||||
"rules": "",
|
||||
"enabled": false,
|
||||
"distribution": "3",
|
||||
|
@ -1602,7 +1602,7 @@
|
|||
"id": "89",
|
||||
"name": "Benkow.cc RAT",
|
||||
"provider": "benkow.cc",
|
||||
"url": "http://benkow.cc/export_rat.php",
|
||||
"url": "https://benkow.cc/export_rat.php",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": false,
|
||||
"distribution": "0",
|
||||
|
@ -1631,7 +1631,7 @@
|
|||
"id": "90",
|
||||
"name": "Panels Tracker",
|
||||
"provider": "Benkow.cc",
|
||||
"url": "http://benkow.cc/export.php",
|
||||
"url": "https://benkow.cc/export.php",
|
||||
"rules": "{\"tags\":{\"OR\":[],\"NOT\":[]},\"orgs\":{\"OR\":[],\"NOT\":[]}}",
|
||||
"enabled": false,
|
||||
"distribution": "3",
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit d5f37d3dc23c8acfe080e7ff04ca5979f3e64625
|
||||
Subproject commit 30204266a0ae9d7a9556853cd8f02096396818a0
|
|
@ -771,6 +771,7 @@ a.proposal_link_red:hover {
|
|||
display: inline-block;
|
||||
margin-right:2px;
|
||||
word-wrap:break-word;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.black-white {
|
||||
|
|
|
@ -3531,8 +3531,10 @@ function attributeHoverPlacement(element) {
|
|||
$('body').on('click', function (e) {
|
||||
$('[data-toggle=popover]').each(function () {
|
||||
// hide any open popovers when the anywhere else in the body is clicked
|
||||
if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
|
||||
$('#' + currentPopover).popover('destroy');
|
||||
if (typeof currentPopover !== 'undefined') {
|
||||
if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
|
||||
$('#' + currentPopover).popover('destroy');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -3750,7 +3752,7 @@ function selectAllInbetween(last, current) {
|
|||
from = to;
|
||||
to = temp;
|
||||
}
|
||||
$('.select_proposal, .select_attribute').each(function () {
|
||||
$('.select_proposal, .select_attribute, .select').each(function (e) {
|
||||
if ($('#' + this.id).parent().parent().index() >= from && $('#' + this.id).parent().parent().index() <= to) {
|
||||
$(this).prop('checked', true);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# INSTALLATION INSTRUCTIONS
|
||||
## for Ubuntu 18.04.2-server
|
||||
## for Ubuntu 18.04.3-server
|
||||
|
||||
### -1/ Installer and Manual install instructions
|
||||
|
||||
Make sure you are reading the parsed version of this Document. When in doubt [click here](https://misp.github.io/MISP/INSTALL.ubuntu1804/).
|
||||
|
||||
To install MISP on a fresh Ubuntu install all you need to do is:
|
||||
To install MISP on a fresh Ubuntu 18.04, all you need to do is the following:
|
||||
|
||||
```bash
|
||||
# Please check the installer options first to make the best choice for your install
|
||||
|
|
Loading…
Reference in New Issue