Пример #1
0
        private static ruleType CreatePresRule(String id, String subhandling, bool useTransformations, object condition)
        {
            XmlDocument document = new XmlDocument();

            ruleType rule = new ruleType();

            rule.id                  = id;
            rule.conditions          = new conditionsType();
            rule.conditions.Items    = new object[1];
            rule.conditions.Items[0] = condition;

            //<cr:actions>
            //  <sub-handling>allow</sub-handling>
            //</cr:actions>
            XmlElement subHandling = document.CreateElement("sub-handling", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);

            subHandling.InnerText = subhandling;
            rule.actions          = new extensibleType();
            rule.actions.Any      = new XmlElement[] { subHandling };

            //<cr:transformations>...
            if (useTransformations)
            {
                //<provide-services>
                //    <all-services />
                //</provide-services>
                XmlElement allServices     = document.CreateElement("all-services", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                XmlElement provideServices = document.CreateElement("provide-services", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                provideServices.AppendChild(allServices);

                //<provide-persons>
                //    <all-persons />
                // </provide-persons>
                XmlElement allPersons     = document.CreateElement("all-persons", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                XmlElement providePersons = document.CreateElement("provide-persons", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                providePersons.AppendChild(allPersons);

                //<provide-devices>
                //    <all-devices />
                //</provide-devices>
                XmlElement allDevices     = document.CreateElement("all-devices", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                XmlElement provideDevices = document.CreateElement("provide-devices", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);
                provideDevices.AppendChild(allDevices);

                // <provide-all-attributes />
                XmlElement provideAllAttributes = document.CreateElement("provide-all-attributes", XcapService.XCAP_AUID_IETF_PRES_RULES_NS);

                rule.transformations     = new extensibleType();
                rule.transformations.Any = new XmlElement[] { provideServices, providePersons, provideAllAttributes, provideDevices };
            }

            return(rule);
        }
Пример #2
0
        public IActionResult CreateRuleSet(cardFace cardFace, cardSuit cardSuit, ruleType ruleType)
        {
            ViewBag.CardSuit = new SelectList(Enum.GetNames(typeof(cardSuit)));
            ViewBag.CardFace = new SelectList(Enum.GetNames(typeof(cardFace)));
            ViewBag.CardRule = new SelectList(Enum.GetNames(typeof(ruleType)));

            Card card = new Card {
                Face = cardFace, Suit = cardSuit
            };

            List <Rule> rules = new List <Rule>();

            rules.AddRange(RuleList);
            rules.Add((new Rule(card, ruleType, 0)));
            RuleList = rules;

            return(View(RuleList));
        }
Пример #3
0
        private void createRulesForSignatures(ruleType rRuleType)
        {
            var dgvRowsToRemove = new List<DataGridViewRow>();
            String sVuln_id, sActionObjectSignature, sSeverity, sVuln_type;
            foreach (DataGridViewRow dgvRow in dgvTargetMethods.Rows)
            {
                UInt32 uDbId;
                if (UInt32.TryParse(dgvRow.Cells["db_id"].Value.ToString(), out uDbId))
                {
                    String sMethodSignature = dgvRow.Cells["signature"].Value.ToString();
                    // String sVulnName = "";                    

                    switch (rRuleType)
                    {
                        case ruleType.TaintPropagator:
                            if (Lddb_OunceV6.action_makeMethod_TaintPropagator(uDbId, sMethodSignature,"all","all","1"))
                                dgvRowsToRemove.Add(dgvRow);
                            break;

                        case ruleType.Callback:
                            if (Lddb_OunceV6.action_makeMethodACallback(uDbId, sMethodSignature))
                                dgvRowsToRemove.Add(dgvRow);
                            break;
                        case ruleType.Source:
                            sVuln_id = "0";
                            sActionObjectSignature = "InputAnyTainted";
                            sSeverity = "High";
                            sVuln_type = "Vulnerability.F1.Source";
                            if (cbEditCustomRules_vuln_type.Text != "")
                                sVuln_type = cbEditCustomRules_vuln_type.Text;
                            if (Lddb_OunceV6.action_makeMethod_Source(uDbId.ToString(), sMethodSignature, sVuln_id,
                                                              sActionObjectSignature, sSeverity, sVuln_type))
                                dgvRowsToRemove.Add(dgvRow);
                            break;
                        case ruleType.Sink:
                            sVuln_id = "0";
                            sActionObjectSignature = "OutputAnyNotValidated";
                            sSeverity = "High";
                            sVuln_type = "Vulnerability.F1.Sink";
                            if (cbEditCustomRules_vuln_type.Text != "")
                                sVuln_type = cbEditCustomRules_vuln_type.Text;
                            if (Lddb_OunceV6.action_makeMethod_Sink(uDbId.ToString(), sMethodSignature, sVuln_id,
                                                            sActionObjectSignature, sSeverity, sVuln_type, true))
                                dgvRowsToRemove.Add(dgvRow);
                            break;
                        case ruleType.Validator:
                            if (Lddb_OunceV6.action_makeMethod_Validator(uDbId, sMethodSignature))
                                dgvRowsToRemove.Add(dgvRow);
                            break;
                        case ruleType.NotPropagateTaint:
                            if (Lddb_OunceV6.action_makeMethod_NotPropagateTaint(uDbId, sMethodSignature))
                                dgvRowsToRemove.Add(dgvRow);
                            break;
                        default:
                            break;
                    }
                }
                else
                    DI.log.error("in btMarkMethodsAs_TaintPropagator_Click error converting {0} to an UInt32",
                                 dgvRow.Cells["Db_id"].Value.ToString());
            }

            foreach (DataGridViewRow dgvRowToRemove in dgvRowsToRemove)
                dgvTargetMethods.Rows.Remove(dgvRowToRemove);
        }
        private void createRulesForSignatures(ruleType rRuleType)
        {
            var    dgvRowsToRemove = new List <DataGridViewRow>();
            String sVuln_id, sActionObjectSignature, sSeverity, sVuln_type;

            foreach (DataGridViewRow dgvRow in dgvTargetMethods.Rows)
            {
                UInt32 uDbId;
                if (UInt32.TryParse(dgvRow.Cells["db_id"].Value.ToString(), out uDbId))
                {
                    String sMethodSignature = dgvRow.Cells["signature"].Value.ToString();
                    // String sVulnName = "";

                    switch (rRuleType)
                    {
                    case ruleType.TaintPropagator:
                        if (Lddb_OunceV6.action_makeMethod_TaintPropagator(uDbId, sMethodSignature, "all", "all", "1"))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    case ruleType.Callback:
                        if (Lddb_OunceV6.action_makeMethodACallback(uDbId, sMethodSignature))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    case ruleType.Source:
                        sVuln_id = "0";
                        sActionObjectSignature = "InputAnyTainted";
                        sSeverity  = "High";
                        sVuln_type = "Vulnerability.F1.Source";
                        if (cbEditCustomRules_vuln_type.Text != "")
                        {
                            sVuln_type = cbEditCustomRules_vuln_type.Text;
                        }
                        if (Lddb_OunceV6.action_makeMethod_Source(uDbId.ToString(), sMethodSignature, sVuln_id,
                                                                  sActionObjectSignature, sSeverity, sVuln_type))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    case ruleType.Sink:
                        sVuln_id = "0";
                        sActionObjectSignature = "OutputAnyNotValidated";
                        sSeverity  = "High";
                        sVuln_type = "Vulnerability.F1.Sink";
                        if (cbEditCustomRules_vuln_type.Text != "")
                        {
                            sVuln_type = cbEditCustomRules_vuln_type.Text;
                        }
                        if (Lddb_OunceV6.action_makeMethod_Sink(uDbId.ToString(), sMethodSignature, sVuln_id,
                                                                sActionObjectSignature, sSeverity, sVuln_type, true))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    case ruleType.Validator:
                        if (Lddb_OunceV6.action_makeMethod_Validator(uDbId, sMethodSignature))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    case ruleType.NotPropagateTaint:
                        if (Lddb_OunceV6.action_makeMethod_NotPropagateTaint(uDbId, sMethodSignature))
                        {
                            dgvRowsToRemove.Add(dgvRow);
                        }
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    DI.log.error("in btMarkMethodsAs_TaintPropagator_Click error converting {0} to an UInt32",
                                 dgvRow.Cells["Db_id"].Value.ToString());
                }
            }

            foreach (DataGridViewRow dgvRowToRemove in dgvRowsToRemove)
            {
                dgvTargetMethods.Rows.Remove(dgvRowToRemove);
            }
        }
Пример #5
0
 public Rule(Card card, ruleType ruletype, int ruleAmount)
 {
     Card       = card;
     RuleType   = ruletype;
     RuleAmount = ruleAmount;
 }