コード例 #1
0
def test_set_marking_bad_input(data):
    before = Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS)
    after = Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS)
    with pytest.raises(exceptions.InvalidValueError):
        before = markings.set_markings(before, data, None)

    assert before == after
コード例 #2
0
def test_set_marking_mark_another_property_same_marking():
    before = Malware(
        granular_markings=[
            {
                "selectors": ["description"],
                "marking_ref": MARKING_IDS[0],
            },
        ],
        **MALWARE_KWARGS
    )
    after = Malware(
        granular_markings=[
            {
                "selectors": ["description"],
                "marking_ref": MARKING_IDS[1],
            },
            {
                "selectors": ["description"],
                "marking_ref": MARKING_IDS[2],
            },
        ],
        **MALWARE_KWARGS
    )
    before = markings.set_markings(before, [MARKING_IDS[1], MARKING_IDS[2]], ["description"])

    for m in before["granular_markings"]:
        assert m in after["granular_markings"]
コード例 #3
0
def test_remove_marking_mark_one_selector_markings_from_multiple_ones():
    after = Malware(
        granular_markings=[
            {
                "selectors": ["description"],
                "marking_ref": MARKING_IDS[0],
            },
            {
                "selectors": ["description", "modified"],
                "marking_ref": MARKING_IDS[1],
            },
        ],
        **MALWARE_KWARGS
    )
    before = Malware(
        granular_markings=[
            {
                "selectors": ["description", "modified"],
                "marking_ref": MARKING_IDS[0],
            },
            {
                "selectors": ["description", "modified"],
                "marking_ref": MARKING_IDS[1],
            },
        ],
        **MALWARE_KWARGS
    )
    before = markings.remove_markings(before, [MARKING_IDS[0]], ["modified"])
    for m in before["granular_markings"]:
        assert m in after["granular_markings"]
コード例 #4
0
def test_add_markings_combination():
    before = Malware(**MALWARE_KWARGS)
    after = Malware(object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1]],
                    granular_markings=[
                        {
                            "selectors": ["labels"],
                            "marking_ref": MARKING_IDS[2],
                        },
                        {
                            "selectors": ["name"],
                            "marking_ref": MARKING_IDS[3],
                        },
                    ],
                    **MALWARE_KWARGS)

    before = markings.add_markings(before, MARKING_IDS[0], None)
    before = markings.add_markings(before, MARKING_IDS[1], None)
    before = markings.add_markings(before, MARKING_IDS[2], "labels")
    before = markings.add_markings(before, MARKING_IDS[3], "name")

    for m in before["granular_markings"]:
        assert m in after["granular_markings"]

    for m in before["object_marking_refs"]:
        assert m in after["object_marking_refs"]
コード例 #5
0
def test_add_markings_multiple_marking():
    before = Malware(**MALWARE_KWARGS)

    after = Malware(object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1]],
                    **MALWARE_KWARGS)

    before = markings.add_markings(before, [MARKING_IDS[0], MARKING_IDS[1]],
                                   None)

    for m in before["object_marking_refs"]:
        assert m in after["object_marking_refs"]
コード例 #6
0
def test_remove_markings_bad_markings():
    before = Malware(
        object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1], MARKING_IDS[2]],
        **MALWARE_KWARGS)
    with pytest.raises(AssertionError) as excinfo:
        markings.remove_markings(before, [MARKING_IDS[4]], None)
    assert str(excinfo.value
               ) == "Marking ['%s'] was not found in Malware!" % MARKING_IDS[4]
コード例 #7
0
def test_set_marking_mark_one_selector_multiple_refs():
    before = Malware(**MALWARE_KWARGS)
    after = Malware(granular_markings=[
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[0],
        },
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[1],
        },
    ],
                    **MALWARE_KWARGS)
    before = markings.set_markings(before, [MARKING_IDS[0], MARKING_IDS[1]],
                                   ["description"])
    for m in before["granular_markings"]:
        assert m in after["granular_markings"]
コード例 #8
0
def test_set_marking():
    before = Malware(
        object_marking_refs=[MARKING_IDS[0], MARKING_IDS[1], MARKING_IDS[2]],
        **MALWARE_KWARGS)
    after = Malware(object_marking_refs=[MARKING_IDS[4], MARKING_IDS[5]],
                    **MALWARE_KWARGS)

    before = markings.set_markings(before, [MARKING_IDS[4], MARKING_IDS[5]],
                                   None)

    for m in before["object_marking_refs"]:
        assert m in [MARKING_IDS[4], MARKING_IDS[5]]

    assert [MARKING_IDS[0], MARKING_IDS[1],
            MARKING_IDS[2]] not in before["object_marking_refs"]

    for x in before["object_marking_refs"]:
        assert x in after["object_marking_refs"]
コード例 #9
0
def test_create_sdo_with_invalid_marking():
    with pytest.raises(AssertionError) as excinfo:
        Malware(granular_markings=[
            {
                "selectors": ["foo"],
                "marking_ref": MARKING_IDS[0],
            },
        ],
                **MALWARE_KWARGS)
    assert str(excinfo.value) == "Selector foo in Malware is not valid!"
コード例 #10
0
def test_remove_marking_not_present():
    before = Malware(granular_markings=[
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[0],
        },
    ],
                     **MALWARE_KWARGS)
    with pytest.raises(MarkingNotFoundError):
        markings.remove_markings(before, [MARKING_IDS[1]], ["description"])
コード例 #11
0
def rel_mem_store():
    cam = Campaign(id=CAMPAIGN_ID, **CAMPAIGN_KWARGS)
    idy = Identity(id=IDENTITY_ID, **IDENTITY_KWARGS)
    ind = Indicator(id=INDICATOR_ID, **INDICATOR_KWARGS)
    mal = Malware(id=MALWARE_ID, **MALWARE_KWARGS)
    rel1 = Relationship(ind, 'indicates', mal, id=RELATIONSHIP_IDS[0])
    rel2 = Relationship(mal, 'targets', idy, id=RELATIONSHIP_IDS[1])
    rel3 = Relationship(cam, 'uses', mal, id=RELATIONSHIP_IDS[2])
    stix_objs = [cam, idy, ind, mal, rel1, rel2, rel3]
    yield MemoryStore(stix_objs)
コード例 #12
0
def test_set_marking_bad_selector(marking):
    before = Malware(granular_markings=[
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[0],
        },
    ],
                     **MALWARE_KWARGS)
    after = Malware(granular_markings=[
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[0],
        },
    ],
                    **MALWARE_KWARGS)

    with pytest.raises(AssertionError):
        before = markings.set_markings(before, marking[0], marking[1])

    assert before == after
コード例 #13
0
def test_remove_marking_remove_multiple_selector_one_ref():
    before = Malware(granular_markings=[
        {
            "selectors": ["description", "modified"],
            "marking_ref": MARKING_IDS[0],
        },
    ],
                     **MALWARE_KWARGS)
    before = markings.remove_markings(before, MARKING_IDS[0],
                                      ["description", "modified"])
    assert "granular_markings" not in before
コード例 #14
0
def test_remove_marking_mark_same_property_same_marking():
    before = Malware(granular_markings=[
        {
            "selectors": ["description"],
            "marking_ref": MARKING_IDS[0],
        },
    ],
                     **MALWARE_KWARGS)
    before = markings.remove_markings(before, [MARKING_IDS[0]],
                                      ["description"])
    assert "granular_markings" not in before
コード例 #15
0
def test_set_marking_on_id_property():
    malware = Malware(
        granular_markings=[
            {
                "selectors": ["id"],
                "marking_ref": MARKING_IDS[0],
            },
        ],
        **MALWARE_KWARGS
    )

    assert "id" in malware["granular_markings"][0]["selectors"]
コード例 #16
0
from .constants import MARKING_IDS
"""Tests for the Data Markings API."""

MALWARE_KWARGS = MALWARE_KWARGS_CONST.copy()
MALWARE_KWARGS.update({
    'id': MALWARE_ID,
    'created': FAKE_TIME,
    'modified': FAKE_TIME,
})


@pytest.mark.parametrize(
    "data",
    [
        (
            Malware(**MALWARE_KWARGS),
            Malware(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS),
            MARKING_IDS[0],
        ),
        (
            MALWARE_KWARGS,
            dict(object_marking_refs=[MARKING_IDS[0]], **MALWARE_KWARGS),
            MARKING_IDS[0],
        ),
        (
            Malware(**MALWARE_KWARGS),
            Malware(object_marking_refs=[TLP_AMBER.id], **MALWARE_KWARGS),
            TLP_AMBER,
        ),
    ],
)
コード例 #17
0
                "selectors": ["description"],
                "marking_ref": MARKING_IDS[1],
            },
        ],
        **MALWARE_KWARGS
    )
    before = markings.add_markings(before, [MARKING_IDS[0], MARKING_IDS[1]], ["description"])

    for m in before["granular_markings"]:
        assert m in after["granular_markings"]


@pytest.mark.parametrize(
    "data", [
        (
            Malware(**MALWARE_KWARGS),
            Malware(
                granular_markings=[
                    {
                        "selectors": ["description", "name"],
                        "marking_ref": MARKING_IDS[0],
                    },
                ],
                **MALWARE_KWARGS
            ),
            MARKING_IDS[0],
        ),
        (
            MALWARE_KWARGS,
            dict(
                granular_markings=[
コード例 #18
0
def test_add_markings_bad_markings(data):
    before = Malware(**MALWARE_KWARGS)
    with pytest.raises(exceptions.InvalidValueError):
        before = markings.add_markings(before, data, None)

    assert "object_marking_refs" not in before