def ClaimsData_ConfidentialityBreach(): """ Returns the LossEvent object that can be added to the sim Risk probability distribution is from ~2 years of data regarding claims data breaches """ claimsCBreach = le.decomposedRisk("Claims data confidentiality breach", lambda foo=1: st.beta.rvs(1, 20)) # Manpower costs, cost of opportunity with the exception of LegalCounsel which is a real expense claimsCBreach.attachEvent(mp.MPI_SecurityTeam()) claimsCBreach.attachEvent(mp.MPI_ITOps()) claimsCBreach.attachEvent(mp.MPI_ApplicationsTeam()) claimsCBreach.attachEvent(mp.MPI_ITLeadership()) claimsCBreach.attachEvent(mp.MPI_PSC()) claimsCBreach.attachEvent(mp.MPI_ClaimsDept()) claimsCBreach.attachEvent(mp.MPI_MedReview()) claimsCBreach.attachEvent(mp.MPI_BRD()) claimsCBreach.attachEvent(mp.MPI_Compliance()) claimsCBreach.attachEvent(mp.MPI_LegalCounsel()) # Other costs. These tend to be real expenses # According to a SANS breach report only 57.7% of respondents bought a new tech control newTech = le.decomposedRisk("New Tech Control", .577) newTech.attachEvent(oc.MPI_NewTechControl()) claimsCBreach.attachEvent(newTech) claimsCBreach.attachEvent(oc.MPI_SoftwareRecode()) claimsCBreach.attachEvent(oc.MPI_IRRetainer()) claimsCBreach.attachEvent(oc.MPI_Communications()) claimsCBreach.attachEvent(oc.MPI_HIPAAFines_Modeled()) return claimsCBreach
def MPI_Compliance(mintime = 4, maxtime = 40, cap = 80): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.ConstantValue(75) team = le.costOfLaborValue("Compliance", timeDist, costDist) return team
def MPI_LegalCounsel(mintime = 2, maxtime = 40, cap = 80): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(600, 150, 800) team = le.costOfLaborValue("Legal Counsel", timeDist, costDist) return team
def MPI_MedReview(mintime = 1, maxtime = 4, cap = 8): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(140, 65, 175) team = le.costOfLaborValue("Medical Review", timeDist, costDist) return team
def MPI_ClaimsDept(mintime = 2, maxtime = 20, cap = 40): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(265, 65, 375) team = le.costOfLaborValue("Claims Department", timeDist, costDist) return team
def MPI_PSC(mintime = 2, maxtime = 30, cap = 80): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(265, 65, 375) team = le.costOfLaborValue("PSC", timeDist, costDist) return team
def MPI_ITLeadership(mintime = 1, maxtime = 35, cap = 60): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(235, 85, 235) team = le.costOfLaborValue("IT Leadership", timeDist, costDist) return team
def MPI_ApplicationsTeam(mintime = 5, maxtime = 20, cap = 60): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(240, 115, 390) team = le.costOfLaborValue("Applications Development", timeDist, costDist) return team
def MPI_ITOps(mintime = 5, maxtime = 20, cap = 60): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(235, 115, 340) team = le.costOfLaborValue("IT I&O Team", timeDist, costDist) return team
def MPI_SecurityTeam(mintime = 5, maxtime = 80, cap = 160): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(175, 125, 175) team = le.costOfLaborValue("Security Team", timeDist, costDist) return team
def MPI_BRD(mintime = 1, maxtime = 4, cap = 8): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(140, 65, 175) team = le.costOfLaborValue("Benefits Recovery Dept", timeDist, costDist) return team
def MPI_CSuite(mintime = 2, maxtime = 40, cap = 80): """ Returns a costOfLaborValue object suitable to attach to a sim or other event Time is in hours """ timeDist = le.LogNormalValue(maxtime, mintime, cap) costDist = le.LogNormalValue(195, 85, 210) team = le.costOfLaborValue("C-Suite", timeDist, costDist) return team
def MPI_HardwareCosts(mincost = 50000, maxcost = 300000, cap = 750000): cost = le.LossEvent2("Hardware Costs") cost.attachEvent(le.LogNormalValue(maxcost, mincost, cap)) return cost
def MPI_HIPAAFines_Modeled(): cost = le.LossEvent2("HIPAA Fines (Modeled)") cost.attachEvent(le.PowerLawValue(0.43, 25000, 5535640)) return cost
def MPI_Communications(mincost = 100, maxcost = 90000, cap = 150000): cost = le.LossEvent2("Participant Communications") cost.attachEvent(le.LogNormalValue(maxcost, mincost, cap)) return cost
def MPI_NewTechControl(mincost = 25000, maxcost = 500000, cap = 1000000): cost = le.LossEvent2("Tech Control") cost.attachEvent(le.LogNormalValue(maxcost, mincost, cap)) return cost
def MPI_IRRetainer(mincost = 5000, maxcost = 105000, cap = 250000): cost = le.LossEvent2("IR Retainer") cost.attachEvent(le.LogNormalValue(maxcost, mincost, cap)) return cost
def MPI_SoftwareRecode(mincost = 4000, maxcost = 25000, cap = 100000): cost = le.LossEvent2("Software Dev") cost.attachEvent(le.LogNormalValue(maxcost, mincost, cap)) return cost