class AssignResponsibilityNodeDialog:
  def __init__(self,objt,environmentName,builder,goalName,isGoal = True):
    self.window = builder.get_object("AssignResponsibilityNodeDialog")
    b = Borg()
    self.isGoalIndicator = isGoal
    self.dbProxy = b.dbProxy
    self.theEnvironmentName = environmentName
    self.theGoalName = goalName
    self.decorator = NDImplementationDecorator(builder)
    self.theObjtId = objt.id()

    roles = self.dbProxy.getDimensionNames('role')
    self.decorator.updateComboCtrl("roleRespNameCtrl",roles,'')
    self.window.resize(350,200)

  def on_roleResponsibilityOkButton_clicked(self,callback_data):
    roleName = self.decorator.getComboValue("roleRespNameCtrl")
    if (self.isGoalIndicator == False):
      roleId = self.dbProxy.getDimensionId(roleName,'role')
      self.dbProxy.addTrace('requirement_role',self.theObjtId,roleId)
    else: 
      goalDim = 'goal'
      if (self.isGoalIndicator == False):
        goalDim = 'requirement'
      parameters = GoalAssociationParameters(self.theEnvironmentName,self.theGoalName,goalDim,'responsible',roleName,'role')
      self.dbProxy.addGoalAssociation(parameters)
    self.window.destroy()

  def show(self):
    self.window.show()
示例#2
0
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("ObstacleNodeDialog")
   b = Borg()
   self.dbProxy = b.dbProxy
   self.theEnvironmentName = environmentName
   self.theObstacleAssociation = None
   self.theObstacleId = -1
   self.decorator = NDImplementationDecorator(builder)
   obstacleCategories = self.dbProxy.getDimensionNames('obstacle_category_type')
   self.obstacleAssociations = []
   self.subObstacleAssociations = []
   if (objt == None):
     self.decorator.updateComboCtrl("obstacleCategoryCtrl",obstacleCategories,'')
     self.decorator.updateButtonLabel("obstacleOkButton","Create")
     self.isCreate = True
   else:
     self.theObstacleId= objt.id()
     envProperty = objt.environmentProperty(self.theEnvironmentName)
     self.obstacleAssociations = envProperty.goalRefinements()
     self.subObstacleAssociations = envProperty.subGoalRefinements()
     self.decorator.updateTextCtrl("obstacleNameCtrl",objt.name())
     self.decorator.updateComboCtrl("obstacleCategoryCtrl",obstacleCategories,objt.category(environmentName,dupProperty))
     self.decorator.updateMLTextCtrl("obstacleDefinitionCtrl",objt.definition(environmentName,dupProperty))
     self.decorator.updateButtonLabel("obstacleOkButton","Update")
     self.isCreate = False
   self.window.resize(350,600)
示例#3
0
    def __init__(self, objt, rating, environmentName, builder):
        self.builder = builder
        self.window = self.builder.get_object("RiskNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("riskNameCtrl", objt.name())
        self.decorator.updateTextCtrl("riskThreatCtrl", objt.threat())
        self.detailsDict = {}

        self.decorator.updateTextCtrl("riskVulnerabilityCtrl",
                                      objt.vulnerability())
        self.decorator.updateTextCtrl("riskRatingCtrl", rating)
        b = Borg()
        proxy = b.dbProxy

        riskDetails = []
        riskScores = proxy.riskScore(objt.threat(), objt.vulnerability(),
                                     environmentName, objt.name())
        for idx, riskScore in enumerate(riskScores):
            riskDetails.append([riskScore[0], riskScore[1]])
            self.detailsDict[riskScore[0]] = riskScore[2]
        self.decorator.updateListCtrl("riskScoreCtrl", ['Response', 'Score'],
                                      gtk.ListStore(str, str), riskDetails)
        self.defaultSize = self.window.get_size()
        detailsCtrlWindow = self.builder.get_object("riskDetailsCtrl")
        detailsCtrlWindow.hide()
示例#4
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("UseCaseNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.theSteps = objt.steps(environmentName)
    ucName = objt.name()
    self.decorator.updateTextCtrl("usecaseNameCtrl",ucName)
    self.decorator.updateMLTextCtrl("usecaseDescriptionCtrl",objt.description())

    actors  = []
    for actor in objt.actors():
      actors.append([actor])
    self.decorator.updateListCtrl("usecaseActorsCtrl",['Actor'],gtk.ListStore(str),actors)

    self.decorator.updateMLTextCtrl("usecasePreconditionsCtrl",objt.preconditions(environmentName))

    steps = []
    for s in self.theSteps:
      steps.append([s]) 
    self.decorator.updateListCtrl("usecaseStepsCtrl",['Step'],gtk.ListStore(str),steps)

    stepExceptions = (self.theSteps[0]).exceptions()
    excs = []
    for e in stepExceptions:
      excs.append([e])
    self.decorator.updateListCtrl("usecaseExceptionCtrl",['Exception'],gtk.ListStore(str),excs)

    self.decorator.updateMLTextCtrl("usecasePostconditionsCtrl",objt.postconditions(environmentName))

    self.window.resize(350,300)
    def __init__(self, objt, environmentName, builder):
        self.window = builder.get_object("AssetAssociationNodeDialog")
        b = Borg()
        self.dbProxy = b.dbProxy
        self.theCurrentEnvironment = environmentName
        self.theHeadName = objt.name()
        self.decorator = NDImplementationDecorator(builder)
        assets = self.dbProxy.environmentAssets(self.theCurrentEnvironment)
        associationTypes = [
            'Inheritance', 'Association', 'Aggregation', 'Composition',
            'Dependency'
        ]
        multiplicityTypes = ['1', '*', '1..*']

        self.decorator.updateComboCtrl("assetAssociationHeadAdornmentCtrl",
                                       associationTypes, '')
        self.decorator.updateComboCtrl("assetAssociationHeadNryCtrl",
                                       multiplicityTypes, '')
        self.decorator.updateComboCtrl("assetAssociationTailNryCtrl",
                                       multiplicityTypes, '')
        self.decorator.updateComboCtrl("assetAssociationTailAdornmentCtrl",
                                       associationTypes, '')
        self.decorator.updateComboCtrl("assetAssociationTailNameCtrl", assets,
                                       '')
        self.decorator.updateButtonLabel("assetAssociationOkButton", "Create")
示例#6
0
class AttackerNodeDialog:
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("AttackerNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("attackerNameCtrl",objt.name())
    roles = []
    for role in objt.roles(environmentName,dupProperty):
      roles.append([role]) 
    self.decorator.updateListCtrl("attackerRolesCtrl",['Role'],gtk.ListStore(str),roles)
    capabilities = []
    for cap,value in objt.capability(environmentName,dupProperty):
      capabilities.append([cap,value]) 
    self.decorator.updateListCtrl("attackerCapabilityCtrl",['Capability','Value'],gtk.ListStore(str,str),capabilities)
    motives = []
    for motive in objt.motives(environmentName,dupProperty):
      motives.append([motive]) 
    self.decorator.updateListCtrl("attackerMotiveCtrl",['Motive'],gtk.ListStore(str),motives)
    self.decorator.updateMLTextCtrl("attackerDescriptionCtrl",objt.description())

    self.window.resize(350,300)

  def on_attackerOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()
示例#7
0
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("GoalNodeDialog")
   b = Borg()
   self.dbProxy = b.dbProxy
   self.theEnvironmentName = environmentName
   self.theGoalAssociation = None
   self.theGoalId = -1
   self.decorator = NDImplementationDecorator(builder)
   goalCategories = self.dbProxy.getDimensionNames('goal_category_type')
   priorityTypes = self.dbProxy.getDimensionNames('priority_type')
   self.goalAssociations = []
   self.subGoalAssociations= []
   if (objt == None):
     self.decorator.updateComboCtrl("goalCategoryCtrl",goalCategories,'')
     self.decorator.updateComboCtrl("goalPriorityCtrl",priorityTypes,'')
     self.decorator.updateButtonLabel("goalOkButton","Create")
     self.isCreate = True
   else:
     self.theGoalId = objt.id()
     envProperty = objt.environmentProperty(self.theEnvironmentName)
     self.goalAssociations = envProperty.goalRefinements()
     self.subGoalAssociations = envProperty.subGoalRefinements()
     self.decorator.updateTextCtrl("goalNameCtrl",objt.name())
     self.decorator.updateMLTextCtrl("goalDefinitionCtrl",objt.definition(environmentName,dupProperty))
     self.decorator.updateComboCtrl("goalCategoryCtrl",goalCategories,objt.category(environmentName,dupProperty))
     self.decorator.updateComboCtrl("goalPriorityCtrl",priorityTypes,objt.priority(environmentName,dupProperty))
     self.decorator.updateMLTextCtrl("goalFitCriterionCtrl",objt.fitCriterion(environmentName,dupProperty))
     self.decorator.updateMLTextCtrl("goalIssueCtrl",objt.issue(environmentName,dupProperty))
     self.decorator.updateButtonLabel("goalOkButton","Update")
     self.isCreate = False
   self.window.resize(350,600)
示例#8
0
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("ThreatNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("threatNameCtrl", objt.name())
        self.decorator.updateTextCtrl("threatTypeCtrl", objt.type())
        self.decorator.updateTextCtrl(
            "threatLikelihoodCtrl",
            objt.likelihood(environmentName, dupProperty,
                            overridingEnvironment))
        self.decorator.updateMLTextCtrl("threatMethodCtrl", objt.method())
        attackers = []
        for attacker in objt.attackers(environmentName, dupProperty):
            attackers.append([attacker])
        self.decorator.updateListCtrl("threatAttackersCtrl", ['Attacker'],
                                      gtk.ListStore(str), attackers)
        assets = []
        for asset in objt.assets(environmentName, dupProperty):
            assets.append([asset])
        self.decorator.updateListCtrl("threatAssetsCtrl", ['Asset'],
                                      gtk.ListStore(str), assets)
        self.decorator.updateListCtrl(
            "threatPropertiesCtrl", ['Property', 'Value'],
            gtk.ListStore(str, str),
            objt.propertyList(environmentName, dupProperty,
                              overridingEnvironment))

        self.window.resize(350, 350)
    def __init__(self,
                 objt,
                 environmentName,
                 builder,
                 goalIndicator,
                 gName,
                 reqIndicator=False):
        self.window = builder.get_object("GoalRefinementNodeDialog")
        b = Borg()
        self.dbProxy = b.dbProxy
        self.theEnvironmentName = environmentName
        self.decorator = NDImplementationDecorator(builder)
        self.reqIndicator = reqIndicator

        refTypes = ['and', 'or']
        goals = self.dbProxy.environmentGoals(self.theEnvironmentName)
        if (self.reqIndicator == True):
            refTypes = ['and']
            goals = self.dbProxy.getDimensionNames('requirement')

        self.decorator.updateComboCtrl("goalRefNameCtrl", goals, '')
        self.decorator.updateComboCtrl("goalRefinementCtrl", refTypes, '')
        self.decorator.updateButtonLabel("goalRefinementOkButton", "Create")
        self.window.resize(350, 200)
        self.goalIndicator = goalIndicator
        self.inputGoalName = gName
示例#10
0
class ComponentNodeDialog:
  def __init__(self,objt,builder):
    self.window = builder.get_object("ComponentNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    componentName = objt.name()
    self.decorator.updateTextCtrl("componentNameCtrl",componentName)
    self.decorator.updateMLTextCtrl("componentDescriptionCtrl",objt.description())

    cifs  = []
    for cif in objt.interfaces():
      cifs.append([cif[0],cif[1]])
    self.decorator.updateListCtrl("componentInterfacesCtrl",['Name','Type'],gtk.ListStore(str,str),cifs)

    cStructure = []
    for csRow  in objt.structure():
      cStructure.append([csRow[0],csRow[1],csRow[2],csRow[3],csRow[4],csRow[5],csRow[6],csRow[7],csRow[8],csRow[9]])
    self.decorator.updateListCtrl("componentStructureCtrl",['Head Asset','Type','Nav','Nry','Role','Tail Role','Tail Nry','Tail Nav','Tail Type','Tail Asset'],gtk.ListStore(str,str,str,str,str,str,str,str,str,str),cStructure)

    reqs  = []
    for req in objt.requirements():
      reqs.append([req])
    self.decorator.updateListCtrl("componentRequirementsCtrl",['Name'],gtk.ListStore(str),reqs)

    self.window.resize(350,300)

  def on_componentOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()
示例#11
0
    def __init__(self, objt, builder):
        self.window = builder.get_object("ComponentNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        componentName = objt.name()
        self.decorator.updateTextCtrl("componentNameCtrl", componentName)
        self.decorator.updateMLTextCtrl("componentDescriptionCtrl",
                                        objt.description())

        cifs = []
        for cif in objt.interfaces():
            cifs.append([cif[0], cif[1]])
        self.decorator.updateListCtrl("componentInterfacesCtrl",
                                      ['Name', 'Type'],
                                      gtk.ListStore(str, str), cifs)

        cStructure = []
        for csRow in objt.structure():
            cStructure.append([
                csRow[0], csRow[1], csRow[2], csRow[3], csRow[4], csRow[5],
                csRow[6], csRow[7], csRow[8], csRow[9]
            ])
        self.decorator.updateListCtrl(
            "componentStructureCtrl", [
                'Head Asset', 'Type', 'Nav', 'Nry', 'Role', 'Tail Role',
                'Tail Nry', 'Tail Nav', 'Tail Type', 'Tail Asset'
            ], gtk.ListStore(str, str, str, str, str, str, str, str, str, str),
            cStructure)

        reqs = []
        for req in objt.requirements():
            reqs.append([req])
        self.decorator.updateListCtrl("componentRequirementsCtrl", ['Name'],
                                      gtk.ListStore(str), reqs)

        self.window.resize(350, 300)
示例#12
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("CountermeasureNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("countermeasureNameCtrl",objt.name())
    self.decorator.updateMLTextCtrl("countermeasureDescriptionCtrl",objt.description())
    self.decorator.updateTextCtrl("countermeasureCostCtrl",objt.cost(environmentName,dupProperty,overridingEnvironment))

    reqs = []
    for req in set(objt.requirements(environmentName,dupProperty,overridingEnvironment)):
      reqs.append([req])
    self.decorator.updateListCtrl("countermeasureRequirementsCtrl",['Requirement'],gtk.ListStore(str),reqs)

    targets = []
    for target in objt.targets(environmentName,dupProperty,overridingEnvironment):
      targets.append([target.name(),target.effectiveness()])
    self.decorator.updateListCtrl("countermeasureTargetsCtrl",['Target','Effectiveness'],gtk.ListStore(str,str),targets)

    self.decorator.updateListCtrl("countermeasurePropertiesCtrl",['Property','Value'],gtk.ListStore(str,str),objt.propertyList(environmentName,dupProperty,overridingEnvironment))

    roles = []
    for role in objt.roles(environmentName,dupProperty,overridingEnvironment):
      roles.append([role])
    self.decorator.updateListCtrl("countermeasureRolesCtrl",['Role'],gtk.ListStore(str),roles)

    tps  = []
    for tp in objt.personas(environmentName,dupProperty,overridingEnvironment):
      tps.append([tp[0],tp[1],tp[2],tp[3],tp[4],tp[5]])
    self.decorator.updateListCtrl("countermeasureTaskPersonasCtrl",['Task','Persona','Duration','Frequency','Demands','Goals'],gtk.ListStore(str,str,str,str,str,str),tps)


    self.window.resize(500,300)
示例#13
0
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("MisuseCaseNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("misuseCaseNameCtrl", objt.name())

        b = Borg()
        proxy = b.dbProxy
        environmentId = proxy.getDimensionId(environmentName, 'environment')
        threatName, vulName = proxy.riskComponents(objt.risk())

        threatId = proxy.getDimensionId(threatName, 'threat')
        vulId = proxy.getDimensionId(vulName, 'vulnerability')
        self.decorator.updateTextCtrl("misuseCaseThreatCtrl", threatName)
        self.decorator.updateTextCtrl(
            "misuseCaseLikelihoodCtrl",
            proxy.threatLikelihood(threatId, environmentId))
        self.decorator.updateTextCtrl("misuseCaseVulnerabilityCtrl", vulName)
        self.decorator.updateTextCtrl(
            "misuseCaseSeverityCtrl",
            proxy.vulnerabilitySeverity(vulId, environmentId))
        self.decorator.updateTextCtrl(
            "misuseCaseRiskRatingCtrl",
            proxy.riskRating(threatName, vulName, environmentName))

        attackers = proxy.threatAttackers(threatId, environmentId)
        attackerSet = set(attackers)
        attackers = []
        for attacker in attackerSet:
            attackers.append([attacker])
        self.decorator.updateListCtrl("misuseCaseAttackersCtrl", ['Attacker'],
                                      gtk.ListStore(str), attackers)

        threatenedAssets = proxy.threatenedAssets(threatId, environmentId)
        vulnerableAssets = proxy.vulnerableAssets(vulId, environmentId)
        assetSet = set(threatenedAssets + vulnerableAssets)
        assets = []
        for asset in assetSet:
            assets.append([asset])
        self.decorator.updateListCtrl("misuseCaseAssetsCtrl", ['Asset'],
                                      gtk.ListStore(str), assets)

        self.decorator.updateMLTextCtrl(
            "misuseCaseNarrativeCtrl",
            objt.narrative(environmentName, dupProperty))

        objectiveText = 'Exploit vulnerabilities in '
        for idx, vulAsset in enumerate(vulnerableAssets):
            objectiveText += vulAsset
            if (idx != (len(vulnerableAssets) - 1)):
                objectiveText += ','
        objectiveText += ' to threaten '
        for idx, thrAsset in enumerate(threatenedAssets):
            objectiveText += thrAsset
            if (idx != (len(threatenedAssets) - 1)):
                objectiveText += ','
        objectiveText += '.'
        self.decorator.updateTextCtrl("misuseCaseObjectiveCtrl", objectiveText)

        self.window.resize(350, 100)
示例#14
0
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("PersonaNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("personaNameCtrl", objt.name())
        self.decorator.updateMLTextCtrl("personaActivitiesCtrl",
                                        objt.activities())
        self.decorator.updateMLTextCtrl("personaAttitudesCtrl",
                                        objt.attitudes())
        self.decorator.updateMLTextCtrl("personaAptitudesCtrl",
                                        objt.aptitudes())
        self.decorator.updateMLTextCtrl("personaMotivationsCtrl",
                                        objt.motivations())
        self.decorator.updateMLTextCtrl("personaSkillsCtrl", objt.skills())
        self.decorator.updateImageCtrl("personaImageCtrl", objt.image())

        self.decorator.updateTextCtrl(
            "personaDirectCtrl", objt.directFlag(environmentName, dupProperty))
        roles = []
        for role in objt.roles(environmentName, dupProperty):
            roles.append([role])
        self.decorator.updateListCtrl("personaRolesCtrl", ['Role'],
                                      gtk.ListStore(str), roles)
        self.decorator.updateMLTextCtrl(
            "personaNarrativeCtrl", objt.narrative(environmentName,
                                                   dupProperty))

        self.window.resize(400, 400)
class AssignResponsibilityNodeDialog:
    def __init__(self, objt, environmentName, builder, goalName, isGoal=True):
        self.window = builder.get_object("AssignResponsibilityNodeDialog")
        b = Borg()
        self.isGoalIndicator = isGoal
        self.dbProxy = b.dbProxy
        self.theEnvironmentName = environmentName
        self.theGoalName = goalName
        self.decorator = NDImplementationDecorator(builder)
        self.theObjtId = objt.id()

        roles = self.dbProxy.getDimensionNames('role')
        self.decorator.updateComboCtrl("roleRespNameCtrl", roles, '')
        self.window.resize(350, 200)

    def on_roleResponsibilityOkButton_clicked(self, callback_data):
        roleName = self.decorator.getComboValue("roleRespNameCtrl")
        if (self.isGoalIndicator == False):
            roleId = self.dbProxy.getDimensionId(roleName, 'role')
            self.dbProxy.addTrace('requirement_role', self.theObjtId, roleId)
        else:
            goalDim = 'goal'
            if (self.isGoalIndicator == False):
                goalDim = 'requirement'
            parameters = GoalAssociationParameters(self.theEnvironmentName,
                                                   self.theGoalName, goalDim,
                                                   'responsible', roleName,
                                                   'role')
            self.dbProxy.addGoalAssociation(parameters)
        self.window.destroy()

    def show(self):
        self.window.show()
示例#16
0
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("AcceptNodeDialog")
   self.decorator = NDImplementationDecorator(builder)
   self.decorator.updateTextCtrl("acceptNameCtrl",objt.name())
   self.decorator.updateTextCtrl("acceptRiskCtrl",objt.risk())
   self.decorator.updateTextCtrl("acceptCostCtrl",objt.cost(environmentName,dupProperty,overridingEnvironment))
   self.decorator.updateMLTextCtrl("acceptRationaleCtrl",objt.description(environmentName,dupProperty,overridingEnvironment))
   self.window.resize(300,300)
示例#17
0
    def __init__(self, refName, docName, docExc, builder):
        self.window = builder.get_object("DocumentReferenceNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("documentReferenceNameCtrl", refName)
        self.decorator.updateTextCtrl("documentReferenceDocumentCtrl", docName)
        self.decorator.updateMLTextCtrl("documentReferenceExcerptCtrl", docExc)

        self.window.resize(350, 200)
示例#18
0
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("DomainPropertyNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("domainPropertyNameCtrl", objt.name())
        self.decorator.updateTextCtrl("domainPropertyTypeCtrl", objt.type())
        self.decorator.updateMLTextCtrl("domainPropertyDescriptionCtrl",
                                        objt.description())

        self.window.resize(200, 200)
    def __init__(self, refName, dimName, objtName, refDesc, builder):
        self.window = builder.get_object("ConceptReferenceNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("conceptReferenceNameCtrl", refName)
        self.decorator.updateTextCtrl("conceptReferenceTypeCtrl", dimName)
        self.decorator.updateTextCtrl("conceptReferenceArtifactCtrl", objtName)
        self.decorator.updateMLTextCtrl("conceptReferenceDescriptionCtrl",
                                        refDesc)

        self.window.resize(350, 200)
示例#20
0
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("VulnerabilityNodeDialog")
   self.decorator = NDImplementationDecorator(builder)
   self.decorator.updateTextCtrl("vulnerabilityNameCtrl",objt.name())
   self.decorator.updateTextCtrl("vulnerabilityTypeCtrl",objt.type())
   self.decorator.updateTextCtrl("vulnerabilitySeverityCtrl",objt.severity(environmentName,dupProperty,overridingEnvironment))
   self.decorator.updateMLTextCtrl("vulnerabilityDescriptionCtrl",objt.description())
   assets = []
   for asset in objt.assets(environmentName,dupProperty):
     assets.append([asset])
   self.decorator.updateListCtrl("vulnerabilityAssetsCtrl",['Asset'],gtk.ListStore(str),assets)
   self.window.resize(300,325)
    def __init__(self, objt, environmentName, builder, goalName, isGoal=True):
        self.window = builder.get_object("AssignResponsibilityNodeDialog")
        b = Borg()
        self.isGoalIndicator = isGoal
        self.dbProxy = b.dbProxy
        self.theEnvironmentName = environmentName
        self.theGoalName = goalName
        self.decorator = NDImplementationDecorator(builder)
        self.theObjtId = objt.id()

        roles = self.dbProxy.getDimensionNames('role')
        self.decorator.updateComboCtrl("roleRespNameCtrl", roles, '')
        self.window.resize(350, 200)
示例#22
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("TransferNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("transferNameCtrl",objt.name())
    self.decorator.updateTextCtrl("transferRiskCtrl",objt.risk())

    roles = []
    roleList = objt.roles(environmentName,dupProperty,overridingEnvironment)
    for role in roleList:
      roles.append([role[0],role[1]])
    self.decorator.updateListCtrl("transferRolesCtrl",['Role','Cost'],gtk.ListStore(str,str),roles)
    self.decorator.updateMLTextCtrl("transferDescriptionCtrl",objt.description(environmentName,dupProperty,overridingEnvironment))
    self.window.resize(300,300)
示例#23
0
class MitigateNodeDialog:
    def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder):
        self.window = builder.get_object("MitigateNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("mitigateNameCtrl", objt.name())
        self.decorator.updateTextCtrl("mitigateRiskCtrl", objt.risk())
        mitType = objt.type(environmentName, dupProperty, overridingEnvironment)
        self.decorator.updateTextCtrl("mitigateTypeCtrl", mitType)

        dpFrame = builder.get_object("mitigateDetectionPointFrame")
        dmFrame = builder.get_object("mitigateDetectionMechanismsFrame")
        if mitType == "Detect":
            self.decorator.updateTextCtrl(
                "mitigateDetectionPointCtrl", objt.detectionPoint(environmentName, dupProperty, overridingEnvironment)
            )
            dmFrame.hide()
        elif mitType == "React":
            dms = []
            for dm in objt.detectionMechanisms(environmentName, dupProperty, overridingEnvironment):
                dms.append([dm])
            self.decorator.updateListCtrl(
                "mitigateDetectionMechanismsCtrl", ["Detection Mechanism"], gtk.ListStore(str), dms
            )
            dpFrame.hide()
        else:
            dpFrame.hide()
            dmFrame.hide()
        self.window.resize(300, 300)

    def on_mitigateOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
示例#24
0
class MitigateNodeDialog:
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("MitigateNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("mitigateNameCtrl",objt.name())
    self.decorator.updateTextCtrl("mitigateRiskCtrl",objt.risk())
    mitType = objt.type(environmentName,dupProperty,overridingEnvironment)
    self.decorator.updateTextCtrl("mitigateTypeCtrl",mitType)

    dpFrame = builder.get_object('mitigateDetectionPointFrame')
    dmFrame = builder.get_object('mitigateDetectionMechanismsFrame')
    if (mitType == 'Detect'):
      self.decorator.updateTextCtrl("mitigateDetectionPointCtrl",objt.detectionPoint(environmentName,dupProperty,overridingEnvironment))
      dmFrame.hide()
    elif (mitType == 'React'):
      dms = []
      for dm in objt.detectionMechanisms(environmentName,dupProperty,overridingEnvironment):
        dms.append([dm])
      self.decorator.updateListCtrl("mitigateDetectionMechanismsCtrl",['Detection Mechanism'],gtk.ListStore(str),dms)
      dpFrame.hide()
    else:
      dpFrame.hide()
      dmFrame.hide()
    self.window.resize(300,300)

  def on_mitigateOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()
示例#25
0
class RoleNodeDialog:
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("RoleNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("roleNameCtrl", objt.name())
        self.decorator.updateMLTextCtrl("roleDescriptionCtrl",
                                        objt.description())
        responseCosts = []
        for responseCost in objt.responses(environmentName, dupProperty,
                                           overridingEnvironment):
            responseCosts.append([responseCost[0], responseCost[1]])
        self.decorator.updateListCtrl("roleResponseCtrl", ['Response', 'Cost'],
                                      gtk.ListStore(str, str), responseCosts)
        cms = []
        for cm in objt.countermeasures(environmentName, dupProperty,
                                       overridingEnvironment):
            cms.append([cm[0]])
        self.decorator.updateListCtrl("roleCountermeasureCtrl",
                                      ['Countermeasure'], gtk.ListStore(str),
                                      cms)

        self.window.resize(350, 200)

    def on_roleOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
示例#26
0
 def __init__(self, objt, environmentName, dupProperty,
              overridingEnvironment, builder):
     self.window = builder.get_object("AssetNodeDialog")
     self.decorator = NDImplementationDecorator(builder)
     self.decorator.updateTextCtrl("assetNameCtrl", objt.name())
     self.decorator.updateMLTextCtrl("assetDescriptionCtrl",
                                     objt.description())
     self.decorator.updateMLTextCtrl("assetSignificanceCtrl",
                                     objt.significance())
     self.decorator.updateListCtrl(
         "assetPropertiesCtrl", ['Property', 'Value'],
         gtk.ListStore(str, str),
         objt.propertyList(environmentName, dupProperty,
                           overridingEnvironment))
     self.window.resize(350, 350)
示例#27
0
class DomainPropertyNodeDialog:
    def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder):
        self.window = builder.get_object("DomainPropertyNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("domainPropertyNameCtrl", objt.name())
        self.decorator.updateTextCtrl("domainPropertyTypeCtrl", objt.type())
        self.decorator.updateMLTextCtrl("domainPropertyDescriptionCtrl", objt.description())

        self.window.resize(200, 200)

    def on_roleOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
示例#28
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("TaskNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    taskName = objt.name()
    self.decorator.updateTextCtrl("taskNameCtrl",taskName)
    self.decorator.updateTextCtrl("taskObjectiveCtrl",objt.objective())
    self.decorator.updateMLTextCtrl("taskDependenciesCtrl",objt.dependencies(environmentName,dupProperty))

    personas  = []
    for persona in objt.personas(environmentName,dupProperty,overridingEnvironment):
      personas.append([persona[0],persona[1],persona[2],persona[3],persona[4]])
    self.decorator.updateListCtrl("taskPersonasCtrl",['Persona','Duration','Frequency','Demands','Goal conflict'],gtk.ListStore(str,str,str,str,str),personas)

    assets = []
    for asset in objt.assets(environmentName,dupProperty):
      assets.append([asset])
    self.decorator.updateListCtrl("taskAssetsCtrl",['Asset'],gtk.ListStore(str),assets)

    b = Borg()
    proxy = b.dbProxy
    self.decorator.updateTextCtrl("taskUsabilityCtrl",str(proxy.taskUsabilityScore(taskName,environmentName)))

    taskId = proxy.getDimensionId(taskName,'task')
    environmentId = proxy.getDimensionId(environmentName,'environment')
    self.decorator.updateTextCtrl("taskTaskLoadCtrl",str(proxy.taskLoad(taskId,environmentId)))
    self.decorator.updateTextCtrl("taskCountermeasureLoadCtrl",str(proxy.countermeasureLoad(taskId,environmentId)))
    self.decorator.updateMLTextCtrl("taskNarrativeCtrl",objt.narrative(environmentName,dupProperty))
    self.window.resize(350,300)
示例#29
0
 def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder):
     self.window = builder.get_object("ObstacleNodeDialog")
     b = Borg()
     self.dbProxy = b.dbProxy
     self.theEnvironmentName = environmentName
     self.theObstacleAssociation = None
     self.theObstacleId = -1
     self.decorator = NDImplementationDecorator(builder)
     obstacleCategories = self.dbProxy.getDimensionNames("obstacle_category_type")
     self.obstacleAssociations = []
     self.subObstacleAssociations = []
     if objt == None:
         self.decorator.updateComboCtrl("obstacleCategoryCtrl", obstacleCategories, "")
         self.decorator.updateButtonLabel("obstacleOkButton", "Create")
         self.isCreate = True
     else:
         self.theObstacleId = objt.id()
         envProperty = objt.environmentProperty(self.theEnvironmentName)
         self.obstacleAssociations = envProperty.goalRefinements()
         self.subObstacleAssociations = envProperty.subGoalRefinements()
         self.decorator.updateTextCtrl("obstacleNameCtrl", objt.name())
         self.decorator.updateComboCtrl(
             "obstacleCategoryCtrl", obstacleCategories, objt.category(environmentName, dupProperty)
         )
         self.decorator.updateMLTextCtrl("obstacleDefinitionCtrl", objt.definition(environmentName, dupProperty))
         self.decorator.updateButtonLabel("obstacleOkButton", "Update")
         self.isCreate = False
     self.window.resize(350, 600)
示例#30
0
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("AssetNodeDialog")
   self.decorator = NDImplementationDecorator(builder)
   self.decorator.updateTextCtrl("assetNameCtrl",objt.name())
   self.decorator.updateMLTextCtrl("assetDescriptionCtrl",objt.description())
   self.decorator.updateMLTextCtrl("assetSignificanceCtrl",objt.significance())
   self.decorator.updateListCtrl("assetPropertiesCtrl",['Property','Value'],gtk.ListStore(str,str),objt.propertyList(environmentName,dupProperty,overridingEnvironment))
   self.window.resize(350,350)
示例#31
0
class DomainPropertyNodeDialog:
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("DomainPropertyNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("domainPropertyNameCtrl", objt.name())
        self.decorator.updateTextCtrl("domainPropertyTypeCtrl", objt.type())
        self.decorator.updateMLTextCtrl("domainPropertyDescriptionCtrl",
                                        objt.description())

        self.window.resize(200, 200)

    def on_roleOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
示例#32
0
 def __init__(self,objt,builder):
   self.window = builder.get_object("DomainNodeDialog")
   self.decorator = NDImplementationDecorator(builder)
   self.decorator.updateTextCtrl("domainNameCtrl",objt.name())
   self.decorator.updateTextCtrl("domainTypeCtrl",objt.type())
   self.decorator.updateTextCtrl("domainShortCodeCtrl",objt.shortCode())
   self.decorator.updateMLTextCtrl("domainDescriptionCtrl",objt.description())
   self.window.resize(350,350)
示例#33
0
    def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder):
        self.window = builder.get_object("DomainPropertyNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("domainPropertyNameCtrl", objt.name())
        self.decorator.updateTextCtrl("domainPropertyTypeCtrl", objt.type())
        self.decorator.updateMLTextCtrl("domainPropertyDescriptionCtrl", objt.description())

        self.window.resize(200, 200)
  def __init__(self,refName,docName,docExc,builder):
    self.window = builder.get_object("DocumentReferenceNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("documentReferenceNameCtrl",refName)
    self.decorator.updateTextCtrl("documentReferenceDocumentCtrl",docName)
    self.decorator.updateMLTextCtrl("documentReferenceExcerptCtrl",docExc)

    self.window.resize(350,200)
  def __init__(self,refName,dimName,objtName,refDesc,builder):
    self.window = builder.get_object("ConceptReferenceNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("conceptReferenceNameCtrl",refName)
    self.decorator.updateTextCtrl("conceptReferenceTypeCtrl",dimName)
    self.decorator.updateTextCtrl("conceptReferenceArtifactCtrl",objtName)
    self.decorator.updateMLTextCtrl("conceptReferenceDescriptionCtrl",refDesc)

    self.window.resize(350,200)
示例#36
0
 def __init__(self, objt, environmentName, dupProperty,
              overridingEnvironment, builder):
     self.window = builder.get_object("LinkAndNodeDialog")
     self.decorator = NDImplementationDecorator(builder)
     self.decorator.updateTextCtrl("goalNameCtrl", objt.name())
     self.decorator.updateMLTextCtrl(
         "goalDefinitionCtrl", objt.definition(environmentName,
                                               dupProperty))
     self.decorator.updateTextCtrl(
         "goalCategoryCtrl", objt.category(environmentName, dupProperty))
     self.decorator.updateTextCtrl(
         "goalPriorityCtrl", objt.priority(environmentName, dupProperty))
     self.decorator.updateMLTextCtrl(
         "goalFitCriterionCtrl",
         objt.fitCriterion(environmentName, dupProperty))
     self.decorator.updateMLTextCtrl(
         "goalIssueCtrl", objt.issue(environmentName, dupProperty))
     self.window.resize(350, 600)
示例#37
0
class LinkAndNodeDialog:
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("LinkAndNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("goalNameCtrl",objt.name())
    self.decorator.updateMLTextCtrl("goalDefinitionCtrl",objt.definition(environmentName,dupProperty))
    self.decorator.updateTextCtrl("goalCategoryCtrl",objt.category(environmentName,dupProperty))
    self.decorator.updateTextCtrl("goalPriorityCtrl",objt.priority(environmentName,dupProperty))
    self.decorator.updateMLTextCtrl("goalFitCriterionCtrl",objt.fitCriterion(environmentName,dupProperty))
    self.decorator.updateMLTextCtrl("goalIssueCtrl",objt.issue(environmentName,dupProperty))
    self.window.resize(350,600)


  def on_goalOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()
示例#38
0
 def __init__(self, objt, environmentName, builder):
     self.window = builder.get_object("NewRequirementNodeDialog")
     b = Borg()
     self.dbProxy = b.dbProxy
     self.theGoalName = objt.name()
     self.theEnvironmentName = environmentName
     self.theGoalAssociation = None
     self.decorator = NDImplementationDecorator(builder)
     reqTypes = self.dbProxy.getDimensionNames('requirement_type')
     priorityTypes = ['1', '2', '3']
     reqAssets = self.dbProxy.environmentAssets(self.theEnvironmentName)
     self.goalAssociations = []
     self.subGoalAssociations = []
     self.decorator.updateComboCtrl("newRequirementTypeCtrl", reqTypes, '')
     self.decorator.updateComboCtrl("requirementAssetCtrl", reqAssets, '')
     self.decorator.updateComboCtrl("newRequirementPriorityCtrl",
                                    priorityTypes, '')
     self.window.resize(350, 600)
示例#39
0
    def __init__(self, objt, environmentName, dupProperty,
                 overridingEnvironment, builder):
        self.window = builder.get_object("TaskNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        taskName = objt.name()
        self.decorator.updateTextCtrl("taskNameCtrl", taskName)
        self.decorator.updateTextCtrl("taskObjectiveCtrl", objt.objective())
        self.decorator.updateMLTextCtrl(
            "taskDependenciesCtrl",
            objt.dependencies(environmentName, dupProperty))

        personas = []
        for persona in objt.personas(environmentName, dupProperty,
                                     overridingEnvironment):
            personas.append(
                [persona[0], persona[1], persona[2], persona[3], persona[4]])
        self.decorator.updateListCtrl(
            "taskPersonasCtrl",
            ['Persona', 'Duration', 'Frequency', 'Demands', 'Goal conflict'],
            gtk.ListStore(str, str, str, str, str), personas)

        assets = []
        for asset in objt.assets(environmentName, dupProperty):
            assets.append([asset])
        self.decorator.updateListCtrl("taskAssetsCtrl", ['Asset'],
                                      gtk.ListStore(str), assets)

        b = Borg()
        proxy = b.dbProxy
        self.decorator.updateTextCtrl(
            "taskUsabilityCtrl",
            str(proxy.taskUsabilityScore(taskName, environmentName)))

        taskId = proxy.getDimensionId(taskName, 'task')
        environmentId = proxy.getDimensionId(environmentName, 'environment')
        self.decorator.updateTextCtrl(
            "taskTaskLoadCtrl", str(proxy.taskLoad(taskId, environmentId)))
        self.decorator.updateTextCtrl(
            "taskCountermeasureLoadCtrl",
            str(proxy.countermeasureLoad(taskId, environmentId)))
        self.decorator.updateMLTextCtrl(
            "taskNarrativeCtrl", objt.narrative(environmentName, dupProperty))
        self.window.resize(350, 300)
 def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
   self.window = builder.get_object("VulnerabilityNodeDialog")
   self.decorator = NDImplementationDecorator(builder)
   self.decorator.updateTextCtrl("vulnerabilityNameCtrl",objt.name())
   self.decorator.updateTextCtrl("vulnerabilityTypeCtrl",objt.type())
   self.decorator.updateTextCtrl("vulnerabilitySeverityCtrl",objt.severity(environmentName,dupProperty,overridingEnvironment))
   self.decorator.updateMLTextCtrl("vulnerabilityDescriptionCtrl",objt.description())
   assets = []
   for asset in objt.assets(environmentName,dupProperty):
     assets.append([asset])
   self.decorator.updateListCtrl("vulnerabilityAssetsCtrl",['Asset'],gtk.ListStore(str),assets)
   self.window.resize(300,325)
class GoalRefinementNodeDialog:
    def __init__(self,
                 objt,
                 environmentName,
                 builder,
                 goalIndicator,
                 gName,
                 reqIndicator=False):
        self.window = builder.get_object("GoalRefinementNodeDialog")
        b = Borg()
        self.dbProxy = b.dbProxy
        self.theEnvironmentName = environmentName
        self.decorator = NDImplementationDecorator(builder)
        self.reqIndicator = reqIndicator

        refTypes = ['and', 'or']
        goals = self.dbProxy.environmentGoals(self.theEnvironmentName)
        if (self.reqIndicator == True):
            refTypes = ['and']
            goals = self.dbProxy.getDimensionNames('requirement')

        self.decorator.updateComboCtrl("goalRefNameCtrl", goals, '')
        self.decorator.updateComboCtrl("goalRefinementCtrl", refTypes, '')
        self.decorator.updateButtonLabel("goalRefinementOkButton", "Create")
        self.window.resize(350, 200)
        self.goalIndicator = goalIndicator
        self.inputGoalName = gName

    def on_goalRefinementOkButton_clicked(self, callback_data):
        goalName = self.decorator.getComboValue("goalRefNameCtrl")
        assocType = self.decorator.getComboValue("goalRefinementCtrl")
        if (self.reqIndicator == True):
            parameters = GoalAssociationParameters(self.theEnvironmentName,
                                                   self.inputGoalName, 'goal',
                                                   'and', goalName,
                                                   'requirement')
        elif (self.goalIndicator == True):
            parameters = GoalAssociationParameters(self.theEnvironmentName,
                                                   goalName, 'goal', assocType,
                                                   self.inputGoalName, 'goal')
        else:
            parameters = GoalAssociationParameters(self.theEnvironmentName,
                                                   self.inputGoalName, 'goal',
                                                   assocType, goalName, 'goal')
        self.dbProxy.addGoalAssociation(parameters)
        self.window.destroy()

    def show(self):
        self.window.show()
示例#42
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("TransferNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("transferNameCtrl",objt.name())
    self.decorator.updateTextCtrl("transferRiskCtrl",objt.risk())

    roles = []
    roleList = objt.roles(environmentName,dupProperty,overridingEnvironment)
    for role in roleList:
      roles.append([role[0],role[1]])
    self.decorator.updateListCtrl("transferRolesCtrl",['Role','Cost'],gtk.ListStore(str,str),roles)
    self.decorator.updateMLTextCtrl("transferDescriptionCtrl",objt.description(environmentName,dupProperty,overridingEnvironment))
    self.window.resize(300,300)
  def __init__(self,objt,environmentName,builder,goalName,isGoal = True):
    self.window = builder.get_object("AssignResponsibilityNodeDialog")
    b = Borg()
    self.isGoalIndicator = isGoal
    self.dbProxy = b.dbProxy
    self.theEnvironmentName = environmentName
    self.theGoalName = goalName
    self.decorator = NDImplementationDecorator(builder)
    self.theObjtId = objt.id()

    roles = self.dbProxy.getDimensionNames('role')
    self.decorator.updateComboCtrl("roleRespNameCtrl",roles,'')
    self.window.resize(350,200)
示例#44
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("MisuseCaseNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("misuseCaseNameCtrl",objt.name())

    b = Borg()
    proxy = b.dbProxy
    environmentId = proxy.getDimensionId(environmentName,'environment')
    threatName,vulName = proxy.riskComponents(objt.risk())

    threatId = proxy.getDimensionId(threatName,'threat')
    vulId = proxy.getDimensionId(vulName,'vulnerability')
    self.decorator.updateTextCtrl("misuseCaseThreatCtrl",threatName)
    self.decorator.updateTextCtrl("misuseCaseLikelihoodCtrl",proxy.threatLikelihood(threatId,environmentId))
    self.decorator.updateTextCtrl("misuseCaseVulnerabilityCtrl",vulName)
    self.decorator.updateTextCtrl("misuseCaseSeverityCtrl",proxy.vulnerabilitySeverity(vulId,environmentId))
    self.decorator.updateTextCtrl("misuseCaseRiskRatingCtrl",proxy.riskRating(threatName,vulName,environmentName))

    attackers = proxy.threatAttackers(threatId,environmentId)
    attackerSet = set(attackers)
    attackers = []
    for attacker in attackerSet:
      attackers.append([attacker])
    self.decorator.updateListCtrl("misuseCaseAttackersCtrl",['Attacker'],gtk.ListStore(str),attackers)

    threatenedAssets = proxy.threatenedAssets(threatId,environmentId)
    vulnerableAssets = proxy.vulnerableAssets(vulId,environmentId)
    assetSet = set(threatenedAssets + vulnerableAssets)
    assets = []
    for asset in assetSet:
      assets.append([asset])
    self.decorator.updateListCtrl("misuseCaseAssetsCtrl",['Asset'],gtk.ListStore(str),assets)

    self.decorator.updateMLTextCtrl("misuseCaseNarrativeCtrl",objt.narrative(environmentName,dupProperty))

    objectiveText = 'Exploit vulnerabilities in '
    for idx,vulAsset in enumerate(vulnerableAssets):
      objectiveText += vulAsset
      if (idx != (len(vulnerableAssets) -1)):
        objectiveText += ','
    objectiveText += ' to threaten '
    for idx,thrAsset in enumerate(threatenedAssets):
      objectiveText += thrAsset
      if (idx != (len(threatenedAssets) -1)):
        objectiveText += ','
    objectiveText += '.'
    self.decorator.updateTextCtrl("misuseCaseObjectiveCtrl",objectiveText)


    self.window.resize(350,100)
示例#45
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("RoleNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("roleNameCtrl",objt.name())
    self.decorator.updateMLTextCtrl("roleDescriptionCtrl",objt.description())
    responseCosts = []
    for responseCost in objt.responses(environmentName,dupProperty,overridingEnvironment):
      responseCosts.append([responseCost[0],responseCost[1] ])
    self.decorator.updateListCtrl("roleResponseCtrl",['Response','Cost'],gtk.ListStore(str,str),responseCosts)
    cms = []
    for cm in objt.countermeasures(environmentName,dupProperty,overridingEnvironment):
      cms.append([cm[0]])
    self.decorator.updateListCtrl("roleCountermeasureCtrl",['Countermeasure'],gtk.ListStore(str),cms)


    self.window.resize(350,200)
  def __init__(self,objt,environmentName,builder):
    self.window = builder.get_object("AssetAssociationNodeDialog")
    b = Borg()
    self.dbProxy = b.dbProxy
    self.theCurrentEnvironment = environmentName
    self.theHeadName = objt.name()
    self.decorator = NDImplementationDecorator(builder)
    assets = self.dbProxy.environmentAssets(self.theCurrentEnvironment) 
    associationTypes = ['Inheritance','Association','Aggregation','Composition','Dependency']
    multiplicityTypes = ['1','*','1..*']

    self.decorator.updateComboCtrl("assetAssociationHeadAdornmentCtrl",associationTypes,'')
    self.decorator.updateComboCtrl("assetAssociationHeadNryCtrl",multiplicityTypes,'')
    self.decorator.updateComboCtrl("assetAssociationTailNryCtrl",multiplicityTypes,'')
    self.decorator.updateComboCtrl("assetAssociationTailAdornmentCtrl",associationTypes,'')
    self.decorator.updateComboCtrl("assetAssociationTailNameCtrl",assets,'')
    self.decorator.updateButtonLabel("assetAssociationOkButton","Create")
 def __init__(self,objt,environmentName,builder):
   self.window = builder.get_object("NewRequirementNodeDialog")
   b = Borg()
   self.dbProxy = b.dbProxy
   self.theGoalName = objt.name()
   self.theEnvironmentName = environmentName
   self.theGoalAssociation = None
   self.decorator = NDImplementationDecorator(builder)
   reqTypes = self.dbProxy.getDimensionNames('requirement_type')
   priorityTypes = ['1','2','3']
   reqAssets = self.dbProxy.environmentAssets(self.theEnvironmentName)
   self.goalAssociations = []
   self.subGoalAssociations= []
   self.decorator.updateComboCtrl("newRequirementTypeCtrl",reqTypes,'')
   self.decorator.updateComboCtrl("requirementAssetCtrl",reqAssets,'')
   self.decorator.updateComboCtrl("newRequirementPriorityCtrl",priorityTypes,'')
   self.window.resize(350,600)
示例#48
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("ThreatNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("threatNameCtrl",objt.name())
    self.decorator.updateTextCtrl("threatTypeCtrl",objt.type())
    self.decorator.updateTextCtrl("threatLikelihoodCtrl",objt.likelihood(environmentName,dupProperty,overridingEnvironment))
    self.decorator.updateMLTextCtrl("threatMethodCtrl",objt.method())
    attackers = []
    for attacker in objt.attackers(environmentName,dupProperty):
      attackers.append([attacker])
    self.decorator.updateListCtrl("threatAttackersCtrl",['Attacker'],gtk.ListStore(str),attackers)
    assets = []
    for asset in objt.assets(environmentName,dupProperty):
      assets.append([asset])
    self.decorator.updateListCtrl("threatAssetsCtrl",['Asset'],gtk.ListStore(str),assets)
    self.decorator.updateListCtrl("threatPropertiesCtrl",['Property','Value'],gtk.ListStore(str,str),objt.propertyList(environmentName,dupProperty,overridingEnvironment))

    self.window.resize(350,350)
示例#49
0
class AssetNodeDialog:
    def __init__(self, objt, environmentName, dupProperty, overridingEnvironment, builder):
        self.window = builder.get_object("AssetNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("assetNameCtrl", objt.name())
        self.decorator.updateMLTextCtrl("assetDescriptionCtrl", objt.description())
        self.decorator.updateMLTextCtrl("assetSignificanceCtrl", objt.significance())
        self.decorator.updateListCtrl(
            "assetPropertiesCtrl",
            ["Property", "Value"],
            gtk.ListStore(str, str),
            objt.propertyList(environmentName, dupProperty, overridingEnvironment),
        )
        self.window.resize(350, 350)

    def on_assetOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
示例#50
0
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("PersonaNodeDialog")
    self.decorator = NDImplementationDecorator(builder) 
    self.decorator.updateTextCtrl("personaNameCtrl",objt.name())
    self.decorator.updateMLTextCtrl("personaActivitiesCtrl",objt.activities())
    self.decorator.updateMLTextCtrl("personaAttitudesCtrl",objt.attitudes())
    self.decorator.updateMLTextCtrl("personaAptitudesCtrl",objt.aptitudes())
    self.decorator.updateMLTextCtrl("personaMotivationsCtrl",objt.motivations())
    self.decorator.updateMLTextCtrl("personaSkillsCtrl",objt.skills())
    self.decorator.updateImageCtrl("personaImageCtrl",objt.image())

    self.decorator.updateTextCtrl("personaDirectCtrl",objt.directFlag(environmentName,dupProperty))
    roles = []
    for role in objt.roles(environmentName,dupProperty):
      roles.append([role])
    self.decorator.updateListCtrl("personaRolesCtrl",['Role'],gtk.ListStore(str),roles)
    self.decorator.updateMLTextCtrl("personaNarrativeCtrl",objt.narrative(environmentName,dupProperty))

    self.window.resize(400,400)
  def __init__(self,objt,environmentName,builder,goalIndicator,gName,reqIndicator = False):
    self.window = builder.get_object("GoalRefinementNodeDialog")
    b = Borg()
    self.dbProxy = b.dbProxy
    self.theEnvironmentName = environmentName
    self.decorator = NDImplementationDecorator(builder)
    self.reqIndicator = reqIndicator

    refTypes = ['and','or']
    goals = self.dbProxy.environmentGoals(self.theEnvironmentName)
    if (self.reqIndicator == True):
      refTypes = ['and']
      goals = self.dbProxy.getDimensionNames('requirement')

    self.decorator.updateComboCtrl("goalRefNameCtrl",goals,'')
    self.decorator.updateComboCtrl("goalRefinementCtrl",refTypes,'')
    self.decorator.updateButtonLabel("goalRefinementOkButton","Create")
    self.window.resize(350,200)
    self.goalIndicator = goalIndicator
    self.inputGoalName = gName
示例#52
0
class AcceptNodeDialog:
  def __init__(self,objt,environmentName,dupProperty,overridingEnvironment,builder):
    self.window = builder.get_object("AcceptNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("acceptNameCtrl",objt.name())
    self.decorator.updateTextCtrl("acceptRiskCtrl",objt.risk())
    self.decorator.updateTextCtrl("acceptCostCtrl",objt.cost(environmentName,dupProperty,overridingEnvironment))
    self.decorator.updateMLTextCtrl("acceptRationaleCtrl",objt.description(environmentName,dupProperty,overridingEnvironment))
    self.window.resize(300,300)

  def on_acceptOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()
示例#53
0
class DocumentReferenceNodeDialog:
    def __init__(self, refName, docName, docExc, builder):
        self.window = builder.get_object("DocumentReferenceNodeDialog")
        self.decorator = NDImplementationDecorator(builder)
        self.decorator.updateTextCtrl("documentReferenceNameCtrl", refName)
        self.decorator.updateTextCtrl("documentReferenceDocumentCtrl", docName)
        self.decorator.updateMLTextCtrl("documentReferenceExcerptCtrl", docExc)

        self.window.resize(350, 200)

    def on_documentReferenceOkButton_clicked(self, callback_data):
        self.window.destroy()

    def show(self):
        self.window.show()
class DocumentReferenceNodeDialog:
  def __init__(self,refName,docName,docExc,builder):
    self.window = builder.get_object("DocumentReferenceNodeDialog")
    self.decorator = NDImplementationDecorator(builder)
    self.decorator.updateTextCtrl("documentReferenceNameCtrl",refName)
    self.decorator.updateTextCtrl("documentReferenceDocumentCtrl",docName)
    self.decorator.updateMLTextCtrl("documentReferenceExcerptCtrl",docExc)

    self.window.resize(350,200)

  def on_documentReferenceOkButton_clicked(self,callback_data):
    self.window.destroy()

  def show(self):
    self.window.show()