Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
cleanup incident data model, rough in investigation entity
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffbryner committed Jan 26, 2015
1 parent 4d9eb87 commit 175a20d
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 70 deletions.
19 changes: 14 additions & 5 deletions meteor/app/client/incidentEdit.html
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@
<textarea id="theoryDescription" placeholder="long description" class="form-control" rows=4 required></textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="theoryStatus">Status:</label>
<div class="col-xs-5">
<input id="theoryStatus" placeholder="status" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="col-xs-2 col-xs-offset-2">
<button id="saveTheory" type="submit" class="btn btn-primary submit">Save</button>
Expand Down Expand Up @@ -260,7 +266,6 @@
<td>Description</td>
<td>Created</td>
<td>Creator</td>
<td>Status</td>
</tr>
</thead>
<tbody>
Expand All @@ -271,7 +276,6 @@
<td>{{description}}</td>
<td>{{dateCreated}}</td>
<td>{{creator}}</td>
<td>{{status}}</td>
<td><button class="btn btn-danger timestampdelete" data-timestampid={{_id}}>delete</button></td>
</tr>
{{/each}}
Expand All @@ -296,13 +300,20 @@
<div class="col-xs-2">
<input type="checkbox" class="form-control" id="mitigationTemporary">
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="mitigationDescription">Description:</label>
<div class="col-xs-10">
<textarea id="mitigationDescription" placeholder="long description" class="form-control" rows=4 required></textarea>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="mitigationStatus">Status:</label>
<div class="col-xs-5">
<input id="mitigationStatus" placeholder="status" class="form-control" type="text">
</div>
</div>

<div class="form-group">
<div class="col-xs-2 col-xs-offset-2">
<button id="saveMitigation" type="submit" class="btn btn-primary submit">Save</button>
Expand Down Expand Up @@ -374,7 +385,6 @@
<td>Description</td>
<td>Created</td>
<td>Creator</td>
<td>Status</td>
</tr>
</thead>
<tbody>
Expand All @@ -385,7 +395,6 @@
<td>{{description}}</td>
<td>{{dateCreated}}</td>
<td>{{creator}}</td>
<td>{{status}}</td>
<td><button class="btn btn-danger lessondelete" data-lessonid={{_id}}>delete</button></td>
</tr>
{{/each}}
Expand Down
12 changes: 9 additions & 3 deletions meteor/app/client/incidents.js
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ if (Meteor.isClient) {

theory.summary=$('#theorySummary').val();
theory.description=$('#theoryDescription').val();
theory.status=$('#theoryStatus').val();
theory.lastModifier=Meteor.user().profile.email;

if ( theory.summary && theory.description ) {
Expand All @@ -279,6 +280,7 @@ if (Meteor.isClient) {

$('#theorySummary').val('');
$('#theoryDescription').val('');
$('#theoryStatus').val('');
theory=null;
e.preventDefault();
}
Expand All @@ -288,7 +290,7 @@ if (Meteor.isClient) {
"click .theoryedit": function(e){
theory=models.theory();
theory._id= $(e.target).attr('data-theoryid');
//elemMatch not available on client side..iterate the theories for a match.
//elemMatch not available on client side..iterate the items for a match.
theories=incidents.findOne({'_id':Session.get('incidentID')},
{theories:{$elemMatch:{'_id': theory._id}}},
{ "theories.$": 1 }
Expand All @@ -297,6 +299,7 @@ if (Meteor.isClient) {
if (theory != undefined) {
$('#theorySummary').val(theory.summary);
$('#theoryDescription').val(theory.description);
$('#theoryStatus').val(theory.status);
}
e.preventDefault();
},
Expand Down Expand Up @@ -340,7 +343,7 @@ if (Meteor.isClient) {
"click .timestampedit": function(e){
timestamp=models.timestamp();
timestamp._id= $(e.target).attr('data-timestampid');
//elemMatch not available on client side..iterate the theories for a match.
//elemMatch not available on client side..iterate the items for a match.
timestamps=incidents.findOne({'_id':Session.get('incidentID')},
{timestamps:{$elemMatch:{'_id': timestamp._id}}},
{ "timestamps.$": 1 }
Expand Down Expand Up @@ -368,6 +371,7 @@ if (Meteor.isClient) {
}
mitigation.summary=$('#mitigationSummary').val();
mitigation.description=$('#mitigationDescription').val();
mitigation.status=$('#mitigationStatus').val();
mitigation.temporary=$('#mitigationTemporary').is(':checked');
mitigation.lastModifier=Meteor.user().profile.email;

Expand All @@ -381,6 +385,7 @@ if (Meteor.isClient) {
});
$('#mitigationSummary').val('');
$('#mitigationDescription').val('');
$('#mitigationStatus').val('');
$('#mitigationTemporary').prop('checked', false);
mitigation=null;
e.preventDefault();
Expand All @@ -390,7 +395,7 @@ if (Meteor.isClient) {
"click .mitigationedit": function(e){
mitigation=models.mitigation();
mitigation._id= $(e.target).attr('data-mitigationid');
//elemMatch not available on client side..iterate the theories for a match.
//elemMatch not available on client side..iterate the items for a match.
mitigations=incidents.findOne({'_id':Session.get('incidentID')},
{mitigations:{$elemMatch:{'_id': mitigation._id}}},
{ "mitigations.$": 1 }
Expand All @@ -399,6 +404,7 @@ if (Meteor.isClient) {
if (mitigation != undefined) {
$('#mitigationSummary').val(mitigation.summary);
$('#mitigationDescription').val(mitigation.description);
$('#mitigationStatus').val(mitigation.status);
$('#mitigationTemporary').prop('checked', mitigation.temporary);
}
e.preventDefault();
Expand Down
20 changes: 13 additions & 7 deletions meteor/app/client/menu.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,32 @@ <h2><a class="mozdef" href="/" title="MOZDEF">MOZDEF</a></h2>
</span>
<span id="nav-main">
<ul>
<li class="first"><a href="#">Kibana dashboards</a>
<li class="first"><a href="#">Kibanas</a>
<ul>
{{#each kibanadashboards as item}}
{{>kibanaDashboardItem}}
{{/each}}
</ul>
</li>
</li>
<li><a href="/alerts/">Alerts</a>
</li>
<li><a href="/Incidents">Incidents</a>
<li><a href="/investigations">Investigations</a>
<ul>
<li class="first"><a href="/investigation/new/">new investigation</a></li>
<li class="last"><a href="/investigations/veris/">veris stats</a></li>
</ul>
</li>
<li><a href="/incidents">Incidents</a>
<ul>
<li class="first"><a href="/incidents/new/">new incident</a></li>
<li class="first"><a href="/incident/new/">new incident</a></li>
<li class="last"><a href="/incidents/veris/">veris stats</a></li>
</ul>
</li>
<li class="first"><a href="#">Visualizations</a>
<ul>
<li class="first"><a href="/logincounts/">logincounts</a></li>
<li><a href="/attackers">attackers</a></li>
<li class="last"><a href="/globe">globe</a></li>
<li class="last"><a href="/globe">globe</a></li>
</ul>
</li>
<li><a href="/about">About</a></li>
Expand All @@ -46,10 +52,10 @@ <h2><a class="mozdef" href="/" title="MOZDEF">MOZDEF</a></h2>
<label>
{{#if loggingIn}}
loading
{{else}}
{{else}}
{{#if currentUser}}
{{currentUser.profile.email}}
{{/if}}
{{/if}}
{{/if}}
{{> loginButtons align="right"}}
</label>
Expand Down
2 changes: 1 addition & 1 deletion meteor/app/client/mozdef.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Anthony Verez averez@mozilla.com
*/

if (Meteor.isClient) {
//defaults:
//default session variables:
Meteor.startup(function () {
Session.set('verisfilter',' ');
Session.set('alertssearchtext','');
Expand Down
51 changes: 28 additions & 23 deletions meteor/app/lib/models.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@ var today=new Date();

models={

incident: function() {
investigation: function() {
return {
summary:"",
description: "",
dateOpened: today,
dateClosed:"",
creator: Meteor.user().profile.email,
indicators: [],
evidence: [],
theories:[],
notes:[],
tags:[],
Expand All @@ -30,26 +32,31 @@ models={
mitigations:[],
timestamps:[],
phase:"Identification",
timeline: {reported:"",
verified:"",
mitigationAvailable:"",
contained:"",
disclosed:"",
timeToCompromise:"",
timeToDiscovery:"",
timeToContainment:"",
timeToExfiltration:""
},
action:"",
asset:"",
attribute:"",
discovery:"",
verification:"",
accessibility:"",
confidence:"",
actor:"",
motive:"",
impact:""
timeline: { dateBegin:"",
dateEnd:""
}
};
},

incident: function() {
return {
summary:"",
description: "",
dateOpened: today,
dateClosed: "",
dateReported: "",
dateVerified: "",
dateMitigated: "",
dateContained: "",
creator: Meteor.user().profile.email,
theories:[],
notes:[],
tags:[],
references:[],
lessons:[],
mitigations:[],
timestamps:[],
phase:"Identification"
};
},

Expand All @@ -73,7 +80,6 @@ models={
'timestamp': today,
'description': '',
'creator': '',
'status': '',
'lastModifier': ''
};
},
Expand All @@ -98,7 +104,6 @@ models={
'summary': '',
'description': '',
'creator': '',
'status': '',
'lastModifier': ''
};
},
Expand Down

0 comments on commit 175a20d

Please sign in to comment.